← Back to CVE Explorer

CVE-2026-97916

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: accel/ivpu: Validate firmware log buffer metadata The tracing log headers parsed by fw_log_print_buffer() reside in DMA-shared BOs that the NPU firmware can write to. fw_log_from_bo() validated log->header_size and log->size, but fw_log_print_buffer() re-read those same fields from shared memory afterwards, allowing a TOCTOU where firmware changes them between the check and the use, and making the host dereference out-of-bounds addresses while printing logs. Snapshot the validated values once with READ_ONCE() and pass them down explicitly in a new struct ivpu_fw_log_desc instead of re-reading them from the shared struct.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-09-25 11:17:18.593000
Last modified
2026-10-21 13:21:15.810000
View original CVE JSON
{
  "id": "CVE-2026-97916",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-09-25T11:17:18.593",
  "lastModified": "2026-10-21T13:21:15.810",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\naccel/ivpu: Validate firmware log buffer metadata\n\nThe tracing log headers parsed by fw_log_print_buffer() reside in\nDMA-shared BOs that the NPU firmware can write to.\n\nfw_log_from_bo() validated log->header_size and log->size, but\nfw_log_print_buffer() re-read those same fields from shared memory\nafterwards, allowing a TOCTOU where firmware changes them between the\ncheck and the use, and making the host dereference out-of-bounds\naddresses while printing logs.\n\nSnapshot the validated values once with READ_ONCE() and pass them down\nexplicitly in a new struct ivpu_fw_log_desc instead of re-reading them\nfrom the shared struct."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/accel/ivpu/ivpu_fw_log.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "d4e4257afa6ed5205eda993180401fc2c20e4b60",
              "lessThan": "07d4190d75021c38b7994045179aa29131634d4f",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "d4e4257afa6ed5205eda993180401fc2c20e4b60",
              "lessThan": "8ec3d6972f1440fae6c8dadd1859892775208759",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "d4e4257afa6ed5205eda993180401fc2c20e4b60",
              "lessThan": "40868f80a89199630b03d4457876f9a1feba0660",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "d4e4257afa6ed5205eda993180401fc2c20e4b60",
              "lessThan": "b1555f63ee1a680f280bc18e8dac416f250e2ec3",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "d4e4257afa6ed5205eda993180401fc2c20e4b60",
              "lessThan": "0724afc55c77c36c7feb9a7264b02aa7593c5c2d",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/accel/ivpu/ivpu_fw_log.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "6.6",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "6.6",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.160",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.111",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.53",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.7",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/0724afc55c77c36c7feb9a7264b02aa7593c5c2d",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/07d4190d75021c38b7994045179aa29131634d4f",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/40868f80a89199630b03d4457876f9a1feba0660",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/8ec3d6972f1440fae6c8dadd1859892775208759",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/b1555f63ee1a680f280bc18e8dac416f250e2ec3",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}