CVE-2026-64347 Affecting kernel-kvmsmall package, versions <6.12.0-160000.37.1


Severity

Recommended
0.0
medium
0
10

Based on SUSE Linux Enterprise Server security rating.

Threat Intelligence

EPSS
0.18% (8th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-SLES1600-KERNELKVMSMALL-19335414
  • published27 Aug 2026
  • disclosed11 Aug 2026

Introduced: 11 Aug 2026

NewCVE-2026-64347  (opens in a new tab)

How to fix?

Upgrade SLES:16.0.0 kernel-kvmsmall to version 6.12.0-160000.37.1 or higher.

NVD Description

Note: Versions mentioned in the description apply only to the upstream kernel-kvmsmall package and not the kernel-kvmsmall package as distributed by SLES. See How to fix? for SLES:16.0.0 relevant fixed versions and status.

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

usb: gadget: composite: fix dead empty check in the USB_DT_OTG handler

The OTG branch of composite_setup() falls back to the first configuration when none is selected:

if (cdev-&gt;config)
    config = cdev-&gt;config;
else
    config = list_first_entry(&amp;cdev-&gt;configs,
                  struct usb_configuration, list);
if (!config)
    goto done;
...
memcpy(req-&gt;buf, config-&gt;descriptors[0], value);

list_first_entry() never returns NULL. On an empty list it returns container_of() of the list head. So the "if (!config)" check is dead.

When cdev->configs is empty, config points at the head inside struct usb_composite_dev. config->descriptors[0] reads whatever sits at that offset. The memcpy copies up to w_length bytes of it into the response buffer.

cdev->configs can be empty in two cases. One is a teardown race on gadget unbind with a control transfer in flight. The other is a driver that sets is_otg before it adds a config. A reproducer that holds cdev->configs empty triggers a KASAN fault in this branch.

Use list_first_entry_or_null() so the existing check does its job.

CVSS Base Scores

version 3.1