Description
compose-lint is a Docker Compose security linter that identifies dangerous misconfigurations before deployment. From 0.2.0 until 0.25.0, compose-lint follows a project-controlled symbolic link used as the Compose file outside the project. The same issue affects compose.override.yml and a COMPOSE_FILE entry from 0.22.0, and an env_file target from 0.23.0. If an external Compose-related target fails YAML parsing, the error quotes an attacker-uncontrolled line into standard error, JSON errors, and SARIF notifications, while an external env_file can expose credential-like key names through CL-0020 and CL-0021 findings. The attacker selects the target path but not the exact parser-failure line, values from env_file are not printed, and the pass or fail result is unchanged. This issue is fixed in version 0.25.0.
Published: 2026-11-09
Score: 2.3 Low
EPSS: n/a
KEV: No
Impact: Information Disclosure
Action: Apply Patch
AI Analysis

Impact

compose-lint, a Docker Compose security linter, can read a symbolic link pointing to an external file when parsing Compose files. If that external file fails YAML parsing, compose-lint includes an attacker-controlled line in its error output to standard error, JSON error output, and SARIF notifications. Additionally, an external env_file can expose credential-like key names in findings CL-0020 and CL-0021. Because the attacker chooses the target path but not the parser-failure line, the impact is limited to the accidental disclosure of file content or key names; the linting pass or fail status remains unchanged. The vulnerability is classified as Information Exposure through logs (CWE-209) and Path Traversal/Relative Path Input (CWE-59).

Affected Systems

The affected product is compose-lint from tmatens. Vulnerable versions are 0.2.0 through 0.24.9, including changes that affect compose.override.yml and a COMPOSE_FILE entry from 0.22.0, and an env_file target from 0.23.0. The issue is fixed in 0.25.0; later releases are not affected.

Risk and Exploitability

The CVSS score is 2.3, indicating low severity. EPSS is not available and the vulnerability is not listed in CISA KEV catalog. Based on the description, it is inferred that the attack vector is local: an attacker must have the ability to supply or configure a symbolic link or env_file that points to an arbitrary file accessible to the user running compose-lint. Exploitation requires only the execution of compose-lint on such a repository, and the attacker can learn the contents of the targeted file or identify credential-like keys from SARIF output. Because the vulnerability does not provide a mechanism for remote command execution or denial of service, the overall risk is low, but any sensitive data stored in external files in repositories could be leaked if compose-lint is invoked on them.

Generated by OpenCVE AI on November 9, 2026 at 19:53 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade compose-lint to version 0.25.0 or later, which removes the flaw.
  • For environments where upgrading is unavailable, eliminate external Compose-related targets, COMPOSE_FILE entries, or env_file references from the repository before running compose-lint, ensuring all paths are project-controlled.
  • If you must continue using vulnerable versions, redirect compose-lint output to a log file and scrub or delete any lines containing external file paths or credential-like key names before sharing or storing the logs.

Generated by OpenCVE AI on November 9, 2026 at 19:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 09 Nov 2026 18:00:00 +0000

Type Values Removed Values Added
Description compose-lint is a Docker Compose security linter that identifies dangerous misconfigurations before deployment. From 0.2.0 until 0.25.0, compose-lint follows a project-controlled symbolic link used as the Compose file outside the project. The same issue affects compose.override.yml and a COMPOSE_FILE entry from 0.22.0, and an env_file target from 0.23.0. If an external Compose-related target fails YAML parsing, the error quotes an attacker-uncontrolled line into standard error, JSON errors, and SARIF notifications, while an external env_file can expose credential-like key names through CL-0020 and CL-0021 findings. The attacker selects the target path but not the exact parser-failure line, values from env_file are not printed, and the pass or fail result is unchanged. This issue is fixed in version 0.25.0.
Title compose-lint: A committed symlink makes compose-lint quote a file from outside the project into its output
Weaknesses CWE-209
CWE-59
References
Metrics cvssV4_0

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


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-11-09T17:46:13.505Z

Reserved: 2026-11-05T20:43:10.420Z

Link: CVE-2026-123373

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-09T18:17:26.467

Modified: 2026-11-09T18:17:26.467

Link: CVE-2026-123373

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-09T20:00:12Z

Weaknesses
  • CWE-209

    Generation of Error Message Containing Sensitive Information

  • CWE-59

    Improper Link Resolution Before File Access ('Link Following')