Description
In the Linux kernel, the following vulnerability has been resolved: ALSA: firewire: isight: bound the sample count to the packet payload isight_packet() takes the frame count from the device iso packet and checks it only against the device claimed iso length. count = be32_to_cpu(payload->sample_count); if (likely(count <= (length - 16) / 4)) isight_samples(isight, payload->samples, count); length is the iso header data_length. It can be up to 0xffff. So the gate allows a count up to about 16379. isight_samples() then copies count frames out of payload->samples into the PCM DMA buffer. payload->samples holds only 2 * MAX_FRAMES_PER_PACKET values. The device multiplexes two samples per frame. A count past MAX_FRAMES_PER_PACKET reads past the payload. A count past the buffer size writes past runtime->dma_area. The smallest PCM buffer is larger than MAX_FRAMES_PER_PACKET. Bounding the count to MAX_FRAMES_PER_PACKET keeps both the read and the write in range. A malicious or faulty Apple iSight on the FireWire bus reaches this during a normal capture. Add the MAX_FRAMES_PER_PACKET bound to the gate.
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
3a691b28a0ca3cf4d9010c6158318159e0275d2c to < 24423e0a9251d348c3f1fb0bb0e61b879e1e976caffected3a691b28a0ca3cf4d9010c6158318159e0275d2c to < ebbffacda6733dcbcef601b5b523460f8d8b671eaffected3a691b28a0ca3cf4d9010c6158318159e0275d2c to < 57e4d9043afc1eaddee8f50d11def6e65415d273affected3a691b28a0ca3cf4d9010c6158318159e0275d2c to < 3ed2fa1ed8cc65f910b8bbc0be3cc366b30f8478affected3a691b28a0ca3cf4d9010c6158318159e0275d2c to < 31da82b9676c6b112e7c72c7529e6812b919742aaffected3a691b28a0ca3cf4d9010c6158318159e0275d2c to < 8e48a29813df8dd71503800b7acf69c12c035045affected3a691b28a0ca3cf4d9010c6158318159e0275d2c to < 31a01b70bb90e3ef3147f308e2ea899e1d2485caaffected3a691b28a0ca3cf4d9010c6158318159e0275d2c to < 29b9667982e4df2ed7744f86b1144f8bb58eb698affected
Linux Linux
Default version status: affected
3.0affected0 to < 3.0unaffected5.10.261 to ≤ 5.10.*unaffected5.15.212 to ≤ 5.15.*unaffected6.1.178 to ≤ 6.1.*unaffected6.6.145 to ≤ 6.6.*unaffected6.12.96 to ≤ 6.12.*unaffected6.18.39 to ≤ 6.18.*unaffected7.1.4 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/24423e0a9251d348c3f1fb0bb0e61b879e1e976c ↗
- https://git.kernel.org/stable/c/ebbffacda6733dcbcef601b5b523460f8d8b671e ↗
- https://git.kernel.org/stable/c/57e4d9043afc1eaddee8f50d11def6e65415d273 ↗
- https://git.kernel.org/stable/c/3ed2fa1ed8cc65f910b8bbc0be3cc366b30f8478 ↗
- https://git.kernel.org/stable/c/31da82b9676c6b112e7c72c7529e6812b919742a ↗
- https://git.kernel.org/stable/c/8e48a29813df8dd71503800b7acf69c12c035045 ↗
- https://git.kernel.org/stable/c/31a01b70bb90e3ef3147f308e2ea899e1d2485ca ↗
- https://git.kernel.org/stable/c/29b9667982e4df2ed7744f86b1144f8bb58eb698 ↗