lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20070301125923.GA10682@fugu1.local>
Date: Thu, 1 Mar 2007 13:59:23 +0100
From: Moritz Jodeit <moritz@...eit.org>
To: full-disclosure@...ts.grok.org.uk
Subject: tcpdump: off-by-one heap overflow in 802.11
	printer

There's an off-by-one heap-overflow in the ieee802.11 printer,
which can be triggered by a maliciously crafted 802.11 frame.
The link type must have been explicitly specified for this to
work.

The function parse_elements() in print-802_11.c checks the
length pbody->tim.length from the frame for too small values in
line 265, but then uses the wrong variable in the following
range check in line 267. Since pbody->tim.length is defined as
a u_int8_t it can hold a maximum value of 255, which in turn
would copy 252 bytes into pbody->tim.bitmap, which is only
251 bytes of size.

253	case E_TIM:
254		/* Present, possibly truncated */
255		pbody->tim_status = TRUNCATED;
256		if (!TTEST2(*(p + offset), 2))
257			return;
258		memcpy(&pbody->tim, p + offset, 2);
259		offset += 2;
260		if (!TTEST2(*(p + offset), 3))
261			return;
262		memcpy(&pbody->tim.count, p + offset, 3);
263		offset += 3;
264
265		if (pbody->tim.length <= 3)
266			break;
267		if (pbody->rates.length > sizeof pbody->tim.bitmap)
268			return;
269		if (!TTEST2(*(p + offset), pbody->tim.length - 3))
270			return;
271		memcpy(pbody->tim.bitmap, p + (pbody->tim.length - 3),
272		    (pbody->tim.length - 3))

The current tcpdump release 3.9.5 is still vulnerable.
This got fixed [1] in CVS Head and in the tcpdump_3_9 branch.

[1] http://cvs.tcpdump.org/cgi-bin/cvsweb/tcpdump/print-802_11.c?r1=1.42&r2=1.43

Best,
Moritz Jodeit

_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