usb: atm: ueagle-atm: reject descriptors that confuse probe and disconnect (Linux Linux)

CVE-2026-68344
Non disponible

En bref

Source
NVD
EPSS
EPSS 0.22 % · centile 12 ()
État
PUBLISHED
Publiée
Mise à jour
Attribuée par
Linux
Statut NVD
Received

Description

In the Linux kernel, the following vulnerability has been resolved: usb: atm: ueagle-atm: reject descriptors that confuse probe and disconnect uea_probe() distinguishes a pre-firmware device from a post-firmware one using the USB id (UEA_IS_PREFIRM()), and stores a different object as the interface data in each case: a 'struct completion' for a pre-firmware device (to be waited on in .disconnect()), or a 'struct usbatm_data' for a post-firmware one. uea_disconnect() instead tells the two apart by the number of interfaces of the active configuration (a pre-firmware device exposes a single interface, ADI930 has 2 and eagle has 3), and casts the interface data accordingly. Because the two handlers use different criteria, a crafted device that advertises a pre-firmware id together with a multi-interface descriptor (or a post-firmware id with a single interface) makes them disagree: the small 'struct completion' stored by uea_probe() is then passed to usbatm_usb_disconnect(), which casts it to 'struct usbatm_data' and takes instance->serialize, reading past the end of the allocation: BUG: KASAN: slab-out-of-bounds in __mutex_lock+0x152a/0x1b80 Read of size 8 at addr ffff8880470e2c60 by task kworker/1:2/982 ... __mutex_lock+0x152a/0x1b80 usbatm_usb_disconnect+0x70/0x820 uea_disconnect+0x133/0x2c0 usb_unbind_interface+0x1dd/0x9e0 ... which belongs to the cache kmalloc-96 of size 96 The buggy address is located 0 bytes to the right of allocated 96-byte region [ffff8880470e2c00, ffff8880470e2c60) Reject such inconsistent descriptors in uea_probe() so that both handlers always make the same pre/post-firmware decision.

Références

Références européennes

Avis du CERT-FR

Produits affectés

ProduitVersions
Linux · Linuxaffected d85f19aaef42a03e3e4765d659c761c8750a7f23 < 9e7312844429379108ea9523a5ed934f142bb177 ; affected 76861031b43a18065d13f9ffb8595d25c7576005 < f92832262718443feb4e5df2bf70424ba842629e ; affected bbfedc84714064ea4845e6b76f96316eb5bb65d8 < e814ae925f6f575325124c29dde518b92c822b83 ; affected f2a6abc670104fc3e383ee3b1cf35c070485e3df < c035b1198906dd5bd3df9a3045b59254bad1ea7a ; affected c581e30ae5b332d8acef64475a211b3f82099941 < 9904a46401198872ab3de34fd11f383831ef3428 ; affected 509b51327320bdeaef1969248177a446ded073ab < d0a57f19fe2865b9747484f5f9c631f944ed9a0f
Linux · Linuxaffected 5.10.261 < 5.10.265 ; affected 5.15.212 < 5.15.216 ; affected 6.1.178 < 6.1.183 ; affected 6.6.145 < 6.6.148 ; affected 6.12.97 < 6.12.101 ; affected 6.18.40 < 6.18.42

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
CERT-FR (ANSSI)Licence Ouverte / Etalab 2.0
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD