compose-lint is a Docker Compose security linter that identifies dangerous misconfigurations before deployment. From 0.22.0 until 0.31.0, compose-lint follows a sibling .env symbolic link outside the project without applying its normal containment check. From 0.28.0, the same gap also affects an include project_directory link outside the project. A pull request can reference a variable from the linked file, causing substitution to place runner file or process-environment data into finding messages written to logs, JSON, SARIF artifacts, and Code Scanning alerts. Reading /proc/self/environ can expose the remainder of the linter process environment because NUL-separated entries are treated as one value, although disclosure requires a workflow that processes untrusted changes with useful environment data and GitHub normally withholds secrets from fork pull requests. The pass or fail result is not changed. This issue is fixed in version 0.31.0.
History

Tue, 10 Nov 2026 10:15:00 +0000

Type Values Removed Values Added
First Time appeared Tmatens
Tmatens compose-lint
Vendors & Products Tmatens
Tmatens compose-lint

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.22.0 until 0.31.0, compose-lint follows a sibling .env symbolic link outside the project without applying its normal containment check. From 0.28.0, the same gap also affects an include project_directory link outside the project. A pull request can reference a variable from the linked file, causing substitution to place runner file or process-environment data into finding messages written to logs, JSON, SARIF artifacts, and Code Scanning alerts. Reading /proc/self/environ can expose the remainder of the linter process environment because NUL-separated entries are treated as one value, although disclosure requires a workflow that processes untrusted changes with useful environment data and GitHub normally withholds secrets from fork pull requests. The pass or fail result is not changed. This issue is fixed in version 0.31.0.
Title compose-lint: .env read through a symlink outside the project can expose the CI job's environment
Weaknesses CWE-22
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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published: 2026-11-09T17:25:15.559Z

Updated: 2026-11-09T17:25:15.559Z

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

Link: CVE-2026-123368

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

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

Link: CVE-2026-123368

cve-icon Redhat

No data.