CVE-2026-3846: 
NixOS vulnerability analysis and mitigation

Overview

CVE-2026-3846 is a same-origin policy (SOP) bypass vulnerability in Firefox's CSS Parsing and Computation component, allowing an attacker to read cross-origin CSS rules and leak redirect destination URLs. It was reported by Jun Yang (alias "juny24602" / "varde") and disclosed on March 10, 2026, via Mozilla Security Advisory MFSA2026-19. The vulnerability affects Firefox versions prior to 148.0.2 on all platforms including Android; ESR branches (115 and 140) are unaffected. It carries a CVSS v3.1 base score of 6.5 (Medium) (Mozilla Advisory, Feedly).

Technical details

The root cause is an Origin Validation Error (CWE-346) in the StyleSheetInfo copy constructor within Firefox's CSS engine. When two <link> elements load the same cross-origin CSS URL, Firefox's SharedStyleSheetCache deduplicates them into a shared StyleSheetInfo inner object. Modifying the stylesheet's MediaList (e.g., via sheet.media.appendMedium()) triggers WillDirty() → EnsureUniqueInner() → CloneFor(), which invokes the StyleSheetInfo copy constructor. This constructor copies mCORSMode, mIntegrity, mSourceMapURL, and mContents, but critically omits mOriginClean — which defaults to true in the cloned object, bypassing the CSSOM origin-clean check. The fix is a one-line addition to copy mOriginClean in the copy constructor. A proof-of-concept HTML file (poc.html) was attached to the Bugzilla report by the reporter and a patch (test.patch) was also provided (Mozilla Bugzilla).

Impact

Successful exploitation allows a malicious web page to read CSS rules from cross-origin stylesheets and, when those stylesheets were loaded via HTTP redirects, leak the redirect destination URL — both of which are normally protected by the same-origin policy. This can expose sensitive information embedded in cross-origin stylesheets (e.g., authenticated user-specific styles or tokens) and reveal internal redirect URLs that may disclose private infrastructure or session-related paths. The vulnerability has no impact on availability and does not allow code execution, but the integrity impact is rated high due to the ability to violate browser security boundaries (Mozilla Advisory, Mozilla Bugzilla).

Exploitability

No public exploit kit or weaponized exploit has been observed in the wild. A proof-of-concept HTML file was submitted by the reporter as part of the responsible disclosure process and is attached to the Bugzilla report, but it is marked as restricted. The EPSS score is approximately 0.014% (0.000140), indicating very low probability of exploitation in the near term. There is no evidence of active in-the-wild exploitation, no threat actor attribution, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog (Feedly, Mozilla Bugzilla).

Exploitation steps

  1. Setup malicious page: Host a web page on an attacker-controlled origin that loads a cross-origin stylesheet (e.g., from a target site) twice using two <link> elements pointing to the same URL.
  2. Trigger cache deduplication: Firefox's SharedStyleSheetCache deduplicates the two stylesheet loads into a shared StyleSheetInfo inner object, with mOriginClean correctly set to false.
  3. Trigger inner clone: Call sheet.media.appendMedium('screen') on one of the stylesheet objects. This invokes WillDirty() → EnsureUniqueInner() → CloneFor(), creating a new StyleSheetInfo via the copy constructor.
  4. Exploit missing field copy: The cloned StyleSheetInfo initializes mOriginClean to true (its default), bypassing the CSSOM origin-clean check.
  5. Read cross-origin CSS rules: Access sheet.cssRules on the now-"clean" sheet to enumerate all CSS rules from the cross-origin stylesheet.
  6. Leak redirect URL (optional): If the stylesheet was loaded via an HTTP redirect, insert an @import rule and observe the resolved URL to leak the redirect destination (Mozilla Bugzilla).

Indicators of compromise

  • Network: Repeated requests from a browser to the same cross-origin CSS resource in rapid succession (two <link> loads of identical URL) from a suspicious or unfamiliar origin.
  • Logs: Web server access logs showing the same CSS file fetched multiple times within milliseconds from the same client IP, potentially followed by unusual @import sub-requests.
  • Browser Behavior: JavaScript errors or unexpected CSSOM access patterns in browser developer tools console related to cross-origin stylesheet manipulation.

Mitigation and workarounds

Mozilla has released Firefox 148.0.2, which contains the fix for CVE-2026-3846. The fix adds mOriginClean(aCopy.mOriginClean) to the StyleSheetInfo copy constructor, ensuring the origin-clean flag is correctly propagated during inner cloning. Firefox ESR 115 and ESR 140 are unaffected and do not require updates. Users and administrators should update to Firefox 148.0.2 or later immediately; enabling automatic updates is the recommended approach (Mozilla Advisory, Mozilla Bugzilla).

Community reactions

The Center for Internet Security (CIS) published an advisory noting that multiple vulnerabilities in Mozilla Firefox, including CVE-2026-3846, could allow for arbitrary code execution (though this specific CVE is a SOP bypass, not RCE) (CIS Advisory). Mozilla's security team classified the issue as sec-high, consistent with their standard treatment of web same-origin policy violations. The bug was awarded a security bounty by Mozilla. Community coverage noted the similarity to CVE-2025-31205, a related WebKit cross-site CSS rule and redirect URL disclosure issue reported by Google Project Zero.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

sid

firefox: 148.0.2-1

Fixed

Ubuntu

Affected

bionic (esm-apps)

mozjs38

Unknown

devel

firefox

Not Affected

jammy

thunderbird

Affected

noble

firefox

Not Affected

questing

firefox

Not Affected

resolute

firefox

Not Affected

Source: This report was generated using AI

Related NixOS vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-116199CRITICAL9.2
  • NixOS logoNixOS
  • cpe:2.3:a:snipeitapp:snipe-it
NoYesOct 25, 2026
CVE-2026-116201HIGH8.7
  • NixOS logoNixOS
  • cpe:2.3:a:snipeitapp:snipe-it
NoYesOct 25, 2026
CVE-2026-116200HIGH8.2
  • NixOS logoNixOS
  • cpe:2.3:a:snipeitapp:snipe-it
NoYesOct 25, 2026
CVE-2026-2270MEDIUM5.9
  • NixOS logoNixOS
  • kubernetes
NoYesOct 26, 2026
CVE-2026-76654MEDIUM5.8
  • NixOS logoNixOS
  • cpe:2.3:a:kubernetes:kubernetes
NoYesOct 26, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management