Skip to content
Heist/ feed
Back to feed
UnratedFix available

comedi: Fix use of uninitialized data in insn_rw_emulate_bits()

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: comedi: Fix use of uninitialized data in insn_rw_emulate_bits() For Comedi `INSN_READ` and `INSN_WRITE` instructions on "digital" subdevices (subdevice types `COMEDI_SUBD_DI`, `COMEDI_SUBD_DO`, and `COMEDI_SUBD_DIO`), it is common for the subdevice driver not to have `insn_read` and `insn_write` handler functions, but to have an `insn_bits` handler function for handling Comedi `INSN_BITS` instructions. In that case, the subdevice's `insn_read` and/or `insn_write` function handler pointers are set to point to the `insn_rw_emulate_bits()` function by `__comedi_device_postconfig()`. For `INSN_WRITE`, `insn_rw_emulate_bits()` currently assumes that the supplied `data[0]` value is a valid copy from user memory. It will at least exist because `do_insnlist_ioctl()` and `do_insn_ioctl()` in "comedi_fops.c" ensure at lease `MIN_SAMPLES` (16) elements are allocated. However, if `insn->n` is 0 (which is allowable for `INSN_READ` and `INSN_WRITE` instructions, then `data[0]` may contain uninitialized data, and certainly contains invalid data, possibly from a different instruction in the array of instructions handled by `do_insnlist_ioctl()`. This will result in an incorrect value being written to the digital output channel (or to the digital input/output channel if configured as an output), and may be reflected in the internal saved state of the channel. Fix it by returning 0 early if `insn->n` is 0, before reaching the

Products
Kernel
Affected versions
Not specified
Fixed versions
5.10.241, 5.15.190, 5.4.297, 6.1.147, 6.12.40, 6.15.8, 6.6.100
CVEs
CVE-2025-38480
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 00:09 UTC · Revision 1

Source evidence

comedi: Fix use of uninitialized data in insn_rw_emulate_bits()

core-osv · Original source

Published 28 Jul 2025, 11:21 UTC

In the Linux kernel, the following vulnerability has been resolved: comedi: Fix use of uninitialized data in insn_rw_emulate_bits() For Comedi `INSN_READ` and `INSN_WRITE` instructions on "digital" subdevices (subdevice types `COMEDI_SUBD_DI`, `COMEDI_SUBD_DO`, and `COMEDI_SUBD_DIO`), it is common for the subdevice driver not to have `insn_read` and `insn_write` handler functions, but to have an `insn_bits` handler function for handling Comedi `INSN_BITS` instructions. In that case, the subdevice's `insn_read` and/or `insn_write` function handler pointers are set to point to the `insn_rw_emulate_bits()` function by `__comedi_device_postconfig()`. For `INSN_WRITE`, `insn_rw_emulate_bits()` currently assumes that the supplied `data[0]` value is a valid copy from user memory. It will at least exist because `do_insnlist_ioctl()` and `do_insn_ioctl()` in "comedi_fops.c" ensure at lease `MIN_SAMPLES` (16) elements are allocated. However, if `insn->n` is 0 (which is allowable for `INSN_READ` and `INSN_WRITE` instructions, then `data[0]` may contain uninitialized data, and certainly contains invalid data, possibly from a different instruction in the array of instructions handled by `do_insnlist_ioctl()`. This will result in an incorrect value being written to the digital output channel (or to the digital input/output channel if configured as an output), and may be reflected in the internal saved state of the channel. Fix it by returning 0 early if `insn->n` is 0, before reaching the

osv:CVE-2025-38480

Kernel

Fixed versions: 5.4.297, 5.10.241, 5.15.190, 6.1.147, 6.6.100, 6.12.40, 6.15.8

