CVE-2022-38749: snakeYAML before 1.31 vulnerable to Denial of Service due to Out-of-bounds Write
6.5
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.67904%
CWE
Published
9/6/2022
Updated
3/15/2024
KEV Status
No
Technology
Java
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| org.yaml:snakeyaml | maven | < 1.31 | 1.31 |
| be.cylab:snakeyaml | maven | = 1.25.1 | |
| com.alipay.sofa.acts:acts-common-util | maven | = 1.0.0 | |
| io.prometheus.jmx:jmx_prometheus_httpserver | maven | = 0.17.0 | |
| io.prometheus.jmx:jmx_prometheus_httpserver_java6 | maven | <= 0.18.0 | |
| org.testifyproject.external:external-snakeyaml | maven | <= 1.0.6 | |
| pl.droidsonroids.yaml:snakeyaml | maven | <= 1.18.2 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from uncontrolled recursion during YAML parsing of nested structures. The Composer class methods composeSequenceNode and composeMappingNode are core recursive processing points that lacked depth validation in vulnerable versions. Stack traces during exploitation would show repeated calls to these methods until stack overflow occurs. The patch adding depth limits (commit fc30078) confirms these as the vulnerable entry points. composeNode appears in traces as the parent caller but isn't directly vulnerable itself.