
# CVE-2026-31431 "Copy Fail" के लिए शेल स्कैनर — Linux कर्नेल पेज कैश भ्रष्टाचार (algif_aead/AF_ALG) के माध्यम से स्थानीय विशेषाधिकार वृद्धि। कर्नेल संस्करण, पैच स्थिति, मॉड्यूल स्थिति, setuid एक्सपोज़र और शमन उपायों की जाँच करता है। Debian 11–13 और Ubuntu 20.04–25.10 का समर्थन करता है। CI/CD-तैयार (एग्ज़िट कोड + JSON आउटपुट)।
शेल-आधारित स्कैनर CVE-2026-31431 "Copy Fail" के लिए, लिनक्स कर्नेल के क्रिप्टोग्राफिक सबसिस्टम (algif_aead / AF_ALG इंटरफ़ेस) में एक स्थानीय विशेषाधिकार वृद्धि भेद्यता। एक अनाधिकृत स्थानीय उपयोगकर्ता एक setuid बाइनरी (जैसे /usr/bin/su) के मेमोरी पेज कैश में 4 बाइट्स लिख सकता है और रूट शेल प्राप्त कर सकता है — बिना डिस्क पर फ़ाइल को छुए।
a664bf3d603d| वितरण | रिलीज़ | पैच किया गया संस्करण |
|---|---|---|
| Debian | 11 Bullseye | 5.10.251-3 |
| Debian | 12 Bookworm | 6.1.170-1 |
| Debian | 13 Trixie | 6.12.85-1 |
| Debian | Sid / Forky | 6.19.14-1 |
| Ubuntu | 20.04 LTS Focal (GA) | 5.4.0-220.240 |
| Ubuntu | 20.04 LTS Focal (HWE) | 5.15.0-135.145~20.04.1 |
| Ubuntu | 22.04 LTS Jammy (GA) | 5.15.0-135.145 |
| Ubuntu | 22.04 LTS Jammy (HWE) | 6.8.0-61.63~22.04.1 |
| Ubuntu | 24.04 LTS Noble | 6.8.0-61.63 |
| Ubuntu | 24.10 Oracular | 6.11.0-27.27 |
| Ubuntu | 25.04 Plucky | 6.14.0-15.15 |
| Ubuntu | 25.10 Questing | मेनलाइन फिक्स (≥ 6.15) |
| Generic | कोई भी | मेनलाइन रेंज जांच (4.14 – 6.14 संवेदनशील) |
उपरोक्त रिलीज़ पर आधारित Ubuntu डेरिवेटिव (Pop!_OS, Linux Mint, Elementary OS, आदि) भी /etc/os-release में ID_LIKE के माध्यम से पहचाने जाते हैं।
# Basic scan
bash cve-2026-31431-detect.sh
# No colour output (log files, CI)
bash cve-2026-31431-detect.sh --no-colour
# JSON output (machine-readable, for pipelines)
bash cve-2026-31431-detect.sh --json
# Quiet mode — only print the summary
bash cve-2026-31431-detect.sh --quiet
# Combine flags
bash cve-2026-31431-detect.sh --json --quiet
रूट की आवश्यकता नहीं है। एक मानक शेल (bash ≥ 4.3) और वैकल्पिक रूप से लाइव AF_ALG सॉकेट परीक्षण के लिए python3 के अलावा कोई पैकेज स्थापित करने की आवश्यकता नहीं है।
| कोड | अर्थ |
|---|---|
0 | कोई संवेदनशील स्थिति नहीं मिली |
1 | एक या अधिक संवेदनशील स्थितियाँ मिलीं |
2 | स्क्रिप्ट त्रुटि / जाँच पूरी नहीं कर सका |
DevSecOps पाइपलाइनों में उपयोग के लिए डिज़ाइन किया गया — JSON आउटपुट को अपने SIEM, टिकटिंग सिस्टम, या अनुपालन डैशबोर्ड पर पाइप करें।
स्क्रिप्ट दो भाषाओं में परिणाम प्रिंट करती है:
दोनों अनुभाग प्रति-जाँच परिणामों के बाद stdout पर मुद्रित होते हैं।
=== कर्नेल संस्करण ===
[INFO] डिस्ट्रो प्रकार : ubuntu (id=ubuntu, codename=jammy, version=22.04)
[INFO] कर्नेल रिलीज़ : 5.15.0-135-generic
[OK] कर्नेल संस्करण
कारण : Ubuntu jammy: kernel 5.15.0-135.145 >= पैच किया गया संस्करण 5.15.0-135.145
...
✅ संरक्षित — प्रणाली संवेदनशील नहीं है
❌ संवेदनशील — तत्काल कार्रवाई आवश्यक
✗ कर्नेल संस्करण
✗ पैच उपस्थिति
✗ algif_aead मॉड्यूल
✗ AF_ALG सॉकेट
✗ Setuid बायनरी
sudo apt update && sudo apt full-upgrade && sudo reboot
# After reboot: uname -v → must show >= 6.1.170-1 (Bookworm)
sudo apt update && sudo apt full-upgrade && sudo reboot
# After reboot: cat /proc/version_signature
केवल तब प्रभावी जब CONFIG_CRYPTO_USER_API_AEAD=m (मॉड्यूल के रूप में निर्मित)। कोई प्रभाव नहीं यदि विकल्प (=y) में संकलित किया गया हो।
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null || true
यह SSH, dm-crypt/LUKS, OpenSSL, GnuTLS, NSS, वेब सर्वर, या डिस्क एन्क्रिप्शन को प्रभावित नहीं करता है।
MIT
| # | जांच | विधि |
|---|
| 1 | कर्नेल संस्करण | uname -r / uname -v / dpkg / /proc/version_signature |
| 2 | पैच उपस्थिति | Debian बिल्ड संस्करण, Ubuntu pkg संस्करण, /proc/version में कमिट प्रीफिक्स |
| 3 | algif_aead मॉड्यूल | /proc/modules, modprobe.d ब्लैकलिस्ट, डिस्क पर .ko |
| 4 | AF_ALG सॉकेट | Python 3 के माध्यम से लाइव socket(AF_ALG, …) प्रयास |
| 5 | Setuid बायनरी | लिखने के लक्ष्य के रूप में सामान्य setuid-रूट बायनरी |
| 6 | शमन | AppArmor, SELinux, seccomp स्थिति |
| 7 | कर्नेल कॉन्फ़िग | CONFIG_CRYPTO_AUTHENC, CONFIG_CRYPTO_USER_API_AEAD |
| 8 | उपयोगकर्ता नेमस्पेस | unprivileged_userns_clone, max_user_namespaces |
| 9 | ट्रांसपेरेंट ह्यूजपेजेस | THP सेटिंग और शोषण पर प्रभाव |
| 10 | पर्यावरण | Docker / Kubernetes / WSL पहचान, रूट चेतावनी |