CVE-2026-75831
Full vulnerability record from the local CVENow database.
Description
Grav before 2.0.15 contains a stored cross-site scripting vulnerability in the audio and video media rendering through the sourceParsedownElement method. The media URL fragment is concatenated unescaped into rawHtml source elements, allowing attackers to inject arbitrary HTML and JavaScript that executes in viewers' sessions.
Severity
MEDIUM
CVSS score
5.1
(v4.0)
Vulnerability status
Deferred
Source identifier
Published
2026-08-18 12:19:33.100000
Last modified
2026-10-22 22:10:00.250000
View original CVE JSON
{
"id": "CVE-2026-75831",
"sourceIdentifier": "[email protected]",
"published": "2026-08-18T12:19:33.100",
"lastModified": "2026-10-22T22:10:00.250",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "Grav before 2.0.15 contains a stored cross-site scripting vulnerability in the audio and video media rendering through the sourceParsedownElement method. The media URL fragment is concatenated unescaped into rawHtml source elements, allowing attackers to inject arbitrary HTML and JavaScript that executes in viewers' sessions."
},
{
"lang": "es",
"value": "Grav anterior a la versión 2.0.15 contiene una vulnerabilidad de cross-site scripting almacenado en la renderización de medios de audio y video a través del método sourceParsedownElement. El fragmento de URL del medio se concatena sin escapar en elementos fuente rawHtml, permitiendo a los atacantes inyectar HTML y JavaScript arbitrarios que se ejecutan en las sesiones de los espectadores."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "getgrav",
"product": "grav",
"defaultStatus": "unaffected",
"packageURL": "pkg:composer/getgrav/grav",
"versions": [
{
"version": "0",
"lessThan": "2.0.15",
"versionType": "semver",
"status": "affected"
},
{
"version": "2.0.15",
"versionType": "semver",
"status": "unaffected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV40": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "4.0",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"baseScore": 5.1,
"baseSeverity": "MEDIUM",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "LOW",
"userInteraction": "PASSIVE",
"vulnConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "NONE",
"vulnAvailabilityImpact": "NONE",
"subConfidentialityImpact": "LOW",
"subIntegrityImpact": "LOW",
"subAvailabilityImpact": "NONE",
"exploitMaturity": "NOT_DEFINED",
"confidentialityRequirement": "NOT_DEFINED",
"integrityRequirement": "NOT_DEFINED",
"availabilityRequirement": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"valueDensity": "NOT_DEFINED",
"vulnerabilityResponseEffort": "NOT_DEFINED",
"providerUrgency": "NOT_DEFINED"
}
}
],
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:L/A:N",
"baseScore": 7.6,
"baseSeverity": "HIGH",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "LOW",
"userInteraction": "REQUIRED",
"scope": "CHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "LOW",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 2.3,
"impactScore": 4.7
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-08-18T13:55:23.651515Z",
"id": "CVE-2026-75831",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-79"
}
]
}
],
"references": [
{
"url": "https://github.com/getgrav/grav/commit/aba291a59cab29ddce491175791888d8d0b65e20",
"source": "[email protected]"
},
{
"url": "https://github.com/getgrav/grav/security/advisories/GHSA-6qw9-4vv5-jr97",
"source": "[email protected]"
},
{
"url": "https://www.vulncheck.com/advisories/grav-before-stored-xss-via-audio-video-source-url",
"source": "[email protected]"
},
{
"url": "https://github.com/getgrav/grav/security/advisories/GHSA-6qw9-4vv5-jr97",
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
}
]
}