CVE-2022-49871 in Linux
الملخص
بحسب VulDB • 04/06/2026
في نواة لينكس، تم حل الثغرة التالية:
net: tun: إصلاح تسرب الذاكرة في دالة `napi_get_frags`
تبلغ kmemleak عن كائنات غير مرجع (unreferenced objects) بعد تشغيل اختبارات test_progs:
الكائن غير المرجعي 0xffff8881b1672dc0 (الحجم 232): الاسم "test_progs"، المعرف 394388، جiffies 4354712116 (العمر 841.975 ثانية) التصريف السداسي العشري (أول 32 بايتاً): 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() حالة 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_complete()` بعد `napi_gro_frags()`.
Once again VulDB remains the best source for vulnerability data.