All vulnerabilities
CVE-2026-61823GHSA-qxg3-46rw-79j8

code16/sharp: code16 Sharp vulnerable to stored XSS via iframe srcdoc Attribute

code16 code16/sharpcomposerLibraries & packages
CVSS
7.3High
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.21%Chance of exploitation activity in the next 30 days, higher than 10% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in9.22.5Fixed versionGitHub
Published24 Sep 2026Updated 28 Sep 2026CVE List

What fixes it

  • 9.22.5code16/sharp, composerGitHubcomposer require "code16/sharp:^9.22.5"
  • 9.22.5code16/sharp, PackagistOSVcomposer require "code16/sharp:^9.22.5"

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

Impact

A Stored Cross-Site Scripting (XSS) vulnerability exists in the rich text editor due to improper sanitization of the srcdoc attribute on <iframe> elements.

While the underlying Symfony HtmlSanitizer correctly HTML-encodes special characters inside the attribute value (e.g., converting <script> to &lt;script&gt;), the HTML specification mandates that browsers automatically decode HTML entities inside attribute values before processing them. As a result, any encoded JavaScript inside a srcdoc attribute is evaluated and executed as live HTML/JS in the context of the iframe when the page is rendered.

An attacker with permissions to edit an Editor field can inject malicious scripts to target other users viewing the content. Potential impacts include:

  • Session Hijacking (stealing admin session cookies via document.cookie)
  • Account Takeover & Privilege Escalation (e.g., a low-privileged editor triggering actions as an Administrator)
  • Admin panel data theft

Patches

The vulnerability has been patched in version v9.22.5.

The fix explicitly removes srcdoc from the list of allowed iframe attributes in src/Utils/Sanitization/FormatsSanitizedValue.php.

Workarounds

Users who cannot upgrade immediately can manually sanitize all content of editor fields to strip srcdoc attributes.

Text from GitHub Advisory Database

Affected versions 53

  • code16/sharp, composer< 9.22.5GitHub
  • sharpaffected: < 9.22.5CVE List
  • code16/sharp, Packagistfrom first release, fixed in 9.22.5OSV
  • code16/sharp, Packagist7.0.0-alpha.1OSV
  • code16/sharp, Packagist7.27.0OSV
  • code16/sharp, Packagist7.7.2OSV
  • code16/sharp, Packagistv4.0-BETA1OSV
  • code16/sharp, Packagistv4.0-BETA2OSV
  • code16/sharp, Packagistv4.0-BETA3OSV
  • code16/sharp, Packagistv4.0-BETA4OSV
  • code16/sharp, Packagistv4.0-BETA5OSV
  • code16/sharp, Packagistv4.0-BETA6OSV
  • code16/sharp, Packagistv4.0.0OSV
  • code16/sharp, Packagistv4.0.1OSV
  • code16/sharp, Packagistv4.0.10OSV
  • code16/sharp, Packagistv4.0.11OSV
  • code16/sharp, Packagistv4.0.12OSV
  • code16/sharp, Packagistv4.0.13OSV
  • code16/sharp, Packagistv4.0.14OSV
  • code16/sharp, Packagistv4.0.15OSV
  • code16/sharp, Packagistv4.0.16OSV
  • code16/sharp, Packagistv4.0.17OSV
  • code16/sharp, Packagistv4.0.18OSV
  • code16/sharp, Packagistv4.0.19OSV
  • code16/sharp, Packagistv4.0.2OSV
  • code16/sharp, Packagistv4.0.20OSV
  • code16/sharp, Packagistv4.0.21OSV
  • code16/sharp, Packagistv4.0.3OSV
  • code16/sharp, Packagistv4.0.4OSV
  • code16/sharp, Packagistv4.0.5OSV
  • code16/sharp, Packagistv4.0.6OSV
  • code16/sharp, Packagistv4.0.7OSV
  • code16/sharp, Packagistv4.0.8OSV
  • code16/sharp, Packagistv4.0.9OSV
  • code16/sharp, Packagistv4.1.0OSV
  • code16/sharp, Packagistv4.1.1OSV
  • code16/sharp, Packagistv4.1.10OSV
  • code16/sharp, Packagistv4.1.11OSV
  • code16/sharp, Packagistv4.1.12OSV
  • code16/sharp, Packagistv4.1.13OSV
  • code16/sharp, Packagistv4.1.14OSV
  • code16/sharp, Packagistv4.1.15OSV
  • code16/sharp, Packagistv4.1.16OSV
  • code16/sharp, Packagistv4.1.17OSV
  • code16/sharp, Packagistv4.1.18OSV
  • code16/sharp, Packagistv4.1.19OSV
  • code16/sharp, Packagistv4.1.2OSV
  • code16/sharp, Packagistv4.1.20OSV
  • code16/sharp, Packagistv4.1.21OSV
  • code16/sharp, Packagistv4.1.22OSV
  • code16/sharp, Packagistv4.1.23OSV
  • code16/sharp, Packagistv4.1.24OSV
  • code16/sharp, Packagistv4.1.25OSV

References 4