发布时间: 2022年7月15日
修改时间: 2024年10月31日
yajl-ruby is a C binding to the YAJL JSON parsing and generation library. The 1.x branch and the 2.x branch of `yajl` contain an integer overflow which leads to subsequent heap memory corruption when dealing with large (~2GB) inputs. The reallocation logic at `yajl_buf.c#L64` may result in the `need` 32bit integer wrapping to 0 when `need` approaches a value of 0x80000000 (i.e. ~2GB of data), which results in a reallocation of buf->alloc into a small heap chunk. These integers are declared as `size_t` in the 2.x branch of `yajl`, which practically prevents the issue from triggering on 64bit platforms, however this does not preclude this issue triggering on 32bit builds on which `size_t` is a 32bit integer. Subsequent population of this under-allocated heap chunk is based on the original buffer size, leading to heap memory corruption. This vulnerability mostly impacts process availability. Maintainers believe exploitation for arbitrary code execution is unlikely. A patch is available and anticipated to be part of yajl-ruby version 1.4.2. As a workaround, avoid passing large inputs to YAJL.
NVD | openEuler | |
---|---|---|
Confidentiality | None | None |
Attack Vector | Network | Network |
CVSS评分 | 7.5 | 7.5 |
Attack Complexity | Low | Low |
Privileges Required | None | None |
Scope | Unchanged | Unchanged |
Integrity | None | None |
User Interaction | None | None |
Availability | High | High |
公告名 | 概要 | 发布时间 |
---|---|---|
KylinSec-SA-2022-1724 | rubygem-yajl-ruby security update | 2022年7月15日 |
KylinSec-SA-2022-2075 | yajl security update | 2022年9月16日 |
产品 | 包 | 状态 |
---|---|---|
KY3.4-4A | rubygem-yajl-ruby | Fixed |
KY3.4-5A | rubygem-yajl-ruby | Fixed |
KY3.5.1 | rubygem-yajl-ruby | Fixed |