Description
In the Linux kernel, the following vulnerability has been resolved: ALSA: usb-audio: Prevent excessive number of frames In this case, the user constructed the parameters with maxpacksize 40 for rate 22050 / pps 1000, and packsize[0] 22 packsize[1] 23. The buffer size for each data URB is maxpacksize * packets, which in this example is 40 * 6 = 240; When the user performs a write operation to send audio data into the ALSA PCM playback stream, the calculated number of frames is packsize[0] * packets = 264, which exceeds the allocated URB buffer size, triggering the out-of-bounds (OOB) issue reported by syzbot [1]. Added a check for the number of single data URB frames when calculating the number of frames to prevent [1]. [1] BUG: KASAN: slab-out-of-bounds in copy_to_urb+0x261/0x460 sound/usb/pcm.c:1487 Write of size 264 at addr ffff88804337e800 by task syz.0.17/5506 Call Trace: copy_to_urb+0x261/0x460 sound/usb/pcm.c:1487 prepare_playback_urb+0x953/0x13d0 sound/usb/pcm.c:1611 prepare_outbound_urb+0x377/0xc50 sound/usb/endpoint.c:333
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
02c56650f3c118d3752122996d96173d26bb13aa to < 480a1490c595a242f27493a4544b3efb21b29f6aaffected5ef30e443e6d3654cccecec99cf481a69a0a6d3b to < ab0b5e92fc36ee82c1bd01fe896d0f775ed5de41affected99703c921864a318e3e8aae74fde071b1ff35bea to < 282aba56713bbc58155716b55ca7222b2d9cf3c8affected2d50acd7dbd0682a56968ad9551341d7fc5b6eaf to < c4dc012b027c9eb101583011089dea14d744e314affectedaba41867dd66939d336fdf604e4d73b805d8039f to < e0ed5a36fb3ab9e7b9ee45cd17f09f6d5f594360affectedd288dc74f8cf95cb7ae0aaf245b7128627a49bf3 to < d67dde02049e632ba58d3c44a164a74b6a737154affectedf0bd62b64016508938df9babe47f65c2c727d25c to < 581821f4b2ecbf411027b0af82b561ee208f4ba4affectedf0bd62b64016508938df9babe47f65c2c727d25c to < 152fc4f7b4a8af1c0418d2722f3b2729799cc837affectedf0bd62b64016508938df9babe47f65c2c727d25c to < 81e4b0009f2acc841d77a24fd796528b0bf62c4eaffectedf0bd62b64016508938df9babe47f65c2c727d25c to < 62932d9ed639a9fa71b4ac1a56766a4b43abb7e4affectedf0bd62b64016508938df9babe47f65c2c727d25c to < ef5749ef8b307bf8717945701b1b79d036af0a15affected4.4.229 to < 4.4.230affected4.9.229 to < 4.9.230affected4.14.186 to < 4.14.188affected4.19.130 to < 4.19.132affected5.4.49 to < 5.4.51affected5.7.6 to < 5.7.8affected
Linux Linux
Default version status: affected
5.8affected0 to < 5.8unaffected4.4.230 to ≤ 4.4.*unaffected4.9.230 to ≤ 4.9.*unaffected4.14.188 to ≤ 4.14.*unaffected4.19.132 to ≤ 4.19.*unaffected5.4.51 to ≤ 5.4.*unaffected5.7.8 to ≤ 5.7.*unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.18.10 to ≤ 6.18.*unaffected6.19 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/480a1490c595a242f27493a4544b3efb21b29f6a ↗
- https://git.kernel.org/stable/c/ab0b5e92fc36ee82c1bd01fe896d0f775ed5de41 ↗
- https://git.kernel.org/stable/c/282aba56713bbc58155716b55ca7222b2d9cf3c8 ↗
- https://git.kernel.org/stable/c/c4dc012b027c9eb101583011089dea14d744e314 ↗
- https://git.kernel.org/stable/c/e0ed5a36fb3ab9e7b9ee45cd17f09f6d5f594360 ↗
- https://git.kernel.org/stable/c/d67dde02049e632ba58d3c44a164a74b6a737154 ↗
- https://git.kernel.org/stable/c/581821f4b2ecbf411027b0af82b561ee208f4ba4 ↗
- https://git.kernel.org/stable/c/152fc4f7b4a8af1c0418d2722f3b2729799cc837 ↗
- https://git.kernel.org/stable/c/81e4b0009f2acc841d77a24fd796528b0bf62c4e ↗
- https://git.kernel.org/stable/c/62932d9ed639a9fa71b4ac1a56766a4b43abb7e4 ↗
- https://git.kernel.org/stable/c/ef5749ef8b307bf8717945701b1b79d036af0a15 ↗