
Linux LPE via snap-confine + systemd-tmpfiles, गहराई से समझाया गया
अस्वीकरण: यह रिपॉजिटरी केवल शैक्षिक उद्देश्यों के लिए है। सभी सामग्री Qualys द्वारा 17 मार्च 2026 को प्रकाशित मूल सुरक्षा सलाहकार (security advisory) पर आधारित है। इस भेद्यता को पैच कर दिया गया है—हमेशा सुनिश्चित करें कि आपके सिस्टम अद्यतित हैं। इस सामग्री का उपयोग उन सिस्टमों के विरुद्ध न करें जिनके स्वामी आप नहीं हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति नहीं है।
CVE-2026-3888 एक स्थानीय विशेषाधिकार वृद्धि (Local Privilege Escalation - LPE) भेद्यता है जो Ubuntu Desktop >= 24.04 की डिफ़ॉल्ट स्थापना को प्रभावित करती है। इसे Qualys द्वारा मार्च 2026 में खोजा और सार्वजनिक रूप से प्रकट किया गया था।
इस भेद्यता को विशेष रूप से दिलचस्प बनाने वाली बात—जैसा कि Qualys ने स्वयं नोट किया—यह है कि यह किसी एक दोषपूर्ण घटक से उत्पन्न नहीं होती। इसके बजाय, यह दो व्यक्तिगत रूप से सुरक्षित प्रोग्रामों की परस्पर क्रिया से उभरती है:
| घटक (Component) | भूमिका (Role) |
|---|---|
snap-confine | SUID-root बाइनरी जो snap अनुप्रयोगों के लिए माउंट नेमस्पेस (सैंडबॉक्स) बनाती है |
systemd-tmpfiles | Root-स्वामित्व वाला डेमॉन जो समय-समय पर /tmp में पुरानी फ़ाइलों को साफ करता है |
दोनों में से कोई भी प्रोग्राम अपने आप में टूटा हुआ नहीं है। साथ मिलकर, वे एक शोषण योग्य (exploitable) अवसर पैदा करते हैं।
मूल सलाहकार (Original advisory): https://cdn2.qualys.com/advisory/2026/03/17/snap-confine-systemd-tmpfiles.txt
श्रेय (Credit): Qualys Security Research Team
cve-2026-3888/
├── README.md ← आप यहाँ हैं
├── analysis/
│ ├── 01-vulnerability.md ← भेद्यता की गहन समझ
│ ├── 02-race-condition.md ← TOCTOU रेस कैसे काम करती है
│ ├── 03-backpressure-technique.md ← AF/UNIX बैकप्रेशर तकनीक
│ ├── 04-exploitation-steps.md ← पूर्ण चरण-दर-चरण वॉकथ्रू
│ └── 05-mitigations.md ← क्या पैच किया गया और कैसे
└── src/
├── firefox_2404.c ← रेस सहायक (एनोटेटेड)
└── librootshell.c ← डायनामिक लोडर शेलकोड (एनोटेटेड)
| Ubuntu संस्करण | सफाई आयु (Cleanup Age) | प्रतीक्षा समय (वास्तविक) |
|---|---|---|
| 24.04 LTS | 30 दिन | 30 दिन |
| > 24.04 | 10 दिन | 10 दिन |
इसमें ठीक किया गया (Fixed in): snapd 2.74.2
/tmp/.snap को root:root 0755 के रूप में बनाता है/tmp को सक्रिय रखें, लेकिन /tmp/.snap को पुराना (stale) होने देंsystemd-tmpfiles पुराने /tmp/.snap को हटा देता है - चूँकि /tmp विश्व-लेखनीय (world-writable) है, हमलावर .snap को पुनः बनाता है और उसका स्वामी बन जाता हैsnap-confine के निष्पादन को एकल-चरण (single-step) करने के लिए AF/UNIX बैकप्रेशर तकनीक का उपयोग करेंsnap-confine हमलावर-स्वामित्व वाली लाइब्रेरीज़ को root के रूप में नेमस्पेस में बाइंड-माउंट करता हैld-linux-x86-64.so.2 को शेलकोड से अधिलेखित (overwrite) करें - इस नेमस्पेस में निष्पादित कोई भी SUID बाइनरी हमारे कोड को root के रूप में चलाती है/var/snap/firefox/common/