В ядре Linux устранена следующая уязвимость:
Tipc: исправьте UAF в Tipc_l2_send_msg()
Syzbot сообщил о slab-use-after-free в ipvlan_hard_header(), когда
вызывается из Tipc_l2_send_msg(). Основная причина заключается в том, что Tipc_disable_l2_media() вызываетsync_net().
в то время как b->media_ptr все еще действителен. Это позволяет одновременным считываниям RCU
чтобы получить указатель устройства после завершения синхронизации_net().
Указатель очищается позже в Bearer_disable(), но без каких-либо
последующая синхронизация, позволяющая освободить устройство во время
до сих пор используется читателями. Исправьте это, очистив b->media_ptr в Tipc_disable_l2_media() перед этим.
вызовsync_net(). Сейчас это можно сделать безопасно, поскольку порядок вызовов в Bearer_disable()
было отменено в 0d051bf93c06 («совет: сделайте фильтрацию пакетов носителя универсальной»)
вызвать Tipc_node_delete_links() (которому нужен указатель) перед
отключить_медиа().
https://lore.kernel.org/netdev/6a2c1007.428ffe26.258b27.015d.GAE@google.com/T/#u
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: tipc: fix UAF in tipc_l2_send_msg() Syzbot reported a slab-use-after-free in ipvlan_hard_header() when called from tipc_l2_send_msg(). The root cause is that tipc_disable_l2_media() calls synchronize_net() while b->media_ptr is still valid. This allows concurrent RCU readers to obtain the device pointer after synchronize_net() has finished. The pointer is cleared later in bearer_disable(), but without any subsequent synchronization, allowing the device to be freed while still in use by readers. Fix this by clearing b->media_ptr in tipc_disable_l2_media() before calling synchronize_net(). This is safe to do now because the call order in bearer_disable() was reversed in 0d051bf93c06 ("tipc: make bearer packet filtering generic") to call tipc_node_delete_links() (which needs the pointer) before disable_media(). https: //lore.kernel.org/netdev/6a2c1007.428ffe26.258b27.015d.GAE@google.com/T/#u
Характеристики атаки
Последствия
Строка CVSS v3.1