CVE-2026-123370: compose-lint fix engine line break handling bypass

CVE-2026-123370 · Severity: medium · CVSS 4 · Published 2026-11-09

compose-lint is a security linter for Docker Compose configuration files that checks for dangerous misconfigurations. A flaw in versions 0.9.0 to 0.18.0 allows attackers to craft malicious Compose files that cause the fix --apply command to silently delete unrelated security settings from the configuration file. The attack exploits a mismatch between how the YAML parser and fix engine count line breaks, resulting in edited files that remain valid but have critical settings removed without user awareness.

Technologies: compose-lint (PyPI). Vendors: PyPI.

Quick answers

Is CVE-2026-123370 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-123370 being exploited in the wild.
How severe is CVE-2026-123370?
Medium severity, with a CVSS score of 4, published 9 November 2026.
Which products and versions are affected?
Compose-Lint 0.9.0 to 0.17.x; compose-lint (PyPI) >= 0.9.0, <= 0.17.0, ECOSYSTEM:introduced=0.9.0,fixed=0.18.0.
Is there a fix for CVE-2026-123370?
Yes. compose-lint (PyPI): upgrade to 0.18.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-123370 attacked?
It is attacked with local access.
Am I affected by CVE-2026-123370?
Check whether you run Compose-Lint or compose-lint (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • compose-lint (PyPI): upgrade to 0.18.0 or later
    pip install "compose-lint>=0.18.0"

Technical details

The vulnerability stems from a line break parsing inconsistency: the YAML parser recognizes carriage returns (\r), U+0085, U+2028, and U+2029 as line breaks, but the fix engine's byte-offset table counts only newline characters (\n). When a quoted value contains one of these alternate line separators, the offset calculation shifts by one line, causing fix --apply to splice at the wrong location and delete subsequent lines. The attack requires crafting a Compose file with one of these separators in a quoted scalar value; no authentication or user interaction beyond running fix --apply is needed.

Affected products

  • compose-lint compose-lint 0.9.0 to 0.17.x

Identifiers

  • CVE-2026-123370
  • GHSA-65v8-q222-64xx

Timeline

  • 2026-11-09: disclosed
  • 2026-11-09: patched: Version 0.18.0 released

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.