PYSEC-2026-3978
Quick fix
PYSEC-2026-3978 — libusb: upgrade to the fixed version with the command below.
pip install --upgrade 'libusb>=1.0.30'Details
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.
Are you affected?
Enter the version of the package you're using.
Affected packages
References
- https://github.com/libusb/libusb/releases/tag/v1.0.30[ADVISORY]
- https://github.com/libusb/libusb/issues/1813[REPORT]
- https://github.com/libusb/libusb/commit/578ab76b4c434f8b204137ab6d7310689c7a9704[FIX]
- https://github.com/libusb/libusb/pull/1814[FIX]
- https://www.vulncheck.com/advisories/libusb-null-pointer-dereference-in-parse-interface[FIX]