Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 837542 (CVE-2022-24795) - <dev-ruby/yajl-ruby-1.4.2: heap corruption with very large inputs
Summary: <dev-ruby/yajl-ruby-1.4.2: heap corruption with very large inputs
Status: CONFIRMED
Alias: CVE-2022-24795
Product: Gentoo Security
Classification: Unclassified
Component: Vulnerabilities (show other bugs)
Hardware: All Linux
: Normal minor (vote)
Assignee: Gentoo Security
URL:
Whiteboard: B3 [glsa? cleanup]
Keywords:
Depends on: 837578
Blocks:
  Show dependency tree
 
Reported: 2022-04-09 23:12 UTC by John Helmert III
Modified: 2022-04-15 14:00 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John Helmert III archtester Gentoo Infrastructure gentoo-dev Security 2022-04-09 23:12:13 UTC
CVE-2022-24795 (https://github.com/brianmario/yajl-ruby/security/advisories/GHSA-jj47-x69x-mxrm):

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.

Please stabilize 1.4.2 when ready.
Comment 1 Larry the Git Cow gentoo-dev 2022-04-15 14:00:15 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=05faaf0cc5e05984b65fb688fd0564dd38c5f67a

commit 05faaf0cc5e05984b65fb688fd0564dd38c5f67a
Author:     Hans de Graaff <graaff@gentoo.org>
AuthorDate: 2022-04-15 13:47:39 +0000
Commit:     Hans de Graaff <graaff@gentoo.org>
CommitDate: 2022-04-15 13:48:12 +0000

    dev-ruby/yajl-ruby: drop 1.4.1, 1.4.1-r1
    
    Closes: https://bugs.gentoo.org/837542
    Signed-off-by: Hans de Graaff <graaff@gentoo.org>

 dev-ruby/yajl-ruby/Manifest                  |  1 -
 dev-ruby/yajl-ruby/yajl-ruby-1.4.1-r1.ebuild | 39 ------------------------
 dev-ruby/yajl-ruby/yajl-ruby-1.4.1.ebuild    | 45 ----------------------------
 3 files changed, 85 deletions(-)