{"id":"CVE-2026-119331","kind":"vulnerability","aliases":["CVE-2026-119331"],"related":[],"title":"Ladybird browser: cross-origin stylesheets readable and editable by malicious pages","description":"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.","summary":"Ladybird's CSSStyleSheet rule access (cssRules, insertRule, deleteRule) skipped the origin check for cross-origin stylesheets loaded without CORS. A malicious page can read those stylesheets' rules and insert or delete rules in a victim stylesheet, bypassing the Same-Origin Policy.","severity":"high","cvss":7.1,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["browser","ladybird","other"],"not_affected_if":["fixed-build"],"how_to_check":"- Check whether your Ladybird build includes commit `c0d68bddf3e3616e5173835f0f4c155ee9700d91`.","fix":"- Ladybird: use a build that includes commit `c0d68bddf3e3616e5173835f0f4c155ee9700d91`.","status":"open","published_at":"2026-10-30T20:17:07+00:00","first_seen_at":"2026-10-30T20:25:38+00:00","triaged_at":"2026-10-30T20:26:42+00:00","updated_at":"2026-10-30T20:26:42+00:00","category":"other","confidence":0.8,"triage":{"at":"2026-10-30T20:26:42Z","model":"claude-haiku-5-5","output":{"fix":"- Ladybird: use a build that includes commit `c0d68bddf3e3616e5173835f0f4c155ee9700d91`.","reach":"internet","title":"Ladybird browser: cross-origin stylesheets readable and editable by malicious pages","impact":"medium","summary":"Ladybird's CSSStyleSheet rule access (cssRules, insertRule, deleteRule) skipped the origin check for cross-origin stylesheets loaded without CORS. A malicious page can read those stylesheets' rules and insert or delete rules in a victim stylesheet, bypassing the Same-Origin Policy.","audience":"everyone","category":"other","nicknames":[],"who_cares":["ladybird","browser"],"confidence":0.8,"fix_status":"available","needs_auth":"no","worst_case":"Malicious page reads and alters stylesheet rules on other sites","analyst_note":"","how_to_check":"- Check whether your Ladybird build includes commit `c0d68bddf3e3616e5173835f0f4c155ee9700d91`.\n- unknown","plain_action":"Update your Ladybird browser to a version that includes commit c0d68bddf3e3616e5173835f0f4c155ee9700d91.","needs_analyst":false,"not_affected_if":["fixed-build"],"who_is_affected":"Anyone running a Ladybird build from before commit c0d68bddf3e3616e5173835f0f4c155ee9700d91 is exposed when browsing pages that a malicious site can run script against. The sources do not describe a non-default configuration. unknown for the rest.","user_interaction":"yes","needs_special_setup":"no","severity_if_unknown":"unknown"},"cost_usd":0.001063,"input_tokens":4339,"output_tokens":1259,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-119331':15A,18A '-2026':14A,17A 'access':25B 'alter':154C 'attack':172C 'browser':2A,19B,70C 'bypass':58B,132C 'c0d68bddf3e3616e5173835f0f4c155ee9700d91':74C,181C 'check':32B 'clean':89C,108C 'close':174C 'code':166C 'commit':75C,180C 'content':143C 'cor':40B,121C 'correct':103C 'corrupt':165C 'could':112C,123C,139C,153C 'cross':4A,35B,98C 'cross-origin':3A,34B,97C 'cssrule':26B 'cssstylesheet':23B 'cssstylesheet.cssrules':76C 'cve':13A,16A 'delet':52B,126C 'deleterul':28B,79C 'edit':9A 'enforc':84C 'even':95C 'execut':167C 'expos':140C 'featur':144C 'fix':178C 'flag':90C 'generat':142C 'import':100C 'independ':68C 'insert':50B,124C 'insertrul':27B,77C 'issu':160C 'ladybird':1A,20B,21B,64C 'layout':158C 'libraries/libweb/css/cssstylesheet.cpp':81C 'load':38B,119C 'malici':11A,42B,110C 'mark':104C 'marker':145C 'memori':164C 'mutat':152C 'non':106C 'non-origin-clean':105C 'origin':5A,31B,36B,62B,88C,99C,107C,136C 'origin-clean':87C 'page':12A,43B,111C,155C,173C 'pars':114C 'persist':169C 'polici':63B,137C 'prior':71C 'provid':163C 'read':45B,113C,138C 'readabl':7A 'requir':93C 'rule':24B,48B,53B,115C,127C,149C 'same-origin':60B,134C 'securityerror':94C 'selector':141C 'sensit':148C 'skip':29B 'stylesheet':6A,37B,47B,57B,86C,101C,118C,131C 'text':150C 'though':96C 'truli':67C 'victim':56B,130C 'visibl':156C 'vulner':176C 'web':69C 'without':39B,120C","nicknames":[],"mitigations":[],"who_affected":"Anyone running a Ladybird build from before commit c0d68bddf3e3616e5173835f0f4c155ee9700d91 is exposed when browsing pages that a malicious site can run script against. The sources do not describe a non-default configuration. unknown for the rest.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"everyone","plain_action":"Update your Ladybird browser to a version that includes commit c0d68bddf3e3616e5173835f0f4c155ee9700d91.","first_public_at":"2026-10-30T20:17:07+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-119331","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-119331","severity":null,"published_at":"2026-10-30T20:17:07+00:00","modified_at":"2026-10-30T20:17:07+00:00","first_seen_at":"2026-10-30T20:25:38+00:00","fetched_at":"2026-10-30T20:25:38+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}