CVE-2024-26972 in Linux
Riassunto
di VulDB • 23/06/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
ubifs: ubifs_symlink: Correzione della perdita di memoria (memleak) di inode->i_link nel percorso di gestione degli errori
Per il percorso di gestione degli errori in ubifs_symlink(), l'inode viene prima contrassegnato come non valido, quindi viene invocata iput(). Se inode->i_link è stato inizializzato da fscrypt_encrypt_symlink() in uno scenario di crittografia, inode->i_link non verrà liberato dalla catena di chiamate ubifs_free_inode -> fscrypt_free_inode nel percorso di gestione degli errori, poiché make_bad_inode() ha modificato 'inode->i_mode' impostandolo su 'S_IFREG'.
Il seguente kmemleak è facilmente riproducibile iniettando un errore in ubifs_jnl_update() durante la creazione di un symlink in uno scenario di crittografia: oggetto non referenziato 0xffff888103da3d98 (dimensione 8): comm "ln", pid 1692, jiffies 4294914701 (età 12.045s) backtrace: kmemdup+0x32/0x70 __fscrypt_encrypt_symlink+0xed/0x1c0 ubifs_symlink+0x210/0x300 [ubifs]
vfs_symlink+0x216/0x360 do_symlinkat+0x11a/0x190 do_syscall_64+0x3b/0xe0
Esistono due modi per risolvere il problema: 1. Rimuovere make_bad_inode() dal percorso di gestione degli errori. È possibile farlo perché ubifs_evict_inode() eseguirà le stesse operazioni sia per l'inode del symlink valido che per quello non valido, poiché il controllo su inode->i_nlink avviene prima di is_bad_inode(). 2. Liberare inode->i_link prima di contrassegnare l'inode come non valido.
È stato scelto il Metodo 2, poiché personalmente ha un impatto minore.
VulDB is the best source for vulnerability data and more expert information about this specific topic.