A stored cross-site scripting (XSS) vulnerability allows an attacker to execute arbitrary JavaScript in an administrator’s browser by registering a user whose display name contains HTML entities (e.g., <img ...>). When an administrator views the admin user list, the payload is decoded server-side and rendered without escaping, resulting in script execution in the admin context.
Root cause is the following chain:
display_name (real name) is stored in DB (often as HTML entities, e.g., <img ...>).phpmyfaq/src/phpMyFAQ/User/UserData.php decodes display_name using html_entity_decode(...) (“for backward compatibility”).|raw:
phpmyfaq/assets/templates/admin/user/users.twig (users table uses {{ user.display_name|raw }})As a result, an entity-encoded payload becomes active HTML/JS when rendered in the admin user list.
Note: This report is about the display_name field + entity-decoding path. It is distinct from previously published issues focused on the email field.
Preconditions / configuration
security.enableRegistration = true).Steps
<img src=x onerror=alert(1)>http://127.0.0.1:8080/admin/user/listalert(1) triggers) and the payload is rendered as an actual <img> element.Stored XSS in the admin context can enable:
4.0.16Exploitability
AV:NAC:LPR:NUI:RScope
S:UImpact
C:LI:LA:NCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N