CVE-2026-74727 in Linuxinformazioni

Riassunto

di VulDB • 23/08/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

ovpn: saltare il rehashing per i peer già rimossi da by_id

La funzione `ovpn_nl_peer_set_doit()` individua il peer di destinazione tramite `ovpn_peer_get_by_id()` prima di acquisire `ovpn->lock`. Nella finestra temporale tra la ricerca (che incrementa solo il refcount) e l'acquisizione successiva dello spin lock (`spin_lock_bh(&ovpn->lock)`), un comando concorrente OVPN_CMD_PEER_DEL, una scadenza del keepalive o la chiusura della socket possono acquisire `ovpn->lock` per primi ed eseguire `ovpn_peer_remove()`, rimuovendo il peer da tutte e quattro le tabelle (by_id, by_vpn_addr4/6, by_transp_addr) e rilasciando il lock. Successivamente, `set_doit` acquisisce `ovpn->lock` e chiama `ovpn_peer_hash_vpn_ip()`, che reinserisce il peer già rimosso nelle tabelle soggette a rehashing.

Lo stesso race condition interessa anche il percorso float: `ovpn_peer_endpoints_update()` mantiene solo un refcount ed acquisisce `ovpn->lock` molto tardi (dopo la decrittografia AEAD asincrona e una notifica netlink), per poi effettuare il rehash del peer nella tabella by_transp_addr.

Il peer "resuscitato" diventa nuovamente raggiungibile tramite le ricerche RX (`ovpn_peer_get_by_transp_addr`) e TX VPN-IP, anche se l'utente (userspace) ritiene che sia stato rimosso. Una volta che il refcount del data-path scende, il peer viene liberato tramite `call_rcu`, mentre gli hash entry in esso incorporati rimangono collegati, aprendo una finestra di vulnerabilità Use-After-Free (UAF).

Si esce dal rehashing quando l'`hash_entry_id` è stato rimosso dalla tabella (unhashed), replicando il sentinelle già utilizzato da `ovpn_peer_remove()` per rilevare lo stato "già rimosso". Il controllo è sicuro sotto la protezione di `ovpn->lock`, che serializza ogni modifica a `hash_entry_id`, ed è un'operazione nulla (no-op) per il percorso di aggiunta, poiché `ovpn_peer_add_mp()` inserisce l'`hash_entry_id` prima di chiamare `ovpn_peer_hash_vpn_ip()`.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsabile

Linux

Prenotare

15/08/2026

Divulgazione

22/08/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

medio

Fonti

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!