The vulnerability is a stored Cross-Site Scripting (XSS) in the phpMyFAQ admin panel. It's caused by a two-step process. First, when a user is created, their display name is stored in the database. An attacker can use a name that includes an XSS payload encoded as HTML entities. Second, when an administrator views the user list, the application logic triggers the vulnerability. The phpMyFAQ\User\UserData::__construct function is called, which reads the user's display name from the database and decodes it using html_entity_decode. This converts the encoded payload back into raw HTML. Subsequently, the phpMyFAQ\Controller\Admin\UserController::listUsers action renders the user list. Before the patch, the template used the |raw filter in Twig ({{ user.display_name|raw }}), which explicitly disables output escaping. This allows the decoded HTML and JavaScript payload to be rendered in the administrator's browser, leading to XSS. The fix involves removing the |raw filter from the templates, ensuring that the display name is always HTML-escaped.