
fragnesia (CVE-2026-46300) का एक Go कार्यान्वयन
एक SA। एक बार में एक बाइट। कोई रेस नहीं।
fragnesia (CVE-2026-46300) का Go पोर्ट। Dirty Frag भेद्यता वर्ग का सदस्य - अलग बग, समान सतह, अपना पैच।
यह बग Linux XFRM ESP-in-TCP सबसिस्टम में है। जब डेटा पहले से किसी फ़ाइल से splice() करके TCP रिसीव क्यू में डाला जा चुका होता है और फिर सॉकेट पर TCP_ULP espintcp इंस्टॉल किया जाता है, तो कर्नेल क्यू में मौजूद डेटा को ESP साइफरटेक्स्ट रिकॉर्ड मानकर उसे उसी स्थान (in-place) पर डिक्रिप्ट करता है। उस डेटा का स्रोत पेज-कैश पेज होता है। डिक्रिप्शन AES-GCM कीस्ट्रीम को सीधे उसमें XOR कर देता है।
परिणाम किसी भी पठनीय फ़ाइल के पेज कैश में एक नियंत्रित सिंगल-बाइट राइट होता है।
कीस्ट्रीम तालिका
AES-GCM (RFC 4106) काउंटर ब्लॉक स्थिति 2 पर [salt(4) || IV(8) || 0x00000002] है। इसे सेशन की के तहत एन्क्रिप्ट करने पर 16-बाइट कीस्ट्रीम ब्लॉक मिलता है। उस ब्लॉक का बाइट 0 ही टार्गेट बाइट में XOR होता है। IV नॉन्स के निचले 32 बिट्स बदलने से पहले 65536 नॉन्स के भीतर सभी 256 संभव कीस्ट्रीम बाइट मान प्राप्त किए जा सकते हैं। एक्सप्लॉइट इस लुकअप तालिका को स्टार्टअप पर AF_ALG AES-ECB के माध्यम से एक बार बनाता है।
बाइट-फ्लिप लूप
पेलोड के प्रत्येक बाइट के लिए:
needed_keystream = current XOR desired की गणना करें।TCP_ULP इंस्टॉल में देरी करता है)।current XOR keystream = current XOR (current XOR desired) = desired।एक SA। अधिकतम 192 ट्रिगर। डिटर्मिनिस्टिक।
go build -o fragnesia-go .
./fragnesia-go
सफल होने पर यह एक नए PTY के माध्यम से रूट शेल में प्रवेश करता है। डिस्क पर मौजूद बाइनरी अछूती रहती है - केवल पेज कैश।
echo 1 | tee /proc/sys/vm/drop_caches
esp6 (ट्रांसपोर्ट मोड, IPv6 लूपबैक)पैच से पहले के सभी कर्नेल: https://lists.openwall.net/netdev/2026/05/13/79
dirtyfrag जैसी ही रेंज।
dirtyfrag जैसा ही:
rmmod esp4 esp6
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\n' \
> /etc/modprobe.d/fragnesia.conf
| dirtyfrag-go | fragnesia-go |
|---|
| CVEs | CVE-2026-43284 / CVE-2026-43500 | CVE-2026-46300 |
| ट्रांसपोर्ट | ESP-in-UDP + RxRPC | ESP-in-TCP (ULP) |
| राइट ग्रैन्युलैरिटी | 4 बाइट प्रति ट्रिगर | 1 बाइट प्रति ट्रिगर |
| XFRM SAs | 48 | 1 |
| क्रिप्टो | HMAC-SHA256 + CBC-AES | AES-128-GCM |
| IP फैमिली | IPv4 | IPv6 |