CVE-2026-123370
Received Received - Intake

compose-lint YAML Parser Misconfiguration Leading to Security Setting Deletion

Vulnerability report for CVE-2026-123370, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-11-09

Last updated on: 2026-11-09

Assigner: GitHub, Inc.

Description

compose-lint is a Docker Compose security linter that identifies dangerous misconfigurations before deployment. From 0.9.0 until 0.18.0, compose-lint's YAML parser recognizes lone carriage returns and Unicode line separators U+0085, U+2028, and U+2029 as line breaks while fix position conversion counts only newline characters. A pull request can place one of these separators in a quoted value so fix --apply shifts each later edit and deletes the line after the selected target, including an unselected network or other security setting. The resulting Compose file can remain valid, post-edit checks can pass, and the command can report a successful fix even though the dry-run diff was the only place showing the extra deletion. This issue is fixed in version 0.18.0.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-11-09
Last Modified
2026-11-09
Generated
2026-11-09
AI Q&A
2026-11-09
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
tmatens compose-lint to 0.18.0 (inc)
tmatens compose-lint 0.18.0

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-193 A product calculates or uses an incorrect maximum or minimum value that is 1 more, or 1 less, than the correct value.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability affects compose-lint versions 0.9.0 to 0.17.0. It involves a mismatch in how line breaks are handled. The tool counts only newline characters as line breaks but the YAML parser also recognizes additional characters like carriage returns and Unicode separators. This causes the fix engine to edit incorrect lines, potentially deleting unintended security settings while reporting a successful fix.

Detection Guidance

To detect this vulnerability, check if you are using compose-lint versions between 0.9.0 and 0.17.0. Run 'compose-lint --version' to verify the installed version. If the version is within the affected range, inspect Docker Compose files for ambiguous line breaks like carriage returns or Unicode separators that could cause misalignment.

Impact Analysis

The vulnerability allows an attacker to manipulate Docker Compose files by inserting invisible line break characters. When using the fix --apply command, this can cause the tool to delete unintended lines such as security settings like network configurations. The tool may still report success, and later checks might not detect the unauthorized changes.

Mitigation Strategies

Upgrade compose-lint to version 0.18.0 or later immediately. If upgrading is not possible, avoid using the 'fix --apply' command on untrusted files and always review dry-run diffs before applying changes. This prevents unintended deletions of security settings due to line break mismatches.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-123370. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart

Security Radar

News mentioning this vulnerability
Loading related security news...