Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-bugs: [Wireshark-bugs] [Bug 12561] New: DCE/RPC dissector crashes when stub-data is mi

Date: Mon, 27 Jun 2016 10:45:38 +0000
Bug ID 12561
Summary DCE/RPC dissector crashes when stub-data is missing but a sub-dissector has been registered
Product Wireshark
Version 2.0.3
Hardware x86
OS Windows 7
Status UNCONFIRMED
Severity Major
Priority Low
Component Dissection engine (libwireshark)
Assignee [email protected]
Reporter [email protected]

Created attachment 14683 [details]
Shows the error of DCE/RPC packet without stub data

Build Information:
Version 2.0.3-ETAS-NE-r101 (Git Rev Unknown from unknown)

Copyright 1998-2016 Gerald Combs <[email protected]> and contributors.
License GPLv2+: GNU GPL version 2 or later
<http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>
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 GTK+ 2.24.23, with Cairo 1.12.16, with Pango 1.36.8,
with
WinPcap (4_1_3), with libz 1.2.8, with GLib 2.42.0, with SMI 0.4.8, with c-ares
1.9.1, with Lua 5.2, with GnuTLS 3.2.15, with Gcrypt 1.6.2, with MIT Kerberos,
with GeoIP, with PortAudio V19-devel (built May 31 2016), with AirPcap.

Running on 64-bit Windows 7 Service Pack 1, build 7601, with locale
German_Germany.1252, with WinPcap version 4.1.3 (packet.dll version
4.1.0.2980),
based on libpcap version 1.0 branch 1_0_rel0b (20091008), with GnuTLS 3.2.15,
with Gcrypt 1.6.2, without AirPcap.
Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz (with SSE4.2), with 16324MB of physical
memory.


Built using Microsoft Visual C++ 12.0 build 40629

Wireshark is Open Source Software released under the GNU General Public
License.

Check the man page and http://www.wireshark.org for more information.
--
Our Wireshark installation is based on V2.0.3, for which we built some custom
dissectors. One custom dissector attaches on top of the DCE/RPC protocol for
some specific UUID's using dcerpc_init_uuid() for a range of opnums.

For now my sub-dissector only returns the provided tvb offset, so it does not
really dissect the packet. The requests and responses for the registered UUID's
are passed to the corresponding sub-dissector correctly in case the DCE/RPC
packet contains some stub data. 

In case the packet does not contain stub data then the DCE/RPC dissector
crashes somewhere between adding the sub-dissector's name to the INFO column
and calling the sub-dissector. Since I'm only able to build and debug our own
plugins but not libwireshark itself, I can't precisely locate the root cause.
However, I suggest it's the call into proto_tree_add_item() with an invalid tvb
(since the proto item does not show up in the protocol tree).

I attached a screenshot of both a packet with stub data and a packet without
stub data showing the error.


You are receiving this mail because:
  • You are watching all bug changes.