Severity by source
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Network-delivered stored XSS with browser scope change; PR:N retained pending confirmation of unauthenticated write path to the image column.
Primary rating from Vendor (Joomla).
CVSS VectorVendor: Joomla
Lifecycle Timeline
2DescriptionCVE.org
K2 ≤ 2.26 renders the #__k2_users.image column directly into HTML src attributes via two distinct templates, in both cases without HTML escaping.
AnalysisAI
Cross-site scripting in K2 Extension for Joomla (versions 1.0 through 2.26) exposes any site rendering K2 user profiles to JavaScript injection, because the #__k2_users.image database column is interpolated verbatim into HTML src attributes in two separate templates without HTML entity encoding. The CVSS 3.1 score of 6.1 reflects a scope-changed, network-reachable XSS with low attack complexity, though SSVC rates current exploitation as none and EPSS places it in the 4th percentile, indicating no observed mass exploitation at time of analysis. No public exploit code has been identified and the vulnerability is not listed in CISA KEV.
Technical ContextAI
K2 Extension (CPE: cpe:2.3:a:getk2.com:k2_extension_for_joomla) is a content and user management component that extends the Joomla CMS with enhanced article, category, and user profile capabilities. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically an unsanitized database value passed directly into an HTML attribute context. Two distinct frontend templates retrieve the image column from the #__k2_users table and write it into src attributes without applying htmlspecialchars or equivalent escaping. An attacker-controlled string such as x" onerror="malicious() breaks out of the attribute value context, turning a passive data field into an active script execution point in any victim's browser. The dual-template nature of the flaw means the attack surface exists in at least two page views, not just one.
RemediationAI
No vendor-released patched version has been confirmed at time of analysis; the only reference provided points to the K2 homepage (https://www.getk2.org/) without naming a fixed release. Site operators should monitor the K2 changelog and upgrade as soon as a version beyond 2.26 addressing CWE-79 is published. As a compensating control, administrators should disable K2 user profile image upload and editing functionality in the K2 component configuration if the feature is not operationally required, which removes the injection vector while preserving read-only content display. A WAF rule that strips or encodes HTML metacharacters from requests targeting K2 user profile endpoints can also reduce exposure, though overly broad rules risk breaking legitimate image URL inputs. Additionally, deploying a Content Security Policy header with a restrictive script-src directive limits the blast radius of any XSS that does execute, preventing exfiltration to attacker-controlled domains.
More in K2 Extension For Joomla
View allPath traversal in the K2 extension for Joomla (versions 1.0-2.26) allows authenticated Authors to copy arbitrary web-rea
Mass-assignment in the K2 Extension for Joomla (versions up to 2.24 per CVE description, up to 2.26 per EUVD-2026-39438)
Unauthorized folder deletion in the K2 Extension for Joomla (versions 1.0 through 2.26) exposes a public-facing `item.ch
Unrestricted PHP file upload in K2 extension for Joomla (versions 1.0–2.26) enables any authenticated K2 Author to achie
Unrestricted file upload in K2 Extension for Joomla (versions 1.0 through 2.26) permits attackers to embed PHP scripts i
Stored cross-site scripting in K2 extension for Joomla (versions 1.0-2.26) allows an authenticated Author-tier user to i
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39439
GHSA-5hmf-7m33-2v23