CVE-2026-93039: ASoC: meson: Keep link pointers valid on realloc failure

Published Sep 17, 2026
·
Updated

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

ASoC: meson: Keep link pointers valid on realloc failure

mesoncardreallocatelinks() grows the DAI link and private data arrays with two consecutive krealloc() calls and updates the owner pointers only after both calls have succeeded.

A successful krealloc() may move the data: it frees the old block and returns a new one. When that happens for the link array and the second krealloc() then fails, card->dailink still points to the block that krealloc() already freed, and the error path frees the new block too. The probe error path then calls mesoncardcleanreferences(), which dereferences card->dailink and kfree()s it again, resulting in a use-after-free and a double free.

Commit card->dailink and card->numlinks right after the first krealloc() succeeds, so the pointer always refers to a valid allocation that mesoncardcleanreferences() can walk and free. krealloc() with GFPZERO zero-initializes the added entries, so walking them on the error path is safe. With both failure paths reduced to a plain return, drop the goto labels and the error message.

Affected Software

1 affected component
Linux ASoC: meson

Event History

Sep 17, 2026
CVE Published
via MITRE·04:10 PM
Data Sourced
via MITRE·04:10 PM
Description

Frequently Asked Questions

1

What sequence of events is required to trigger the memory-safety issue?

The DAI link array reallocation must succeed and move the allocation, followed by failure of the private-data array reallocation. The driver must then enter its probe error cleanup path.

2

What happens when the affected cleanup path runs?

The card's DAI-link pointer can still reference memory freed by the successful first reallocation. Cleanup then dereferences and frees that stale pointer, causing a use-after-free and a double free.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203