CVE-2023-53517
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
01/10/2025
Última modificación:
02/10/2025
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
tipc: do not update mtu if msg_max is too small in mtu negotiation<br />
<br />
When doing link mtu negotiation, a malicious peer may send Activate msg<br />
with a very small mtu, e.g. 4 in Shuang&#39;s testing, without checking for<br />
the minimum mtu, l->mtu will be set to 4 in tipc_link_proto_rcv(), then<br />
n->links[bearer_id].mtu is set to 4294967228, which is a overflow of<br />
&#39;4 - INT_H_SIZE - EMSG_OVERHEAD&#39; in tipc_link_mss().<br />
<br />
With tipc_link.mtu = 4, tipc_link_xmit() kept printing the warning:<br />
<br />
tipc: Too large msg, purging xmit list 1 5 0 40 4!<br />
tipc: Too large msg, purging xmit list 1 15 0 60 4!<br />
<br />
And with tipc_link_entry.mtu 4294967228, a huge skb was allocated in<br />
named_distribute(), and when purging it in tipc_link_xmit(), a crash<br />
was even caused:<br />
<br />
general protection fault, probably for non-canonical address 0x2100001011000dd: 0000 [#1] PREEMPT SMP PTI<br />
CPU: 0 PID: 0 Comm: swapper/0 Kdump: loaded Not tainted 6.3.0.neta #19<br />
RIP: 0010:kfree_skb_list_reason+0x7e/0x1f0<br />
Call Trace:<br />
<br />
skb_release_data+0xf9/0x1d0<br />
kfree_skb_reason+0x40/0x100<br />
tipc_link_xmit+0x57a/0x740 [tipc]<br />
tipc_node_xmit+0x16c/0x5c0 [tipc]<br />
tipc_named_node_up+0x27f/0x2c0 [tipc]<br />
tipc_node_write_unlock+0x149/0x170 [tipc]<br />
tipc_rcv+0x608/0x740 [tipc]<br />
tipc_udp_recv+0xdc/0x1f0 [tipc]<br />
udp_queue_rcv_one_skb+0x33e/0x620<br />
udp_unicast_rcv_skb.isra.72+0x75/0x90<br />
__udp4_lib_rcv+0x56d/0xc20<br />
ip_protocol_deliver_rcu+0x100/0x2d0<br />
<br />
This patch fixes it by checking the new mtu against tipc_bearer_min_mtu(),<br />
and not updating mtu if it is too small.
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/1dd7ae5e0cf5a56e513f7ab7ab9570b7496281d2
- https://git.kernel.org/stable/c/259683001d7e879fea4b42084fb6560dd9408a7e
- https://git.kernel.org/stable/c/2bd4ff4ffb92113f8acd04dbaed83269172c24b4
- https://git.kernel.org/stable/c/56077b56cd3fb78e1c8619e29581ba25a5c55e86
- https://git.kernel.org/stable/c/575e84d90a74c0b091b3417ba763ebb237aa0a8c



