
स्थानीय विशेषाधिकार वृद्धि शोषण CVE-2026-31431 (कॉपी फेल) के लिए, जो AF_ALG AEAD मॉड्यूल के माध्यम से Linux कर्नेल पेज कैश भ्रष्टाचार को लक्षित करता है। इसमें अधिकृत सुरक्षा परीक्षण के लिए PoC, डिटेक्शन नियम, लैब सेटअप और शमन स्क्रिप्ट शामिल हैं।
██████╗ ██████╗ ██████╗ ██╗ ██╗ ███████╗ █████╗ ██╗██╗
██╔════╝██╔═══██╗██╔══██╗╚██╗ ██╔╝ ██╔════╝██╔══██╗██║██║
██║ ██║ ██║██████╔╝ ╚████╔╝ █████╗ ███████║██║██║
██║ ██║ ██║██╔═══╝ ╚██╔╝ ██╔══╝ ██╔══██║██║██║
╚██████╗╚██████╔╝██║ ██║ ██║ ██║ ██║██║███████╗
╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝╚══════╝
algif_aead पेज कैश भ्रष्टाचार के माध्यम से
-yellow?style=for-the-badge&logo=linux&logoColor=black)
⚠️ केवल अधिकृत उपयोग — यह रिपॉजिटरी विशेष रूप से पैठ परीक्षकों, सुरक्षा शोधकर्ताओं और रक्षकों के लिए है जो कानूनी प्राधिकरण के तहत काम कर रहे हैं। दुरुपयोग एक आपराधिक अपराध है।
कॉपी फ़ेल एक स्थानीय विशेषाधिकार वृद्धि (LPE) भेद्यता है जिसे 29 अप्रैल, 2026 को सार्वजनिक किया गया, जो 2017 से चल रहे कर्नेल वाले लगभग हर प्रमुख लिनक्स वितरण को प्रभावित करती है।
अनअप्रिविलेज्ड यूज़र ──► AF_ALG + splice() ──► 4-बाइट पेज कैश लेखन ──► ROOT
यह भेद्यता 2017 में पेश किए गए एक बग्गी इन-प्लेस ऑप्टिमाइज़ेशन (कमिट 72548b093ee3) के कारण है, जो लिनक्स कर्नेल के उपयोगकर्ता-स्थान क्रिप्टो API (AF_ALG) के algif_aead मॉड्यूल के अंदर है।
AF_ALG (यूज़रस्पेस क्रिप्टो API)
└── algif_aead मॉड्यूल
└── authencesn टेम्पलेट ◄── कमजोर
└── इन-प्लेस ऑप्टिमाइज़ेशन (2017)
└── req->src == req->dst ◄── splice() से पेज लिखने योग्य dst स्कैटरलिस्ट में जंजीर
चरण 1: AF_ALG AEAD सॉकेट खोलें
socket(AF_ALG, SOCK_SEQPACKET, 0)
चरण 2: लक्ष्य फ़ाइल को संदर्भित करने वाले splice() पेज भेजें
(विशेषाधिकार प्राप्त बाइनरी का पेज कैश पेज, जैसे /usr/bin/sudo)
चरण 3: authencesn स्क्रैच राइट ट्रिगर करें
authencesn dst बफर को स्क्रैच पैड के रूप में उपयोग करता है →
वैध आउटपुट क्षेत्र से परे 4 नियंत्रित बाइट लिखता है
चरण 4: लक्ष्य फ़ाइल का पेज कैश एंट्री अब भ्रष्ट है
(डिस्क फ़ाइल अछूती — केवल मेमोरी कॉपी संशोधित)
चरण 5: संशोधित बाइनरी निष्पादित करें → ROOT
लिनक्स कर्नेल का पेज कैश फ़ाइलों की मेमोरी कॉपीज़ को रखता है। जब कोई फ़ाइल पढ़ी जाती है, तो उसके पेज कैश हो जाते हैं। splice() सिस्टम कॉल सीधे इन कैश किए गए पेजों को संदर्भित कर सकता है। पेज कैश पेजों को AF_ALG AEAD स्कैटरलिस्ट में डालकर, authencesn स्क्रैच राइट उन कैश किए गए पेजों के अंदर उतरती है, प्रभावी रूप से किसी भी पढ़ने योग्य फ़ाइल की मेमोरी कॉपी को पैच करती है — जिसमें विशेषाधिकार प्राप्त बाइनरी जैसे sudo, pkexec, या passwd शामिल हैं।
अपस्ट्रीम फिक्स 2017 के दोषपूर्ण ऑप्टिमाइज़ेशन को वापस लेता है:
# कमिट में फिक्स: a664bf3d603d
git show a664bf3d603d
CVE-2026-31431-CopyFail/
│
├── 📄 README.md ← आप यहाँ हैं
├── 📄 LICENSE ← शोध/शैक्षिक लाइसेंस
├── 📄 DISCLAIMER.md ← कानूनी और नैतिक उपयोग नीति
├── 📄 CHANGELOG.md ← संस्करण इतिहास
│
├── 📂 docs/
│ ├── vulnerability-analysis.md ← गहन विश्लेषण: मूल कारण और यांत्रिकी
│ ├── exploitation-walkthrough.md ← चरण-दर-चरण कार्यप्रणाली
│ ├── affected-kernels.md ← पूर्ण कर्नेल/डिस्ट्रो संस्करण मैट्रिक्स
│ ├── detection.md ← डिफेंडर, Tenable, Wazuh कवरेज
│ └── references.md ← सभी CVE, ब्लॉग, सलाहकार
│
├── 📂 exploit/
│ ├── README.md ← उपयोग, आवश्यक शर्तें, परीक्षित डिस्ट्रो
│ ├── copyfail.py ← संदर्भ PoC (शैक्षिक)
│ ├── trigger.c ← AF_ALG + splice() C ट्रिगर
│ └── variants/
│ ├── ubuntu.py ← Ubuntu-विशिष्ट प्रकार
│ ├── rhel.py ← RHEL/CentOS प्रकार
│ └── amazon_linux.py ← Amazon Linux प्रकार
│
├── 📂 detection/
│ ├── yara/
│ │ └── copyfail.yar ← एक्सप्लॉइट आर्टिफैक्ट्स के लिए YARA नियम
│ ├── sigma/
│ │ └── copyfail_lpe.yml ← SIEM/SOC के लिए Sigma नियम
│ └── scripts/
│ ├── check_vulnerable.sh ← त्वरित कर्नेल भेद्यता जाँच
│ └── detect_algif_aead.sh ← जाँचें कि मॉड्यूल लोड/सक्रिय है या नहीं
│
├── 📂 mitigation/
│ ├── README.md ← शमन अवलोकन
│ ├── disable_algif_aead.sh ← प्रभावित कर्नेल मॉड्यूल अक्षम करें
│ ├── patch-notes.md ← अपस्ट्रीम पैच विवरण
│ └── kubernetes-hardening.md ← K8s / कंटेनर सख्तीकरण
│
├── 📂 lab/
│ ├── Vagrantfile ← पुनरुत्पादनीय कमजोर VM
│ ├── setup.sh ← प्रयोगशाला बूटस्ट्रैप स्क्रिप्ट
│ └── docker/
│ └── Dockerfile ← कमजोर Ubuntu कंटेनर
│
├── 📂 reports/
│ ├── pentest-report-template.md ← क्लाइंट-रेडी रिपोर्ट टेम्पलेट
│ └── sample-finding.md ← नमूना खोज लेखन-अप
│
└── 📂 assets/
├── demo.gif ← (वैकल्पिक) टर्मिनल डेमो
└── diagrams/
└── page-cache-write.png ← हमला प्रवाह आरेख
हमेशा एक पृथक, अधिकृत वातावरण में परीक्षण करें। उत्पादन प्रणालियों पर कभी एक्सप्लॉइट न चलाएँ।
# रिपॉजिटरी क्लोन करें
git clone https://github.com/0xFuffM3/CVE-2026-31431-CopyFail.git
cd CVE-2026-31431-CopyFail
# कमजोर लैब VM शुरू करें
cd lab/
vagrant up
# लैब में SSH करें
vagrant ssh
# कर्नेल संस्करण सत्यापित करें (कमजोर होना चाहिए)
uname -r
cd lab/docker/
# कमजोर कंटेनर इमेज बनाएँ
docker build -t copyfail-lab .
# कर्नेल इंटरैक्शन के लिए आवश्यक विशेषाधिकारों के साथ चलाएँ
docker run --rm -it --privileged copyfail-lab /bin/bash
# त्वरित जाँच स्क्रिप्ट चलाएँ
chmod +x detection/scripts/check_vulnerable.sh
./detection/scripts/check_vulnerable.sh
कमजोर सिस्टम पर अपेक्षित आउटपुट:
[!] Kernel version: 5.15.0-91-generic
[!] algif_aead module: LOADED
[✗] System appears VULNERABLE to CVE-2026-31431 (Copy Fail)
[*] Recommended action: Apply kernel update or disable algif_aead
पैच किए गए सिस्टम पर अपेक्षित आउटपुट:
[✓] Kernel version: 6.1.132
[✓] System appears PATCHED against CVE-2026-31431 (Copy Fail)
आवश्यकता: कमजोर सिस्टम पर अनअप्रिविलेज्ड उपयोगकर्ता के रूप में स्थानीय पहुँच।
# Python 3.6+
python3 --version
# आवश्यक कर्नेल मॉड्यूल मौजूद
lsmod | grep algif_aead
# लक्ष्य बाइनरी पढ़ने योग्य है सत्यापित करें
ls -la /usr/bin/sudo
cd exploit/
# वर्तमान विशेषाधिकार स्तर जाँचें
id
# uid=1000(user) gid=1000(user) groups=1000(user)
# कॉपी फ़ेल PoC चलाएँ
python3 copyfail.py
# विशेषाधिकार वृद्धि सत्यापित करें
id
# uid=0(root) gid=0(root) groups=0(root)
1. कर्नेल संस्करण की सूची बनाएँ
└─► uname -r / cat /proc/version
2. जाँचें कि algif_aead लोड है या नहीं
└─► lsmod | grep algif_aead
3. निम्न-विशेषाधिकार पकड़ की पुष्टि करें
└─► id / whoami
4. कॉपी फ़ेल PoC निष्पादित करें
└─► python3 exploit/copyfail.py
5. रूट एक्सेस सत्यापित करें
└─► id && cat /etc/shadow
6. साक्ष्य दस्तावेज़ित करें
└─► स्क्रीनशॉट + कर्नेल संस्करण, डिस्ट्रो, एक्सप्लॉइट हैश लॉग करें
7. शमन लागू करें (परीक्षण के बाद)
└─► sudo bash mitigation/disable_algif_aead.sh
8. पैठ परीक्षण रिपोर्ट में शामिल करें
└─► reports/pentest-report-template.md का उपयोग करें
// detection/yara/copyfail.yar
rule CopyFail_CVE_2026_31431 {
meta:
description = "Detects Copy Fail (CVE-2026-31431) exploit artefacts"
author = "0xFuffM3"
date = "2026-04-30"
reference = "https://copy.fail"
strings:
$py1 = "algif_aead" ascii
$py2 = "AF_ALG" ascii
$py3 = "splice" ascii
$py4 = "page_cache" ascii
$py5 = "authencesn" ascii
condition:
3 of them
}
YARA स्कैन चलाएँ:
yara detection/yara/copyfail.yar /tmp/ -r
# detection/sigma/copyfail_lpe.yml
title: Copy Fail LPE Exploit Execution (CVE-2026-31431)
status: stable
logsource:
category: process_creation
product: linux
detection:
selection:
CommandLine|contains:
- 'AF_ALG'
- 'algif_aead'
- 'authencesn'
condition: selection
falsepositives:
- Legitimate crypto API testing
level: high
chmod +x detection/scripts/detect_algif_aead.sh
./detection/scripts/detect_algif_aead.sh
# Ubuntu / Debian
sudo apt-get update && sudo apt-get upgrade linux-image-generic
# RHEL / CentOS
sudo yum update kernel
# Amazon Linux
sudo yum update kernel
# अपडेट के बाद, रीबूट करें
sudo reboot
algif_aead मॉड्यूल अक्षम करें (अंतरिम)# शमन स्क्रिप्ट चलाएँ
chmod +x mitigation/disable_algif_aead.sh
sudo bash mitigation/disable_algif_aead.sh
स्क्रिप्ट क्या करती है:
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || echo "[*] Module not currently loaded"
echo "[✓] algif_aead disabled. Reboot to confirm persistence."
देखें mitigation/kubernetes-hardening.md के लिए:
AF_ALG सॉकेट निर्माण प्रतिबंधित करनाsocket(AF_ALG, ...) सिस्कॉल को ब्लॉक करने के लिए Seccomp प्रोफ़ाइलएक उपयोग-के-लिए-तैयार क्लाइंट रिपोर्ट टेम्पलेट reports/pentest-report-template.md में है।
Finding: Local Privilege Escalation via Copy Fail (CVE-2026-31431)
Severity: HIGH (CVSS 7.8)
Host: 10.10.10.55 (ubuntu-prod-01)
Kernel: 5.15.0-91-generic
Evidence:
- Unprivileged shell (uid=1000) escalated to root (uid=0)
- Kernel module algif_aead confirmed loaded
- No disk artefacts — page cache only
Recommendation:
1. Apply vendor kernel patch immediately
2. Interim: disable algif_aead module
3. Review Kubernetes nodes and CI/CD runners
इस रिपॉजिटरी में कुछ भी उपयोग करने से पहले पढ़ें।
यह रिपॉजिटरी केवल वैध सुरक्षा अनुसंधान, अधिकृत पैठ परीक्षण और रक्षात्मक सुरक्षा उद्देश्यों के लिए प्रकाशित की गई है।
इस सामग्री का अनधिकृत उपयोग कंप्यूटर फ्रॉड एंड अब्यूज़ एक्ट (CFAA), EU निर्देश 2013/40/EU, भारतीय IT अधिनियम 2000 और आपके क्षेत्राधिकार में समकक्ष कानूनों का उल्लंघन कर सकता है।
लेखक दुरुपयोग के लिए कोई देयता नहीं मानते हैं। पूर्ण कानूनी नोटिस के लिए DISCLAIMER.md देखें।
सुरक्षा शोधकर्ताओं का स्वागत है:
git checkout -b feat/your-contributiongit commit -m "Add: detection rule for X"कृपया जिम्मेदार प्रकटीकरण मानदंडों का पालन करें। पैच किए गए सिस्टमों को लक्षित करने वाला हथियारयुक्त, उत्पादन-तैयार एक्सप्लॉइट कोड शामिल न करें।
| # | अनुभाग | विवरण |
|---|
| 1 | कॉपी फ़ेल क्या है? | भेद्यता सारांश |
| 2 | तकनीकी गहन विश्लेषण | मूल कारण विश्लेषण |
| 3 | प्रभावित सिस्टम | डिस्ट्रो और कर्नेल मैट्रिक्स |
| 4 | रिपॉजिटरी संरचना | फ़ाइल लेआउट |
| 5 | प्रयोगशाला सेटअप | सुरक्षित रूप से पुनरुत्पादन |
| 6 | एक्सप्लॉइट उपयोग | पैठ परीक्षण कार्यप्रवाह |
| 7 | पहचान | YARA, Sigma, स्क्रिप्ट |
| 8 | शमन | पैच और सख्तीकरण |
| 9 | पैठ परीक्षण रिपोर्टिंग | रिपोर्ट टेम्पलेट |
| 10 | कानूनी और नैतिकता | अस्वीकरण |
| 11 | संदर्भ | CVE, सलाहकार, ब्लॉग |
| गुण | विवरण |
|---|
| CVE ID | CVE-2026-31431 |
| उपनाम | कॉपी फ़ेल |
| CVSS v3.1 | 7.8 (उच्च) |
| हमला वेक्टर | स्थानीय |
| आवश्यक विशेषाधिकार | निम्न (कोई भी अनअप्रिविलेज्ड उपयोगकर्ता) |
| उपयोगकर्ता सहभागिता | कोई नहीं |
| खोजकर्ता | Xint Code (Theori) |
| सार्वजनिक तिथि | 29 अप्रैल, 2026 |
| एक्सप्लॉइट आकार | 732 बाइट्स (Python PoC) |
| पैच स्थिति | ✅ उपलब्ध — कमिट a664bf3d603d को वापस लाएँ |
| कर्नेल शाखा | प्रभावित? | फिक्स संस्करण |
|---|
| 4.9.x (LTS) | ✅ हाँ | 4.9.340+ |
| 5.4.x (LTS) | ✅ हाँ | 5.4.295+ |
| 5.10.x (LTS) | ✅ हाँ | 5.10.239+ |
| 5.15.x (LTS) | ✅ हाँ | 5.15.185+ |
| 6.1.x (LTS) | ✅ हाँ | 6.1.132+ |
| 6.6.x (LTS) | ✅ हाँ | 6.6.83+ |
| 6.12.x (LTS) | ✅ हाँ | 6.12.19+ |
| < 4.9 (पूर्व-2017) | ❌ नहीं | N/A — ऑप्टिमाइज़ेशन मौजूद नहीं |
| वितरण | प्रभावित संस्करण | पैच किया गया? | सलाहकार |
|---|
| Ubuntu | < 26.04 (सभी रिलीज़) | ✅ पैच किया गया | USN |
| Ubuntu 26.04 (Resolute) | ❌ प्रभावित नहीं | — | — |
| RHEL / CentOS | 7, 8, 9 | ✅ पैच किया गया | RHSA-2026 |
| Amazon Linux | 2, 2023 | ✅ पैच किया गया | ALAS |
| SUSE / openSUSE | सभी प्रभावित | ✅ पैच किया गया | SUSE-SU |
| Debian | Bullseye, Bookworm | ✅ पैच किया गया | DSA |
| CloudLinux | 8, 9 | ✅ पैच किया गया | सलाहकार |
| उपकरण | पहचान समर्थन |
|---|
| Microsoft Defender (MDVM) | ✅ हाँ |
| Tenable Nessus | ✅ हाँ |
| Qualys | ✅ हाँ |
| Wazuh | ✅ कस्टम Sigma नियम के माध्यम से |
| Palo Alto Cortex XDR | ✅ हाँ |
| CrowdStrike Falcon | ✅ हाँ |
| स्रोत | लिंक |
|---|
| मूल प्रकटीकरण (Xint/Theori) | copy.fail |
| Xint Code तकनीकी लेखन-अप | xint.io/blog/copy-fail |
| NVD प्रविष्टि | nvd.nist.gov |
| Microsoft सुरक्षा ब्लॉग | microsoft.com/security/blog |
| Ubuntu सलाहकार | ubuntu.com/blog |
| CERT-EU सलाहकार | cert.europa.eu |
| Tenable FAQ | tenable.com/blog |
| Palo Alto Unit 42 | unit42.paloaltonetworks.com |
| CloudLinux सलाहकार | blog.cloudlinux.com |
| Bugcrowd विश्लेषण | bugcrowd.com/blog |
| लिनक्स कर्नेल पैच | kernel.org — कमिट a664bf3d603d |