blob: 1f259d34db9798ab085b243ecc4e1f4acd2bd70e [file] [log] [blame]
Patrick Williamsf1e5d692016-03-30 15:21:19 -05001From f1aac7d933819569bf6f347c3c0d5a64a90bbce0 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Hanno=20B=C3=B6ck?= <hanno@hboeck.de>
3Date: Thu, 19 Nov 2015 20:03:10 +0100
4Subject: [PATCH] dpkg-deb: Fix off-by-one write access on ctrllenbuf variable
5
6This affects old format .deb packages.
7
8Fixes: CVE-2015-0860
9Warned-by: afl
10Signed-off-by: Guillem Jover <guillem@debian.org>
11
12Upstream-Status: Backport
13
14https://anonscm.debian.org/cgit/dpkg/dpkg.git/commit/?h=wheezy&id=f1aac7d933819569bf6f347c3c0d5a64a90bbce0
15
16CVE: CVE-2015-0860
17
18hand merge Changelog
19
20Signed-off-by: Armin Kuster <akuster@mvista.com>
21
22---
23 debian/changelog | 3 +++
24 dpkg-deb/extract.c | 2 +-
25 2 files changed, 4 insertions(+), 1 deletion(-)
26
27Index: dpkg-1.18.2/dpkg-deb/extract.c
28===================================================================
29--- dpkg-1.18.2.orig/dpkg-deb/extract.c
30+++ dpkg-1.18.2/dpkg-deb/extract.c
31@@ -247,7 +247,7 @@ extracthalf(const char *debar, const cha
32 if (errstr)
33 ohshit(_("archive has invalid format version: %s"), errstr);
34
35- r = read_line(arfd, ctrllenbuf, 1, sizeof(ctrllenbuf));
36+ r = read_line(arfd, ctrllenbuf, 1, sizeof(ctrllenbuf) - 1);
37 if (r < 0)
38 read_fail(r, debar, _("archive control member size"));
39 if (sscanf(ctrllenbuf, "%jd%c%d", &ctrllennum, &nlc, &dummy) != 2 ||
40Index: dpkg-1.18.2/ChangeLog
41===================================================================
42--- dpkg-1.18.2.orig/ChangeLog
43+++ dpkg-1.18.2/ChangeLog
44@@ -1,3 +1,8 @@
45+[ Guillem Jover ]
46+ * Fix an off-by-one write access in dpkg-deb when parsing the old format
47+ .deb control member size. Thanks to Hanno Bรถck <hanno@hboeck.de>.
48+ Fixes CVE-2015-0860.
49+
50 commit 5459d330c73cdcfd1327bc93c0ebddc2da4a3a3a (HEAD -> master, tag: 1.18.2)
51 Author: Guillem Jover <guillem@debian.org>
52 Date: Mon Aug 3 15:41:05 2015 +0200