Description
compose-lint is a Docker Compose security linter that identifies dangerous misconfigurations before deployment. From 0.9.0 until 0.18.0, compose-lint's YAML parser recognizes lone carriage returns and Unicode line separators U+0085, U+2028, and U+2029 as line breaks while fix position conversion counts only newline characters. A pull request can place one of these separators in a quoted value so fix --apply shifts each later edit and deletes the line after the selected target, including an unselected network or other security setting. The resulting Compose file can remain valid, post-edit checks can pass, and the command can report a successful fix even though the dry-run diff was the only place showing the extra deletion. This issue is fixed in version 0.18.0.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| tmatens | compose-lint | 0.9.0, < 0.18.0 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| PyPI | compose-lint | >= 0.9.0, < 0.18.0 | 0.18.0 | GHSA-65v8-q222-64xx |
References
- https://github.com/tmatens/compose-lint/security/advisories/GHSA-65v8-q222-64xx
- https://github.com/tmatens/compose-lint/pull/547
- https://github.com/tmatens/compose-lint/pull/549
- https://github.com/tmatens/compose-lint/commit/c9d453a6a69c076788fe1db05cb54684a616d1de
- https://github.com/tmatens/compose-lint/commit/cbbf886d91347dea9c51b584eb50088e70007d0d
- https://github.com/tmatens/compose-lint/releases/tag/v0.18.0