PHP2Shell: Read our blog on the critical RCE vulnerabilities affecting 70% of the Internet
Vulnerability DatabaseGHSA-mg3j-7p72-85q8

GHSA-mg3j-7p72-85q8: 
PHP vulnerability analysis and mitigation

Stored XSS in OpenCATS MRU (Recent) Navigation Panel


Root Cause

MRU::getFormatted() reads dataItemText verbatim from the mru table and interpolates it directly into an HTML anchor tag without calling htmlspecialchars() or Template::escapeHtml(). The value originates from unsanitized record name/title fields (Candidate/Contact name, Company name, Job Order title, List name) written via addEntry() at the call sites above. printQuickSearch() echoes this output directly and is invoked from approximately 77 template files, rendering on nearly every authenticated page.

Impact

An attacker holding only a low-privileged account (Access Level 200, Add/Edit) can execute arbitrary JavaScript in the browser session of any other user who views a record they created or edited, including Site Administrators (Access Level 500). This enables session/cookie theft, silent creation of new admin accounts, and exfiltration of confidential candidate/company data, providing a privilege escalation path from a standard Add/Edit role to full administrative control. No CSRF bypass or social engineering beyond a legitimate business user opening a normal record is required. The payload persists in the victim's own MRU history, rendered on roughly 77 different pages/templates, until enough newer items push it out.

Remediation

OpenCATS now escapes MRU display text at the HTML output boundary before it is inserted into the Recent/MRU navigation. The fix reuses the existing Template::escapeHtml() helper in MRU::getFormatted() after the existing MRU_ITEM_LENGTH truncation logic has been applied. Record names and titles continue to be stored unchanged in the database. No additional encoding is performed in MRU::addEntry(), avoiding double-encoding and ensuring values remain available for other output contexts. No changes were made to MRU URL generation or record creation/editing behaviour.


Source: NVD

Related PHP vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-108358HIGH8.8
  • PHP logoPHP
  • phpoffice/phpspreadsheet
NoYesOct 22, 2026
CVE-2026-108357HIGH8.8
  • PHP logoPHP
  • phpoffice/phpspreadsheet
NoYesOct 22, 2026
CVE-2026-108359HIGH8.7
  • PHP logoPHP
  • phpoffice/phpspreadsheet
NoYesOct 22, 2026
CVE-2026-108360MEDIUM6.4
  • PHP logoPHP
  • phpoffice/phpspreadsheet
NoYesOct 22, 2026
GHSA-mg3j-7p72-85q8MEDIUM6.3
  • PHP logoPHP
  • opencats/opencats
NoYesOct 22, 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