---
id: CVE-2026-68344
title: 'usb: atm: ueagle-atm: reject descriptors that confuse probe and disconnect'
summary: |-
  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 (U…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= d85f19aaef42a03e3e4765d659c761c8750a7f23 <
    9e7312844429379108ea9523a5ed934f142bb177
  - >-
    Linux >= 76861031b43a18065d13f9ffb8595d25c7576005 <
    f92832262718443feb4e5df2bf70424ba842629e
  - >-
    Linux >= bbfedc84714064ea4845e6b76f96316eb5bb65d8 <
    e814ae925f6f575325124c29dde518b92c822b83
  - >-
    Linux >= f2a6abc670104fc3e383ee3b1cf35c070485e3df <
    c035b1198906dd5bd3df9a3045b59254bad1ea7a
  - >-
    Linux >= c581e30ae5b332d8acef64475a211b3f82099941 <
    9904a46401198872ab3de34fd11f383831ef3428
  - >-
    Linux >= 509b51327320bdeaef1969248177a446ded073ab <
    d0a57f19fe2865b9747484f5f9c631f944ed9a0f
  - >-
    Linux >= ddcdac47e1f2651c7be60e299f98faf981522797 <
    0cc0c4c14150bb5a16b88dd61368f96cd4caa9ce
  - >-
    Linux >= e2674dfbed8a30d57e2bc872c4bfa6c3eec918bf <
    71132cedd1ecbc4032d76e9928c18a10f7e39b80
  - Linux >= 5.10.261 < 5.10.265
  - Linux >= 5.15.212 < 5.15.216
  - Linux >= 6.1.178 < 6.1.183
  - Linux >= 6.6.145 < 6.6.148
  - Linux >= 6.12.97 < 6.12.101
  - Linux >= 6.18.40 < 6.18.42
  - Linux >= 7.1.5 < 7.1.6
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-06T16:47:34.418277Z'
published: '2026-08-10'
updated: '2026-11-06'
sourceUpdated: '2026-11-06T16:55:13.605Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-68344'
references:
  - url: 'https://git.kernel.org/stable/c/9e7312844429379108ea9523a5ed934f142bb177'
  - url: 'https://git.kernel.org/stable/c/f92832262718443feb4e5df2bf70424ba842629e'
  - url: 'https://git.kernel.org/stable/c/e814ae925f6f575325124c29dde518b92c822b83'
  - url: 'https://git.kernel.org/stable/c/c035b1198906dd5bd3df9a3045b59254bad1ea7a'
  - url: 'https://git.kernel.org/stable/c/9904a46401198872ab3de34fd11f383831ef3428'
  - url: 'https://git.kernel.org/stable/c/d0a57f19fe2865b9747484f5f9c631f944ed9a0f'
  - url: 'https://git.kernel.org/stable/c/0cc0c4c14150bb5a16b88dd61368f96cd4caa9ce'
  - url: 'https://git.kernel.org/stable/c/71132cedd1ecbc4032d76e9928c18a10f7e39b80'
tags:
  - cve.org
epss: 0.00216
epssPercentile: 0.12141
ingestedAt: '2026-11-06T18:00:12.611Z'
---

## Overview

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.

## Affected

- `Linux >= d85f19aaef42a03e3e4765d659c761c8750a7f23 < 9e7312844429379108ea9523a5ed934f142bb177`
- `Linux >= 76861031b43a18065d13f9ffb8595d25c7576005 < f92832262718443feb4e5df2bf70424ba842629e`
- `Linux >= bbfedc84714064ea4845e6b76f96316eb5bb65d8 < e814ae925f6f575325124c29dde518b92c822b83`
- `Linux >= f2a6abc670104fc3e383ee3b1cf35c070485e3df < c035b1198906dd5bd3df9a3045b59254bad1ea7a`
- `Linux >= c581e30ae5b332d8acef64475a211b3f82099941 < 9904a46401198872ab3de34fd11f383831ef3428`
- `Linux >= 509b51327320bdeaef1969248177a446ded073ab < d0a57f19fe2865b9747484f5f9c631f944ed9a0f`
- `Linux >= ddcdac47e1f2651c7be60e299f98faf981522797 < 0cc0c4c14150bb5a16b88dd61368f96cd4caa9ce`
- `Linux >= e2674dfbed8a30d57e2bc872c4bfa6c3eec918bf < 71132cedd1ecbc4032d76e9928c18a10f7e39b80`
- `Linux >= 5.10.261 < 5.10.265`
- `Linux >= 5.15.212 < 5.15.216`
- `Linux >= 6.1.178 < 6.1.183`
- `Linux >= 6.6.145 < 6.6.148`
- `Linux >= 6.12.97 < 6.12.101`
- `Linux >= 6.18.40 < 6.18.42`
- `Linux >= 7.1.5 < 7.1.6`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
