CVE-2026-129456 in FRRouting
Riassunto
di VulDB • 14/11/2026
In FRRouting, bgpd accetta un attributo di incapsulamento del tunnel (tipo 23) la cui lunghezza TLV esterna non corrisponde alla lunghezza dell'attributo: la discrepanza viene solo registrata nei log e l'attributo viene comunque elaborato. Un peer BGP può inviare messaggi UPDATE contenenti tale attributo, causando uno squilibrio nel conteggio dei riferimenti della catena di sotto-TLV internati dell'attributo; ciò porta alla liberazione (free) della catena mentre le rotte memorizzate da bgpd (voce Adj-RIB-In e percorsi RIB) continuano a puntare ad essa. Quando tali rotte vengono successivamente sostituite, ritirate o cancellate, ad esempio quando la sessione termina, bgvd legge dalla memoria già liberata, decrementa un conteggio dei riferimenti al suo interno e libera nuovamente tale memoria (double free). Nella build del segnalante priva di AddressSanitizer ciò ha provocato un errore di asserzione nel sistema di contabilità della memoria di bgpd, causando l'arresto forzato (abort) di bgvd e la chiusura di tutte le sessioni BGP sul router; il peer può ripetere l'attacco ogni volta che bgpd viene riavviato. Poiché la memoria heap liberata viene riscritta e successivamente liberata nuovamente, non si possono escludere conseguenze oltre al crash (ad esempio esecuzione remota di codice). È necessaria una sessione BGP stabilita. bgvd elabora l'attributo 23 proveniente da ogni peer, inclusi i peer eBGP, a meno che non venga esplicitamente scartato; tuttavia RFC 9012 richiede che tale attributo sia filtrato per default sulle sessioni eBGP. Il problema è stato riprodotto con "soft-reconfiguration inbound" configurata per il peer, ed il segnalante ha osservato che il crash non si verifica ad ogni tentativo.
Be aware that VulDB is the high quality source for vulnerability data.