Skip to content

Commit

Permalink
libyang: fix CVE-2023-26917
Browse files Browse the repository at this point in the history
libyang from v2.0.164 to v2.1.30 was discovered to contain a NULL
pointer dereference via the function lysp_stmt_validate_value at
lys_parse_mem.c.

References:
CESNET/libyang#1987

Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
  • Loading branch information
yogi-u authored and akuster committed Jul 25, 2023
1 parent 8ab74be commit 3d16ba1
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 0 deletions.
40 changes: 40 additions & 0 deletions meta-oe/recipes-extended/libyang/libyang/CVE-2023-26917.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
From cfa1a965a429e4bfc5ae1539a8e87a9cf71c3090 Mon Sep 17 00:00:00 2001
From: Michal Vasko <mvasko@cesnet.cz>
Date: Tue, 18 Jul 2023 10:41:21 +0000
Subject: [PATCH] parser common BUGFIX handle missing YANG strings

Fixes #1987

CVE: CVE-2023-26917

Upstream-Status:
Backport[https://github.com/CESNET/libyang/commit/cfa1a965a429e4bfc5ae1539a8e87a9cf71c3090]

Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
---
src/parser_stmt.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/src/parser_stmt.c b/src/parser_stmt.c
index 81ccbfca6..2ebf822ab 100644
--- a/src/parser_stmt.c
+++ b/src/parser_stmt.c
@@ -52,6 +52,16 @@ lysp_stmt_validate_value(struct lys_parser_ctx *ctx, enum yang_arg val_type, con
uint32_t c;
size_t utf8_char_len;

+ if (!val) {
+ if (val_type == Y_MAYBE_STR_ARG) {
+ /* fine */
+ return LY_SUCCESS;
+ }
+
+ LOGVAL_PARSER(ctx, LYVE_SYNTAX, "Missing an expected string.");
+ return LY_EVALID;
+ }
+
while (*val) {
LY_CHECK_ERR_RET(ly_getutf8(&val, &c, &utf8_char_len),
LOGVAL_PARSER(ctx, LY_VCODE_INCHAR, (val)[-utf8_char_len]), LY_EVALID);
--
2.35.5
1 change: 1 addition & 0 deletions meta-oe/recipes-extended/libyang/libyang_2.0.164.bb
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ SRC_URI = "git://github.com/CESNET/libyang.git;branch=master;protocol=https \
file://libyang-add-stdint-h.patch \
file://run-ptest \
file://CVE-2023-26916.patch \
file://CVE-2023-26917.patch \
"

S = "${WORKDIR}/git"
Expand Down

0 comments on commit 3d16ba1

Please sign in to comment.