Wireshark 1.12.0 < 1.12.12 - NDS Dissector Denial of Service

  • 作者: Chris Benedict
    日期: 2016-08-03
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/40194/
  • Sample generated with AFL
    
    Build Information:
    TShark 1.12.9 (v1.12.9-0-gfadb421 from (HEAD)
    
    Copyright 1998-2015 Gerald Combs <gerald@wireshark.org> 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.1, 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.13, with Gcrypt 1.7.1, with MIT Kerberos,
    with GeoIP.
    
    Running on Linux 4.6.2-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 clang 4.2.1 Compatible Clang 3.8.0 (tags/RELEASE_380/final).
    --
    This issue was uncovered with AFL (http://lcamtuf.coredump.cx/afl/)
    
    There is a bug in dissect_nds_request located in epan/dissectors/packet-ncp2222.inc.
    
    dissect_nds_request attempts to call ptvcursor_free() near packet-ncp2222.inc:11806 using the variable ptvc that is set to null at the start of dissect_nds_request. Using the attached sample, the only place ptvc could be set (~ncp2222.inc:11618) is never executed and thus ptvc remains a null pointer.
    
    Credit goes to Chris Benedict, Aurelien Delaitre, NIST SAMATE Project, https://samate.nist.gov
    
    
    Proof of Concept:
    https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/40194.zip