Bug 1919923 (CVE-2020-26421)

Summary: CVE-2020-26421 wireshark: USB HID dissector crash (wnpa-sec-2020-17)
Product: [Other] Security Response Reporter: Dhananjay Arunesh <darunesh>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED WONTFIX QA Contact:
Severity: low Docs Contact:
Priority: low    
Version: unspecifiedCC: alekcejk, denis, huzaifas, lemenkov, mruprich, msehnout, peter, rvokal, sergey.avseyev
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: wireshark 3.2.9, wireshark 3.4.1 Doc Type: If docs needed, set a value
Doc Text:
A heap buffer overflow was discovered in the USB HID dissector of Wireshark while decoding packets captured in a pcap file or coming from the network. A remote attacker may abuse this flaw by sending specially crafted packets that, when processed, would make Wireshark crash resulting in a denial of service. The highest threat from this vulnerability is to system availability.
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-06-29 20:59:02 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1919926, 1923659    
Bug Blocks: 1919925    

Comment 1 Dhananjay Arunesh 2021-01-25 12:02:50 UTC
Created wireshark tracking bugs for this issue:

Affects: fedora-all [bug 1919926]

Comment 2 Mauro Matteo Cascella 2021-02-01 16:55:22 UTC
External References:

https://www.wireshark.org/security/wnpa-sec-2020-17

Comment 6 Mauro Matteo Cascella 2021-02-03 17:50:59 UTC
The USB HID dissector (epan/dissectors/packet-usb-hid.c) ends up calling decode_bits_in_field() (via proto_tree_add_bits_item) with a large data_size. Since decode_bits_in_field() did not check the passed argument, this could lead to a heap based buffer overflow when trying to access the 'str' buffer, allocated in the same function through wmem_alloc0().