Description
Colord is a tiny yet powerful tool for high-performance color manipulations and conversions. Prior to 2.9.4, synchronous CSS color string matchers in src/colorModels/rgbString.ts, src/colorModels/hslString.ts, src/colorModels/hwbString.ts, src/colorModels/lchString.ts, and src/colorModels/cmykString.ts use the ambiguous numeric regular expression ([+-]?\d*.?\d+), allowing the same digits to be divided between overlapping quantifiers in quadratically many ways when malformed input is rejected. An attacker who can supply an unbounded color string to colord(), getFormat(), isEqual(), mix(), or contrast(), including through a request body, JSON field, or uploaded stylesheet, can block the processing thread with a multi-kilobyte payload. The affected matchers are parseRgbaString, parseHslaString, parseHwbaString, parseLchaString, and parseCmykaString. This issue is fixed in version 2.9.4.
Published: 2026-09-03
Score: 6.9 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Colord contains a parsing weakness that matches malformed numeric patterns with an ambiguous regular expression, classified as CWE-1333. When an attacker supplies an oversized malformed color string to functions such as colord(), getFormat(), isEqual(), mix(), or contrast(), the regex engine explores a number of match combinations that grows quadratically with the input size. This causes the target thread to block for a prolonged period, effectively denying service to legitimate users. The weakness is an input parsing flaw that can be triggered by any user‑supplied data handled by the library.

Affected Systems

The issue affects all releases of the omgovich colord tool older than version 2.9.4. The vulnerable parsers reside in src/colorModels/rgbString.ts, hslString.ts, hwbString.ts, lchString.ts, and cmykString.ts, and the problem is present in the exported functions parseRgbaString, parseHslaString, parseHwbaString, parseLchaString, and parseCmykaString. Applications that embed colord and invoke any of the public API functions with untrusted input—including request bodies, JSON fields, or uploaded stylesheets—are at risk.

Risk and Exploitability

The CVSS score of 6.9 indicates moderate severity, and the vulnerability is not listed in the CISA KEV catalog. The EPSS score is not available, so no quantitative exploitation likelihood is provided. The attack vector is likely local or remote via any service that accepts color strings from external requests, such as web servers that parse stylesheets or JSON payloads. An attacker who can submit a multi‑kilobyte malformed color string can force the processing thread to hang, resulting in a denial of service. The exploit requires no special privileges, making it feasible for a broad threat set.

Generated by OpenCVE AI on September 3, 2026 at 21:53 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to colord version 2.9.4 or later, which removes the unsafe regular expression and addresses the weakness.
  • If upgrading is not immediately possible, validate or sanitize user‑supplied color strings before passing them to colord functions, rejecting strings that exceed a reasonable length threshold.
  • Configure the application or web server to impose maximum size limits on request bodies, JSON fields, or uploaded stylesheets that may contain color strings, thereby preventing an attacker from submitting excessively large payloads.

Generated by OpenCVE AI on September 3, 2026 at 21:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 03 Sep 2026 20:45:00 +0000

Type Values Removed Values Added
Description Colord is a tiny yet powerful tool for high-performance color manipulations and conversions. Prior to 2.9.4, synchronous CSS color string matchers in src/colorModels/rgbString.ts, src/colorModels/hslString.ts, src/colorModels/hwbString.ts, src/colorModels/lchString.ts, and src/colorModels/cmykString.ts use the ambiguous numeric regular expression ([+-]?\d*.?\d+), allowing the same digits to be divided between overlapping quantifiers in quadratically many ways when malformed input is rejected. An attacker who can supply an unbounded color string to colord(), getFormat(), isEqual(), mix(), or contrast(), including through a request body, JSON field, or uploaded stylesheet, can block the processing thread with a multi-kilobyte payload. The affected matchers are parseRgbaString, parseHslaString, parseHwbaString, parseLchaString, and parseCmykaString. This issue is fixed in version 2.9.4.
Title Colord: Slow rejection of oversized malformed color strings
Weaknesses CWE-1333
References
Metrics cvssV4_0

{'score': 6.9, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-03T20:30:12.768Z

Reserved: 2026-09-02T21:21:01.774Z

Link: CVE-2026-85062

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-03T21:17:23.477

Modified: 2026-09-03T21:17:23.477

Link: CVE-2026-85062

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-03T22:00:13Z

Weaknesses
  • CWE-1333

    Inefficient Regular Expression Complexity