CVE-2026-48940: K2 Stored XSS via embedVideo Field in Joomla
A K2 component vulnerability in Joomla allows authenticated users with Author-level permissions to inject unescaped JavaScript code into articles. When a user with "create item" rights submits an article and embeds malicious script tags in the `embedVideo` field, K2 stores and displays that code without sanitization, causing it to execute in visitors' browsers. This is a stored cross-site scripting (XSS) vulnerability that requires an attacker to already have article creation privileges—a relatively high bar that limits exposure in most Joomla deployments.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 3.4 LOW · CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:N/A:N
- Weaknesses (CWE)
- CWE-79
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-06-25 / 2026-06-28
NVD description (verbatim)
A Joomla user with K2 "create item" rights (Author tier by default) can submit an article whose `embedVideo` POST field contains a raw `<script>` tag; K2 stores it verbatim and renders it unescaped to any visitor of the article page.
1 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-48940 is a stored XSS flaw in JoomlaWorks K2 that arises from improper output encoding in the article rendering pipeline. The vulnerability exists in how K2 processes the `embedVideo` POST parameter during article creation. User input containing raw HTML and JavaScript is stored directly in the database without sanitization and later rendered to the page DOM without escaping, allowing script execution in the context of article pages. The attack surface is restricted by K2's access control: only users assigned Author tier or higher (those with "create item" rights) can exploit this. The vulnerability was disclosed on June 25, 2026, and modified on June 28, 2026.
Business impact
Compromised Joomla sites running K2 face a limited but real insider risk. Authors and higher-privileged users who turn malicious—or whose accounts are compromised—can inject JavaScript to steal session tokens, redirect users, harvest form data, or launch secondary attacks. For most organizations, the attack requires an internal or compromised trusted account; however, any Joomla instance with lax Author role management or shared credentials becomes a target. Defaced content and malware distribution via trusted articles are realistic secondary concerns.
Affected systems
JoomlaWorks K2 is affected. The vulnerability is introduced in the article creation and rendering flow and impacts all K2-based Joomla sites. No specific version boundary has been declared in the advisory data; organizations should verify the K2 patch availability against the vendor's security advisories to determine which builds are vulnerable and which contain fixes. The impact is site-wide, affecting any visitor who views an article containing injected scripts.
Exploitability
Exploitability is moderate in effort but highly constrained by privilege requirement. An attacker must possess or obtain a Joomla account with Author-level K2 "create item" permissions—not trivial in hardened deployments. Once authenticated, injection is trivial: the attacker simply includes a `<script>` tag in the `embedVideo` field during article submission. No user interaction is needed beyond visiting the infected article page. The CVSS score of 3.4 (LOW) reflects the high privilege barrier (PR:H) and the requirement that a user view the page (UI:R), despite the vulnerability's ease of exploitation once access is gained.
Remediation
Apply the vendor patch from JoomlaWorks immediately. Until patching is possible, restrict Author and higher K2 roles to trusted personnel only, audit existing article permissions, and consider disabling K2 article creation temporarily if the risk profile is unacceptable. Implement Content Security Policy (CSP) headers with `script-src 'self'` to mitigate stored XSS payload execution, though this is not a substitute for patching.
Patch guidance
Consult the JoomlaWorks K2 security advisory for the specific patched version number and installation procedure. K2 is typically distributed as a Joomla extension; patches may arrive via the Joomla Update Manager or direct download from JoomlaWorks. Verify the patch version against the vendor's official release notes before deploying to production. Test on a non-production Joomla instance first to ensure compatibility with your installed components and custom modifications.
Detection guidance
Search for K2 articles containing suspicious `<script>` tags in the `embedVideo` field using direct database queries (e.g., querying the K2 items table for script markers) or via the Joomla admin interface by reviewing recent article submissions. Monitor article creation and modification audit logs for unusual Author-tier activity. Deploy Web Application Firewall (WAF) rules to flag POST requests to K2 article creation endpoints that include raw script tags. Review published article HTML source for unexpected inline JavaScript that did not appear in the visual editor.
Why prioritize this
Priority should be MEDIUM-to-LOW for most organizations because the vulnerability requires authenticated access at the Author tier or above—a significant hurdle. However, environments with relaxed role management, shared Author credentials, or high-turnover staff should elevate priority. If your Joomla instance exposes Author registration to untrusted users or allows guest article submission with elevated roles, treat this as higher priority. The stored nature of the XSS means every visitor to an infected article is exposed, increasing blast radius once injected.
Risk score, explained
The CVSS 3.1 score of 3.4 (LOW severity) reflects the combination of network-accessible attack vector (AV:N), low attack complexity (AC:L), but high privilege requirement (PR:H) and required user interaction (UI:R). The impact scope is changed (S:C), meaning the vulnerability can affect resources beyond the K2 application, but only confidentiality is compromised (C:L) with no integrity or availability impact rated. The score appropriately penalizes this as low-severity because the privilege gate—Author-tier access—is a strong limiting factor in typical deployments. Organizations with tighter role controls will see lower practical risk; those with permissive Author assignment will see higher risk.
Frequently asked questions
Does this vulnerability allow unauthenticated users to inject malicious scripts?
No. The vulnerability requires the attacker to possess a Joomla account with at least Author-level K2 permissions. Unauthenticated or lower-privileged users cannot exploit it directly. However, compromised Author accounts or shared credentials increase real-world risk.
Will a Web Application Firewall (WAF) protect us if we cannot patch immediately?
A WAF can reduce risk by blocking or flagging POST requests containing raw script tags in the embedVideo field. However, a WAF is not a substitute for patching—determined attackers can obfuscate payloads, and the vulnerability remains in the application. WAF rules should be viewed as temporary compensating controls only.
Should we disable K2 article creation entirely until we patch?
Disabling article creation is the most conservative short-term measure if feasible. Alternatively, restrict K2 "create item" permissions to a very small, fully trusted group and audit that group frequently. Revoke Author-level access for any accounts that do not actively need to create articles.
What versions of K2 are vulnerable?
The advisory data does not specify a version boundary. Contact JoomlaWorks support or check their security advisories to identify which K2 versions are affected and which contain the fix. Always verify patch availability before applying any workarounds.
This analysis is provided for informational and educational purposes. The vulnerability details, CVSS score, and affected product information are derived from the published CVE record. Organizations must verify patch availability and compatibility against the vendor's official security advisory before deploying any fixes. No proof-of-concept or exploit code is provided herein. Real-world risk depends on your Joomla deployment configuration, role assignments, and security controls. Consult with JoomlaWorks support and your internal security team for definitive guidance on your specific installation. Source: NVD (public-domain), retrieved 2026-08-03. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-48942MEDIUMK2 XSS Vulnerability in User Profile Images
- CVE-2026-10112LOWXSS in STUDENT-MANAGEMENT-SYSTEM 1.0 Dashboard
- CVE-2026-10228LOWXSS Vulnerability in raisulislamg4 Student Management System
- CVE-2026-10234LOWMettle Sendportal XSS Vulnerability – Campaign Handler Remote Exploit
- CVE-2026-10244LOWSourceCodester Pharmacy Sales and Inventory System XSS Vulnerability
- CVE-2026-10245LOWStored XSS in SourceCodester Pharmacy Sales and Inventory System 1.0
- CVE-2026-10246LOWStored XSS in SourceCodester Pharmacy System 1.0 – Remediation Guide
- CVE-2026-10247LOWXSS in SourceCodester Pharmacy Sales System 1.0