
Loading

Loading
We use strictly necessary cookies to run this site, and analytics cookies to understand how it's used. See our Privacy Policy for details.
A GitHub-reviewed security advisory, not necessarily under active exploitation the way our CISA KEV advisories are, but a real, disclosed vulnerability in an open-source dependency.
Affected packages
Vulnerable: >= 0.2.0, <= 0.30.0
Patched in 0.31.0
Vulnerable: <= 0.30.0
Patched in 0.31.0
Details
The GitHub Actions runner treats certain text in a step's output as commands. The legacy form, ##[command], is recognized anywhere in a line. compose-lint's text report prints service names, environment keys and lines of the Compose file, and it does not neutralize ##[. Inside the compose-lint Action, a Compose file from a pull request can therefore:
##[error], ##[warning])##[group])##[add-mask])GitHub has postponed removing the deprecated set-output log command, so the runner still honors it. A test run of the Action on a GitHub-hosted runner confirmed that a ::set-output line from a Compose file is processed. Whether it can override the Action's own sarif-written output, which decides whether the SARIF upload step runs, has not been tested.
The exit code and the pass/fail result are not affected. Azure Pipelines parses the same ##[ syntax, so the pip package is listed for anyone printing the text report in other CI systems.
Found during an internal pre-1.0 security review.
Fixed in 0.31.0. The Action stops the runner from processing workflow commands while compose-lint's output is printed, using a random stop-commands token. The text report also escapes ##[, and :: at the start of a line, in anything taken from the Compose file.
::stop-commands::<random token> and ::<random token>::.--format json or --format sarif rather than the text report when linting untrusted pull requests.services:
web:
image: "nginx:1.25"
environment:
"##[error]DB_PASSWORD": placeholder
"##[group]svc":
image: "nginx:1.25"
privileged: true
Run through the Action, this produces a fake error annotation and folds the remaining log lines, including the FAIL verdict, into a collapsed group.
EPSS, exploit probability
Low0.38%
estimated chance of real-world exploitation in the next 30 days, higher than 32.3% of every CVE FIRST.org scores
Refreshed 11/10/2026, via FIRST.org's EPSS model, not CVSS, this measures likelihood of exploitation, not how severe it would be.
More actions advisories
Talk to us about this
Find out whether this dependency (or others like it) is actually reachable in your codebase.
Get help patching, or building dependency-scanning into your pipeline going forward.
A secure code review or supply chain review finds this before an advisory does.