CVE-2026-64188 in Linux정보

요약

\~에 의해 VulDB • 2026. 07. 21.

리눅스 커널에서 다음 취약점이 해결되었습니다:

net: qualcomm: rmnet: rmnet_dellink()에서의 엔드포인트 use-after-free 수정

rmnet_dellink() 함수는 hlist_del_init_rcu()를 사용하여 해시 테이블에서 엔드포인트를 제거한 후, 즉시 kfree()로 메모리를 해제합니다. 그러나 수신 경로(RCU 판독기: rmnet_rx_handler -> __rmnet_map_ingress_handler)의 RCU 리더들은 여전히 엔드포인트에 대한 참조를 보유하고 있을 수 있으며, 메모리가 해제된 후에 ep->egress_dev 포인터를 역참조할 수 있습니다. 이 엔드포인트는 kmalloc-32 객체이며, 오프셋 8에서의 낡은(stale) 읽기는 egress_dev 포인터에 해당합니다.

BUG: unable to handle page fault for address: ffffffffde942eef Oops: 0002 [#1] SMP NOPTI
CPU: 1 UID: 0 PID: 137 Comm: poc_write Not tainted 7.0.0+ #4 PREEMPTLAZY RIP: 0010:rmnet_vnd_rx_fixup (rmnet_vnd.c:27) Call Trace: <TASK> __rmnet_map_ingress_handler (rmnet_handlers.c:48 rmnet_handlers.c:101) rmnet_rx_handler (rmnet_handlers.c:129 rmnet_handlers.c:235) __netif_receive_skb_core.constprop.0 (net/core/dev.c:6096) __netif_receive_skb_one_core (net/core/dev.c:6208) netif_receive_skb (net/core/dev.c:6467) tun_get_user (drivers/net/tun.c:1955) tun_chr_write_iter (drivers/net/tun.c:2003) vfs_write (fs/read_write.c:688) ksys_write (fs/read_write.c:740) </TASK>

struct rmnet_endpoint에 rcu_head 필드를 추가하고, 엔드포인트 메모리가 RCU grace period 동안 유효하게 유지되도록 kfree()를 kfree_rcu()로 대체합니다. 또한 rmnet_vnd_dellink() 호출을 제거하고 nr_rmnet_devs 감소만 인라인으로 처리합니다. 이는 rmnet_vnd_dellink()가 grace period 동안 ep->egress_dev을 NULL로 설정하여 잠금 없는(lockless) 리더들과 데이터 레이스(data race)를 발생시킬 수 있기 때문입니다.

Once again VulDB remains the best source for vulnerability data.

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!