
CVE-2026-31431 के लिए स्वचालित स्कैनर और पैच सहायक, जो SSH के माध्यम से कमजोर Linux होस्टों का पता लगाता है, कर्नेल संस्करणों की पुष्टि करता है, और कई वितरणों में कर्नेल अपग्रेड या अस्थायी शमन लागू करता है।
Copy Fail आपके Linux इंफ्रास्ट्रक्चर में CVE-2026-31431 (Linux Kernel algif_aead Local Privilege Escalation) कमजोरी का पता लगाने और उसे ठीक करने के लिए एक स्वचालित सुरक्षा स्कैनर और पैच हेल्पर है।
CVE-2026-31431 Linux कर्नेल मॉड्यूल algif_aead (Asynchronous Cipher Interface for AEAD) में एक Local Privilege Escalation (LPE) कमजोरी है। यह कमजोरी स्थानीय उपयोगकर्ताओं को root स्तर तक privilege escalation प्राप्त करने की अनुमति देती है।
यह टूल निम्नलिखित में मदद करता है:
नोट: यह टूल केवल sysadmin द्वारा आंतरिक ऑडिट और पैचिंग उद्देश्यों के लिए है। इसका उपयोग केवल उन सिस्टम पर करें जिनके आप मालिक हैं या जिनके लिए आपके पास अधिकार है।

algif_aead मॉड्यूल की स्थिति का पता लगाएं (loaded/not loaded)पैकेज मैनेजर के माध्यम से कमजोर होस्ट पर स्वचालित कर्नेल अपग्रेड:
विकल्प: पैच पूरा होने के बाद स्वचालित रीबूट
algif_aead मॉड्यूल को अक्षम करेंपैच किए गए कर्नेल संस्करणों का डेटाबेस:
paramiko>=3.0.0 # SSH library
rich>=13.0.0 # Beautiful terminal UI
git clone https://github.com/gagaltotal/cve-2026-31431-copy-fail.git
cd cve-2026-31431-copy-fail
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
या मैन्युअल रूप से स्थापित करें:
pip install paramiko>=3.0.0 rich>=13.0.0
python3 copyfail_scanner.py --help
# SSH key के साथ सबनेट स्कैन करें
python3 copyfail_scanner.py --subnet <CIDR> --user <USERNAME> --key <PATH_TO_KEY>
# कई विशिष्ट होस्ट स्कैन करें
python3 copyfail_scanner.py --hosts <IP1>,<IP2>,<IP3> --user <USERNAME> [--password <PASSWORD>]
# स्कैन + स्वचालित पैच
python3 copyfail_scanner.py --subnet <CIDR> --user <USERNAME> --key <PATH> --patch
# स्कैन + अस्थायी शमन
python3 copyfail_scanner.py --subnet <CIDR> --user <USERNAME> --key <PATH> --mitigate
| विकल्प | विवरण | उदाहरण |
|---|---|---|
--subnet | लक्ष्य सबनेट CIDR (--hosts के साथ परस्पर अनन्य) | --subnet 192.168.1.0/24 |
--hosts | अल्पविराम से अलग किए गए IP की सूची (--subnet के साथ परस्पर अनन्य) | --hosts 192.168.1.10,192.168.1.20 |
--user | SSH उपयोगकर्ता नाम (आवश्यक) | --user root |
--password | SSH पासवर्ड (वैकल्पिक, key न होने पर उपयोग करें) | --password secret123 |
--key | SSH निजी key का पथ | --key ~/.ssh/id_rsa |
--port | SSH पोर्ट (डिफ़ॉल्ट: 22) | --port 2222 |
--threads | समानांतर थ्रेड की संख्या (डिफ़ॉल्ट: 30) | --threads 50 |
--patch | कमजोर होस्ट पर स्वचालित कर्नेल अपग्रेड | --patch |
--reboot | पैच के बाद स्वचालित रीबूट (--patch के साथ उपयोग करें) | --patch --reboot |
--mitigate | अस्थायी शमन लागू करें (algif_aead अक्षम करें) | --mitigate |
--output | स्कैन परिणाम JSON फ़ाइल में निर्यात करें | --output hasil.json |
--yes | पैच/शमन से पहले पुष्टिकरण प्रॉम्प्ट छोड़ें | --yes |
python3 copyfail_scanner.py \
--subnet 192.168.1.0/24 \
--user ubuntu \
--key ~/.ssh/id_rsa
आउटपुट: स्कैन परिणाम तालिका और सारांश प्रदर्शित करता है
python3 copyfail_scanner.py \
--hosts 10.0.1.5,10.0.1.6,10.0.1.7 \
--user admin \
--password my_password123
python3 copyfail_scanner.py \
--subnet 172.16.0.0/16 \
--user root \
--key ~/.ssh/id_rsa \
--mitigate
कार्रवाई: सभी होस्ट स्कैन करें, फिर कमजोर होस्ट पर algif_aead मॉड्यूल अक्षम करें (पुष्टिकरण मांगता है)
python3 copyfail_scanner.py \
--subnet 192.168.0.0/24 \
--user ubuntu \
--key ~/.ssh/id_rsa \
--patch
कार्रवाई: कर्नेल अपग्रेड करें, लेकिन स्वचालित रीबूट न करें (मैन्युअल रीबूट आवश्यक है)
python3 copyfail_scanner.py \
--subnet 10.10.0.0/24 \
--user root \
--key ~/.ssh/id_rsa \
--patch \
--reboot \
--yes
कार्रवाई: स्कैन करें, कर्नेल पैच करें, स्वचालित रीबूट करें, पुष्टिकरण छोड़ें
python3 copyfail_scanner.py \
--subnet 192.168.1.0/24 \
--user sysadmin \
--key ~/.ssh/id_rsa \
--output scan_results_$(date +%Y%m%d_%H%M%S).json
आउटपुट: टर्मिनल में तालिका + फ़ाइल में JSON परिणाम
python3 copyfail_scanner.py \
--subnet 10.0.0.0/25 \
--user ubuntu \
--key ~/.ssh/id_rsa \
--port 2222 \
--threads 50