# CVE-2026-111903: phpMyFAQ stored XSS in SvgSanitizer via DTD entity bypass

Source: https://junglewise.ai/threats/cve-2026-111903-phpmyfaq-4-2-0-alpha-before-4-2-0-beta-contains-a-stored-cross  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-17. Updated: 2026-10-17  
License: CC BY 4.0 with a link back

CVE-2026-111903 · Severity: medium · CVSS 5.4 · Published 2026-10-17

phpMyFAQ is a frequently-asked-questions application that allows document editing. A flaw in its SVG file validation lets editors upload malicious SVG files that execute JavaScript when administrators or other users view them, potentially hijacking their accounts and stealing sessions. The vulnerability persists on the server, affecting every subsequent viewer.

Technologies: [Thorsten phpMyFAQ](https://junglewise.ai/threats/technologies/phpmyfaq). Vendors: [Thorsten](https://junglewise.ai/threats/vendors/thorsten).

## Quick answers

**Is CVE-2026-111903 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-111903 being exploited in the wild.

**How severe is CVE-2026-111903?** Medium severity, with a CVSS score of 5.4, published 17 October 2026.

**Which products and versions are affected?** Thorsten phpMyFAQ 4.2.0-alpha through 4.2.0-alpha.2.

**Is there a fix for CVE-2026-111903?** Yes: fixed in 4.2.0-beta. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-111903 attacked?** It is attacked over the network.

**Am I affected by CVE-2026-111903?** Check whether you run Thorsten phpMyFAQ at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- Fixed in 4.2.0-beta

## Technical details

The SvgSanitizer uses regex-based pattern matching after decoding HTML entities, but fails to resolve XML custom entities defined in DOCTYPE subsets. An attacker with FAQ_EDIT permission can upload an SVG with a DOCTYPE defining a custom entity (e.g., &lt;!ENTITY j "javascript"&gt;) and use it in href attributes; the sanitizer returns true (isSafe), the file is stored verbatim, and browsers resolve the entity to execute arbitrary JavaScript on click. This bypasses the earlier CVE-2026-34974 fix which only blocked numeric HTML entities.

## Affected products

- thorsten phpMyFAQ 4.2.0-alpha through 4.2.0-alpha.2

## Timeline

- 2026-10-03: disclosed
- 2026-10-17: advisory

## References

- [https://github.com/thorsten/phpMyFAQ/security/advisories/GHSA-j3v5-p957-w6gq](https://github.com/thorsten/phpMyFAQ/security/advisories/GHSA-j3v5-p957-w6gq)
- [https://www.vulncheck.com/advisories/phpmyfaq-4.2.0-alpha-before-4.2.0-beta-stored-xss-via-svg-dtd-entity-bypass](https://www.vulncheck.com/advisories/phpmyfaq-4.2.0-alpha-before-4.2.0-beta-stored-xss-via-svg-dtd-entity-bypass)

## Related threats

- [phpMyFAQ insufficient authorization in group deletion](https://junglewise.ai/threats/cve-2026-124433-phpmyfaq-before-4-1-11-contains-an-insufficient-authorization)
- [phpMyFAQ WebAuthn account enumeration in prepare-login](https://junglewise.ai/threats/cve-2026-124432-phpmyfaq-4-1-9-before-4-1-11-and-4-2-0-pre-releases-before-4-2-0)
- [phpMyFAQ authorization bypass in attachment downloads](https://junglewise.ai/threats/cve-2026-111910-phpmyfaq-before-4-1-9-and-4-2-0-alpha-before-4-2-0-beta-contains)
- [phpMyFAQ missing authorization in deleteUser API](https://junglewise.ai/threats/cve-2026-111909-phpmyfaq-before-4-1-9-contains-a-missing-authorization)
- [phpMyFAQ broken object-level authorization in FAQ update API](https://junglewise.ai/threats/cve-2026-111908-phpmyfaq-4-0-0-before-4-1-9-and-4-2-0-alpha-before-4-2-0-beta)
