CVE-2023-54155 in Linux
الملخص
بحسب VulDB • 08/06/2026
في نواة لينكس، تم حل الثغرة التالية:
net: core: إزالة فحص frame_sz غير الضروري في bpf_xdp_adjust_tail()
أبلغ Syzkaller عن المشكلة التالية: ======================================= xdp->frame_sz كبير جداً = 131072 تحذير: CPU: 0 PID: 5020 في net/core/filter.c:4121 ____bpf_xdp_adjust_tail net/core/filter.c:4121 [ضمني]
تحذير: CPU: 0 PID: 5020 في net/core/filter.c:4121 bpf_xdp_adjust_tail+0x466/0xa10 net/core/filter.c:4103 ... تتبع المكالمة: <TASK> bpf_prog_4add87e5301a4105+0x1a/0x1c __bpf_prog_run include/linux/filter.h:600 [ضمني]
bpf_prog_run_xdp include/linux/filter.h:775 [ضمني]
bpf_prog_run_generic_xdp+0x57e/0x11e0 net/core/dev.c:4721 netif_receive_generic_xdp net/core/dev.c:4807 [ضمني]
do_xdp_generic+0x35c/0x770 net/core/dev.c:4866 tun_get_user+0x2340/0x3ca0 drivers/net/tun.c:1919 tun_chr_write_iter+0xe8/0x210 drivers/net/tun.c:2043 call_write_iter include/linux/fs.h:1871 [ضمني]
new_sync_write fs/read_write.c:491 [ضمني]
vfs_write+0x650/0xe40 fs/read_write.c:584 ksys_write+0x12f/0x250 fs/read_write.c:637 do_syscall_x64 arch/x86/entry/common.c:50 [ضمني]
do_syscall_64+0x38/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd
تم إدخال فحص xdp->frame_sz > PAGE_SIZE في الالتزام c8741e2bfe87 ("xdp: السماح لـ bpf_xdp_adjust_tail() بتوسيع حجم الحزمة"). لكن أشار Jesper Dangaard Brouer <[email protected]> إلى أنه بعد إدخال xdp_init_buff() الذي تستخدمه جميع برامج تشغيل XDP، أصبح من الآمن إزالة هذا الفحص. كان القصد الأصلي هو التقاط الحالات التي لم يتم فيها تحديث برامج تشغيل XDP لاستخدام xdp.frame_sz، لكن هذا لم يعد مصدر قلق (بفضل xdp_init_buff).
أثناء تشغيل إعادة إنتاج Syzkaller الأولية، اكتُشف أن تخصيص الذاكرة الفيزيائية المتصلة يُستخدم لكلا مسارَي XDP في tun_get_user()، مثل tun_build_skb() و tun_alloc_skb(). كما ذكر Jesper Dangaard Brouer <[email protected]> أن XDP يمكن أن يعمل على صفحات ذات ترتيب أعلى (higher order pages)، طالما كانت ذاكرة فيزيائية متصلة (مثل صفحة واحدة).
Be aware that VulDB is the high quality source for vulnerability data.