-

CVE-2025-39684

In the Linux kernel, the following vulnerability has been resolved:

comedi: Fix use of uninitialized memory in do_insn_ioctl() and do_insnlist_ioctl()

syzbot reports a KMSAN kernel-infoleak in `do_insn_ioctl()`.  A kernel
buffer is allocated to hold `insn->n` samples (each of which is an
`unsigned int`).  For some instruction types, `insn->n` samples are
copied back to user-space, unless an error code is being returned.  The
problem is that not all the instruction handlers that need to return
data to userspace fill in the whole `insn->n` samples, so that there is
an information leak.  There is a similar syzbot report for
`do_insnlist_ioctl()`, although it does not have a reproducer for it at
the time of writing.

One culprit is `insn_rw_emulate_bits()` which is used as the handler for
`INSN_READ` or `INSN_WRITE` instructions for subdevices that do not have
a specific handler for that instruction, but do have an `INSN_BITS`
handler.  For `INSN_READ` it only fills in at most 1 sample, so if
`insn->n` is greater than 1, the remaining `insn->n - 1` samples copied
to userspace will be uninitialized kernel data.

Another culprit is `vm80xx_ai_insn_read()` in the "vm80xx" driver.  It
never returns an error, even if it fails to fill the buffer.

Fix it in `do_insn_ioctl()` and `do_insnlist_ioctl()` by making sure
that uninitialized parts of the allocated buffer are zeroed before
handling each instruction.

Thanks to Arnaud Lecomte for their fix to `do_insn_ioctl()`.  That fix
replaced the call to `kmalloc_array()` with `kcalloc()`, but it is not
always necessary to clear the whole buffer.

Verknüpft mit AI von unstrukturierten Daten zu bestehenden CPE der NVD
Diese Information steht angemeldeten Benutzern zur Verfügung.
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
Produkt Linux
Default Statusunaffected
Version < 868a1b68dcd9f2805bb86aa64862402f785d8c4a
Version ed9eccbe8970f6eedc1b978c157caf1251a896d4
Status affected
Version < ff4a7c18799c7fe999fa56c5cf276e13866b8c1a
Version ed9eccbe8970f6eedc1b978c157caf1251a896d4
Status affected
Version < d84f6e77ebe3359394df32ecd97e0d76a25283dc
Version ed9eccbe8970f6eedc1b978c157caf1251a896d4
Status affected
Version < f3b0c9ec54736f3b8118f93a473d22e11ee65743
Version ed9eccbe8970f6eedc1b978c157caf1251a896d4
Status affected
Version < aecf0d557ddd95ce68193a5ee1dc4c87415ff08a
Version ed9eccbe8970f6eedc1b978c157caf1251a896d4
Status affected
Version < 3cd212e895ca2d58963fdc6422502b10dd3966bb
Version ed9eccbe8970f6eedc1b978c157caf1251a896d4
Status affected
HerstellerLinux
Produkt Linux
Default Statusaffected
Version 2.6.29
Status affected
Version < 2.6.29
Version 0
Status unaffected
Version <= 5.15.*
Version 5.15.190
Status unaffected
Version <= 6.1.*
Version 6.1.149
Status unaffected
Version <= 6.6.*
Version 6.6.103
Status unaffected
Version <= 6.12.*
Version 6.12.44
Status unaffected
Version <= 6.16.*
Version 6.16.4
Status unaffected
Version <= *
Version 6.17-rc3
Status unaffected
Zu dieser CVE wurde keine CISA KEV oder CERT.AT-Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.04% 0.092
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String