Description
libusb before version 1.0.30 contains a NULL pointer dereference vulnerability that allows attackers to crash applications by supplying a malformed USB configuration descriptor where an interface claims bNumEndpoints greater than zero but is followed by a class-specific descriptor whose bLength exceeds the remaining buffer size, causing parse_interface() to return early without allocating the endpoint array. Attackers can exploit this flaw through libusb_get_active_config_descriptor or libusb_get_config_descriptor by providing crafted descriptors via virtualized USB passthrough, file-based descriptor parsing, or network sources, causing any application iterating over endpoints to dereference a NULL endpoint pointer and crash.
Problem types
Product status
Any version before 1.0.30
Credits
djnn
References
github.com/libusb/libusb/issues/1813
github.com/libusb/libusb/releases/tag/v1.0.30
github.com/libusb/libusb/issues/1813
github.com/libusb/libusb/pull/1814
github.com/...ommit/578ab76b4c434f8b204137ab6d7310689c7a9704
www.vulncheck.com/...-pointer-dereference-in-parse-interface