MEDIUMCVSS v4 5.3Vulnerability

CVE-2026-125121

### Impact 0.31.0 fixed GHSA-6f4g-xm8v-pgv6, where text from a Compose file became GitHub Actions workflow commands in compose-lint's output. The fix escapes the command openers in everything compose-lint prints, and the 0.31.0 changelog says the report "escapes both openers (also covering Azure Pipelines)". Five paths were left open: - **Unicode whitespace before a line-leading `::`.** The runner strips all Unicode whitespace from the start of a line before it looks for a command. compose-lint only accounted for spaces and tabs, so a no-break space or another Unicode space ahead of `::` is not escaped. It can come from a Compose value, or from a file name: the text report's file heading and per-file summary, and the `fix` summary on stderr, start with the path as given, so a directory named with a leading no-break space followed by `::` puts a command at the start of a line. This reaches those lines, the text report's fix guidance, the `fix` dry-run diff, and continuation lines of stderr diagnostics. - **JSON and SARIF printed to stdout.** `--format json` and `--format sarif` output never passed through the sanitizer, so `##[` inside a service name or other value reaches the log intact when the output isn't redirected to a file. - **Command-line errors.** When a repository path reaches compose-lint's arguments without a `--` before it, the argument parser prints it raw in its error message. That includes a carriage return, which the runner treats as a line break, so a command can also start a new line there. - **Azure Pipelines.** `##vso[` logging commands were not escaped on any path, despite the changelog's Azure claim. - **An error message in the GitHub Action (0.30.0 and 0.31.0).** When `sarif-file:` names a file in a subdirectory that can't be created, the Action prints the directory's resolved path in an error message, outside the window in which it turns command processing off. A pull request can commit a symlink on that path to a directory whose name cont

Properties

Severity
medium
Summary
compose-lint: Text in a pull request can still issue CI workflow commands through compose-lint 0.31.0's output
Nvd fetched at
2026-11-10T23:33:48.924589+00:00
Cvss severity
MEDIUM
Cvss score
5.3
Retrieved at
2026-11-10T23:34:27+00:00
Ghsa published
2026-11-10T18:28:35Z
Source url
https://github.com/advisories/GHSA-r7j4-crjv-h467
Ghsa updated
2026-11-10T18:28:38Z
Ghsa id
GHSA-r7j4-crjv-h467
Last source
GitHub Advisory Database
Score
5.3
Cvss version
4.0
Cve id
CVE-2026-125121
Cvss 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
First seen by Signal
2026-11-10T19:28:55+00:00
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
Published at
2026-11-10T17:17:26.410
Last modified
2026-11-10T17:17:26.410

Related Entities (4)

AFFECTS (1)

→[Software]pip/compose-lint

VULNERABLE_TO (1)

←[Software]pip/compose-lint

Related research

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-125121 (CVSS v4 5.3) — Ninja Signal Threat Intelligence | Ninja Signal