mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-13 17:39:57 +00:00
nanopb: patch CVE-2024-53984
Details: https://nvd.nist.gov/vuln/detail/CVE-2024-53984 Pick the patch referenced by the nvd report. Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
This commit is contained in:
+36
@@ -0,0 +1,36 @@
|
|||||||
|
From 84e8fb3da74d3b83179700284ce47c98a8804ab1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Petteri Aimonen <jpa@git.mail.kapsi.fi>
|
||||||
|
Date: Sun, 1 Dec 2024 11:40:38 +0200
|
||||||
|
Subject: [PATCH] Fix memory not released on error return (GHSA-xwqq-qxmw-hj5r)
|
||||||
|
|
||||||
|
When all of the following conditions apply:
|
||||||
|
|
||||||
|
* Compile time option PB_ENABLE_MALLOC is enabled.
|
||||||
|
* Message contains at least one field with FT_POINTER field type.
|
||||||
|
* Custom stream callback is used with unknown stream length (stream.bytes_left = SIZE_MAX)
|
||||||
|
* pb_decode_ex() function is used with flag PB_DECODE_DELIMITED.
|
||||||
|
* The input message is corrupted (accidentally or maliciously) in the length prefix.
|
||||||
|
|
||||||
|
Then the pb_decode_ex() function does not automatically call pb_release(), like is done for other failure cases.
|
||||||
|
This could lead to memory leak and potential denial-of-service.
|
||||||
|
|
||||||
|
CVE: CVE-2024-53984
|
||||||
|
Upstream-Status: Backport [https://github.com/nanopb/nanopb/commit/2b86c255aa52250438d5aba124d0e86db495b378]
|
||||||
|
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
|
||||||
|
---
|
||||||
|
pb_decode.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/pb_decode.c b/pb_decode.c
|
||||||
|
index b194825..2a22607 100644
|
||||||
|
--- a/pb_decode.c
|
||||||
|
+++ b/pb_decode.c
|
||||||
|
@@ -1156,7 +1156,7 @@ bool checkreturn pb_decode_ex(pb_istream_t *stream, const pb_msgdesc_t *fields,
|
||||||
|
status = pb_decode_inner(&substream, fields, dest_struct, flags);
|
||||||
|
|
||||||
|
if (!pb_close_string_substream(stream, &substream))
|
||||||
|
- return false;
|
||||||
|
+ status = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef PB_ENABLE_MALLOC
|
||||||
@@ -4,7 +4,9 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9db4b73a55a3994384112efcdb37c01f"
|
|||||||
|
|
||||||
DEPENDS = "protobuf-native"
|
DEPENDS = "protobuf-native"
|
||||||
|
|
||||||
SRC_URI = "git://github.com/nanopb/nanopb.git;branch=master;protocol=https"
|
SRC_URI = "git://github.com/nanopb/nanopb.git;branch=master;protocol=https \
|
||||||
|
file://CVE-2024-53984.patch \
|
||||||
|
"
|
||||||
SRCREV = "c9124132a604047d0ef97a09c0e99cd9bed2c818"
|
SRCREV = "c9124132a604047d0ef97a09c0e99cd9bed2c818"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|||||||
Reference in New Issue
Block a user