{"id":"CVE-2021-29434","published":"2021-04-19T18:45:14Z","modified":"2024-08-03T22:02:51Z","title":"Improper validation of URLs ('Cross-site Scripting') in Wagtail rich text fields","vendor":"wagtail","product":"wagtail","tier":"tail","description":{"text":"Wagtail is a Django content management system. In affected versions of Wagtail, when saving the contents of a rich text field in the admin interface, Wagtail does not apply server-side checks to ensure that link URLs use a valid protocol. A malicious user with access to the admin interface could thus craft a POST request to publish content with `javascript:` URLs containing arbitrary code. The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin. See referenced GitHub advisory for additional details, including a workaround. Patched versions have been released as Wagtail 2.11.7 (for the LTS 2.11 branch) and Wagtail 2.12.4 (for the current 2.12 branch).","provenance":"source","from":"CVE.org"},"cvss":{"score":6.1,"severity":"MEDIUM","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N","provenance":"source","from":"CVE.org CNA"},"epss":{"score":0.00626,"percentile":0.49861,"provenance":"source"},"cwes":[{"id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation"}],"references":[{"url":"https://github.com/wagtail/wagtail/security/advisories/GHSA-wq5h-f9p5-q7fx","tags":["x_refsource_CONFIRM"]},{"url":"https://pypi.org/project/wagtail/","tags":["x_refsource_MISC"]}],"priority":{"score":14.2,"factors":[{"name":"EPSS percentile","points":9.97},{"name":"CVSS severity","points":4.27}]},"vendorSlug":"wagtail","affectedVersions":[{"vendor":"wagtail","product":"wagtail","versions":["<= 2.11.6",">= 2.12, <= 2.12.3"]}],"affected":[{"ecosystem":"PyPI","package":"wagtail","vulnerableRanges":["<2.11.7",">=2.12, <2.12.4",">=2.11, <2.11.7","<2.11.6"],"patched":["2.11.7","2.12.4","2.11.6"],"from":["GHSA-wq5h-f9p5-q7fx","PYSEC-2021-114"],"provenance":"source"}],"euvd":{"id":"EUVD-2021-0462","exploited":false,"provenance":"source"},"lineage":{"packageHistory":[{"cve":"CVE-2020-11001","published":"2020-04-14","fixed":"2.8.1","kev":false},{"cve":"CVE-2020-11037","published":"2020-04-30","fixed":"2.9","kev":false},{"cve":"CVE-2020-15118","published":"2020-07-20","fixed":"2.9.3","kev":false,"link":{"from":"CVE-2020-15118","to":"CVE-2021-29434","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"PyPI:wagtail","fromFixed":"2.9.3","toFixed":"2.11.7","daysApart":273}]}},{"cve":"CVE-2021-29434","published":"2021-04-19","fixed":"2.12.4","kev":false},{"cve":"CVE-2021-32681","published":"2021-06-17","fixed":"2.13.2","kev":false,"link":{"from":"CVE-2021-29434","to":"CVE-2021-32681","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"PyPI:wagtail","fromFixed":"2.11.7","toFixed":"2.11.8","daysApart":59}]}},{"cve":"CVE-2022-21683","published":"2022-01-18","fixed":"2.15.2","kev":false},{"cve":"CVE-2023-28836","published":"2023-04-03","fixed":"4.2.2","kev":false}],"package":"PyPI:wagtail"}}