CVE-2026-23209 in Linuxinformazioni

Riassunto

di VulDB • 19/06/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

macvlan: correzione del recupero degli errori in macvlan_common_newlink()

valis ha fornito un ottimo caso di riproduzione per causare il crash del kernel:

ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2

ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20

ping -c1 -I p1 1.2.3.4

Ha inoltre fornito un'analisi molto dettagliata:

<quote valis>

Il problema viene attivato quando viene creata una nuova interfaccia macvlan con la modalità MACVLAN_MODE_SOURCE e il parametro MACVLAN_MACADDR_ADD (o MACVLAN_MACADDR_SET), se l'apparecchio sottostante ha già un'interfaccia macvlan e register_netdevice() chiamato da macvlan_common_newlink() fallisce (ad esempio a causa di un nome dell'interfaccia non valido).

In questo caso, macvlan_hash_add_source viene chiamata da macvlan_change_sources() / macvlan_common_newlink():

Questo aggiunge un riferimento alla vlan all'interno della hash table delle sorgenti dell'interfaccia utilizzando la struttura macvlan_source_entry.

vlan è un puntatore ai dati privati (priv) dell'interfaccia che sta venendo creata.

Quando register_netdevice() fallisce, l'errore viene restituito da macvlan_newlink() a rtnl_newlink_create():

if (ops->newlink) err = ops->newlink(dev, &params, extack); else err = register_netdevice(dev); if (err < 0) {
free_netdev(dev); goto out; }

e viene chiamata free_netdev(), causando una kvfree() sulla struttura net_device che è ancora referenziata nell'entry della sorgente allegata all'interfaccia macvlan dell'apparecchio sottostante.

Ora, tutti i pacchetti inviati sull'interfaccia macvlan con un indirizzo MAC di origine corrispondente attiveranno un use-after-free in macvlan_forward_source().

</quote valis>

Con tutto ciò, la mia correzione consiste nell'assicurarsi che venga chiamata macvlan_flush_sources() indipendentemente dal valore di @create ogni volta che viene preso il percorso "goto destroy_macvlan_port;".

Molte grazie a valis per aver seguito questa questione.

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

Responsabile

Linux

Prenotare

13/01/2026

Divulgazione

14/02/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00119

KEV

no

Attività

molto basso

Fonti

Interested in the pricing of exploits?

See the underground prices here!