CVE-2026-123796 · Package
NO FIX YET · SEE WHAT TO DO
compose-lint, a Docker Compose security linter, prints resolved .env secret values in its findings when a scan exceeds 20,000 findings. An attacker who can submit a pull request can get a CI run to expose the secret in text, JSON, SARIF, and Code Scanning output.
first public Oct 5, 2026 · 1 source
Could this affect your app?
Free first check from your website. Connect your repo for the full answer.
Teams that run compose-lint in CI on pull requests while a .env file containing real secrets sits beside the linted Compose files. The sources say exploitation needs a workflow that writes secrets into that .env and lints untrusted changes, so projects that never put secrets in a sibling .env, or only lint trusted code, are less exposed. Local use on your own files is unlikely to be affected.
Not affected if fixed-0.33.0, no-secrets-in-env-file, trusted-code-only
Who cares ci, code-scanning, docker-compose, github-actions
compose-lint --version or the lockfile entry; versions from 0.32.0 up to but not including 0.33.0 are affected..env file next to the Compose file and then lint pull requests from untrusted forks or branches.--allow-partial-coverage, since the sources say the exit code is 2 without it.compose-lint is a Docker Compose security linter that identifies dangerous misconfigurations before deployment. From 0.32.0 until 0.33.0, compose-lint's incomplete remediation for .env secret disclosure checks the 20,000-finding limit before replacing resolved values with their variable references. A pull request can combine a secret-referencing image field with aliased content that produces more than 20,000 findings, causing the early-stop path to emit already graded findings with the resolved secret value in text, JSON, SARIF, and Code Scanning output. Exploitation requires a workflow that writes secrets into the sibling .env and lints untrusted changes, and the run exits 2 unless --allow-partial-coverage is used. This issue is fixed in version 0.33.0.
Are you affected?
Tell InfraStack what you run. It checks this one, and every next one, against your stack.
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
0.33.0This page as .md · .json · 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.