{"id":"CVE-2026-28223","aliases":["EUVD-2026-9859","GHSA-p4v8-rw59-93cq","PYSEC-2026-2308","ROOT-APP-PYPI-CVE-2026-28223"],"status":"published","title":"Wagtail: Improper escaping of HTML (Cross-site Scripting) in simple_translation admin interface","description":"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 confirmation messages within the wagtail.contrib.simple_translation module. A user with access to the Wagtail admin area may create a page with a specially-crafted title which, when another user performs the \"Translate\" action, causes arbitrary JavaScript code to run. 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. This issue has been patched in versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1.","severity":{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00535,"percentile":0.45456,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-79"],"published":"2026-03-03T17:59:30Z","modified":"2026-10-28T02:30:58Z","fixes":[{"ecosystem":"PyPI","package":"wagtail","fixed_in":["6.3.8","7.0.6","7.2.3","7.3.1"],"sources":["ghsa","osv"]},{"ecosystem":"Root:PyPI","package":"rootio-wagtail","fixed_in":["4.2.3+root.io.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.3.8"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"6.4rc1"},{"fixed":"7.0.6"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.1rc1"},{"fixed":"7.2.3"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.3rc1"},{"fixed":"7.3.1"}]}]},{"source":"osv","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.3.8"}]}],"versions":["0.1","0.2","0.3","0.3.1","0.4","0.4.1","0.5","0.6","0.7","0.8","0.8.1","0.8.10","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.8.8","0.8.9","1.0","1.0b1","1.0b2","1.0rc1","1.0rc2","1.1","1.10","1.10.1","1.10rc1","1.11","1.11.1","1.11rc1","1.12","1.12.1","1.12.2","1.12.3","1.12.4","1.12.5","1.12.6","1.12rc1","1.13","1.13.1","1.13.2","1.13.3","1.13.4","1.13rc1","1.1rc1","1.2","1.2rc1","1.3","1.3.1","1.3rc1","1.4","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","1.4rc1","1.5","1.5.1","1.5.2","1.5.3","1.5rc1","1.6","1.6.1","1.6.2","1.6.3","1.6rc1","1.7","1.7rc1","1.8","1.8.1","1.8.2","1.8rc1","1.9","1.9.1","1.9rc1","2.0","2.0.1","2.0.2","2.0b1","2.0rc1","2.1","2.1.1","2.1.2","2.1.3","2.10","2.10.1","2.10.2","2.10rc1","2.10rc2","2.11","2.11.1","2.11.2","2.11.3","2.11.4","2.11.5","2.11.6","2.11.7","2.11.8","2.11.9","2.11rc1","2.12","2.12.1","2.12.2","2.12.3","2.12.4","2.12.5","2.12.6","2.12rc1","2.13","2.13.1","2.13.2","2.13.3","2.13.4","2.13.5","2.13rc1","2.13rc2","2.13rc3","2.14","2.14.1","2.14.2","2.14rc1","2.15","2.15.1","2.15.2","2.15.3","2.15.4","2.15.5","2.15.6","2.15rc1","2.15rc2","2.16","2.16.1","2.16.2","2.16.3","2.16rc1","2.16rc2","2.1rc1","2.1rc2","2.2","2.2.1","2.2.2","2.2rc1","2.2rc2","2.3","2.3rc1","2.3rc2","2.4","2.4rc1","2.5","2.5.1","2.5.2","2.5rc1","2.6","2.6.1","2.6.2","2.6.3","2.6rc1","2.7","2.7.1","2.7.2","2.7.3","2.7.4","2.7rc1","2.7rc2","2.8","2.8.1","2.8.2","2.8rc1","2.9","2.9.1","2.9.2","2.9.3","2.9rc1","3.0","3.0.1","3.0.2","3.0.3","3.0rc1","3.0rc2","3.0rc3","4.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0rc1","4.0rc2","4.1","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.1.6","4.1.7","4.1.8","4.1.9","4.1rc1","4.2","4.2.1","4.2.2","4.2.3","4.2.4","4.2rc1","5.0","5.0.1","5.0.2","5.0.3","5.0.4","5.0.5","5.0rc1","5.1","5.1.1","5.1.2","5.1.3","5.1rc1","5.2","5.2.1","5.2.2","5.2.3","5.2.4","5.2.5","5.2.6","5.2.7","5.2.8","5.2rc1","6.0","6.0.1","6.0.2","6.0.3","6.0.4","6.0.5","6.0.6","6.0rc1","6.1","6.1.1","6.1.2","6.1.3","6.1rc1","6.1rc2","6.2","6.2.1","6.2.2","6.2.3","6.2.4","6.2rc1","6.3","6.3.1","6.3.2","6.3.3","6.3.4","6.3.5","6.3.6","6.3.7","6.3rc1","6.3rc2"]},{"source":"osv","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"6.4rc1"},{"fixed":"7.0.6"}]}],"versions":["6.4","6.4.1","6.4.2","6.4rc1","7.0","7.0.1","7.0.2","7.0.3","7.0.4","7.0.5","7.0rc1"]},{"source":"osv","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.1rc1"},{"fixed":"7.2.3"}]}],"versions":["7.1","7.1.1","7.1.2","7.1.3","7.1rc1","7.2","7.2.1","7.2.2","7.2rc1"]},{"source":"osv","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.3rc1"},{"fixed":"7.3.1"}]}],"versions":["7.3","7.3rc1"]},{"source":"osv","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.3.8"},{"introduced":"6.4"},{"fixed":"7.0.6"},{"introduced":"7.1"},{"fixed":"7.2.3"}]}],"versions":["0.1","0.2","0.3","0.3.1","0.4","0.4.1","0.5","0.6","0.7","0.8","0.8.1","0.8.10","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.8.8","0.8.9","1.0","1.0b1","1.0b2","1.0rc1","1.0rc2","1.1","1.10","1.10.1","1.10rc1","1.11","1.11.1","1.11rc1","1.12","1.12.1","1.12.2","1.12.3","1.12.4","1.12.5","1.12.6","1.12rc1","1.13","1.13.1","1.13.2","1.13.3","1.13.4","1.13rc1","1.1rc1","1.2","1.2rc1","1.3","1.3.1","1.3rc1","1.4","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","1.4rc1","1.5","1.5.1","1.5.2","1.5.3","1.5rc1","1.6","1.6.1","1.6.2","1.6.3","1.6rc1","1.7","1.7rc1","1.8","1.8.1","1.8.2","1.8rc1","1.9","1.9.1","1.9rc1","2.0","2.0.1","2.0.2","2.0b1","2.0rc1","2.1","2.1.1","2.1.2","2.1.3","2.10","2.10.1","2.10.2","2.10rc1","2.10rc2","2.11","2.11.1","2.11.2","2.11.3","2.11.4","2.11.5","2.11.6","2.11.7","2.11.8","2.11.9","2.11rc1","2.12","2.12.1","2.12.2","2.12.3","2.12.4","2.12.5","2.12.6","2.12rc1","2.13","2.13.1","2.13.2","2.13.3","2.13.4","2.13.5","2.13rc1","2.13rc2","2.13rc3","2.14","2.14.1","2.14.2","2.14rc1","2.15","2.15.1","2.15.2","2.15.3","2.15.4","2.15.5","2.15.6","2.15rc1","2.15rc2","2.16","2.16.1","2.16.2","2.16.3","2.16rc1","2.16rc2","2.1rc1","2.1rc2","2.2","2.2.1","2.2.2","2.2rc1","2.2rc2","2.3","2.3rc1","2.3rc2","2.4","2.4rc1","2.5","2.5.1","2.5.2","2.5rc1","2.6","2.6.1","2.6.2","2.6.3","2.6rc1","2.7","2.7.1","2.7.2","2.7.3","2.7.4","2.7rc1","2.7rc2","2.8","2.8.1","2.8.2","2.8rc1","2.9","2.9.1","2.9.2","2.9.3","2.9rc1","3.0","3.0.1","3.0.2","3.0.3","3.0rc1","3.0rc2","3.0rc3","4.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0rc1","4.0rc2","4.1","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.1.6","4.1.7","4.1.8","4.1.9","4.1rc1","4.2","4.2.1","4.2.2","4.2.3","4.2.4","4.2rc1","5.0","5.0.1","5.0.2","5.0.3","5.0.4","5.0.5","5.0rc1","5.1","5.1.1","5.1.2","5.1.3","5.1rc1","5.2","5.2.1","5.2.2","5.2.3","5.2.4","5.2.5","5.2.6","5.2.7","5.2.8","5.2rc1","6.0","6.0.1","6.0.2","6.0.3","6.0.4","6.0.5","6.0.6","6.0rc1","6.1","6.1.1","6.1.2","6.1.3","6.1rc1","6.1rc2","6.2","6.2.1","6.2.2","6.2.3","6.2.4","6.2rc1","6.3","6.3.1","6.3.2","6.3.3","6.3.4","6.3.5","6.3.6","6.3.7","6.3rc1","6.3rc2","6.4","6.4.1","6.4.2","7.0","7.0.1","7.0.2","7.0.3","7.0.4","7.0.5","7.0rc1","7.1","7.1.1","7.1.2","7.1.3","7.2","7.2.1","7.2.2","7.2rc1"]},{"source":"osv","ecosystem":"Root:PyPI","package":"rootio-wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.2.3+root.io.1"}]}]}],"products":[{"vendor":"torchbox","product":"wagtail"},{"vendor":"wagtail","product":"wagtail"}],"references":[{"url":"https://github.com/wagtail/wagtail/security/advisories/GHSA-p4v8-rw59-93cq","tags":["x_refsource_CONFIRM","Vendor Advisory","advisory","web"]},{"url":"https://github.com/wagtail/wagtail/commit/1c6f2effed68f4ccad6fbd07987e03641505f863","tags":["x_refsource_MISC","Patch","fix","web"]},{"url":"https://github.com/wagtail/wagtail/commit/ba70244d376a7b1bd180ded03e827917ff410c19","tags":["x_refsource_MISC","Patch","fix","web"]},{"url":"https://github.com/wagtail/wagtail/commit/d8c5900982df8ed5938ad993aa9ff69cda50f80c","tags":["x_refsource_MISC","Patch","fix","web"]},{"url":"https://github.com/wagtail/wagtail/commit/ee39d39deeb7f250fe886417b24802d7e05b1143","tags":["x_refsource_MISC","Patch","fix","web"]},{"url":"https://github.com/wagtail/wagtail/releases/tag/v6.3.8","tags":["x_refsource_MISC","Product","Release Notes","web","advisory"]},{"url":"https://github.com/wagtail/wagtail/releases/tag/v7.0.6","tags":["x_refsource_MISC","Product","Release Notes","web","advisory"]},{"url":"https://github.com/wagtail/wagtail/releases/tag/v7.2.3","tags":["x_refsource_MISC","Product","Release Notes","web","advisory"]},{"url":"https://github.com/wagtail/wagtail/releases/tag/v7.3.1","tags":["x_refsource_MISC","Product","Release Notes","web","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-28223","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-p4v8-rw59-93cq"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/28xxx/CVE-2026-28223.json","tags":["advisory"]},{"url":"https://github.com/wagtail/wagtail","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-28223","title":"Wagtail: Improper escaping of HTML (Cross-site Scripting) in simple_translation admin interface","description":"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 confirmation messages within the wagtail.contrib.simple_translation module. A user with access to the Wagtail admin area may create a page with a specially-crafted title which, when another user performs the \"Translate\" action, causes arbitrary JavaScript code to run. 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. This issue has been patched in versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1.","status":"published","published":"2026-03-05T18:56:41.835Z","modified":"2026-03-06T10:39:42.379Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:20:02.290587Z"}],"euvd":[{"id":"EUVD-2026-9859","description":"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 confirmation messages within the wagtail.contrib.simple_translation module. A user with access to the Wagtail admin area may create a page with a specially-crafted title which, when another user performs the \"Translate\" action, causes arbitrary JavaScript code to run. 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. This issue has been patched in versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1.","status":"published","published":"2026-03-05T18:56:41Z","modified":"2026-03-06T10:39:42Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T19:48:08.258323Z"}],"ghsa":[{"id":"GHSA-p4v8-rw59-93cq","title":" Wagtail Vulnerable to Cross-site Scripting in simple_translation admin interface","description":"### Impact\nA stored Cross-site Scripting (XSS) vulnerability exists on confirmation messages within the `wagtail.contrib.simple_translation` module. A user with access to the Wagtail admin area may create a page with a specially-crafted title which, when another user performs the \"Translate\" action, causes arbitrary JavaScript code to run. 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.\n\n### Patches\nPatched versions have been released as Wagtail 6.3.8, 7.0.6, 7.2.3 and 7.3.1.\n\n### Workarounds\nNone\n\n### Acknowledgements\n\nMany thanks to Guan Chenxian (@GCXWLP) for reporting this issue.\n\n### For more information\n\nIf there are any questions or comments about this advisory:\n\n- Visit Wagtail's [support channels](https://docs.wagtail.io/en/stable/support.html)\n- Email Wagtail at [security@wagtail.org](mailto:security@wagtail.org) (view the [security policy](https://github.com/wagtail/wagtail/security/policy) for more information).","status":"published","published":"2026-03-03T17:59:30Z","modified":"2026-03-05T22:49:06Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:39:31.060223Z"}],"nvd":[{"id":"CVE-2026-28223","description":"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 confirmation messages within the wagtail.contrib.simple_translation module. A user with access to the Wagtail admin area may create a page with a specially-crafted title which, when another user performs the \"Translate\" action, causes arbitrary JavaScript code to run. 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. This issue has been patched in versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1.","status":"published","published":"2026-03-05T20:16:15.493Z","modified":"2026-06-17T10:28:21.683Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:12:07.852448Z"}],"osv":[{"id":"CVE-2026-28223","title":"Wagtail: Improper escaping of HTML (Cross-site Scripting) in simple_translation admin interface","description":"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 confirmation messages within the wagtail.contrib.simple_translation module. A user with access to the Wagtail admin area may create a page with a specially-crafted title which, when another user performs the \"Translate\" action, causes arbitrary JavaScript code to run. 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. This issue has been patched in versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1.","status":"published","published":"2026-03-05T18:56:41.835Z","modified":"2026-10-28T02:30:58.294798818Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:45:00.180685Z"},{"id":"GHSA-p4v8-rw59-93cq","title":" Wagtail Vulnerable to Cross-site Scripting in simple_translation admin interface","description":"### Impact\nA stored Cross-site Scripting (XSS) vulnerability exists on confirmation messages within the `wagtail.contrib.simple_translation` module. A user with access to the Wagtail admin area may create a page with a specially-crafted title which, when another user performs the \"Translate\" action, causes arbitrary JavaScript code to run. 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.\n\n### Patches\nPatched versions have been released as Wagtail 6.3.8, 7.0.6, 7.2.3 and 7.3.1.\n\n### Workarounds\nNone\n\n### Acknowledgements\n\nMany thanks to Guan Chenxian (@GCXWLP) for reporting this issue.\n\n### For more information\n\nIf there are any questions or comments about this advisory:\n\n- Visit Wagtail's [support channels](https://docs.wagtail.io/en/stable/support.html)\n- Email Wagtail at [security@wagtail.org](mailto:security@wagtail.org) (view the [security policy](https://github.com/wagtail/wagtail/security/policy) for more information).","status":"published","published":"2026-03-03T17:59:30Z","modified":"2026-07-13T07:26:53.017792738Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:46:52.534897Z"},{"id":"PYSEC-2026-2308","description":"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 confirmation messages within the wagtail.contrib.simple_translation module. A user with access to the Wagtail admin area may create a page with a specially-crafted title which, when another user performs the \"Translate\" action, causes arbitrary JavaScript code to run. 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. This issue has been patched in versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1.","status":"published","published":"2026-03-05T20:16:15.493Z","modified":"2026-07-13T07:15:46.78865416Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T15:52:55.537808Z"},{"id":"ROOT-APP-PYPI-CVE-2026-28223","title":"CVE-2026-28223 in rootio-wagtail - Patched by Root","description":"Root has patched CVE-2026-28223 in the rootio-wagtail package for Root:PyPI. Multiple fixed versions available.","status":"published","published":"2026-07-01T04:55:45Z","modified":"2026-07-01T08:19:05.624885695Z","updated_at":"2026-11-02T15:53:27.940619Z"}]}}
