CVE-2026-89736

usb: gadget: u_audio: Fix use-after-free on sound card disconnect

State
Published
Severity
7.8 High
Published
Sep 11, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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

usb: gadget: u_audio: Fix use-after-free on sound card disconnect

g_audio_cleanup() invokes snd_card_free_when_closed() to initiate sound card teardown and immediately frees the underlying struct snd_uac_chip context. However, snd_card_free_when_closed() returns asynchronously while ALSA control elements (kctls) remain open in userspace.

When userspace control applications access or close these open file descriptors, kctl callbacks attempt to dereference kctl->private_data pointing to &uac->c_prm or &uac->p_prm within the freed uac structure, resulting in a use-after-free (UAF) memory corruption.

Fix this issue by deferring the destruction of struct snd_uac_chip until all references to the ALSA sound card are released. Register a custom card->private_free callback (u_audio_card_free) during g_audio_setup() that frees uac and its associated playback/capture request and ring buffers only when the sound card reference count drops to zero.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 33f341c1fc60e172a3515c51bdabee11e83d1ee9 to before a7ecd1a04f4f485d7be6443d0f0b2c61a800cb82Affected
  • b131989797f7287d7fdadb2bababc05a15d44750 to before f983793f03148b097977f200298db215cd2d4438Affected
  • 3bc7324e4911351e39c54a62e6ca46321cb10faf to before 6f46762196f04464e1050a9ee94e72b917db9010Affected
  • 6c67ed9ad9b83e453e808f9b31a931a20a25629b to before 891a8d11f4d5eb50b2ce7570f4f98204a7a57493Affected
  • 6c67ed9ad9b83e453e808f9b31a931a20a25629b to before c74ff0b1a0fca53d3ac185873c87d6a719b30a47Affected
  • 6c67ed9ad9b83e453e808f9b31a931a20a25629b to before 4e747c864a88537e18b1ffc19a1954c9686bb8e1Affected
  • 6c67ed9ad9b83e453e808f9b31a931a20a25629b to before 79a92896e2bb9471550c56fc23d8d93592f04c27Affected
  • 6c67ed9ad9b83e453e808f9b31a931a20a25629b to before 858965947081d10d41d9a1010a540d3d5eea958bAffected
  • 3e016ef2e72da93a2ea7afbb45de1b481b44d761Affected
  • 3256e152b645fc1e788ba44c2d8ced690113e3e6Affected
  • 0eda2004f38d95ef5715d62be884cd344260535bAffected
  • 43ca70753dfffd517d2af126da28690f8f615605Affected
  • 5.10.177 to before 5.10.270Affected
  • 5.15.105 to before 5.15.221Affected
  • 6.1.22 to before 6.1.188Affected
  • 4.14.312 to before 4.15Affected
  • 4.19.280 to before 4.20Affected
  • 5.4.240 to before 5.5Affected
  • 6.2.9 to before 6.3Affected
LinuxLinux
  • 6.3Affected
  • before 6.3Not affected
  • 5.10.270 through 5.10.*Not affected
  • 5.15.221 through 5.15.*Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.109 through 6.12.*Not affected
  • 6.18.50 through 6.18.*Not affected
  • 7.2.4 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.