• CVE-2022-24795

发布时间: 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.

CVSS v3 指标

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