CraftCMS stored XSS in Quick Post widget error message
Date: 2023-05
Affected: composer/craftcms/cms, composer/craftcms/cms
Attack vector: xss
Category: vulnerability-disclosure
Severity: Low
CVE: CVE-2023-33194
CWE: CWE-79
CWE-80
CVSS: 3.7 (CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:N/A:L)

### Summary The platform does not filter input and encode output in Quick Post validation error message, which can deliver an XSS payload. ### Details Old CVE fixed the XSS in label HTML but didn’t fix it when clicking save. ### PoC 1. Login at admin 2. Go to setting 3. Create a Section 4. On Entry page, click Edit label 5. Inject the XSS payload into the label and save 6. On the admin dashboard choose new widget -> Quick Post 7. In Quick Post, click save with blank slug; The XSS will be executed "errors":{"title":["<script>alert('nono')</script> cannot be blank."],"slug":["Slug cannot be blank."] Fixed in https://github.com/craftcms/cms/commit/9d0cd0bda7c8a830a3373f8c0f06943e519ac888


Mitigations:

Architectural layers (MAESTRO):