Bug ID |
12408
|
Summary |
Infinite loop in parse_wbxml_tag_defined() in WBXML Dissector
|
Product |
Wireshark
|
Version |
1.12.8
|
Hardware |
x86
|
OS |
All
|
Status |
UNCONFIRMED
|
Severity |
Normal
|
Priority |
Low
|
Component |
Dissection engine (libwireshark)
|
Assignee |
[email protected]
|
Reporter |
[email protected]
|
Created attachment 14535 [details]
Sample generated by AFL
Build Information:
TShark 1.12.8 (v1.12.8-1-ge00f6ec from unknown)
Copyright 1998-2015 Gerald Combs <[email protected]> and contributors.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiled (64-bit) with GLib 2.48.0, with libpcap, with libz 1.2.8, with POSIX
capabilities (Linux), with libnl 3, without SMI, with c-ares 1.11.0, without
Lua, without Python, with GnuTLS 3.4.11, with Gcrypt 1.7.0, with MIT Kerberos,
with GeoIP.
Running on Linux 4.5.1-1-ARCH, with locale en_US.utf8, with libpcap version
1.7.4, with libz 1.2.8.
Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
Built using gcc 5.3.0.
--
This issue was uncovered with AFL (http://lcamtuf.coredump.cx/afl/)
This infinite loop is caused by an integer overflow. When a byte read by
tvb_get_guintvar() in sic10_opaque_binary_attr() returns a large integer
(0xffffffd9 in the attached sample) it is makes it way back into
parse_wbxml_tag_defined() where it is eventually used to calculate the offset
of the next tag at parse_wbxml_tag_defined(). When it overflows, it reverts
back to a previous tag which leads to the infinite loop.
This issue is demonstrated in the attached pcap which contains a single packet
that causes 1 million lines of output.
Credit goes to Chris Benedict, Aurelien Delaitre, NIST SAMATE Project,
https://samate.nist.gov
You are receiving this mail because:
- You are watching all bug changes.