CVE-2026-68416

Not scored yetLast modified Nov 6, 2026

Description

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

mtd: fix double free and WARN_ON in add_mtd_device() error paths

When device_register() or mtd_nvmem_add() fails inside add_mtd_device() for a partition, the error handling triggers mtd_release() via put_device() or device_unregister(). mtd_release() calls release_mtd_partition() which frees the mtd_info structure. However, callers such as mtd_add_partition() and add_mtd_partitions() also call free_partition() in their error paths, resulting in a double free.

Additionally, release_mtd_partition() hits WARN_ON(!list_empty( &mtd->part.node)) because the partition node is still linked in the parent's partitions list when the release callback fires from the add_mtd_device() error path.

Fix this by overriding dev->type and dev->release before put_device() in the error paths, so that device_release() invokes a no-op function instead of mtd_release(). For the mtd_nvmem_add() failure case, device_unregister() is replaced with device_del() to separate the device removal from the final kobject reference drop, allowing the override to take effect before put_device() is called.

The callers' error paths (list_del + free_partition) remain the sole owners of mtd_info lifetime on add_mtd_device() failure, which is the expected contract.

The normal partition teardown path is not affected: del_mtd_device() goes through kref_put() -> mtd_device_release() -> device_unregister() with dev->type still set to &mtd_devtype, so mtd_release() -> release_mtd_partition() continues to work correctly for the regular removal case.

Metrics

No CVSS score has been published yet.

Affected software

Source: the vendor's advisory (CNA). NVD analysis pending.

VendorProductVersions
LinuxLinux>= 93c08951d7070134b7415ca4abd0d25876aa653b, < b1f78dc4a6869e30ff64345a5d3e7da1b6da0061; >= 006764e33fe9cff72f8a68ce1dab570d93662c96, < 1dfe90daee6080b088b65620ff690a56f59ddea2; >= 19bfa9ebebb5ec0695def57eb1d80de7e9cab369, < ffe21a3545b439e7b11578a701c22a847c149561; >= 19bfa9ebebb5ec0695def57eb1d80de7e9cab369, < e1e96aca1bdf391e2f49531c270ffc134e5b49a5; >= 19bfa9ebebb5ec0695def57eb1d80de7e9cab369, < f98ae09c727dcf34f745c875661c64b642e4abfa; >= 19bfa9ebebb5ec0695def57eb1d80de7e9cab369, < 820f983d641937a787e841ee4b93501f69f5683e; >= 19bfa9ebebb5ec0695def57eb1d80de7e9cab369, < 9d4af746af8ce27eefc2338b2feaa1e01f28b6c3
LinuxLinux6.6

References

Timeline

Published
Aug 10, 2026
Last modified
Nov 6, 2026
NVD status
Received

Related CVEs from 2026

CVE-2026-684177.8In the Linux kernel, the following vulnerability has been resolved: RDMA/siw: publish QP after initialization siw_create_qp() currently caCVE-2026-68418In the Linux kernel, the following vulnerability has been resolved: RDMA/irdma: Prevent user-triggered null deref on QP create Previously,CVE-2026-684197.8In the Linux kernel, the following vulnerability has been resolved: RDMA/irdma: Prevent rereg_mr for non-mem regions When a QP/CQ/SRQ is cCVE-2026-68422.5A flaw was found in nano. In environments with permissive umask settings, a local attacker can exploit incorrect directory permissions (0777CVE-2026-684207.1In the Linux kernel, the following vulnerability has been resolved: xfrm: reject optional IPTFS templates in outbound policies syzbot repoCVE-2026-68421In the Linux kernel, the following vulnerability has been resolved: sched_ext: Don't warn on core-sched forced idle in put_prev_task_scx() CVE-2026-68422In the Linux kernel, the following vulnerability has been resolved: btrfs: fix root leak if its reloc root is unexpected in merge_reloc_rooCVE-2026-68423In the Linux kernel, the following vulnerability has been resolved: mtd: virt_concat: fix use-after-free in mtd_virt_concat_destroy() mtd_CVE-2026-68424In the Linux kernel, the following vulnerability has been resolved: mtd: virt_concat: fix use-after-free in mtd_virt_concat_destroy_joins()CVE-2026-684257.1In the Linux kernel, the following vulnerability has been resolved: IB/mad: Drop unmatched RMPP responses before reassembly Kernel-handledCVE-2026-684269.8In the Linux kernel, the following vulnerability has been resolved: xfrm: fix stale skb->prev after async crypto steals a GSO segment skb_CVE-2026-684277.8In the Linux kernel, the following vulnerability has been resolved: gpu: host1x: Fix use-after-free in host1x_bo_clear_cached_mappings __h
CVE-2026-68416: Unscored | Vulnix