CVE-2026-97989 (GCVE-0-2026-97989)

Vulnerability from cvelistv5 – Published: 2026-09-25 10:23 – Updated: 2026-09-25 10:23
VLAI
Title
vduse: validate virtqueue alignment
Summary
In the Linux kernel, the following vulnerability has been resolved: vduse: validate virtqueue alignment vduse_validate_config() only checks the upper bound of vq_align. Invalid values can therefore reach vring_create_virtqueue_map(). The split-ring helpers use align - 1 as a bit mask, so the alignment must be a non-zero power of two. A zero value makes vring_size() drop the descriptor and available-ring part and vring_init() leave the used ring pointer NULL. The VIRTIO spec requires the used ring to start at an address aligned to at least 4 bytes. Reject values below VRING_USED_ALIGN_SIZE as well as non-power-of-two values before they reach the virtio ring helpers. Opening a virtio-net device created with vq_align=0 triggered: BUG: KASAN: null-ptr-deref in virtqueue_kick_prepare_split+0xe3/0x100 Read of size 2 at addr 0000000000000000 by task systemd-network/1062 Call Trace (relevant frames): dump_stack_lvl print_report kasan_report __asan_load2 virtqueue_kick_prepare_split+0xe3/0x100 virtqueue_kick_prepare+0x40/0x60 try_fill_recv+0x857/0x1250 virtnet_open+0x189/0x460 __dev_open+0x225/0x390 __dev_change_flags+0x368/0x3b0 netif_change_flags+0x56/0xc0 do_setlink.isra.0+0x68c/0x1e30 Validate the value before it reaches the virtio ring helpers.
Severity
No CVSS data available.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: c8a6153b6c59d95c0e091f053f6f180952ade91e , < c3c3b0839a1197530cc18f535062fc84dbdfc885 (git)
Affected: c8a6153b6c59d95c0e091f053f6f180952ade91e , < fa2c25b4add57888acfa89e398389e267bff3dcf (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.15
Unaffected: 0 , < 5.15 (semver)
Unaffected: 7.2.7 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc3 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/vdpa/vdpa_user/vduse_dev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "c3c3b0839a1197530cc18f535062fc84dbdfc885",
              "status": "affected",
              "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
              "versionType": "git"
            },
            {
              "lessThan": "fa2c25b4add57888acfa89e398389e267bff3dcf",
              "status": "affected",
              "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/vdpa/vdpa_user/vduse_dev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.15"
            },
            {
              "lessThan": "5.15",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.7",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc3",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvduse: validate virtqueue alignment\n\nvduse_validate_config() only checks the upper bound of vq_align. Invalid\nvalues can therefore reach vring_create_virtqueue_map(). The split-ring\nhelpers use align - 1 as a bit mask, so the alignment must be a non-zero\npower of two. A zero value makes vring_size() drop the descriptor and\navailable-ring part and vring_init() leave the used ring pointer NULL.\n\nThe VIRTIO spec requires the used ring to start at an address\naligned to at least 4 bytes. Reject values below VRING_USED_ALIGN_SIZE as\nwell as non-power-of-two values before they reach the virtio ring helpers.\n\nOpening a virtio-net device created with vq_align=0 triggered:\n\nBUG: KASAN: null-ptr-deref in virtqueue_kick_prepare_split+0xe3/0x100\nRead of size 2 at addr 0000000000000000 by task systemd-network/1062\n\nCall Trace (relevant frames):\n dump_stack_lvl\n print_report\n kasan_report\n __asan_load2\n virtqueue_kick_prepare_split+0xe3/0x100\n virtqueue_kick_prepare+0x40/0x60\n try_fill_recv+0x857/0x1250\n virtnet_open+0x189/0x460\n __dev_open+0x225/0x390\n __dev_change_flags+0x368/0x3b0\n netif_change_flags+0x56/0xc0\n do_setlink.isra.0+0x68c/0x1e30\n\nValidate the value before it reaches the virtio ring helpers."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-25T10:23:22.620Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/c3c3b0839a1197530cc18f535062fc84dbdfc885"
        },
        {
          "url": "https://git.kernel.org/stable/c/fa2c25b4add57888acfa89e398389e267bff3dcf"
        }
      ],
      "title": "vduse: validate virtqueue alignment",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-97989",
    "datePublished": "2026-09-25T10:23:22.620Z",
    "dateReserved": "2026-09-25T10:18:58.209Z",
    "dateUpdated": "2026-09-25T10:23:22.620Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/vdpa/vdpa_user/vduse_dev.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "c3c3b0839a1197530cc18f535062fc84dbdfc885",
                    "status": "affected",
                    "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "fa2c25b4add57888acfa89e398389e267bff3dcf",
                    "status": "affected",
                    "version": "c8a6153b6c59d95c0e091f053f6f180952ade91e",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/vdpa/vdpa_user/vduse_dev.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "5.15"
                  },
                  {
                    "lessThan": "5.15",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.7",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc3",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvduse: validate virtqueue alignment\n\nvduse_validate_config() only checks the upper bound of vq_align. Invalid\nvalues can therefore reach vring_create_virtqueue_map(). The split-ring\nhelpers use align - 1 as a bit mask, so the alignment must be a non-zero\npower of two. A zero value makes vring_size() drop the descriptor and\navailable-ring part and vring_init() leave the used ring pointer NULL.\n\nThe VIRTIO spec requires the used ring to start at an address\naligned to at least 4 bytes. Reject values below VRING_USED_ALIGN_SIZE as\nwell as non-power-of-two values before they reach the virtio ring helpers.\n\nOpening a virtio-net device created with vq_align=0 triggered:\n\nBUG: KASAN: null-ptr-deref in virtqueue_kick_prepare_split+0xe3/0x100\nRead of size 2 at addr 0000000000000000 by task systemd-network/1062\n\nCall Trace (relevant frames):\n dump_stack_lvl\n print_report\n kasan_report\n __asan_load2\n virtqueue_kick_prepare_split+0xe3/0x100\n virtqueue_kick_prepare+0x40/0x60\n try_fill_recv+0x857/0x1250\n virtnet_open+0x189/0x460\n __dev_open+0x225/0x390\n __dev_change_flags+0x368/0x3b0\n netif_change_flags+0x56/0xc0\n do_setlink.isra.0+0x68c/0x1e30\n\nValidate the value before it reaches the virtio ring helpers."
          }
        ],
        "id": "CVE-2026-97989",
        "lastModified": "2026-09-25T11:17:27.010",
        "metrics": {},
        "published": "2026-09-25T11:17:27.010",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/c3c3b0839a1197530cc18f535062fc84dbdfc885"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/fa2c25b4add57888acfa89e398389e267bff3dcf"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…