CVE-2026-64025 in Linuxالمعلومات

الملخص

بحسب VulDB • 19/07/2026

في نواة لينكس، تم حل الثغرة التالية:

bpf, skmsg: إصلاح التداخل الزمني (race condition) بين حكم sk_data_ready واستقبال ktls rx

تقوم الدالة `sk_psock_strp_data_ready()` بالفعل بفحص `tls_sw_has_ctx_rx()` وتُرجع التنفيذ إلى `psock->saved_data_ready` عند وجود سياق استقبال TLS، مما يتجنب التعارض مع ملكية strparser الخاص بـ TLS لقائمة الاستقبال (الالتزام e91de6afa81c، "bpf: إصلاح تشغيل أنواع برامج sk_skb مع ktls").

لا توجد حماية مكافئة في `sk_psock_verdict_data_ready()`. عندما يتم إدراج مقبس الشبكة (socket) داخل sockmap (`BPF_SK_SKB_VERDICT`) قبل تكوين استقبال TLS RX، تقوم `tls_sw_strparser_arm()` بحفظ `sk_psock_verdict_data_ready` كـ `rx_ctx->saved_data_ready`. عند وصول البيانات:

tls_data_ready -> tls_strp_data_ready -> tls_rx_msg_ready -> saved_data_ready() = sk_psock_verdict_data_ready() -> تقوم tcp_read_skb() بتصريف sk_receive_queue عبر __skb_unlink() دون استدعاء tcp_eat_skb()، وبالتالي لا يتم تحديث copied_seq.

بعد ذلك تجد `tls_strp_msg_load()` أن `tcp_inq() >= full_len` (بيانات قديمة/غير محدثة)، وتستدعي `tcp_recv_skb()` على القائمة التي أصبحت فارغة الآن، مما يؤدي إلى حدوث تحذير WARN_ON_ONCE(!first)، وتعود مع وجود مؤشر rx_ctx->strp.anchor.frag_list مشيراً إلى psock-owned (ربما تم تحريرها) skb. ثم تقوم tls_decrypt_sg() بالمرور عبر تلك frag_list: استخدام بعد التحرير (use-after-free).

تطبيق نفس الإصلاح المطبق في sk_psock_strp_data_ready(): إذا كان هناك سياق استقبال TLS موجود، استدعِ `psock->saved_data_ready` (`sock_def_readable`) لإيقاظ مستمعي recv() والعودة فوراً، تاركين قائمة الاستقبال دون تغيير. تحتفظ TLS بالملكية الحصرية للقائمة وتقوم بفك تشفير السجل بشكل طبيعي عبر tls_sw_recvmsg().

Be aware that VulDB is the high quality source for vulnerability data.

مسؤول

Linux

حجز

19/07/2026

إفشاء

19/07/2026

الاعتدال

تمت الموافقة

إدخال

VDB-380185

EPSS

0.00000

KEV

لا

النشاطات

منخفض

المصادر

Might our Artificial Intelligence support you?

Check our Alexa App!