usb: atm: cxacru: fix a flaw in existing endpoint checks
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.4.291, 5.10.235, 5.15.179, 6.1.131, 6.6.83, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
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 ...
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 5.4.279 · fixed in 5.4.291; From 5.10.221 · fixed in 5.10.235; From 5.15.162 · fixed in 5.15.179; From 6.1.97 · fixed in 6.1.131; From 6.6.37 · fixed in 6.6.83; From 4.19.317 · fixed in 4.20; From 6.9.8 · fixed in 6.10
- Linux Linux
6.10
References 8
git.kernel.org
- stable/c/dcd592ab9dd8a2bfc36e75583b9006db2a77ec24
- stable/c/319529e0356bd904528c64647725a2272d297c83
- stable/c/bf4409f84023b52b5e9b36c0a071a121eee42138
- stable/c/197e78076c5ecd895f109158c4ea2954b9919af6
- stable/c/a0475a885d69849b1ade38add6d64338dfa83a8f
- stable/c/cfc295f7cccf66cbd5123416bcf1bee2e1bd37de
- stable/c/903b80c21458bb1e34c3a78c5fdc553821e357f8
- stable/c/c90aad369899a607cfbc002bebeafd51e31900cd