CVE-2026-21631
Joomla vulnerability analysis and mitigation

Overview

CVE-2026-21631 is a stored Cross-Site Scripting (XSS) vulnerability in Joomla! CMS affecting the multilingual associations (com_associations) comparison view in the administrator backend. The root cause is a lack of output escaping when attacker-controlled title data is rendered into an HTML attribute, enabling attribute breakout and JavaScript execution in the administrator's browser context. Affected versions include Joomla! 4.0.0–5.4.3 and 6.0.0–6.0.3; the issue was fixed in versions 5.4.4 and 6.0.4. The vulnerability was publicly disclosed on April 1, 2026, following responsible disclosure by researchers Shirsendu Mondal and Md Tanzimul Alam Fahim of UNC Pembroke. It carries a CVSS v3.1 base score of 5.4 (Medium) and a CVSS v4.0 base score of 5.9 (Medium) (Joomla Advisory, GitHub Advisory).

Technical details

The vulnerability is classified as CWE-79 (Improper Neutralization of Input During Web Page Generation). The vulnerable sink is located at administrator/components/com_associations/tmpl/association/edit.php:50, where attacker-controlled title data is inserted directly into a quoted HTML attribute (data-title-value) without context-appropriate HTML attribute encoding. An attacker who can control a referenced article title can store a payload such as XSSPoc" onload="alert(1337), which breaks out of the attribute value and injects an executable event handler. Exploitation requires the attacker to have low-privilege authenticated access to create or modify content, and a separate privileged backend user must open the poisoned associations comparison/edit page to trigger execution (PoC Advisory, GitHub Advisory).

Impact

Successful exploitation allows arbitrary JavaScript to execute in the administrator's browser context when a privileged backend user views the affected multilingual associations comparison page. This can result in theft of session tokens or anti-CSRF tokens, unauthorized privileged actions performed on behalf of the administrator, and modification of backend page content. While no direct server-side remote code execution is possible, the ability to hijack an administrator session could facilitate further compromise of the Joomla! installation (PoC Advisory, Joomla Advisory).

Exploitability

A public proof-of-concept (PoC) with step-by-step exploitation instructions and a concrete payload is available on GitHub, published by the original researchers (PoC Advisory). There is no evidence of in-the-wild exploitation at this time, and the exploit maturity is rated as "Unreported" in CVSS v4.0 scoring. The EPSS score is approximately 0.043% (0th percentile), indicating a low near-term exploitation probability. The vulnerability is not currently listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Qualys has added detection for this vulnerability (detection ID 531302) (GitHub Advisory).

Exploitation steps

  1. Gain low-privilege authenticated access: Obtain credentials for a Joomla! backend account with sufficient permissions to create or edit content items (e.g., an Author or Editor role) on a vulnerable Joomla! instance (versions 4.0.0–5.4.3 or 6.0.0–6.0.3).
  2. Craft a malicious title payload: Prepare a title value containing an attribute-breaking XSS payload, such as: XSSPoc" onload="alert(1337) — the double-quote terminates the data-title-value attribute and injects a new executable event handler.
  3. Store the payload: Create or edit a content article and set its title to the crafted payload. Save the item so it is persisted in the Joomla! database and associated with a multilingual association.
  4. Wait for a privileged user to trigger execution: When an administrator or other privileged backend user navigates to the multilingual associations comparison/edit view (administrator/index.php?option=com_associations) for the poisoned item, the unescaped title is rendered into the data-title-value attribute in edit.php:50.
  5. JavaScript executes in administrator context: The injected onload handler fires in the administrator's browser, enabling session token theft, CSRF token harvesting, or forged privileged actions against the Joomla! backend (PoC Advisory, Joomla Advisory).

Indicators of compromise

  • Logs: Joomla! administrator access logs showing requests to administrator/index.php?option=com_associations with unusual or encoded title parameters; error logs reflecting unexpected JavaScript-related activity in the backend.
  • File System: Unexpected modifications to content item titles in the Joomla! database containing quote characters, onload, onerror, or other event handler strings; review #__content table title fields for injected payloads.
  • Network: Outbound requests from administrator browsers to unknown external domains (e.g., for cookie exfiltration) originating from backend association view pages; unusual POST requests to backend endpoints immediately following association page loads.
  • Application: Administrator accounts performing unexpected privileged actions (e.g., new user creation, permission changes) without corresponding legitimate activity, which may indicate session hijacking via the XSS payload (PoC Advisory).

Mitigation and workarounds

Joomla! has released patched versions addressing this vulnerability: upgrade to Joomla! 5.4.4 (for 5.x and earlier affected versions) or Joomla! 6.0.4 (for 6.x). The fix applies proper HTML attribute encoding to the data-title-value output in administrator/components/com_associations/tmpl/association/edit.php, equivalent to using $this->escape($this->referenceTitleValue). As an additional defense-in-depth measure, implementing a strict Content Security Policy (CSP) header can limit the impact of any XSS execution. There are no known configuration-based workarounds that fully mitigate the vulnerability without patching (Joomla Advisory, GitHub Advisory).

Community reactions

The vulnerability was responsibly disclosed by researchers Shirsendu Mondal and Md Tanzimul Alam Fahim of UNC Pembroke, who published a detailed technical advisory on GitHub following coordinated vendor remediation. Joomla! published the official security announcement on March 31, 2026, through its Security Centre. The vulnerability received routine coverage from vulnerability tracking platforms including VulDB, CVEFeed, and Qualys (which added scanner detection), with no notable controversy or widespread community discussion observed (Joomla Advisory, PoC Advisory).

Additional resources


SourceThis report was generated using AI

Related Joomla vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-48958MEDIUM6.4
  • Joomla logoJoomla
  • cpe:2.3:a:joomla:joomla\!
NoYesJul 07, 2026
CVE-2026-48957MEDIUM6.4
  • Joomla logoJoomla
  • cpe:2.3:a:joomla:joomla\!
NoYesJul 07, 2026
CVE-2026-48956MEDIUM6.4
  • Joomla logoJoomla
  • cpe:2.3:a:joomla:joomla\!
NoYesJul 07, 2026
CVE-2026-48955MEDIUM6.4
  • Joomla logoJoomla
  • cpe:2.3:a:joomla:joomla\!
NoYesJul 07, 2026
CVE-2026-48954MEDIUM5.9
  • Joomla logoJoomla
  • cpe:2.3:a:joomla:joomla\!
NoYesJul 07, 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