← CVE Veritabanı

CVE-2026-53362

Yüksek CISA KEV: Aktif İstismar

Teknik Veri (Otomatik)

CVSS Skoru
7.8
EPSS
0.5%
CWE
CWE-787
KEV Durumu
Evet

Yayım tarihi: 4 Temmuz 2026 · CISA KEV son iyileştirme tarihi: 30 Ağustos 2026

Etkilenen: linux linux_kernel

Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: ipv6: paged-allocation yolunda fraggap için hesaplanma __ip6_append_data()'de, paged-allocation dalı alındığında (MSG_MORE / NETIF_F_SG / büyük fraglen), alloclen ve pagedlen aşağıdaki şekilde hesaplanır: alloclen = fragheaderlen + transhdrlen; pagedlen = datalen - transhdrlen; datalen zaten fraggap'ı içerir (datalen = length + fraggap). fraggap sıfır değilse, bu ilk skb değildir ve transhdrlen sıfırdır. Önceki skb'den taşınan fraggap baytları, yeni skb'nin lineer alanında parça başlıklarının hemen ardından kopyalanır. Lineer alan因此 fraggap baytları kadar küçüktür, pagedlen ise aynı miktarda abartılmıştır ve kopyalama skb->end'den sonra skb_shared_info alanına yazılır. Bir ayrıcalıklı olmayan kullanıcı, UDPv6 soketi kullanarak MSG_MORE ile birlikte MSG_SPLICE_PAGES'i tetikleyerek bu durumu oluşturabilir. Kötü hesaplanma, 773ba4fe9104 taahhüdü ("ipv6: zc için kısmi kopyalamayı önle") ile tanıtıldı. ce650a166335 taahhüdü ("udp6: __ip6_append_data()'in MSG_SPLICE_PAGES işleme şeklini düzelt") önce, negatif kopya değeri -EINVAL döndürülmesine neden oluyordu. Daha sonraki taahhüt, MSG_SPLICE_PAGES'in bu durumda devam etmesine izin verdi ve bozulmayı tetiklenebilir hale getirdi. Paged olmayan dal, alloclen'i fraglen olarak ayarlar, bu da zaten fraggap'ı içerir çünkü datalen vardır. Paged dalı, alloclen'e fraggap ekleyerek ve pagedlen'den çıkararak düzeltin. Bu ayarlamadan sonra, kopyalama paged yolunda artık -fraggap'a崩mez, bu nedenle eski aritmetiği tanımlayan eski yorumu kaldırın. Geçerli bir MSG_SPLICE_PAGES durumu için artık negatif kopya beklenmediğinden, negatif kopya kontrolünden MSG_SPLICE_PAGES istisnasını kaldırın.

Orijinal açıklama (İngilizce)

In the Linux kernel, the following vulnerability has been resolved: ipv6: account for fraggap on the paged allocation path In __ip6_append_data(), when the paged-allocation branch is taken (MSG_MORE / NETIF_F_SG / large fraglen), alloclen and pagedlen are computed as alloclen = fragheaderlen + transhdrlen; pagedlen = datalen - transhdrlen; datalen already includes fraggap (datalen = length + fraggap). When fraggap is non-zero, this is not the first skb and transhdrlen is zero. The fraggap bytes carried over from the previous skb are copied just past the fragment headers in the new skb's linear area. The linear area is therefore undersized by fraggap bytes while pagedlen is overstated by the same amount, and the copy writes past skb->end into the trailing skb_shared_info. An unprivileged user can trigger this via a UDPv6 socket using MSG_MORE together with MSG_SPLICE_PAGES. The bad accounting was introduced by commit 773ba4fe9104 ("ipv6: avoid partial copy for zc"). Before commit ce650a166335 ("udp6: Fix __ip6_append_data()'s handling of MSG_SPLICE_PAGES"), the negative copy value caused -EINVAL to be returned. That later commit allowed MSG_SPLICE_PAGES to proceed in this case, making the corruption triggerable. The non-paged branch sets alloclen to fraglen, which already accounts for fraggap because datalen does. Bring the paged branch in line by adding fraggap to alloclen and subtracting it from pagedlen. After this adjustment, copy no longer collapses to -fraggap on the paged path, so remove the stale comment describing that old arithmetic. Since a negative copy is no longer expected for a valid MSG_SPLICE_PAGES case, remove the MSG_SPLICE_PAGES exception from the negative copy check.

Bu CVE için henüz editoryal inceleme yapılmadı. Sadece otomatik teknik veri gösteriliyor.