comedi: vmk80xx: fix transfer-buffer overflows (Linux Linux)
At a glance
- Source
- NVD
- EPSS
- EPSS 0.26 % · percentile 18 ()
- State
- PUBLISHED
- Published
- Updated
- Assigner
- Linux
- NVD status
- Analyzed
Description
In the Linux kernel, the following vulnerability has been resolved: comedi: vmk80xx: fix transfer-buffer overflows The driver uses endpoint-sized USB transfer buffers but up until recently had no sanity checks on the sizes. Commit e1f13c879a7c ("staging: comedi: check validity of wMaxPacketSize of usb endpoints found") inadvertently fixed NULL-pointer dereferences when accessing the transfer buffers in case a malicious device has a zero wMaxPacketSize. Make sure to allocate buffers large enough to handle also the other accesses that are done without a size check (e.g. byte 18 in vmk80xx_cnt_insn_read() for the VMK8061_MODEL) to avoid writing beyond the buffers, for example, when doing descriptor fuzzing. The original driver was for a low-speed device with 8-byte buffers. Support was later added for a device that uses bulk transfers and is presumably a full-speed device with a maximum 64-byte wMaxPacketSize.
Weaknesses (CWE)
- CWE-787 — Out-of-bounds Write
References
- https://git.kernel.org/stable/c/5229159f1d052821007aff1a1beb7873eacf1a9f
- https://git.kernel.org/stable/c/ec85bcff4ed09260243d8f39faba99e1041718ba
- https://git.kernel.org/stable/c/40d2a7e278e2e7c0a5fd7e997e7eb63945bf93f7
- https://git.kernel.org/stable/c/7a2021b896de1ad559d33b5c5cdd20b982242088
- https://git.kernel.org/stable/c/199acd8c110e3ae62833c24f632b0bb1c9f012a9
- https://git.kernel.org/stable/c/33d7a470730dfe7c9bfc8da84575cf2cedd60d00
- https://git.kernel.org/stable/c/278484ae93297b1bb1ce755f9d3b6d95a48c7d47
- https://git.kernel.org/stable/c/06ac746d57e6d32b062e220415c607b7e2e0fa50
- https://git.kernel.org/stable/c/a23461c47482fc232ffc9b819539d1f837adf2b1
Scores
| Version | Score | Vector | Scored by |
|---|---|---|---|
| CVSS 3.1 | HIGH 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H | NVD · nvd@nist.gov (Primary) |
European references
- ENISA EUVD · EUVD-2021-34480
- GCVE · GCVE-0-2021-47475
CERT-FR advisories
- CERTFR-2024-AVI-0526 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
- CERTFR-2024-AVI-0496 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
Affected configurations (NVD CPE)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 2.6.31 < 4.4.292cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 4.5 < 4.9.290cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 4.10 < 4.14.255cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 4.15 < 4.19.217cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 4.20 < 5.4.159cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 5.5 < 5.10.79cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 5.11 < 5.14.18cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 5.15 < 5.15.2
Affected products
| Product | Versions |
|---|---|
| Linux · Linux | affected 985cafccbf9b7f862aa1c5ee566801e18b5161fb < 5229159f1d052821007aff1a1beb7873eacf1a9f ; affected 985cafccbf9b7f862aa1c5ee566801e18b5161fb < ec85bcff4ed09260243d8f39faba99e1041718ba ; affected 985cafccbf9b7f862aa1c5ee566801e18b5161fb < 40d2a7e278e2e7c0a5fd7e997e7eb63945bf93f7 ; affected 985cafccbf9b7f862aa1c5ee566801e18b5161fb < 7a2021b896de1ad559d33b5c5cdd20b982242088 ; affected 985cafccbf9b7f862aa1c5ee566801e18b5161fb < 199acd8c110e3ae62833c24f632b0bb1c9f012a9 ; affected 985cafccbf9b7f862aa1c5ee566801e18b5161fb < 33d7a470730dfe7c9bfc8da84575cf2cedd60d00 |
| Linux · Linux | affected 2.6.31 ; unaffected 0 < 2.6.31 ; unaffected 4.4.292 ≤ 4.4.* ; unaffected 4.9.290 ≤ 4.9.* ; unaffected 4.14.255 ≤ 4.14.* ; unaffected 4.19.217 ≤ 4.19.* |
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |