Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

debian логотип

CVE-2022-24795

Опубликовано: 05 апр. 2022
Источник: debian
EPSS Низкий

Описание

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.

Пакеты

ПакетСтатусВерсия исправленияРелизТип
ruby-yajlfixed1.4.3-1package
ruby-yajlno-dsabullseyepackage
ruby-yajlno-dsabusterpackage
ruby-yajlno-dsastretchpackage
yajlfixed2.1.0-4package
yajlfixed2.1.0-3+deb12u2bookwormpackage
yajlfixed2.1.0-3+deb11u2bullseyepackage
burpfixed3.1.4-2package
burpno-dsabookwormpackage
burpno-dsabullseyepackage
epics-basenot-affectedpackage
r-cran-jsonlitefixed1.8.8+dfsg-1package
r-cran-jsonliteno-dsabookwormpackage
r-cran-jsonliteno-dsabullseyepackage
r-cran-jsonliteno-dsabusterpackage
xqillanot-affectedpackage

Примечания

  • xqilla's embedded yajl is ancient (around 0.2.2), not having the vulnerable code

  • https://github.com/brianmario/yajl-ruby/security/advisories/GHSA-jj47-x69x-mxrm

  • https://github.com/brianmario/yajl-ruby/commit/7168bd79b888900aa94523301126f968a93eb3a6

  • https://github.com/brianmario/yajl-ruby/commit/e8de283a6d64f0902740fd09e858fc3d7d803161

  • https://github.com/lloyd/yajl/issues/239

  • burp fix: https://github.com/grke/burp/commit/5ce44cdf7018767b53a4c5466c62e4dc99d0bc93

  • epics-base: https://github.com/epics-base/epics-base/issues/405

  • r-cran-jsonlite: https://github.com/jeroen/jsonlite/issues/431

  • r-cran-jsonlite: https://github.com/jeroen/jsonlite/commit/e425ef9cb39500687d83654a565c8abd203ff8ba (v1.8.8)

EPSS

Процентиль: 77%
0.01099
Низкий

Связанные уязвимости

CVSS3: 5.9
ubuntu
больше 3 лет назад

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...

CVSS3: 5.9
redhat
больше 3 лет назад

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...

CVSS3: 5.9
nvd
больше 3 лет назад

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 an

CVSS3: 7.5
msrc
больше 3 лет назад

Описание отсутствует

suse-cvrf
почти 3 года назад

Security update for libyajl

EPSS

Процентиль: 77%
0.01099
Низкий