Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure victim into opening attacker page
-
DeliveryPage loads cross-origin stylesheet via <link> (no CORS)
-
ExploitCall cssRules/insertRule/deleteRule with no SecurityError
-
ExecutionRead rule text and mutate victim sheet
-
ImpactExfiltrate secrets via image beacon
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the victim to load an attacker-controlled page in a vulnerable Ladybird build (UI:R), and that page must reference a cross-origin stylesheet that is fetched WITHOUT CORS (a plain <link> or @import), so it is correctly marked non-origin-clean - the exact precondition that should have triggered a SecurityError. No authentication, no opt-in flags, and no non-default configuration are needed; the advisory confirms no user interaction beyond page load. Limiting factors: the attacker only obtains the parsed rule text of sheets it can cause to be loaded (so value depends on those sheets containing secrets), the impact is confined to the attacker page's lifetime with no persistence, and the affected population is limited to Ladybird builds up to the fixed commit - a small, pre-release user base. Same-origin stylesheets and CORS-same-origin sheets remain correctly accessible and are not a vector. |
| Impact | This is a genuine but bounded Same-Origin-Policy bypass, not a high-CVSS inflation. The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N = 7.1) is internally consistent with the mechanism: remote, low-complexity, no privileges, but requiring the victim to load an attacker-controlled page (UI:R). The source diff and GHSA advisory both confirm the root cause - the origin-clean flag is correctly set on cross-origin imported stylesheets but is never read in cssRules, insertRule(), or deleteRule(), so the mandated SecurityError is never thrown. A confirmed, reproduced live PoC is documented in the advisory (dual-origin reproducer plus screen recording and evidence log), which materially raises practical risk over a theory-only report. No EPSS score and no CISA KEV status were supplied; absence of KEV is not evidence of absence of exploitation, but nothing in the input indicates active in-the-wild use. The vuln.today decision label is 'this_week' (not act_now/emergency). The dominant risk-limiting factor is deployment footprint rather than exploit difficulty: Ladybird is a pre-release independent browser with a negligible production base, so widespread opportunistic exploitation is unlikely despite the easy, reliable primitive. The input Tags ('RCE', 'Buffer Overflow') directly contradict the description, which explicitly rules out memory corruption, code execution, and persistence - treat those tags as erroneous. Confidentiality is scored High, which is defensible when the targeted cross-origin CSS embeds secrets (tokens, user-specific class names, feature-flag/A-B markers); for stylesheets with no sensitive rule text the real-world confidentiality impact is lower. |
| Exploit ScenarioDerived | A victim using Ladybird visits an attacker-controlled page that references a cross-origin stylesheet (e.g. a CDN-hosted CSS framework, icon set, or a target site's own sheet loaded via a plain <link> without CORS). The attacker's JavaScript then reads sheet.cssRules to exfiltrate parsed rule text - potentially exposing secret selectors or content: values such as the advisory's TOP_SECRET_CSS_MARKER - and calls insertRule()/deleteRule() to alter layout or inject phishing overlays, all without the SecurityError browsers like Chrome and Firefox throw. A working public PoC reproducing all three operations is included in the GHSA advisory and an evidence archive. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Cross-origin CSS rule disclosure and mutation in Ladybird Browser allows an unauthenticated remote attacker page to read the parsed rules of a stylesheet it loads from another origin without CORS, and to insert or delete rules in that live victim stylesheet, bypassing the Same-Origin Policy. All builds through commit 7e8da6e7cf24 are affected, the vendor has fixed the flaw in commit c0d68bddf3e3616e5173835f0f4c155ee9700d91, and the advisory documents a confirmed live two-origin proof-of-concept; CISA KEV does not list this issue. This is a genuine but bounded Same-Origin-Policy bypass (CVSS 7.1, UI:R) rather than a memory-safety or code-execution issue - the advisory explicitly rules out memory corruption, RCE and persistence, and the intelligence tags claiming RCE or buffer overflow are not supported by the source evidence.
RemediationAI
Upstream fix available (commit c0d68bddf3e3616e5173835f0f4c155ee9700d91); no tagged Ladybird release containing it is independently confirmed, so remediation is to build from that commit or later, or backport the three enforcement changes from the linked commit. A backport must add an is_origin_clean() check returning WebIDL::SecurityError to css_rules(), changing its return type to WebIDL::ExceptionOr<GC::Ref<CSSRuleList>> and adding [Throws] to the cssRules attribute in CSSStyleSheet.idl, and must replace the FIXME comments in StyleSheetState::insert_rule() and delete_rule() with the same guard; the advisory's patch archive and the commit carry the exact diff. The sources describe no configuration toggle or alternative mitigation for deployments that cannot update, so patching is the complete fix, and the flaw only manifests while the attacker's page is open, with no persistence, memory corruption or code execution. Advisory: https://github.com/LadybirdBrowser/ladybird/security/advisories/GHSA-xj66-c4cw-xwh3.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Ladybird's LibWeb engine implements the CSS Object Model, and CSSOM §6.1.1 requires that cssRules, insertRule() and deleteRule() on a stylesheet that is not origin-clean throw a SecurityError. The origin-clean flag itself was set correctly: LibWeb/CSS/CSSImportRule.cpp unsets it when an imported sheet's response is not CORS-same-origin. The failure was at enforcement: StyleSheetState::insert_rule() and delete_rule() carried the spec's guard only as FIXME comments and checked nothing but the disallow-modification flag, while CSSStyleSheet::css_rules() returned the rule list unconditionally, with no [Throws] on the cssRules attribute in CSSStyleSheet.idl to let the WebIDL binding layer surface an exception to JavaScript. The root cause class is CWE-200 exposure of sensitive information with a CWE-346 origin-validation component - the flag existed but was never read at the boundary it was meant to protect. The fix converts css_rules() to WebIDL::ExceptionOr<GC::Ref<CSSRuleList>> and adds is_origin_clean() guards returning WebIDL::SecurityError at all three points, with the WPT expectations for css/cssom/stylesheet-same-origin.sub.html moving from 5 failures to 1. No CPE strings were supplied with this record.
Know when the next one hits your stack
- 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:N/UI:R/S:U/C:H/I:L/A:N
Remote page load with no privileges but required victim visit (UI:R); C:H when leaked CSS holds secrets, I:L for rule insert/delete, A:N, scope unchanged within the browsing context.
Primary rating from Vendor (github).
CVSS VectorVendor: github
DescriptionCVE.org
Ladybird is a truly independent web browser. Prior to the c0d68bddf3e3616e5173835f0f4c155ee9700d91 commit, CSSStyleSheet.cssRules, insertRule(), and deleteRule() in Libraries/LibWeb/CSS/CSSStyleSheet.cpp did not enforce the stylesheet origin-clean flag with the required SecurityError, even though cross-origin imported stylesheets were correctly marked non-origin-clean. A malicious page could read parsed rules from a stylesheet loaded without CORS and could insert or delete rules in the victim stylesheet, bypassing the Same-Origin Policy. Reading could expose selectors, generated content, feature markers, or other sensitive rule text, while mutation could alter page visibility or layout. The issue does not provide memory corruption, code execution, or persistence after the attacker page closes. This vulnerability is fixed by commit c0d68bddf3e3616e5173835f0f4c155ee9700d91.
Technical POC Analysis
CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor), with the advisory also assigning CWE-346 (Origin Validation Error).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity vulnerability in the Ladybird Browser (all builds through commit 7e8da6e7cf24) allows a malicious website to bypass the Same-Origin Policy, reading and modifying CSS rules from other origins. This affects users of the Ladybird Browser, potentially leading to data leakage and UI manipulation, but does not enable code execution or system compromise. Security leadership should prioritize patching due to the availability of a public proof-of-concept and the risk of targeted attacks against Ladybird users.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-114394
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB