CVE-2026-123369
### Impact 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: - create fake error or warning annotations on the pull request (`##[error]`, `##[warning]`) - fold the rest of the log, including the real verdict, out of sight (`##[group]`) - blank out chosen strings for the rest of the log (`##[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. ### Patches 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. ### Workarounds - In your own workflow, wrap the compose-lint step in `::stop-commands::<random token>` and `::<random token>::`. - Use `--format json` or `--format sarif` rather than the text report when linting untrusted pull requests. ### Reproduction ```yaml 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 fol
Properties
- Severity
- medium
- Summary
- compose-lint: Compose file text can issue GitHub Actions workflow commands through the compose-lint Action
- Nvd fetched at
- 2026-11-10T23:33:48.924589+00:00
- Epss score
- 0.0038
- Cvss severity
- MEDIUM
- Cvss score
- 4.3
- Retrieved at
- 2026-11-10T23:35:17+00:00
- Ghsa published
- 2026-11-10T15:56:59Z
- Source url
- https://github.com/advisories/GHSA-6f4g-xm8v-pgv6
- Ghsa updated
- 2026-11-10T15:57:12Z
- Ghsa id
- GHSA-6f4g-xm8v-pgv6
- Last source
- FIRST EPSS
- Score
- 5.3
- Cvss version
- 4.0
- Cve id
- CVE-2026-123369
- Cvss vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
- First seen by Signal
- 2026-11-09T19:15:57+00:00
- Name
- CVE-2026-123369
- Is ghsa only
- false
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:L/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
Related Entities (6)
AFFECTS (2)
HAS_WEAKNESS (2)
VULNERABLE_TO (2)
Related research
Explore deeper with Ninja Signal's threat intelligence graph