CVE-2026-28222 (GCVE-0-2026-28222)
Vulnerability from cvelistv5 – Published: 2026-03-05 18:58 – Updated: 2026-03-06 18:05
VLAI?
Title
Wagtail: Improper escaping of HTML (Cross-site Scripting) on TableBlock class attributes
Summary
Wagtail is an open source content management system built on Django. Prior to versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1, a stored cross-site scripting (XSS) vulnerability exists on rendering TableBlock blocks within a StreamField. A user with access to create or edit pages containing TableBlock StreamField blocks is able to set specially-crafted class attributes on the block which run arbitrary JavaScript code when the page is viewed. When viewed by a user with higher privileges, this could lead to performing actions with that user's credentials. The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin, and only affects sites using TableBlock. This issue has been patched in versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1.
Severity ?
6.1 (Medium)
CWE
- CWE-79 - Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Assigner
References
| URL | Tags | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-28222",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-03-06T18:05:22.577268Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-03-06T18:05:28.611Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "wagtail",
"vendor": "wagtail",
"versions": [
{
"status": "affected",
"version": "\u003c 6.3.8"
},
{
"status": "affected",
"version": "\u003e= 6.4rc1, \u003c 7.0.6"
},
{
"status": "affected",
"version": "\u003e= 7.1rc1, \u003c 7.2.3"
},
{
"status": "affected",
"version": "\u003e= 7.3rc1, \u003c 7.3.1"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Wagtail is an open source content management system built on Django. Prior to versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1, a stored cross-site scripting (XSS) vulnerability exists on rendering TableBlock blocks within a StreamField. A user with access to create or edit pages containing TableBlock StreamField blocks is able to set specially-crafted class attributes on the block which run arbitrary JavaScript code when the page is viewed. When viewed by a user with higher privileges, this could lead to performing actions with that user\u0027s credentials. The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin, and only affects sites using TableBlock. This issue has been patched in versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1."
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 6.1,
"baseSeverity": "MEDIUM",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"privilegesRequired": "HIGH",
"scope": "UNCHANGED",
"userInteraction": "REQUIRED",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N",
"version": "3.1"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-79",
"description": "CWE-79: Improper Neutralization of Input During Web Page Generation (\u0027Cross-site Scripting\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-03-05T18:58:20.719Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/wagtail/wagtail/security/advisories/GHSA-p5cm-246w-84jm",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/wagtail/wagtail/security/advisories/GHSA-p5cm-246w-84jm"
},
{
"name": "https://github.com/wagtail/wagtail/commit/0375094bb57ce6e527005c2bb2e871dd20bca04d",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/wagtail/wagtail/commit/0375094bb57ce6e527005c2bb2e871dd20bca04d"
},
{
"name": "https://github.com/wagtail/wagtail/commit/4620423cb22c5253391a0f04178089c1162f6e2e",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/wagtail/wagtail/commit/4620423cb22c5253391a0f04178089c1162f6e2e"
},
{
"name": "https://github.com/wagtail/wagtail/commit/575c0d7c18c7716ed73f7a3c2720ad75956f0a85",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/wagtail/wagtail/commit/575c0d7c18c7716ed73f7a3c2720ad75956f0a85"
},
{
"name": "https://github.com/wagtail/wagtail/commit/605a5569686565e035313222e1bc2f9802fbc55b",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/wagtail/wagtail/commit/605a5569686565e035313222e1bc2f9802fbc55b"
},
{
"name": "https://github.com/wagtail/wagtail/releases/tag/v6.3.8",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/wagtail/wagtail/releases/tag/v6.3.8"
},
{
"name": "https://github.com/wagtail/wagtail/releases/tag/v7.0.6",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/wagtail/wagtail/releases/tag/v7.0.6"
},
{
"name": "https://github.com/wagtail/wagtail/releases/tag/v7.2.3",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/wagtail/wagtail/releases/tag/v7.2.3"
},
{
"name": "https://github.com/wagtail/wagtail/releases/tag/v7.3.1",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/wagtail/wagtail/releases/tag/v7.3.1"
}
],
"source": {
"advisory": "GHSA-p5cm-246w-84jm",
"discovery": "UNKNOWN"
},
"title": "Wagtail: Improper escaping of HTML (Cross-site Scripting) on TableBlock class attributes"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-28222",
"datePublished": "2026-03-05T18:58:20.719Z",
"dateReserved": "2026-02-25T15:28:40.650Z",
"dateUpdated": "2026-03-06T18:05:28.611Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"nvd": "{\"cve\":{\"id\":\"CVE-2026-28222\",\"sourceIdentifier\":\"security-advisories@github.com\",\"published\":\"2026-03-05T20:16:15.277\",\"lastModified\":\"2026-03-09T20:54:53.927\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"Wagtail is an open source content management system built on Django. Prior to versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1, a stored cross-site scripting (XSS) vulnerability exists on rendering TableBlock blocks within a StreamField. A user with access to create or edit pages containing TableBlock StreamField blocks is able to set specially-crafted class attributes on the block which run arbitrary JavaScript code when the page is viewed. When viewed by a user with higher privileges, this could lead to performing actions with that user\u0027s credentials. The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin, and only affects sites using TableBlock. This issue has been patched in versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1.\"},{\"lang\":\"es\",\"value\":\"Wagtail es un sistema de gesti\u00f3n de contenido de c\u00f3digo abierto construido sobre Django. Antes de las versiones 6.3.8, 7.0.6, 7.2.3 y 7.3.1, existe una vulnerabilidad de cross-site scripting (XSS) almacenado al renderizar bloques TableBlock dentro de un StreamField. Un usuario con acceso para crear o editar p\u00e1ginas que contengan bloques TableBlock de StreamField puede establecer atributos de clase especialmente dise\u00f1ados en el bloque que ejecutan c\u00f3digo JavaScript arbitrario cuando se visualiza la p\u00e1gina. Cuando es visualizado por un usuario con privilegios m\u00e1s altos, esto podr\u00eda llevar a realizar acciones con las credenciales de ese usuario. La vulnerabilidad no es explotable por un visitante de sitio ordinario sin acceso al administrador de Wagtail, y solo afecta a los sitios que utilizan TableBlock. Este problema ha sido parcheado en las versiones 6.3.8, 7.0.6, 7.2.3 y 7.3.1.\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N\",\"baseScore\":6.1,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"HIGH\",\"userInteraction\":\"REQUIRED\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"NONE\"},\"exploitabilityScore\":0.9,\"impactScore\":5.2}]},\"weaknesses\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-79\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:torchbox:wagtail:*:*:*:*:*:*:*:*\",\"versionEndExcluding\":\"6.3.8\",\"matchCriteriaId\":\"F649E022-3713-4AF4-864F-D19BC4DE9480\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:torchbox:wagtail:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.4\",\"versionEndExcluding\":\"7.0.6\",\"matchCriteriaId\":\"BC322B0E-ECBA-42DB-B913-1E284B94E77F\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:torchbox:wagtail:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"7.1\",\"versionEndExcluding\":\"7.2.3\",\"matchCriteriaId\":\"5AFA62D9-1805-4F6F-B903-A819AB6A8D45\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:torchbox:wagtail:7.3:-:*:*:*:*:*:*\",\"matchCriteriaId\":\"30656B21-90B6-4B64-90F7-F4D1768E99DE\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:torchbox:wagtail:7.3:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"85851799-940D-4D01-98DA-15ECF3E8B151\"}]}]}],\"references\":[{\"url\":\"https://github.com/wagtail/wagtail/commit/0375094bb57ce6e527005c2bb2e871dd20bca04d\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Patch\"]},{\"url\":\"https://github.com/wagtail/wagtail/commit/4620423cb22c5253391a0f04178089c1162f6e2e\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Patch\"]},{\"url\":\"https://github.com/wagtail/wagtail/commit/575c0d7c18c7716ed73f7a3c2720ad75956f0a85\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Patch\"]},{\"url\":\"https://github.com/wagtail/wagtail/commit/605a5569686565e035313222e1bc2f9802fbc55b\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Patch\"]},{\"url\":\"https://github.com/wagtail/wagtail/releases/tag/v6.3.8\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Product\",\"Release Notes\"]},{\"url\":\"https://github.com/wagtail/wagtail/releases/tag/v7.0.6\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Product\",\"Release Notes\"]},{\"url\":\"https://github.com/wagtail/wagtail/releases/tag/v7.2.3\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Product\",\"Release Notes\"]},{\"url\":\"https://github.com/wagtail/wagtail/releases/tag/v7.3.1\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Product\",\"Release Notes\"]},{\"url\":\"https://github.com/wagtail/wagtail/security/advisories/GHSA-p5cm-246w-84jm\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Mitigation\",\"Vendor Advisory\"]}]}}",
"vulnrichment": {
"containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-28222\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-03-06T18:05:22.577268Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-03-06T18:05:25.331Z\"}}], \"cna\": {\"title\": \"Wagtail: Improper escaping of HTML (Cross-site Scripting) on TableBlock class attributes\", \"source\": {\"advisory\": \"GHSA-p5cm-246w-84jm\", \"discovery\": \"UNKNOWN\"}, \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 6.1, \"attackVector\": \"NETWORK\", \"baseSeverity\": \"MEDIUM\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N\", \"integrityImpact\": \"HIGH\", \"userInteraction\": \"REQUIRED\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"NONE\", \"privilegesRequired\": \"HIGH\", \"confidentialityImpact\": \"HIGH\"}}], \"affected\": [{\"vendor\": \"wagtail\", \"product\": \"wagtail\", \"versions\": [{\"status\": \"affected\", \"version\": \"\u003c 6.3.8\"}, {\"status\": \"affected\", \"version\": \"\u003e= 6.4rc1, \u003c 7.0.6\"}, {\"status\": \"affected\", \"version\": \"\u003e= 7.1rc1, \u003c 7.2.3\"}, {\"status\": \"affected\", \"version\": \"\u003e= 7.3rc1, \u003c 7.3.1\"}]}], \"references\": [{\"url\": \"https://github.com/wagtail/wagtail/security/advisories/GHSA-p5cm-246w-84jm\", \"name\": \"https://github.com/wagtail/wagtail/security/advisories/GHSA-p5cm-246w-84jm\", \"tags\": [\"x_refsource_CONFIRM\"]}, {\"url\": \"https://github.com/wagtail/wagtail/commit/0375094bb57ce6e527005c2bb2e871dd20bca04d\", \"name\": \"https://github.com/wagtail/wagtail/commit/0375094bb57ce6e527005c2bb2e871dd20bca04d\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/wagtail/wagtail/commit/4620423cb22c5253391a0f04178089c1162f6e2e\", \"name\": \"https://github.com/wagtail/wagtail/commit/4620423cb22c5253391a0f04178089c1162f6e2e\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/wagtail/wagtail/commit/575c0d7c18c7716ed73f7a3c2720ad75956f0a85\", \"name\": \"https://github.com/wagtail/wagtail/commit/575c0d7c18c7716ed73f7a3c2720ad75956f0a85\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/wagtail/wagtail/commit/605a5569686565e035313222e1bc2f9802fbc55b\", \"name\": \"https://github.com/wagtail/wagtail/commit/605a5569686565e035313222e1bc2f9802fbc55b\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/wagtail/wagtail/releases/tag/v6.3.8\", \"name\": \"https://github.com/wagtail/wagtail/releases/tag/v6.3.8\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/wagtail/wagtail/releases/tag/v7.0.6\", \"name\": \"https://github.com/wagtail/wagtail/releases/tag/v7.0.6\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/wagtail/wagtail/releases/tag/v7.2.3\", \"name\": \"https://github.com/wagtail/wagtail/releases/tag/v7.2.3\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/wagtail/wagtail/releases/tag/v7.3.1\", \"name\": \"https://github.com/wagtail/wagtail/releases/tag/v7.3.1\", \"tags\": [\"x_refsource_MISC\"]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"Wagtail is an open source content management system built on Django. Prior to versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1, a stored cross-site scripting (XSS) vulnerability exists on rendering TableBlock blocks within a StreamField. A user with access to create or edit pages containing TableBlock StreamField blocks is able to set specially-crafted class attributes on the block which run arbitrary JavaScript code when the page is viewed. When viewed by a user with higher privileges, this could lead to performing actions with that user\u0027s credentials. The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin, and only affects sites using TableBlock. This issue has been patched in versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1.\"}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-79\", \"description\": \"CWE-79: Improper Neutralization of Input During Web Page Generation (\u0027Cross-site Scripting\u0027)\"}]}], \"providerMetadata\": {\"orgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"shortName\": \"GitHub_M\", \"dateUpdated\": \"2026-03-05T18:58:20.719Z\"}}}",
"cveMetadata": "{\"cveId\": \"CVE-2026-28222\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-03-06T18:05:28.611Z\", \"dateReserved\": \"2026-02-25T15:28:40.650Z\", \"assignerOrgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"datePublished\": \"2026-03-05T18:58:20.719Z\", \"assignerShortName\": \"GitHub_M\"}",
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…