package/raptor: add patches for CVE-2024-57822, CVE-2024-57823

This fixes the following vulnerabilities:
- CVE-2024-57822:
    In Raptor RDF Syntax Library through 2.0.16, there is a heap-based
    buffer over-read when parsing triples with the nquads parser in
    raptor_ntriples_parse_term_internal().
    https://www.cve.org/CVERecord?id=CVE-2024-57822

- CVE-2024-57823:
    In Raptor RDF Syntax Library through 2.0.16, there is an integer
    underflow when normalizing a URI with the turtle parser in
    raptor_uri_normalize_path().
    https://www.cve.org/CVERecord?id=CVE-2024-57823

Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
(cherry picked from commit e94cd21e7b)
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
This commit is contained in:
Titouan Christophe
2025-10-03 14:54:00 +02:00
committed by Thomas Perale
parent 1e6729bfbc
commit f43b433360
3 changed files with 78 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
From ece2c79df43091686a538b8231cf387d84bfa60e Mon Sep 17 00:00:00 2001
From: Dave Beckett <dave@dajobe.org>
Date: Fri, 7 Feb 2025 11:38:34 -0800
Subject: [PATCH] Fix Github issue 70 B) Heap read buffer overflow in ntriples
bnode
(raptor_ntriples_parse_term_internal): Only allow looking at the last
character of a bnode ID only if bnode length >0
CVE: CVE-2024-57822
Upstream: https://github.com/dajobe/raptor/commit/ece2c79df43091686a538b8231cf387d84bfa60e
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
src/raptor_ntriples.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/raptor_ntriples.c b/src/raptor_ntriples.c
index 3276e790..ecc4247c 100644
--- a/src/raptor_ntriples.c
+++ b/src/raptor_ntriples.c
@@ -212,7 +212,7 @@ raptor_ntriples_parse_term_internal(raptor_world* world,
locator->column--;
locator->byte--;
}
- if(term_class == RAPTOR_TERM_CLASS_BNODEID && dest[-1] == '.') {
+ if(term_class == RAPTOR_TERM_CLASS_BNODEID && position > 0 && dest[-1] == '.') {
/* If bnode id ended on '.' move back one */
dest--;

View File

@@ -0,0 +1,43 @@
From da7a79976bd0314c23cce55d22495e7d29301c44 Mon Sep 17 00:00:00 2001
From: Dave Beckett <dave@dajobe.org>
Date: Thu, 6 Feb 2025 21:12:37 -0800
Subject: [PATCH] Fix Github issue 70 A) Integer Underflow in
raptor_uri_normalize_path()
(raptor_uri_normalize_path): Return empty buffer if path gets to 0
length
CVE: CVE-2024-57823
Upstream: https://github.com/dajobe/raptor/commit/da7a79976bd0314c23cce55d22495e7d29301c44
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
src/raptor_rfc2396.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/raptor_rfc2396.c b/src/raptor_rfc2396.c
index 8cc364f4..f8ec5798 100644
--- a/src/raptor_rfc2396.c
+++ b/src/raptor_rfc2396.c
@@ -351,6 +351,10 @@ raptor_uri_normalize_path(unsigned char* path_buffer, size_t path_len)
*dest++ = *s++;
*dest = '\0';
path_len -= len;
+ if(path_len <= 0) {
+ *path_buffer = '\0';
+ return 0;
+ }
if(p && p < prev) {
/* We know the previous prev path component and we didn't do
@@ -390,6 +394,10 @@ raptor_uri_normalize_path(unsigned char* path_buffer, size_t path_len)
/* Remove <component>/.. at the end of the path */
*prev = '\0';
path_len -= (s-prev);
+ if(path_len <= 0) {
+ *path_buffer = '\0';
+ return 0;
+ }
}

View File

@@ -14,6 +14,11 @@ RAPTOR_CPE_ID_VENDOR = librdf
RAPTOR_CPE_ID_PRODUCT = raptor_rdf_syntax_library
RAPTOR_INSTALL_STAGING = YES
# 0003-Fix-Heap-read-buffer-overflow-in-ntriples-bnode.patch
RAPTOR_IGNORE_CVES += CVE-2024-57822
# 0004-Fix-integer-underflow-in-raptor_uri_normalize_path.patch
RAPTOR_IGNORE_CVES += CVE-2024-57823
# Flag is added to make sure the patch is applied for the configure.ac of raptor.
RAPTOR_AUTORECONF = YES