← Back to CVE List
CVE-2026-90068NVD
Vulnerability Summary
In the Linux kernel, the following vulnerability has been resolved:
ASoC: dapm: Fix off-by-one check on the second enum channel
The snd_soc_dapm_put_enum_double() rejects item[0] once it reaches
e->items, but it lets item[1] be equal to it. Both go on to
snd_soc_enum_item_to_val(), which indexes e->values with no bound of
its own, so an enum with a value table reads one element past the end.
The indexing arrived with the MUX consolidation, which relaxed the
item[1] check in the same hunk. The value MUX handler it deleted used
>= there, and the snd_soc_put_enum_double() in soc-ops.c still does.
Only adav80x pairs a value table with two shifts, and its second
channel looks accidental, but the control does report two values.
Writing three into it reads off the end of adav80x_mux_values. The
core catches that only under CONFIG_SND_CTL_INPUT_VALIDATION, which
defaults off.
ASoC: dapm: Fix off-by-one check on the second enum channel
The snd_soc_dapm_put_enum_double() rejects item[0] once it reaches
e->items, but it lets item[1] be equal to it. Both go on to
snd_soc_enum_item_to_val(), which indexes e->values with no bound of
its own, so an enum with a value table reads one element past the end.
The indexing arrived with the MUX consolidation, which relaxed the
item[1] check in the same hunk. The value MUX handler it deleted used
>= there, and the snd_soc_put_enum_double() in soc-ops.c still does.
Only adav80x pairs a value table with two shifts, and its second
channel looks accidental, but the control does report two values.
Writing three into it reads off the end of adav80x_mux_values. The
core catches that only under CONFIG_SND_CTL_INPUT_VALIDATION, which
defaults off.
Affected & Patched Versions
- Linux Linux >= 3727b4968453dbab8fe18f979d67285eb6b66801 and < 57ab955bde747327fb2042516ae1b7192c30e881
- Linux Linux >= 3727b4968453dbab8fe18f979d67285eb6b66801 and < 806fa4e1f2bf73c54bc4b6360790ecc69d095ca5
- Linux Linux >= 3727b4968453dbab8fe18f979d67285eb6b66801 and < 496081b4edc1f6e662418831c5b14cddd8d7920c
- Linux Linux >= 3727b4968453dbab8fe18f979d67285eb6b66801 and < faf539af1a595a26e5a081a4e512caee2bc2f4c5
- Linux Linux >= 3727b4968453dbab8fe18f979d67285eb6b66801 and < 32fc048391112559c34cb88d13594546939a4cd6
- Linux Linux >= 3727b4968453dbab8fe18f979d67285eb6b66801 and < 10a36512c21f861a03fba461a7ead09023df9c1b
- Linux Linux >= 3727b4968453dbab8fe18f979d67285eb6b66801 and < 55126ef66298e43c69f192acebae8c7cc0022cf6
- Linux Linux >= 3727b4968453dbab8fe18f979d67285eb6b66801 and < 14511c9b54ceeeef487409d73947c89ee8563590
- Linux Linux >= 3.15
- Linux Linux 57ab955bde747327fb2042516ae1b7192c30e881
- Linux Linux 806fa4e1f2bf73c54bc4b6360790ecc69d095ca5
- Linux Linux 496081b4edc1f6e662418831c5b14cddd8d7920c
- Linux Linux faf539af1a595a26e5a081a4e512caee2bc2f4c5
- Linux Linux 32fc048391112559c34cb88d13594546939a4cd6
- Linux Linux 10a36512c21f861a03fba461a7ead09023df9c1b
- Linux Linux 55126ef66298e43c69f192acebae8c7cc0022cf6
- Linux Linux 14511c9b54ceeeef487409d73947c89ee8563590
External References
- https://git.kernel.org/stable/c/57ab955bde747327fb2042516ae1b7192c30e881
- https://git.kernel.org/stable/c/806fa4e1f2bf73c54bc4b6360790ecc69d095ca5
- https://git.kernel.org/stable/c/496081b4edc1f6e662418831c5b14cddd8d7920c
- https://git.kernel.org/stable/c/faf539af1a595a26e5a081a4e512caee2bc2f4c5
- https://git.kernel.org/stable/c/32fc048391112559c34cb88d13594546939a4cd6
- https://git.kernel.org/stable/c/10a36512c21f861a03fba461a7ead09023df9c1b
- https://git.kernel.org/stable/c/55126ef66298e43c69f192acebae8c7cc0022cf6
- https://git.kernel.org/stable/c/14511c9b54ceeeef487409d73947c89ee8563590