CVE Watchtower

CVE-2026-123369tmatens/compose-lint >= 0.2.0,

NVD

Vulnerability Summary

### 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 folds the remaining log lines, including the FAIL verdict, into a collapsed group.
Severity Level
MEDIUM(4.3)
Published Date
Nov 9, 2026
Last Modified
Nov 10, 2026
Exploitation Status
No confirmed exploitation yet
CVE Record Status
Published
EPSS Score (30-Day)
0.38%Probability
Root Weakness (CWE)
See the MITRE CWE entry for the full definition of this weakness.
See the MITRE CWE entry for the full definition of this weakness.
CVSS v4.0 Base Metrics — Score 5.3
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
Attack VectorNetwork
Attack ComplexityLow
Attack RequirementsNone
Privileges RequiredNone
User InteractionPassive
Confidentiality (Vulnerable System)None
Integrity (Vulnerable System)Low
Availability (Vulnerable System)None
Confidentiality (Subsequent System)None
Integrity (Subsequent System)Low
Availability (Subsequent System)None
Show CVSS v3.x metrics (score 4.3)
CVSS v3.1 Base Metrics — Score 4.3
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
Attack VectorNetwork
Attack ComplexityLow
Privileges RequiredNone
User InteractionRequired
ScopeUnchanged
ConfidentialityNone
IntegrityLow
AvailabilityNone

Affected & Patched Versions

Affected Versions
  • tmatens/compose-lint >= 0.2.0, <= 0.30.0
  • compose-lint <= 0.30.0
Patched Versions
No patched version published yet
Until a fix ships, reduce exposure:
  • Restrict access to the affected service or interface to trusted networks.
  • Disable the affected feature if you do not need it.
  • Watch the vendor advisory for a firmware or software update.

What to do

Fix it during your normal patch cycle. No exploitation is confirmed yet.

  1. Check whether you run tmatens/compose-lint >= 0.2.0, and which version.
  2. No patched version is listed yet. Limit access to the affected service to trusted networks, and disable the feature if you can.
  3. Subscribe to the vendor advisory so you learn when a fix ships.

Timeline

  • Nov 9, 2026Published
  • Nov 10, 2026Record last modified

Score, severity and exploitation changes are tracked from the day Watchtower started logging them.

Get notified about new tmatens/compose-lint >= 0.2.0, CVEsYou are reading CVE-2026-123369. Get an email when KEV listings, exploits or new CVEs match your stack.
Set up CVE alerts

Data last checked: Nov 10, 2026 17:00 UTC