yajl-ruby C绑定到YAJL JSON解析和生成库。1。x分行和2。x的分支“yajl”包含一个整数溢出导致随后的堆内存腐败在处理大型(~ 2 gb)输入。在“yajl_buf重新分配逻辑。c# L64”可能导致“需要32位整数包装为0时的需要的方法的值0 x80000000(例如~ 2 gb的数据),从而导致缓冲区配置- > alloc堆成小块。这些整数被宣布为“size_t”2。x“yajl”的分支,它几乎可以防止这个问题引发在64位平台上,但是这并不排除这个问题引发的32位版本“size_t”是一个32位整数。后续的人口under-allocated堆块是基于原来的缓冲区大小,导致堆内存腐败。这种脆弱性主要影响过程的可用性。 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.
https://github.com/brianmario/yajl-ruby/security/advisories/GHSA-jj47-x69x-mxrm
https://github.com/brianmario/yajl-ruby/commit/7168bd79b888900aa94523301126f968a93eb3a6
https://lists.debian.org/debian-lts-announce/2023/07/msg00013.html
https://lists.fedoraproject.org/archives/list/(电子邮件保护)/信息/ KLE3C4CECEJ4EUYI56KXI6OWACWXX7WN /
https://lists.fedoraproject.org/archives/list/(电子邮件保护)/信息/ YO32YDJ74DADC7CMJNLSLBVWN5EXGF5J /
https://lists.debian.org/debian-lts-announce/2023/08/msg00003.html