[packages/diffutils] Rel 2; fixes CVE-2026-53910
arekm
arekm at pld-linux.org
Mon Aug 31 15:46:33 CEST 2026
commit 2715f55825185a9f796141a7469fcc498b1b1af9
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Mon Aug 31 15:46:02 2026 +0200
Rel 2; fixes CVE-2026-53910
diffutils-CVE-2026-53910.patch | 36 ++++++++++++++++++++++++++++++++++++
diffutils.spec | 4 +++-
2 files changed, 39 insertions(+), 1 deletion(-)
---
diff --git a/diffutils.spec b/diffutils.spec
index 1feb39c..0a912c9 100644
--- a/diffutils.spec
+++ b/diffutils.spec
@@ -5,7 +5,7 @@ Summary(pl.UTF-8): Narzędzia diff GNU
Summary(tr.UTF-8): GNU dosya karşılaştırma araçları
Name: diffutils
Version: 3.12
-Release: 1
+Release: 2
License: GPL v3+
Group: Applications/Text
Source0: https://ftp.gnu.org/gnu/diffutils/%{name}-%{version}.tar.xz
@@ -13,6 +13,7 @@ Source0: https://ftp.gnu.org/gnu/diffutils/%{name}-%{version}.tar.xz
Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
# Source1-md5: 34a7ab56f975ff7e439ea13923ec8ae4
Patch0: %{name}-info.patch
+Patch1: %{name}-CVE-2026-53910.patch
URL: http://www.gnu.org/software/diffutils/
BuildRequires: autoconf >= 2.64
BuildRequires: automake >= 1:1.11
@@ -61,6 +62,7 @@ plików.
%prep
%setup -q
%patch -P0 -p1
+%patch -P1 -p1
%build
%{__aclocal} -I m4
diff --git a/diffutils-CVE-2026-53910.patch b/diffutils-CVE-2026-53910.patch
new file mode 100644
index 0000000..3c30d4d
--- /dev/null
+++ b/diffutils-CVE-2026-53910.patch
@@ -0,0 +1,36 @@
+From GNU diffutils upstream, backported to 3.12.
+
+diff3: check for integer overflows when reading line numbers from diff
+
+Multiple signed integer overflows in readnum() let crafted diff output
+produce corrupted line numbers, which are then used for memory allocation
+and loop bounds, giving heap-based out-of-bounds writes.
+
+CVE-2026-53910. Reported by Michal Majchrowicz.
+
+Squashed from two upstream commits, NEWS/THANKS hunks dropped:
+https://cgit.git.savannah.gnu.org/cgit/diffutils.git/commit/?id=73ed7ce85cc78effb94daf028c9af6b4e5252e50
+https://cgit.git.savannah.gnu.org/cgit/diffutils.git/commit/?id=9ff04d5b84743e331e80b589335a52c5480d1815
+
+--- diffutils-3.12/src/diff3.c
++++ diffutils-3.12/src/diff3.c
+@@ -1020,11 +1020,18 @@
+
+ do
+ {
+- num = c - '0' + num * 10;
++ if (ckd_mul (&num, num, 10) || ckd_add (&num, num, c - '0'))
++ return nullptr;
+ c = *++s;
+ }
+ while (c_isdigit (c));
+
++ /* Simplify overflow checking later, so that we can always add a
++ line number and a line count, or subtract two line numbers and
++ add 1 to the result, without worrying about overflow. */
++ if (LIN_MAX / 2 < num)
++ return nullptr;
++
+ *pnum = num;
+ return s;
+ }
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/diffutils.git/commitdiff/2715f55825185a9f796141a7469fcc498b1b1af9
More information about the pld-cvs-commit
mailing list