CVE-2025-39686

CVE-2025-39686

High · published September 5, 2025

CVSS v3.1
7.8
EPSS
0%
Percentile
8.1
In the wild
Unconfirmed
What it is

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

comedi: Make insn_rw_emulate_bits() do insn->n samples

The `insn_rw_emulate_bits()` function is used as a default handler for

`INSN_READ` instructions for subdevices that have a handler for

`INSN_BITS` but not for `INSN_READ`. Similarly, it is used as a default

handler for `INSN_WRITE` instructions for subdevices that have a handler

for `INSN_BITS` but not for `INSN_WRITE`. It works by emulating the

`INSN_READ` or `INSN_WRITE` instruction handling with a constructed

`INSN_BITS` instruction. However, `INSN_READ` and `INSN_WRITE`

instructions are supposed to be able read or write multiple samples,

indicated by the `insn->n` value, but `insn_rw_emulate_bits()` currently

only handles a single sample. For `INSN_READ`, the comedi core will

copy `insn->n` samples back to user-space. (That triggered KASAN

kernel-infoleak errors when `insn->n` was greater than 1, but that is

being fixed more generally elsewhere in the comedi core.)

Make `insn_rw_emulate_bits()` either handle `insn->n` samples, or return

an error, to conform to the general expectation for `INSN_READ` and

`INSN_WRITE` handlers.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00189 · 8.1th percentile
Published
2025-09-05T22:15Z
Affected products (8)
ProductVersionsFixed in
linux/linux_kernel≥ 2.6.29, < 5.15.1905.15.190
linux/linux_kernel≥ 5.16, < 6.1.1496.1.149
linux/linux_kernel≥ 6.2, < 6.6.1036.6.103
linux/linux_kernel≥ 6.7, < 6.12.446.12.44
linux/linux_kernel≥ 6.13, < 6.16.46.16.4
linux/linux_kernelall versions—
linux/linux_kernelall versions—
debian/debian_linuxall versions—
References (8)
EPSS history
Timeline
  • 05 SEP 17:20Z
    comedi: Make insn_rw_emulate_bits() do insn->n samples
    cvelistv5