Description
compose-lint is a Docker Compose security linter that identifies dangerous misconfigurations before deployment. From 0.2.0 until 0.32.0, compose-lint automatically follows a .compose-lint.yml policy-file symbolic link outside the project and includes part of the target line when that external file fails YAML parsing. A pull request can point the policy file at a runner credential file, causing about 30 characters around an attacker-uncontrolled parse position to appear in standard error, JSON errors, and SARIF tool execution notifications uploaded by the GitHub Action. The run exits with an error and the attacker cannot select the exact disclosed line, but public logs or Code Scanning output can reveal part of the target. This issue is fixed in version 0.32.0.
Published: 2026-11-09
Score: 2.3 Low
EPSS: n/a
KEV: No
Impact: Sensitive information disclosure (exposure of path fragments)
Action: Patch Compose-lint
AI Analysis

Impact

Compose‑lint processes a .compose‑lint.yml policy file and, when that file contains a symbolic link to a location outside the repository, the linter follows the link and reports parse errors that include about 30 characters around the error position. This leaks fragments of the target file’s path, potentially exposing references to sensitive files such as runner credentials. The vulnerability is a form of exposure of sensitive information (CWE‑209) and local file inclusion (CWE‑59), and the disclosed path fragments can be seen in standard error, JSON error messages, and in SARIF reports that GitHub Actions publishes.

Affected Systems

Vendors affected are tmatens:compose‑lint. Versions from 0.2.0 through 0.32.0 are vulnerable. Users who run compose‑lint in that range, especially within GitHub Actions pipelines, are impacted. The issue was fixed in release 0.32.0; later versions are not affected.

Risk and Exploitability

The CVSS score of 2.3 indicates a low severity risk. The EPSS score is not available, suggesting limited or uncertain exploitation probability. The vulnerability is not listed in the CISA KEV catalog. Because the exploit requires the attacker to supply or modify a .compose‑lint.yml file pointing to an external path, it is most likely a local or repository‑level attack, with the potential for sensitive path disclosure via publicly visible GitHub Action logs.

Generated by OpenCVE AI on November 9, 2026 at 18:21 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade compose‑lint to version 0.32.0 or later where the issue is resolved.
  • Verify that .compose‑lint.yml policy files are not symlinked to external locations and keep them within the repository.
  • If an upgrade cannot be applied immediately, restrict the visibility of GitHub Action logs or move any sensitive files referenced by the policy file out of the log output path, and consider removing the policy file from the public repository temporarily.
  • Review repository permissions and enforce least‑privilege for CI integration to reduce the chance of attack.

Generated by OpenCVE AI on November 9, 2026 at 18:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 09 Nov 2026 17:45: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.32.0, compose-lint automatically follows a .compose-lint.yml policy-file symbolic link outside the project and includes part of the target line when that external file fails YAML parsing. A pull request can point the policy file at a runner credential file, causing about 30 characters around an attacker-uncontrolled parse position to appear in standard error, JSON errors, and SARIF tool execution notifications uploaded by the GitHub Action. The run exits with an error and the attacker cannot select the exact disclosed line, but public logs or Code Scanning output can reveal part of the target. This issue is fixed in version 0.32.0.
Title compose-lint: A `.compose-lint.yml` symlinked outside the project is read, and a parse error quotes part of the target
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:36:29.552Z

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

Link: CVE-2026-123371

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

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

Link: CVE-2026-123371

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-09T18:30:13Z

Weaknesses
  • CWE-209

    Generation of Error Message Containing Sensitive Information

  • CWE-59

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