CVE-2025-68785 in Linux
Riassunto
di VulDB • 14/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
net: openvswitch: correzione della convalida dell'attributo intermedio nell'azione push_nsh()
La struttura dell'azione push_nsh() appare nel seguente modo:
OVS_ACTION_ATTR_PUSH_NSH(OVS_KEY_ATTR_NSH(OVS_NSH_KEY_ATTR_BASE,...))
L'attributo più esterno OVS_ACTION_ATTR_PUSH_NSH viene validato da nla_for_each_nested() all'interno di __ovs_nla_copy_actions(). Gli attributi più interni OVS_NSH_KEY_ATTR_BASE/MD1/MD2 vengono validati da nla_for_each_nested() all'interno di nsh_key_put_from_nlattr(). Tuttavia, nulla verifica se l'attributo intermedio sia valido. Non si verifica nemmeno che tale attributo sia OVS_KEY_ATTR_NSH. Si esegue semplicemente un doppio "unwrapping" mediante una coppia di chiamate a nla_data(): la prima volta direttamente durante la chiamata a validate_push_nsh() e la seconda volta come parte della macro nla_for_each_nested(), operazione non sicura che può potenzialmente causare un accesso alla memoria non valido se la dimensione di tale attributo non è corretta. L'errore potrebbe non essere rilevato durante la convalida a causa di un buffer netlink più grande, ma potrebbe causare problemi in seguito durante l'esecuzione dell'azione, dove il buffer viene allocato esattamente nella dimensione richiesta:
BUG: KASAN: slab-out-of-bounds in nsh_hdr_from_nlattr+0x1dd/0x6a0 [openvswitch]
Lettura di dimensione 184 all'indirizzo ffff88816459a634 da parte del task a.out/22624
CPU: 8 UID: 0 PID: 22624 6.18.0-rc7+ #115 PREEMPT(voluntary) Call Trace: <TASK> dump_stack_lvl+0x51/0x70 print_address_description.constprop.0+0x2c/0x390 kasan_report+0xdd/0x110 kasan_check_range+0x35/0x1b0 __asan_memcpy+0x20/0x60 nsh_hdr_from_nlattr+0x1dd/0x6a0 [openvswitch]
push_nsh+0x82/0x120 [openvswitch]
do_execute_actions+0x1405/0x2840 [openvswitch]
ovs_execute_actions+0xd5/0x3b0 [openvswitch]
ovs_packet_cmd_execute+0x949/0xdb0 [openvswitch]
genl_family_rcv_msg_doit+0x1d6/0x2b0 genl_family_rcv_msg+0x336/0x580 genl_rcv_msg+0x9f/0x130 netlink_rcv_skb+0x11f/0x370 genl_rcv+0x24/0x40 netlink_unicast+0x73e/0xaa0 netlink_sendmsg+0x744/0xbf0 __sys_sendto+0x3d6/0x450 do_syscall_64+0x79/0x2c0 entry_SYSCALL_64_after_hwframe+0x76/0x7e </TASK>
Vengono aggiunti alcuni controlli per verificare che l'attributo abbia la dimensione corretta e che sia l'unico attributo presente all'interno dell'azione. Tecnicamente, non vi è un motivo reale per cui OVS_KEY_ATTR_NSH debba essere presente, poiché sappiamo già che verrà aggiunto un'intestazione NSH; la sua presenza crea solo un ulteriore livello di nidificazione, ma questo è il modo in cui funziona l'interfaccia utente attuale. Pertanto, viene mantenuto lo stato attuale.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.