CVE-2025-21916

usb: atm: cxacru: fix a flaw in existing endpoint checks

published April 1, 2025

CVSS
—
EPSS
0%
Percentile
11.9
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

usb: atm: cxacru: fix a flaw in existing endpoint checks

Syzbot once again identified a flaw in usb endpoint checking, see [1].

This time the issue stems from a commit authored by me (2eabb655a968

("usb: atm: cxacru: fix endpoint checking in cxacru_bind()")).

While using usb_find_common_endpoints() may usually be enough to

discard devices with wrong endpoints, in this case one needs more

than just finding and identifying the sufficient number of endpoints

of correct types - one needs to check the endpoint's address as well.

Since cxacru_bind() fills URBs with CXACRU_EP_CMD address in mind,

switch the endpoint verification approach to usb_check_XXX_endpoints()

instead to fix incomplete ep testing.

[1] Syzbot report:

usb 5-1: BOGUS urb xfer, pipe 3 != type 1

WARNING: CPU: 0 PID: 1378 at drivers/usb/core/urb.c:504 usb_submit_urb+0xc4e/0x18c0 drivers/usb/core/urb.c:503

...

RIP: 0010:usb_submit_urb+0xc4e/0x18c0 drivers/usb/core/urb.c:503

...

Call Trace:

<TASK>

cxacru_cm+0x3c8/0xe50 drivers/usb/atm/cxacru.c:649

cxacru_card_status drivers/usb/atm/cxacru.c:760 [inline]

cxacru_bind+0xcf9/0x1150 drivers/usb/atm/cxacru.c:1223

usbatm_usb_probe+0x314/0x1d30 drivers/usb/atm/usbatm.c:1058

cxacru_usb_probe+0x184/0x220 drivers/usb/atm/cxacru.c:1377

usb_probe_interface+0x641/0xbb0 drivers/usb/core/driver.c:396

really_probe+0x2b9/0xad0 drivers/base/dd.c:658

__driver_probe_device+0x1a2/0x390 drivers/base/dd.c:800

driver_probe_device+0x50/0x430 drivers/base/dd.c:830

...

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00221 · 11.9th percentile
Published
2025-04-01T15:40Z
EPSS history
Timeline
  • 01 APR 15:40Z
    usb: atm: cxacru: fix a flaw in existing endpoint checks
    cvelistv5