Skip to main content

Ladybird Browser CVE-2026-119331

| EUVDEUVD-2026-114394 HIGH
Information Exposure (CWE-200)
2026-10-30 security-advisories@github.com
7.1
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Lure victim into opening attacker page
  2. Delivery
    Page loads cross-origin stylesheet via <link> (no CORS)
  3. Exploit
    Call cssRules/insertRule/deleteRule with no SecurityError
  4. Execution
    Read rule text and mutate victim sheet
  5. Impact
    Exfiltrate 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Ladybird < c0d68bddf3e3616e5173835f0f4c155ee9700d91

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

Vendor (github) PRIMARY 7.1 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N
vuln.today AI 7.1 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
Low
Availability
None

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

Why It Matters

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.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Rare
pre-release independent browser, negligible production deployment footprint
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Medium
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy