Skip to main content

CSSOM EUVDEUVD-2026-83257

| CVE-2026-93752 HIGH
Improperly Controlled Modification of Dynamically-Determined Object Attributes (CWE-915)
2026-09-18 VulnCheck GHSA-38j3-w94g-v5m4
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Identify app that parses untrusted CSS via CSSOM
  2. Delivery
    Submit stylesheet with declaration named 'length'
  3. Exploit
    Internal length counter overwritten
  4. Execution
    cssText serialization allocates excessive memory
  5. Impact
    Process terminates (DoS)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V4 - API and Web Service Object attribute protection
Exploitation Conditions

Requires the host application to (1) pass attacker-controlled CSS into CSSOM's CSSStyleDeclaration.setProperty()/stylesheet parsing, and (2) subsequently serialize the parsed declaration via cssText, which is where the oversized allocation occurs. The specific trigger is a CSS declaration using the reserved name 'length', which is not validated and overwrites the internal length counter. Limiting factors: the library is not itself network-exposed, so exploitation is gated on an application feeding it untrusted stylesheet input and then serializing; deployments that only parse trusted/first-party CSS or never call cssText on attacker input are not exposed. Affected versions are CSSOM through 0.5.0.

Impact

This is a genuine but conditionally-reachable denial-of-service issue, not a top-tier priority. The vendor CVSS 4.0 vector (8.7, AV:N/AC:L/PR:N/UI:N/VA:H) is a pure-availability score with confidentiality and integrity explicitly zero (VC:N/VI:N), so the '8.7 High' rating derives entirely from process-crash impact - there is no data exposure or code execution. CWE-915 (improper control of a dynamically-determined object attribute) is the correct root cause: an attacker-controlled property name 'length' overwrites the object's internal counter. Critically, the network/unauthenticated framing assumes the host application feeds attacker-supplied CSS through CSSOM and then serializes it via cssText; the library itself is not a network service, so real-world reachability depends on the embedding application. No EPSS score, no CISA KEV listing, and no published proof-of-concept are present in the input - this is 'no public exploit identified at time of analysis.' The signals are consistent (single-source, availability-only, no exploitation evidence), so there is no CVSS-vs-EPSS or vector-vs-description conflict to flag; the main caveat is that AV:N presumes untrusted-CSS ingestion that only some deployments actually perform.

Exploit ScenarioDerived

An application uses CSSOM to parse CSS supplied by an untrusted party (e.g., user-submitted stylesheets, scraped/remote HTML processed via a DOM emulator) and later serializes the parsed rules back to text. The attacker submits a stylesheet containing a declaration named 'length', which replaces CSSStyleDeclaration's internal length counter and forces a huge memory allocation during cssText serialization, terminating the Node.js process. No proof-of-concept is published in the provided sources.

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

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

Alert me

AnalysisAIv1 – Sep 18, 2026

Denial of service in the CSSOM JavaScript library through 0.5.0 allows unauthenticated remote attackers to terminate a parsing process by supplying a stylesheet declaration named 'length', a reserved property name that is not validated and therefore overwrites the internal declaration counter; the corrupted counter then drives an oversized memory allocation when cssText is serialized, crashing the process. Exploitation is conditional rather than automatic: the host application must feed attacker-controlled CSS into CSSStyleDeclaration.setProperty() or stylesheet parsing and must later serialize that declaration via cssText, so deployments that only parse trusted first-party CSS, or that never serialize untrusted input, are not exposed. No public exploit code has been identified at time of analysis and the issue is not listed in CISA KEV; the provided CVSS 4.0 score of 8.7 (assessed as CVSS 3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) reflects a high availability-only impact with no confidentiality or integrity effect, and the library itself is not network-exposed.

RemediationAI

No vendor-released patch has been identified at time of analysis: CSSOM has no fixed version published, and the issue remains tracked in the upstream repository at https://github.com/NV/CSSOM/issues/119, with the vulnerable logic visible at https://github.com/NV/CSSOM/blob/00ec21868e12422581c81779135c2f1648441204/lib/CSSStyleDeclaration.js#L41-L56, so teams should monitor that issue and the VulnCheck advisory (https://www.vulncheck.com/advisories/cssom-through-0.5.0-denial-of-service-via-length-property) for a 0.5.1 or later release and upgrade as soon as one ships. Until then, apply compensating controls targeted at the two required conditions: first, reject or strip reserved and structural property names ('length', 'cssText', 'parentRule', and purely numeric index keys) from any externally supplied stylesheet before it reaches setProperty() or the parser, accepting that naive allow-list filtering may drop legitimate but unusual CSS; second, avoid calling cssText on declarations derived from untrusted input and instead serialize from your own trusted data model, which removes the memory-amplification sink entirely at the cost of a small amount of re-implementation. Where untrusted stylesheet processing is unavoidable, run the parsing/serialization in an isolated worker, child process, or container with a hard memory cap and execution timeout so the oversized allocation kills only the sandbox rather than the host process, and cap the number of declarations accepted per stylesheet; if neither parsing nor serialization of third-party CSS is a real business requirement, the simplest mitigation is to stop passing untrusted CSS to CSSOM at all. Note that these are workarounds, not fixes, and no exact patched version should be assumed until the upstream maintainer publishes one.

Affected VersionsENISA

CSSOM 0 ≤0.5.0

Affected Packages

euvd cssom no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

CSSOM is a pure JavaScript implementation of the CSS Object Model, widely used directly and as a dependency of DOM emulation stacks (for example jsdom-style tooling) to parse stylesheets into CSSStyleDeclaration objects. The flaw is rooted in CWE-915 (Improperly Controlled Modification of Dynamically-Determined Object Attributes): setProperty() as implemented in lib/CSSStyleDeclaration.js (referenced lines 41-56) accepts an arbitrary caller-supplied property name without rejecting reserved internal names, so a declaration named 'length' is written over the counter that is normally computed from the number of stored declarations. Because cssText is a getter whose serialization loop (referenced lines 112-124) is driven by that same counter, the overwritten value propagates into an unbounded allocation during serialization, exhausting memory and terminating the Node.js process. Conceptually this is a mass-assignment-style collision between attacker-controlled keys and the object's own dynamically determined attributes, where a name that should be read-only state is treated as ordinary writable data. The affected CPE cpe:2.3:a:nv:cssom:*:*:*:*:*:*:*:* covers the package across its released versions up to and including 0.5.0; the fix therefore has to either blocklist reserved identifiers (length, cssText, parentRule, and numeric index keys) or store declarations in a private structure that cannot be addressed by user-supplied property names.

Know when Cssom gets its next vulnerability

  • 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 (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Pure availability impact (process crash) with no confidentiality or integrity effect; network/unauthenticated because untrusted CSS commonly reaches the parser, though reachability is application-dependent.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Red Hat 7.5 HIGH

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

CSSOM through 0.5.0 contains a denial of service vulnerability in CSSStyleDeclaration.setProperty() that fails to validate reserved property names. Attackers can supply a stylesheet with a declaration named length to replace the internal counter and trigger excessive memory allocation during cssText serialization, causing process termination.

Executive ViewAI

Why It Matters

The CSSOM JavaScript library (all versions through 0.5.0) contains a denial-of-service flaw that can crash processes which parse attacker-supplied CSS, potentially taking down customer-facing services that accept stylesheets, uploads, or templated content from external parties. Exposure is conditional: only applications that pass untrusted CSS into stylesheet parsing or CSSStyleDeclaration.setProperty() and later serialize declarations via cssText are at risk, while systems handling only trusted first-party CSS are unaffected. Because no vendor patch is available, leadership should treat this as an engineering-mitigation effort owned by the application teams running the affected dependency rather than a routine patch cycle.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: reject or sanitize stylesheet declarations named 'length' before parsing; avoid serializing untrusted declarations via cssText; process untrusted CSS in isolated, memory-capped worker processes with automatic restart; enforce stylesheet size and request-rate limits; and monitor parser processes for crash-restart patterns until a maintained replacement or fixed release is deployed.

Threat Intelligence Overview

EPSS Score
0.5%
Top 60% exploitable
Prevalence
Medium
popular npm CSS parser, historically a transitive dependency of jsdom
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

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.5%
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
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Micro 5.3 Affected
SUSE Linux Enterprise Micro 5.3 Affected
SUSE Linux Enterprise Micro 5.4 Affected
SUSE Linux Enterprise Micro 5.4 Affected

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