Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as user with Editor-field edit rights
-
DeliveryCraft iframe srcdoc script payload
-
ExploitSave content, bypassing sanitizer encoding
-
ExecutionAdmin views stored content
-
ImpactScript executes in admin session, hijack/takeover
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated Sharp user who has permission to edit an Editor (rich-text) field that uses the affected HTML sanitizer, on a version before 9.22.5. The attacker stores an iframe with a 'srcdoc' attribute containing script; exploitation only fires when another user (typically a higher-privileged admin) views the stored content, so success depends on that victim interaction (UI:R). Limiting factors: valid account plus Editor-field edit privilege (PR:L), a second viewing user, and an unpatched instance; the documented workaround is to strip every iframe 'srcdoc' attribute before storing or rendering Editor content. |
| Impact | This is a genuine but moderate-priority stored XSS (CVSS 7.3, CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N) in code16 Sharp's rich-text Editor field, confirmed by the vendor GitHub advisory (GHSA-qxg3-46rw-79j8) and the fix commit that removes 'srcdoc' from allowed iframe attributes. The signals are internally consistent: network vector but gated by PR:L (attacker needs a valid account with permission to edit an Editor field) and UI:R (a second user must view the poisoned content). No EPSS score, KEV listing, or public exploit is present in the input, so exploitation status is 'no public exploit identified at time of analysis' - this is not a mass-exploitation candidate and there is no SSVC automatable/technical-impact data to weigh. The C:H/I:H rating reflects the worst-case admin-context impact (session hijacking, account takeover, privilege escalation) claimed in the description rather than a demonstrated exploit; because the payload runs in an authenticated admin/back-office UI, that high-impact rating is defensible. Net: a real vulnerability worth patching, especially in multi-user Sharp back offices, but the required authentication and victim interaction make it targeted/insider-flavored rather than a broad internet-facing threat. |
| Exploit ScenarioDerived | A lower-privileged but authenticated Sharp back-office user with edit rights on an Editor field saves content containing '<iframe srcdoc="<script>alert(document.cookie)</script>"></iframe>'; the sanitizer HTML-encodes the srcdoc value but the browser decodes it when rendering the iframe document, so the script executes. When a higher-privileged administrator later opens that record, the JavaScript runs in their session, enabling session/cookie theft, actions on their behalf, or privilege escalation. No public exploit code is identified, though the fix commit's test case includes a working srcdoc payload. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 24, 2026
Stored cross-site scripting in code16 Sharp before 9.22.5 lets an authenticated user who can edit a rich-text Editor field persist JavaScript via the iframe srcdoc attribute; the payload executes in the browser of any other user - typically a higher-privileged administrator - who later views the stored content, enabling session hijacking, account takeover, privilege escalation or disclosure of administrative data. The vendor confirmed the issue in advisory GHSA-qxg3-46rw-79j8 and shipped a fix in version 9.22.5 (commit ec509a22) that removes srcdoc from the permitted iframe attributes; exploitation requires a valid account with Editor-field edit permission and a second viewing victim (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N, 7.3). There is no indication of active exploitation and no public exploit identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade to code16 Sharp 9.22.5, which removes 'srcdoc' from the allowed iframe attributes and also restricts the data-html-content attribute to Editor fields whose toolbar explicitly includes RAW_HTML; the change is carried in commit ec509a22c808a5bd9dfad6a0a85c92ce6f411e21 and documented in advisory GHSA-qxg3-46rw-79j8 (https://github.com/code16/sharp/security/advisories/GHSA-qxg3-46rw-79j8), which should be consulted for the exact upgrade notes. If upgrading is not immediately possible, apply the vendor-documented workaround by manually sanitizing all Editor field content and stripping every iframe srcdoc attribute before the value is stored or rendered - for example in a custom formatter or model mutator that runs ahead of FormsSanitizedValue; the trade-off is that legitimate embedded-HTML usage via srcdoc stops working and the control must be maintained on every write and read path, so it is error-prone compared with patching. As a compensating measure, restrict permission to edit Editor fields to trusted users, since exploitation requires an authenticated account with that privilege (PR:L) and a second user viewing the stored content (UI:R); this reduces the attacker pool but does not fix the underlying sanitizer flaw and will not protect against an insider or a compromised low-privileged account. Because the payload is stored and fires on viewing by a higher-privileged user, consider invalidating sessions and rotating administrative credentials for any instance where suspicious Editor content was created before patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
code16 Sharp is a Laravel-based framework for building content-management and administrative interfaces, and its rich-text Editor field pipes user-supplied HTML through a sanitizer implemented in src/Utils/Sanitization/FormatsSanitizedValue.php before storage and rendering. The vulnerable class is CWE-79 (improper neutralization of input during web page generation), but the specific failure is a sanitizer allow-list gap rather than naive output escaping: the sanitizer permitted the srcdoc attribute on iframe elements. The developer's implicit assumption was that encoding any markup found inside srcdoc neutralizes it, but srcdoc is an attribute whose value is decoded by the HTML parser before the iframe document is constructed, so entity-encoded script inside the attribute is reconstituted and executed in the origin of the embedding page. The fix commit ec509a22 deletes 'srcdoc' from the permitted attribute list and additionally tightens handling of the 'data-html-content' attribute so it is only allowed when the Editor field's toolbar includes SharpFormEditorField::RAW_HTML (with a matching test asserting that data-html-content is stripped when the RAW_HTML button is absent). The affected component is the Editor formatter used by SharpFormEditorField; CPE cpe:2.3:a:code16:sharp:*:*:*:*:*:*:*:* covers all releases prior to 9.22.5.
Know when Sharp gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N
Authenticated editor account gives PR:L, victim must view stored content (UI:R); executing JS in an admin session justifies C:H/I:H with no availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
code16 Sharp is a Laravel-based framework for building content-management and administrative interfaces. Versions before 9.22.5 contain a stored cross-site scripting vulnerability in the rich-text editor because the HTML sanitizer permits the srcdoc attribute on iframe elements. Although markup inside srcdoc is HTML-encoded during sanitization, browsers decode attribute entities before interpreting the iframe document, allowing an authenticated user with permission to edit an Editor field to store executable JavaScript that runs when another user views the content. Successful exploitation can result in session hijacking, unauthorized actions, account takeover, privilege escalation, or disclosure of administrative data. Version 9.22.5 patches the vulnerability by removing srcdoc from the permitted iframe attributes. As a workaround, applications that cannot upgrade should manually sanitize all Editor field content and remove every iframe srcdoc attribute before storing or rendering it.
Technical POC Analysis
CWE-79 (stored cross-site scripting).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Latest POC
1 PoC candidate from github (unverified)
Sign in to open the public PoC links collected for this CVE.
Executive ViewAI
A stored cross-site scripting flaw in code16 Sharp (versions before 9.22.5) lets any user who can edit a rich-text Editor field plant malicious code that executes in the browser of the next person to view that content - most critically, an administrator with elevated privileges. Because the code runs inside the victim's authenticated session, an attacker could hijack sessions, seize privileged accounts, and expose administrative data, effectively converting a routine content-editing right into a route to broader compromise. There is no public exploit code or confirmed active exploitation at this time, so this is a time-bound remediation priority rather than an active incident.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
The Crestron AM-100 firmware 1.6.0.2, Crestron AM-101 firmware 2.7.0.1, Barco wePresent WiPG-1000P firmware 2.3.0.10, Ba
The Crestron AM-100 firmware 1.6.0.2, Crestron AM-101 firmware 2.7.0.1, Barco wePresent WiPG-1000P firmware 2.3.0.10, Ba
Stored cross-site scripting in code16 Sharp before 9.22.5 lets an authenticated user who can submit content into a Sharp
Sharp and Toshiba Tec MFPs improperly process HTTP authentication requests, resulting in an authentication bypass vulner
Cross-site scripting vulnerability in Energy Management Controller with Cloud Services JH-RVB1 /JH-RV11 Ver.B0.1.9.1 and
Code execution can be triggered in applications that use sharp before 0.35.4 on glibc-based Linux to decode untrusted AV
Code execution can occur in sharp versions before 0.35.5 when an application decodes attacker-supplied SVG images throug
Energy Management Controller with Cloud Services JH-RVB1 /JH-RV11 Ver.B0.1.9.1 and earlier allows a network-adjacent una
Improper authentication vulnerability in Energy Management Controller with Cloud Services JH-RVB1 /JH-RV11 Ver.B0.1.9.1
Image decoding through the sharp npm library before 0.35.0 - or through a system libvips older than 8.18.3 - exposes the
Authorization bypass in Sharp (code16/sharp Laravel CMS package) versions 9.0.0 through 9.22.3 permits authenticated use
Sharp and Toshiba Tec MFPs provide configuration related APIs. Rated high severity (CVSS 8.1), this vulnerability is rem
EUVD-2026-86390
GHSA-qxg3-46rw-79j8
NVD
CVE.org
EPSS
Exploit-DB