Linux: ALSA: usbusx2y: fix in04_last array size mismatch with in04_buf
What fixes it
- 869fb83c072e884b80d93eab498e6040ffb010baLinuxCVE List
- 229cab526580f82839ae8e4e379753c8cf16952eLinuxCVE List
- 381495b5b3da12d714e53d9d12d955b13fe26eacLinuxCVE List
- 861111a14740e12c36d363e9830f8daa734279c9LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
ALSA: usbusx2y: fix in04_last array size mismatch with in04_buf
The in04_last array in struct usx2ydev is declared as char[24], but in04_buf is allocated as sizeof(struct us428_ctls) which is 21 bytes. In i_usx2y_in04_int(), when ctl_snapshot_last == -2 (initialization path):
memcpy(usx2y->in04_last, usx2y->in04_buf, sizeof(usx2y->in04_last));
This copies 24 bytes from a 21-byte slab allocation, reading 3 bytes past the end of the source object.
Introduce a USX2Y_IN04_SIZE constant defined as sizeof(struct us428_ctls) and use it consistently for the in04_last array, the in04_buf allocation, the URB transfer length, and the comparison loop, replacing the bare 24 and 21 literals throughout.
Text from CVE List
Affected versions 16
- Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before e75e4b0e647137f4c9f6dee4a7ef5b7b09e16f57CVE List
- Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 869fb83c072e884b80d93eab498e6040ffb010baCVE List
- Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before d170cfbe38c8817ac787f605655546a6d343017dCVE List
- Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 229cab526580f82839ae8e4e379753c8cf16952eCVE List
- Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 381495b5b3da12d714e53d9d12d955b13fe26eacCVE List
- Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before b5753bdfd909f7f095fb464d67802b5e52cbadbfCVE List
- Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 861111a14740e12c36d363e9830f8daa734279c9CVE List
- Linuxaffected: 2.6.12CVE List
- Linuxunaffected: all versions before 2.6.12CVE List
- Linuxunaffected: 5.15.222 through 5.15.*CVE List
- Linuxunaffected: 6.1.189 through 6.1.*CVE List
- Linuxunaffected: 6.6.158 through 6.6.*CVE List
- Linuxunaffected: 6.12.111 through 6.12.*CVE List
- Linuxunaffected: 6.18.53 through 6.18.*CVE List
- Linuxunaffected: 7.2.7 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 7
- git.kernel.org/stable/c/e75e4b0e647137f4c9f6dee4a7ef5b7b09e16f57Referencevia CVE List
- git.kernel.org/stable/c/869fb83c072e884b80d93eab498e6040ffb010baReferencevia CVE List
- git.kernel.org/stable/c/d170cfbe38c8817ac787f605655546a6d343017dReferencevia CVE List
- git.kernel.org/stable/c/229cab526580f82839ae8e4e379753c8cf16952eReferencevia CVE List
- git.kernel.org/stable/c/381495b5b3da12d714e53d9d12d955b13fe26eacReferencevia CVE List
- git.kernel.org/stable/c/b5753bdfd909f7f095fb464d67802b5e52cbadbfReferencevia CVE List
- git.kernel.org/stable/c/861111a14740e12c36d363e9830f8daa734279c9Referencevia CVE List