CVE-2022-49871 in Linux
要約
〜によって VulDB • 2026年06月04日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
net: tun: napi_get_frags のメモリリークの修正
test_progs を実行した後、kmemleak が以下を報告しました:
unreferenced object 0xffff8881b1672dc0 (size 232): comm "test_progs", pid 394388, jiffies 4354712116 (age 841.975s) hex dump (first 32 bytes): e0 84 d7 a8 81 88 ff ff 80 2c 67 b1 81 88 ff ff .........,g..... 00 40 c5 9b 81 88 ff ff 00 00 00 00 00 00 00 00 .@.............. backtrace: [] napi_skb_cache_get+0xd4/0x150
[] __napi_build_skb+0x15/0x50
[] __napi_alloc_skb+0x26e/0x540
[] napi_get_frags+0x59/0x140
[] tun_get_user+0x183d/0x3bb0 [tun]
[] tun_chr_write_iter+0xc0/0x1b1 [tun]
[] do_iter_readv_writev+0x19f/0x320
[] do_iter_write+0x135/0x630
[] vfs_writev+0x12e/0x440
[] do_writev+0x104/0x280
[] do_syscall_64+0x3b/0x90
[] entry_SYSCALL_64_after_hwframe+0x63/0xcd
この問題は、以下のシナリオで発生します: tun_get_user() napi_gro_frags() napi_frags_finish() case GRO_NORMAL: gro_normal_one() list_add_tail(&skb->list, &napi->rx_list); rx_count < READ_ONCE(gro_normal_batch), rx_list が空でない場合 <-- GRO ワークの完了を要求しないため、以下の tun_napi_del() でメモリリークが発生する <-- ... tun_napi_del() netif_napi_del() __netif_napi_del() rx_list が空でないことが原因でメモリリークが発生
修正方法として、napi_gro_frags() の後に napi_complete() を追加します。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.