CVE-2026-80784 in Linuxinformazioni

Riassunto

di VulDB • 04/09/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

mptcp: pm: correzione della perdita di memoria dovuta a una race condition alloc-during-teardown

La funzione mptcp_pm_destroy() svuota le liste msk->pm.anno_list e msk->pm.userspace_pm_local_addr_list sotto il lock msk->pm.lock durante la chiusura del socket, rilasciando il lock tra le due operazioni.

Un'operazione ANNOUNCE simultanea da parte di un PM (Path Manager) in userspace sulla stessa istanza msk mantiene un riferimento al sock tramite mptcp_token_get_sock() e, all'interno di mptcp_pm_nl_announce_doit(), chiama mptcp_userspace_pm_append_new_local_addr() e mptcp_pm_announced_alloc(). Entrambe acquisiscono brevemente il lock msk->pm.lock per aggiungere elementi alle rispettive liste. Poiché il handler genl mantiene un riferimento al sock, la funzione mptcp_pm_destroy() può essere eseguita sulla stessa istanza msk tramite mptcp_disconnect(), che invoca mptcp_destroy_common() senza decrementare il contatore di riferimenti del sock (sock refcount), prima che l'handler abbia completato l'esecuzione.

Se le acquisizioni dei lock si interlacciano in modo tale che mptcp_pm_destroy() svuoti una lista per prima, la successiva operazione alloc aggiunge il proprio elemento a un'intestazione di lista su cui nessun altro iteratore opera per questa istanza msk, causando una perdita (leak) dell'elemento. kmemleak segnala sia oggetti mptcp_pm_add_addr (provenienti da mptcp_pm_announced_alloc()) che oggetti mptcp_pm_addr_entry (provenienti da mptcp_userspace_pm_append_new_local_addr()) sotto un carico sostenuto di operazioni ANNOUNCE + close concorrenti verso il PM in userspace.

Viene aggiunto un bit MPTCP_PM_DESTROYING nello stato msk->pm, impostato da mptcp_pm_destroy() sotto pm.lock prima che le liste vengano svuotate e verificato sotto pm_lock dai percorsi alloc. O l'operazione alloc acquisisce per prima il lock pm, nel qual caso il suo elemento è presente nella lista quando viene liberata da mptcp_pm_destroy(); oppure mptcp_pm_destroy() acquisisce per primo il lock pm, nel qual caso la successiva operazione alloc rileva il bit e rifiuta di procedere.

Il bug è stato individuato tramite un harness del flusso del protocollo MPTCP che estende BRF (arXiv:2305.08782).

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsabile

Linux

Prenotare

26/08/2026

Divulgazione

04/09/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00173

KEV

no

Attività

molto basso

Fonti

Want to stay up to date on a daily basis?

Enable the mail alert feature now!