blob: 1f259d34db9798ab085b243ecc4e1f4acd2bd70e [file] [log] [blame]
From f1aac7d933819569bf6f347c3c0d5a64a90bbce0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Hanno=20B=C3=B6ck?= <hanno@hboeck.de>
Date: Thu, 19 Nov 2015 20:03:10 +0100
Subject: [PATCH] dpkg-deb: Fix off-by-one write access on ctrllenbuf variable
This affects old format .deb packages.
Fixes: CVE-2015-0860
Warned-by: afl
Signed-off-by: Guillem Jover <guillem@debian.org>
Upstream-Status: Backport
https://anonscm.debian.org/cgit/dpkg/dpkg.git/commit/?h=wheezy&id=f1aac7d933819569bf6f347c3c0d5a64a90bbce0
CVE: CVE-2015-0860
hand merge Changelog
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
debian/changelog | 3 +++
dpkg-deb/extract.c | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
Index: dpkg-1.18.2/dpkg-deb/extract.c
===================================================================
--- dpkg-1.18.2.orig/dpkg-deb/extract.c
+++ dpkg-1.18.2/dpkg-deb/extract.c
@@ -247,7 +247,7 @@ extracthalf(const char *debar, const cha
if (errstr)
ohshit(_("archive has invalid format version: %s"), errstr);
- r = read_line(arfd, ctrllenbuf, 1, sizeof(ctrllenbuf));
+ r = read_line(arfd, ctrllenbuf, 1, sizeof(ctrllenbuf) - 1);
if (r < 0)
read_fail(r, debar, _("archive control member size"));
if (sscanf(ctrllenbuf, "%jd%c%d", &ctrllennum, &nlc, &dummy) != 2 ||
Index: dpkg-1.18.2/ChangeLog
===================================================================
--- dpkg-1.18.2.orig/ChangeLog
+++ dpkg-1.18.2/ChangeLog
@@ -1,3 +1,8 @@
+[ Guillem Jover ]
+ * Fix an off-by-one write access in dpkg-deb when parsing the old format
+ .deb control member size. Thanks to Hanno Bรถck <hanno@hboeck.de>.
+ Fixes CVE-2015-0860.
+
commit 5459d330c73cdcfd1327bc93c0ebddc2da4a3a3a (HEAD -> master, tag: 1.18.2)
Author: Guillem Jover <guillem@debian.org>
Date: Mon Aug 3 15:41:05 2015 +0200