Headline
GHSA-36gq-35j3-p9r9: Excessive Platform Resource Consumption within a Loop when unmarshalling Compose file having recursive loop
Impact
The compose-go
library component in versions v2.10-v2.4.0
allows an authorized user who sends malicious YAML payloads to cause the compose-go
to consume excessive amount of Memory and CPU cycles while parsing YAML, such as used by Docker Compose from versions v2.27.0
to v2.29.7
included
Patches
compose-go v2.24.1
fixed the issue
Workarounds
There isn’t any known workaround.
References
https://github.com/docker/compose/issues/12235
https://github.com/compose-spec/compose-go/pull/703
https://github.com/compose-spec/compose-go/pull/618
https://github.com/docker/compose/commit/d239f0f3187a2ed5404c61f83bd5e995c81600ff#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6R10
Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.