cveboard Feed RSS

CVE-2026-68416

CVE.org · Publicado

Histórico de CVEsJSONInstruções para IA

Status do registro
Publicado
Ano do identificador (não é o ano de publicação)
2026
Publicação na fonte
Atualização na fonte
Importado pelo cveboard
Snapshot da fonte
cve_2026-10-24_midnight_baseline ·

Texto simples

Texto da CNA em inglês

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

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.

Fatos de produtos e versões por escopo

Dados de correção desconhecidos; nenhuma versão corrigida é deduzida aqui. Dados ausentes não comprovam ausência de correção.

Exploração desconhecida; este catálogo não avalia exploração.

Linux

Fornecedor
Linux
Produto
Linux
Plataformas
Desconhecido
Status padrão
unaffected
Linux · Fatos de produtos e versões por escopo
Versão (version)Status (status)Esquema de versões (versionType)Fim exclusivo (lessThan)Fim inclusivo (lessThanOrEqual)Mudanças de status (at → status)
19bfa9ebebb5ec0695def57eb1d80de7e9cab369affectedgitffe21a3545b439e7b11578a701c22a847c149561IndisponívelNenhuma listada
19bfa9ebebb5ec0695def57eb1d80de7e9cab369affectedgite1e96aca1bdf391e2f49531c270ffc134e5b49a5IndisponívelNenhuma listada
19bfa9ebebb5ec0695def57eb1d80de7e9cab369affectedgitf98ae09c727dcf34f745c875661c64b642e4abfaIndisponívelNenhuma listada
19bfa9ebebb5ec0695def57eb1d80de7e9cab369affectedgit820f983d641937a787e841ee4b93501f69f5683eIndisponívelNenhuma listada
19bfa9ebebb5ec0695def57eb1d80de7e9cab369affectedgit9d4af746af8ce27eefc2338b2feaa1e01f28b6c3IndisponívelNenhuma listada

Linux

Fornecedor
Linux
Produto
Linux
Plataformas
Desconhecido
Status padrão
affected
Linux · Fatos de produtos e versões por escopo
Versão (version)Status (status)Esquema de versões (versionType)Fim exclusivo (lessThan)Fim inclusivo (lessThanOrEqual)Mudanças de status (at → status)
6.6affectedIndisponívelIndisponívelIndisponívelNenhuma listada
0unaffectedsemver6.6IndisponívelNenhuma listada
6.6.148unaffectedsemverIndisponível6.6.*Nenhuma listada
6.12.101unaffectedsemverIndisponível6.12.*Nenhuma listada
6.18.42unaffectedsemverIndisponível6.18.*Nenhuma listada
7.1.6unaffectedsemverIndisponível7.1.*Nenhuma listada
7.2unaffectedoriginal_commit_for_fixIndisponível*Nenhuma listada