tmatens/compose-lint · Security
compose-lint: Workflow command injection through SARIF-directory errors triggered by pull request symlinks
- GHSA ID
- GHSA-xcf7-88g6-7xr8
- CVE ID
- CVE-2026-125125
- Severity
- low
- Published
- Updated
- CVSS v4
- 2.3 · CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N
Description
Impact
In Action tags v0.30.0 and v0.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. In v0.31.0 that message is outside the window in which the Action turns command processing off, and v0.30.0 has no such window. A pull request can commit a symlink on that path to a directory whose name contains a newline followed by a command.
A pull request can therefore create annotations, fold or hide parts of the job log, or issue other commands the runner accepts, when CI runs compose-lint over it, before anyone reviews it. The pass/fail result is not changed.
Only the Action is affected, and only when sarif-file: points into a subdirectory. The documented setup, sarif-file: results.sarif at the repository root, is not affected. The compose-lint package, the pre-commit hook and the Docker image do not print this message.
Found during an internal pre-1.0 security review. It was first published as part of GHSA-r7j4-crjv-h467, together with four other gaps in the same fix. Each gap now has its own advisory.
Patches
Fixed in 0.32.0. The SARIF-directory error names the sarif-file: input as written.
Workarounds
- Upgrade to 0.32.0 or later.
- Keep
sarif-fileat the workspace root, for examplesarif-file: results.sarif.
Reproduction
On a GitHub-hosted runner (runner 2.337.0), the Action at v0.31.0 with sarif-file: out/reports/results.sarif, where out is a committed symlink to a directory named d\n::warning::X that contains a regular file reports, creates an annotation. With sarif-file at the repository root it creates none.
CWEs
- CWE-117 · Improper Output Neutralization for Logs
- CWE-150 · Improper Neutralization of Escape, Meta, or Control Sequences
References
- https://github.com/tmatens/compose-lint/security/advisories/GHSA-xcf7-88g6-7xr8 ↗
- https://nvd.nist.gov/vuln/detail/CVE-2026-125125 ↗
- https://github.com/tmatens/compose-lint/pull/945 ↗
- https://github.com/tmatens/compose-lint/commit/542e63126f795564a65c63887ea0dc558a500688 ↗
- https://github.com/tmatens/compose-lint/releases/tag/v0.32.0 ↗
- https://github.com/advisories/GHSA-xcf7-88g6-7xr8 ↗