---
id: CVE-2026-47104
title: >-
  libusb before version 1.0.30 contains a one-byte out-of-bounds read
  vulnerability in parse_iad_array() in descriptor.c that allows attackers to
  trigger a denial of service by supplying a malformed USB descriptor whose
  bLength equals size…
summary: >-
  libusb before version 1.0.30 contains a one-byte out-of-bounds read
  vulnerability in parse_iad_array() in descriptor.c that allows attackers to
  trigger a denial of service by supplying a malformed USB descriptor whose
  bLength equals size…
severity: medium
cvss: 4
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L'
cwe:
  - CWE-125
vendor: libusb
product: libusb
affected:
  - libusb < 1.0.30
patched:
  - libusb 1.0.30
published: '2026-05-27'
updated: '2026-10-14'
sourceUpdated: '2026-10-14T20:10:00.190'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-47104'
references:
  - url: >-
      https://github.com/libusb/libusb/commit/578ab76b4c434f8b204137ab6d7310689c7a9704
    label: disclosure@vulncheck.com
  - url: 'https://github.com/libusb/libusb/issues/1813'
    label: disclosure@vulncheck.com
  - url: 'https://github.com/libusb/libusb/pull/1814'
    label: disclosure@vulncheck.com
  - url: 'https://github.com/libusb/libusb/releases/tag/v1.0.30'
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/libusb-out-of-bounds-read-in-parse-iad-array
    label: disclosure@vulncheck.com
tags:
  - nvd
  - osv
  - pip
epss: 0.0013
epssPercentile: 0.02611
aliases:
  - PYSEC-2026-3979
ecosystem: pip
scores:
  nvd: 4
  osv: 5.5
ingestedAt: '2026-09-12T03:13:01.743Z'
---

## Overview

libusb before version 1.0.30 contains a one-byte out-of-bounds read vulnerability in parse_iad_array() in descriptor.c that allows attackers to trigger a denial of service by supplying a malformed USB descriptor whose bLength equals size minus one, causing the bounds check to use the original buffer size instead of the remaining size. Attackers in virtualized environments with USB passthrough can supply crafted descriptors through libusb_get_active_interface_association_descriptors or libusb_get_interface_association_descriptors to read one byte past the end of the malloc allocation, resulting in a denial of service.

## Affected

- `libusb < 1.0.30`

## Remediation

Upgrade past the affected range:

- `libusb 1.0.30`

## Package advisory (CVE-2026-47104)

Affected packages:

- `libusb < 1.0.30`

Patched in:

- `libusb 1.0.30`

Source: https://osv.dev/vulnerability/PYSEC-2026-3979
