CVE-2026-61825GHSA-vj3q-vp3g-j9c8
code16/sharp has a stored XSS via data-html-content Sanitizer Bypass
code16 code16/sharpcomposerLibraries & packages
CVSS
8.7HighExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.22%Chance of exploitation activity in the next 30 days, higher than 11% of CVEs. Scored 23 Oct 2026FIRST EPSS
What fixes it
- 9.22.5code16/sharp, composerGitHub
composer require "code16/sharp:^9.22.5" - 9.22.5code16/sharp, PackagistOSV
composer 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
The vulnerability allows an attacker to bypass the HTML sanitizer by using the data-html-content attribute in the content of a SharpEditorFormField.
Patches
The field must now explicitly configure SharpFormEditorField::RAW_HTML in the toolbar to keep this behavior. **When using the RAW_HTML button, the application using code16/sharp must sanitize manually the content coming from the field**. Vulnerability has been patched in version 9.22.5.
Workarounds
Sanitize every contents of editors manually (e.g. using Symfony/HtmlSanitizer)
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