CVE-2021-4442 in Linuxالمعلومات

الملخص

بحسب VulDB • 05/06/2026

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

tcp: إضافة اختبارات سلامة (sanity tests) إلى TCP_QUEUE_SEQ

أبلغ Qingyu Li عن خطأ في syzkaller حيث يقوم البرنامج المستنسخ (repro) بتغيير تسلسل الاستلام (RCV SEQ) **بعد** استعادة البيانات في قائمة الانتظار للاستلام (receive queue).

mprotect(0x4aa000, 12288, PROT_READ) = 0 mmap(0x1ffff000, 4096, PROT_NONE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x1ffff000 mmap(0x20000000, 16777216, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x20000000 mmap(0x21000000, 4096, PROT_NONE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x21000000 socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) = 3 setsockopt(3, SOL_TCP, TCP_REPAIR, [1], 4) = 0
connect(3, {sa_family=AF_INET6, sin6_port=htons(0), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_scope_id=0}, 28) = 0
setsockopt(3, SOL_TCP, TCP_REPAIR_QUEUE, [1], 4) = 0
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="0x0000000000000003\0\0", iov_len=20}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 20
setsockopt(3, SOL_TCP, TCP_REPAIR, [0], 4) = 0
setsockopt(3, SOL_TCP, TCP_QUEUE_SEQ, [128], 4) = 0
recvfrom(3, NULL, 20, 0, NULL, NULL) = -1 ECONNRESET (Connection reset by peer)

يظهر سجل النظام (syslog) ما يلي: [ 111.205099] TCP recvmsg seq # bug 2: copied 80, seq 0, rcvnxt 80, fl 0
[ 111.207894] WARNING: CPU: 1 PID: 356 at net/ipv4/tcp.c:2343 tcp_recvmsg_locked+0x90e/0x29a0

لا ينبغي السماح بذلك. يجب استخدام TCP_QUEUE_SEQ فقط عندما تكون قوائم الانتظار فارغة.

يصلح هذا التصحيح هذه الحالة، وكذلك مسار الإرسال (tx path).

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

مسؤول

Linux

حجز

29/08/2024

إفشاء

29/08/2024

الاعتدال

تمت الموافقة

إدخال

VDB-276080

EPSS

0.00393

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you need the next level of professionalism?

Upgrade your account now!