Complete source record
{
  "id": "04ce6bd5a219b578310f63e9122041b6672e5696701fa999b52da1c33a9816ab",
  "url": "https://osv.dev/vulnerability/CVE-2025-38480",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "comedi: Fix use of uninitialized data in insn_rw_emulate_bits()",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: comedi: Fix use of uninitialized data in insn_rw_emulate_bits() For Comedi `INSN_READ` and `INSN_WRITE` instructions on \"digital\" subdevices (subdevice types `COMEDI_SUBD_DI`, `COMEDI_SUBD_DO`, and `COMEDI_SUBD_DIO`), it is common for the subdevice driver not to have `insn_read` and `insn_write` handler functions, but to have an `insn_bits` handler function for handling Comedi `INSN_BITS` instructions. In that case, the subdevice's `insn_read` and/or `insn_write` function handler pointers are set to point to the `insn_rw_emulate_bits()` function by `__comedi_device_postconfig()`. For `INSN_WRITE`, `insn_rw_emulate_bits()` currently assumes that the supplied `data[0]` value is a valid copy from user memory. It will at least exist because `do_insnlist_ioctl()` and `do_insn_ioctl()` in \"comedi_fops.c\" ensure at lease `MIN_SAMPLES` (16) elements are allocated. However, if `insn->n` is 0 (which is allowable for `INSN_READ` and `INSN_WRITE` instructions, then `data[0]` may contain uninitialized data, and certainly contains invalid data, possibly from a different instruction in the array of instructions handled by `do_insnlist_ioctl()`. This will result in an incorrect value being written to the digital output channel (or to the digital input/output channel if configured as an output), and may be reflected in the internal saved state of the channel. Fix it by returning 0 early if `insn->n` is 0, before reaching the ",
    "evidence": "osv:CVE-2025-38480",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.4.297",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.10.241",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.190",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.147",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.100",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.40",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.15.8",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2025-38480",
      "aliases": [
        "CVE-2025-38480"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "ed9eccbe8970f6eedc1b978c157caf1251a896d4"
                },
                {
                  "fixed": "4c2981bf30401adfcdbfece4ab6f411f7c5875a1"
                },
                {
                  "fixed": "16256d7efcf7acc9f39abe21522c4c6b77f67c00"
                },
                {
                  "fixed": "c53570e62b5b28bdb56bb563190227f8307817a5"
                },
                {
                  "fixed": "3050d197d6bc9ef128944a70210f42d2430b3000"
                },
                {
                  "fixed": "10f9024a8c824a41827fff1fefefb314c98e2c88"
                },
                {
                  "fixed": "2af1e7d389c2619219171d23f5b96dbcbb7f9656"
                },
                {
                  "fixed": "3ab55ffaaf75d0c7b68e332c1cdcc1b0e0044870"
                },
                {
                  "fixed": "e9cb26291d009243a4478a7ffb37b3a9175bfce9"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-38480.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "2.6.29"
                },
                {
                  "fixed": "5.4.297"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.5.0"
                },
                {
                  "fixed": "5.10.241"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.190"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.147"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.100"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.40"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.15.8"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-38480.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:32.433904190Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/10f9024a8c824a41827fff1fefefb314c98e2c88",
        "https://git.kernel.org/stable/c/16256d7efcf7acc9f39abe21522c4c6b77f67c00",
        "https://git.kernel.org/stable/c/2af1e7d389c2619219171d23f5b96dbcbb7f9656",
        "https://git.kernel.org/stable/c/3050d197d6bc9ef128944a70210f42d2430b3000",
        "https://git.kernel.org/stable/c/3ab55ffaaf75d0c7b68e332c1cdcc1b0e0044870",
        "https://git.kernel.org/stable/c/4c2981bf30401adfcdbfece4ab6f411f7c5875a1",
        "https://git.kernel.org/stable/c/c53570e62b5b28bdb56bb563190227f8307817a5",
        "https://git.kernel.org/stable/c/e9cb26291d009243a4478a7ffb37b3a9175bfce9",
        "https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html",
        "https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/38xxx/CVE-2025-38480.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2025-38480",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/38xxx/CVE-2025-38480.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2025-38480",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 499309,
  "published_at": "2025-07-28T11:21:45.142+00:00"
}