CVE-2026-31661: kernel security update
Affects Linux kernelSource GCVE Database
Mentioned vulnerabilities
Not known to be exploited · CVSS 9.8 Critical : upgrade to 5.10.0-341.0.0.242.oe2203sp4 as a priority.
Data as of 11 Nov 2026, 13:20 UTC
Thin evidence
One scorer or none- Patch
- Available – fixed in 5.10.0-341.0.0.242.oe2203sp4
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HExploitation evidence
Disclosed: evidence found.
CVE published 24 Apr 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 11 Nov 2026.
What to do
Upgrade Linux kernel to 5.10.0-341.0.0.242.oe2203sp4.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
openEuler 22.03-LTS-SP4kernelpkg:rpm/openEuler/kernel&distro=openEuler-22.03-LTS-SP4Other threats | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
Description
The Linux Kernel, the operating system core itself. Security Fix(es): In the Linux kernel, the following vulnerability has been resolved: wifi: brcmsmac: Fix dma_free_coherent() size dma_alloc_consistent() may change the size to align it. The new size is saved in alloced. Change the free size to match the allocation size.(CVE-2026-31661) In the Linux kernel, the following vulnerability has been resolved: drm/amd/display: Validate GPIO pin LUT table size before iterating [Why&How] The GPIO pin table parsers in get_gpio_i2c_info() and bios_parser_get_gpio_pin_info() derive an element count from the VBIOS table_header.structuresize field, then iterate over gpio_pin[] entries. However, GET_IMAGE() only validates that the table header itself fits within the BIOS image. If the VBIOS reports a structuresize larger than the actual mapped data, the loop reads past the end of the BIOS image, causing an out-of-bounds read. Fix this by calling bios_get_image() to validate that the full claimed structuresize is accessible within the BIOS image before entering the loop in both functions. (cherry picked from commit ba5e95b43b773ae1bf1f66ee6b31eb774e65afe3)(CVE-2026-64097) In the Linux kernel, the following vulnerability has been resolved: usbip: vudc: fix NULL deref in vep_dequeue() vep_alloc_request() wasn't initializing vrequest->udc, so cancellations on the FunctionFS AIO path were arriving in vep_dequeue without a valid UDC reference. Since vrequest->udc is never actually properly used anywhere, we opt to remove it, and update vep_dequeue to obtain a reference to the udc with ep_to_vudc(), consistent with the other vep_ ops. AFAICT this bug has existed for ~10 years. Seems that nobody has really stressed the FunctionFS AIO path on usbip's vudc. I tested this fix in a QEMU aarch64 guest driving FunctionFS endpoints via AIO. Before the fix, running `usbip attach` from the host would cause the guest to oops with the following backtrace: Call trace: vep_dequeue+0x1c/0xe4 (P) usb_ep_dequeue+0x14/0x20 ffs_aio_cancel+0x24/0x34 __arm64_sys_io_cancel+0xb0/0x124 do_el0_svc+0x68/0x100 el0_svc+0x18/0x5c el0t_64_sync_handler+0x98/0xdc el0t_64_sync+0x154/0x158(CVE-2026-64331) In the Linux kernel, the following vulnerability has been resolved: Bluetooth: bnep: pin L2CAP connection during netdev registration bnep_add_connection() reads the L2CAP connection without holding the channel lock, then passes its HCI device to register_netdev(). Controller teardown can clear and release that connection concurrently, leaving the network device registration path to dereference a freed parent device. Take a reference to the L2CAP connection while holding the channel lock. Retain it until register_netdev() has taken the parent device reference.(CVE-2026-64408) In the Linux kernel, the following vulnerability has been resolved: drm/amd/display: set new_stream to NULL after release In dm_update_crtc_state(), the skip_modeset path releases new_stream via dc_stream_release() but does not set the pointer to NULL. If a later error (e.g., color management failure) triggers the fail label, the error path calls dc_stream_release() again on the same dangling pointer, causing a double release and potential use-after-free. Fix this by setting new_stream to NULL after the initial release. (cherry picked from commit 99f3af19073b3ddbfd96e789124cce12c4277b28)(CVE-2026-68236) In the Linux kernel, the following vulnerability has been resolved: ipv6: fix Route Information option length validation rt6_route_rcv() validates the Route Information option (RFC 4191) length against the prefix length, but both checks are off by one. rinfo->length is the ND option length in units of 8 octets and it *includes* the 8-byte option header, so an option carrying N bytes of prefix has length == 1 + N/8. RFC 4191 section 2.3 requires length 3 when Prefix Length is greater than 64, and 2 or 3 when it is greater than 0. The code accepts length >= 2 and length >= 1 respectively. ipv6_addr_prefix() then copies prefix_len/8 bytes out of rinfo->prefix, so a Router Advertisement with (prefix_len=128, length=2) or (prefix_len=64, length=1) makes the kernel read up to 8 bytes past the end of the option. Those bytes end up in the prefix of the route that gets installed, so they are visible to userspace: # RA with a Route Information option (prefix_len=128, length=2) # followed by a source link-layer address option, 01 01 de ad be ef ca fe $ ip -6 route show 2001:db8:dead:beef:101:dead:beef:cafe via fe80::1234 dev veth0 proto ra ^^^^^^^^^^^^^^^^^^ the next option, read out of bounds When the Route Information option is the last one in the packet, those eight bytes come from the skb tail room instead. Reject the option lengths RFC 4191 does not allow.(CVE-2026-74598) In the Linux kernel, the following vulnerability has been resolved: net: cap advertised IP tunnel headroom IP tunnel
References
- openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-4810 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-31661 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-64097 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-64331 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-64408 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-68236 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-74598 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-80978 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-90143 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-90149 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-90292 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-93054 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-93796 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-98311 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-98314 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-98331 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-98343 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-98362 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-98377 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-98407 (opens in a new tab)