Advisory Database
  • Advisories
  • Dependency Scanning
  1. composer
  2. ›
  3. thorsten/phpmyfaq
  4. ›
  5. GHSA-whqh-9pq5-c7r3

GHSA-whqh-9pq5-c7r3: phpMyFAQ has a SVG Sanitizer Entity Decoding Depth Limit Bypass Leading to Stored XSS

May 6, 2026

The SvgSanitizer::decodeAllEntities() method limits recursive entity decoding to 5 iterations. By wrapping each character of javascript in an href attribute value with 5 levels of & encoding around numeric HTML entities (e.g., j for j), an attacker can bypass both isSafe() detection and sanitize() removal. The uploaded SVG is served from the application origin with image/svg+xml content type, and the browser’s XML parser fully decodes the remaining &#NNN; entities, resulting in a clickable javascript: link that executes arbitrary JavaScript.

References

  • github.com/advisories/GHSA-whqh-9pq5-c7r3
  • github.com/thorsten/phpMyFAQ
  • github.com/thorsten/phpMyFAQ/security/advisories/GHSA-whqh-9pq5-c7r3

Code Behaviors & Features

Detect and mitigate GHSA-whqh-9pq5-c7r3 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions before 4.1.2

Fixed versions

  • 4.1.2

Solution

Upgrade to version 4.1.2 or above.

Impact 5.4 MEDIUM

CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N

Learn more about CVSS

Weakness

  • CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Source file

packagist/thorsten/phpmyfaq/GHSA-whqh-9pq5-c7r3.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Sat, 09 May 2026 00:19:52 +0000.