yajl-2.1.0-13.el8
- fix CVE-2022-24795 - Related: RHEL-18753 Signed-off-by: Jindrich Novy <jnovy@redhat.com>
This commit is contained in:
parent
8c1f8f301b
commit
16a89307af
38
yajl-2.1.0-CVE-2022-24795.patch
Normal file
38
yajl-2.1.0-CVE-2022-24795.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
From d3a528c788ba9e531fab91db41d3a833c54da325 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jacek Tomasiak <jacek.tomasiak@gmail.com>
|
||||||
|
Date: Thu, 12 May 2022 13:02:47 +0200
|
||||||
|
Subject: [PATCH] Fix CVE-2022-24795 (from brianmario/yajl-ruby)
|
||||||
|
|
||||||
|
The buffer reallocation could cause heap corruption because of `need`
|
||||||
|
overflow for large inputs. In addition, there's a possible infinite loop
|
||||||
|
in case `need` reaches zero.
|
||||||
|
|
||||||
|
The fix is to `abort()` if the loop ends with lower value of `need` than
|
||||||
|
when it started.
|
||||||
|
---
|
||||||
|
src/yajl_buf.c | 10 +++++++++-
|
||||||
|
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
Index: yajl-2.1.0/src/yajl_buf.c
|
||||||
|
===================================================================
|
||||||
|
diff -up yajl-2.1.0/src/yajl_buf.c.CVE-2022-24795 yajl-2.1.0/src/yajl_buf.c
|
||||||
|
--- yajl-2.1.0/src/yajl_buf.c.CVE-2022-24795 2024-01-05 14:37:48.291676702 +0100
|
||||||
|
+++ yajl-2.1.0/src/yajl_buf.c 2024-01-05 14:38:48.088674110 +0100
|
||||||
|
@@ -45,7 +45,16 @@ int yajl_buf_ensure_available(yajl_buf b
|
||||||
|
|
||||||
|
need = buf->len;
|
||||||
|
|
||||||
|
- while (want >= (need - buf->used)) need <<= 1;
|
||||||
|
+ while (need > 0 && want >= (need - buf->used)) {
|
||||||
|
+ /* this eventually "overflows" to zero */
|
||||||
|
+ need <<= 1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* overflow */
|
||||||
|
+ if (need < buf->len) {
|
||||||
|
+ abort();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (need < buf->used) {
|
||||||
|
return -1;
|
||||||
|
}
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
Name: yajl
|
Name: yajl
|
||||||
Version: 2.1.0
|
Version: 2.1.0
|
||||||
Release: 12%{?dist}
|
Release: 13%{?dist}
|
||||||
Summary: Yet Another JSON Library (YAJL)
|
Summary: Yet Another JSON Library (YAJL)
|
||||||
|
|
||||||
License: ISC
|
License: ISC
|
||||||
@ -26,6 +26,7 @@ Patch4: %{name}-%{version}-dynlink-binaries.patch
|
|||||||
Patch5: https://github.com/containers/yajl/commit/49923ccb2143e36850bcdeb781e2bcdf5ce22f15.patch
|
Patch5: https://github.com/containers/yajl/commit/49923ccb2143e36850bcdeb781e2bcdf5ce22f15.patch
|
||||||
Patch6: https://github.com/openEuler-BaseService/yajl/commit/3d65cb0c6db4d433e5e42ee7d91d8a04e21337cf.patch
|
Patch6: https://github.com/openEuler-BaseService/yajl/commit/3d65cb0c6db4d433e5e42ee7d91d8a04e21337cf.patch
|
||||||
Patch7: https://github.com/openEuler-BaseService/yajl/commit/23a122eddaa28165a6c219000adcc31ff9a8a698.patch
|
Patch7: https://github.com/openEuler-BaseService/yajl/commit/23a122eddaa28165a6c219000adcc31ff9a8a698.patch
|
||||||
|
Patch8: yajl-2.1.0-CVE-2022-24795.patch
|
||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
@ -56,6 +57,7 @@ necessary for developing against the YAJL library
|
|||||||
%patch5 -p1
|
%patch5 -p1
|
||||||
%patch6 -p1
|
%patch6 -p1
|
||||||
%patch7 -p1
|
%patch7 -p1
|
||||||
|
%patch8 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# NB, we are not using upstream's 'configure'/'make'
|
# NB, we are not using upstream's 'configure'/'make'
|
||||||
@ -100,6 +102,10 @@ cd test
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jan 05 2024 Jindrich Novy <jnovy@redhat.com> - 2.1.0-13
|
||||||
|
- fix CVE-2022-24795
|
||||||
|
- Related: RHEL-18753
|
||||||
|
|
||||||
* Wed Jul 12 2023 Jindrich Novy <jnovy@redhat.com> - 2.1.0-12
|
* Wed Jul 12 2023 Jindrich Novy <jnovy@redhat.com> - 2.1.0-12
|
||||||
- fix CVE-2023-33460
|
- fix CVE-2023-33460
|
||||||
- Resolves: #2221252
|
- Resolves: #2221252
|
||||||
|
Loading…
Reference in New Issue
Block a user