# CVE-2026-123368: compose-lint symlink path traversal environment variable exposure

Source: https://junglewise.ai/threats/cve-2026-123368-compose-lint-is-a-docker-compose-security-linter-that-identifies  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-11-09. Updated: 2026-11-09  
License: CC BY 4.0 with a link back

CVE-2026-123368 · Severity: low · CVSS 3.1 · Published 2026-11-09

compose-lint is a security linter for Docker Compose configurations that checks for dangerous settings before deployment. Versions 0.22.0 through 0.30.x follow symbolic links in .env files and include project directories outside the project boundary, allowing an attacker to read the linter's process environment (including sensitive variables) by linking to /proc/self/environ. When processing untrusted Docker Compose files in CI/CD workflows, exposed environment variables could leak secrets or system information to logs and scanning alerts.

Technologies: [tmatens/compose-lint (GitHub Actions)](https://junglewise.ai/threats/technologies/actions-tmatens-compose-lint), [compose-lint (PyPI)](https://junglewise.ai/threats/technologies/pypi-compose-lint), [Tmatens Compose-Lint](https://junglewise.ai/threats/technologies/tmatens-compose-lint). Vendors: [GitHub Actions](https://junglewise.ai/threats/vendors/actions), [PyPI](https://junglewise.ai/threats/vendors/pypi), [Tmatens](https://junglewise.ai/threats/vendors/tmatens).

## Quick answers

**Is CVE-2026-123368 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-123368 being exploited in the wild.

**How severe is CVE-2026-123368?** Low severity, with a CVSS score of 3.1, published 9 November 2026.

**Which products and versions are affected?** tmatens/compose-lint (GitHub Actions) >= 0.22.0, <= 0.30.0, ECOSYSTEM:introduced=0.22.0,fixed=0.31.0|GIT:introduced=811ef6b379dbc78d048fcedaf976205705d4a7c3,fixed=a6a7a76736de1c72abfa96c41ff8af556ffdc55f; compose-lint (PyPI) >= 0.22.0, <= 0.30.0, ECOSYSTEM:introduced=0.22.0,fixed=0.31.0; Tmatens Compose-Lint 0.22.0 through 0.30.x.

**Is there a fix for CVE-2026-123368?** Yes. tmatens/compose-lint (GitHub Actions): upgrade to 0.31.0 or later; compose-lint (PyPI): upgrade to 0.31.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-123368 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-123368?** Check whether you run tmatens/compose-lint (GitHub Actions), compose-lint (PyPI) or Tmatens Compose-Lint 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

- tmatens/compose-lint (GitHub Actions): upgrade to 0.31.0 or later
- compose-lint (PyPI): upgrade to 0.31.0 or later

  ```sh
  pip install "compose-lint>=0.31.0"
  ```


## Technical details

A path traversal vulnerability in compose-lint's .env and include project_directory handling fails to enforce containment checks for symbolic links pointing outside the project. An attacker can craft a malicious Compose file that references variables from a symlink target (such as /proc/self/environ), causing those values to be substituted into finding messages written to logs, JSON reports, SARIF artifacts, and GitHub Code Scanning alerts. The linter's process environment is NUL-separated, so reading /proc/self/environ exposes all remaining environment entries as a single value.

## Affected products

- tmatens compose-lint 0.22.0 through 0.30.x

## Identifiers

- CVE-2026-123368
- GHSA-6wcv-rj3c-mhv3

## Timeline

- 2026-11-09: disclosed
- 2026-09-26: patched

## References

- [https://github.com/tmatens/compose-lint/commit/c43204ad4dab11d54e20574a52bc4e5835246ca5](https://github.com/tmatens/compose-lint/commit/c43204ad4dab11d54e20574a52bc4e5835246ca5)
- [https://github.com/tmatens/compose-lint/pull/917](https://github.com/tmatens/compose-lint/pull/917)

## Related threats

- [compose-lint GitHub Action workflow command injection via symlink path](https://junglewise.ai/threats/cve-2026-125125-compose-lint-is-a-docker-compose-security-linter-that-identifies)
- [compose-lint insufficient CI command sanitization](https://junglewise.ai/threats/cve-2026-125124-compose-lint-is-a-docker-compose-security-linter-that-identifies)
- [compose-lint command injection via unsanitized stderr output](https://junglewise.ai/threats/cve-2026-125123-compose-lint-is-a-docker-compose-security-linter-that-identifies)
- [compose-lint CI command injection in JSON and SARIF output](https://junglewise.ai/threats/cve-2026-125122-compose-lint-is-a-docker-compose-security-linter-that-identifies)
- [compose-lint workflow command injection via Unicode whitespace](https://junglewise.ai/threats/cve-2026-125121-compose-lint-is-a-docker-compose-security-linter-that-identifies)
