From 155ac9319117fa3fd4f262ecefe23c34d263af56 Mon Sep 17 00:00:00 2001 From: Soumya Sambu Date: Fri, 10 Oct 2025 21:31:45 +0530 Subject: [PATCH] iniparser: Fix CVE-2025-0633 Heap-based Buffer Overflow vulnerability in iniparser_dumpsection_ini() in iniparser allows attacker to read out of bound memory References: https://nvd.nist.gov/vuln/detail/CVE-2025-0633 https://security-tracker.debian.org/tracker/CVE-2025-0633 Upstream patch: https://gitlab.com/iniparser/iniparser/-/commit/072a39a772a38c475e35a1be311304ca99e9de7f Signed-off-by: Soumya Sambu Signed-off-by: Gyorgy Sarvari --- .../iniparser/iniparser/CVE-2025-0633.patch | 38 +++++++++++++++++++ .../iniparser/iniparser_4.1.bb | 1 + 2 files changed, 39 insertions(+) create mode 100644 meta-oe/recipes-support/iniparser/iniparser/CVE-2025-0633.patch diff --git a/meta-oe/recipes-support/iniparser/iniparser/CVE-2025-0633.patch b/meta-oe/recipes-support/iniparser/iniparser/CVE-2025-0633.patch new file mode 100644 index 0000000000..acf744049b --- /dev/null +++ b/meta-oe/recipes-support/iniparser/iniparser/CVE-2025-0633.patch @@ -0,0 +1,38 @@ +From 072a39a772a38c475e35a1be311304ca99e9de7f Mon Sep 17 00:00:00 2001 +From: Lars Möllendorf +Date: Sun, 26 Jan 2025 08:48:23 +0100 +Subject: [PATCH] Fix heap overflow in `iniparser_dumpsection_ini()` + +...reported in #177 + +As suggested by the issue reporter this is fixed by returning from +`iniparser_dumpsection_ini()` in case the length of the passed section name +of dictionary to dump was bigger than the size of the internal buffer used +to copy this string to. + +Changelog: changed + +CVE: CVE-2025-0633 + +Upstream-Status: Backport [https://gitlab.com/iniparser/iniparser/-/commit/072a39a772a38c475e35a1be311304ca99e9de7f] + +Signed-off-by: Soumya Sambu +--- + src/iniparser.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/iniparser.c b/src/iniparser.c +index dbceb20..2aeecf4 100644 +--- a/src/iniparser.c ++++ b/src/iniparser.c +@@ -301,6 +301,7 @@ void iniparser_dumpsection_ini(const dictionary * d, const char * s, FILE * f) + + if (d==NULL || f==NULL) return ; + if (! iniparser_find_entry(d, s)) return ; ++ if (strlen(s) > sizeof(keym)) return; + + seclen = (int)strlen(s); + fprintf(f, "\n[%s]\n", s); +-- +2.40.0 + diff --git a/meta-oe/recipes-support/iniparser/iniparser_4.1.bb b/meta-oe/recipes-support/iniparser/iniparser_4.1.bb index 7c23b514bd..9d433047a9 100644 --- a/meta-oe/recipes-support/iniparser/iniparser_4.1.bb +++ b/meta-oe/recipes-support/iniparser/iniparser_4.1.bb @@ -12,6 +12,7 @@ SRC_URI = "git://github.com/ndevilla/iniparser.git;protocol=https;branch=master file://0001-iniparser.pc-Make-libpath-a-variable.patch \ file://Add-CMake-support.patch \ file://CVE-2023-33461.patch \ + file://CVE-2025-0633.patch \ " SRCREV= "deb85ad4936d4ca32cc2260ce43323d47936410d"