Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
DIRTYFAIL — Detector + PoC per le vulnerabilità di scrittura nella cache delle pagine di Linux: Copy Fail (CVE-2026-31431) e Dirty Frag (CVE-2026-43284/43500). Solo ricerca sulla sicurezza autorizzata. | Kitploit
Strumenti/GitHubGitHub/karazajac/dirtyfail
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPenetration TestingPaper e RicercaApprendimento e FormazioneRed TeamingEscape dal ContainerBinary ExploitationLab e Pratica
GitHubkarazajac/dirtyfail
2612345 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

DIRTYFAIL

Detector + PoC per le vulnerabilità di scrittura nella cache delle pagine di Linux: Copy Fail (CVE-2026-31431) e Dirty Frag (CVE-2026-43284/43500). Solo ricerca sulla sicurezza autorizzata.

Vedi Repository

DIRTYFAIL

Un rilevatore e harness PoC unificati per le famiglie di vulnerabilità di scrittura cache di pagina Linux Copy Fail e Dirty Frag.``` ██████╗ ██╗██████╗ ████████╗██╗ ██╗███████╗ █████╗ ██╗██╗ ██╔══██╗██║██╔══██╗╚══██╔══╝╚██╗ ██╔╝██╔════╝██╔══██╗██║██║ ██║ ██║██║██████╔╝ ██║ ╚████╔╝ █████╗ ███████║██║██║ ██║ ██║██║██╔══██╗ ██║ ╚██╔╝ ██╔══╝ ██╔══██║██║██║ ██████╔╝██║██║ ██║ ██║ ██║ ██║ ██║ ██║██║███████╗ ╚═════╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝╚══════╝

DIRTYFAIL è un piccolo strumento C ben documentato per ricercatori di sicurezza. Rileva se un host Linux è vulnerabile alle tre CVE di questa famiglia e — con conferma esplicita e digitata — esegue una vera prova di concetto che fa cadere il chiamante in una shell di root su un sistema vulnerabile.

| CVE / variante | Nome | Copertura DIRTYFAIL |
|---|---|---|
| **CVE-2026-31431** | Copy Fail (algif_aead `authencesn` page-cache write) | Rilevamento + PoC completo |
| **CVE-2026-43284 v4** | Dirty Frag — IPv4 xfrm-ESP page-cache write          | Rilevamento + PoC completo |
| **CVE-2026-43284 v6** | Dirty Frag — IPv6 xfrm-ESP page-cache write (`esp6`) | Rilevamento + PoC completo |
| **CVE-2026-43500**    | Dirty Frag — RxRPC page-cache write                  | Rilevamento + PoC completo |
| Variante Copy Fail GCM | xfrm-ESP `rfc4106(gcm(aes))` page-cache write        | Rilevamento + PoC completo |

**Modalità bonus:**

- **`--scan --active`** — sonde attive sentinel-STORE. Per default, `--scan` riporta le precondizioni per CVE (kernel, moduli, stato LSM) più una sonda attiva della primitiva Copy Fail. Aggiungendo `--active` si estende la sonda STORE del file sentinella a tutte le altre quattro primitive (ESP v4, ESP v6, RxRPC, GCM): ciascuna attiva il trigger del kernel contro una sentinella `/tmp` e segnala VULNERABILE solo se i byte marcatori atterrano effettivamente. Questo è l'unico modo per distinguere un kernel con patch backportata (le precondizioni dicono vulnerabile ma la sonda dice intatto) da uno senza patch senza eseguire l'exploit completo. `/etc/passwd` non viene mai toccato. Autocalibra lo spostamento V6 STORE per build del kernel.
- **`--exploit-backdoor`** — backdoor persistente uid-0: sovrascrittura con corrispondenza di lunghezza di una riga `nologin`/`false`/`sync` in `/etc/passwd` con `dirtyfail::0:0:<pad>:/:/bin/bash`. Sopravvive all'uscita della shell finché la pagina non viene espulsa. Stato salvato in `/var/tmp/.dirtyfail.state` per `--cleanup-backdoor`. Il nome utente `dirtyfail` è deliberatamente abbinato a questo progetto in modo che sia immediatamente identificabile in qualsiasi audit — cambia `NEW_USER` in `src/backdoor.c` se hai bisogno di un identificatore diverso per un impegno autorizzato di red team.
- **AppArmor bypass** — sconfigge la policy `apparmor_restrict_unprivileged_userns=1` di Ubuntu tramite una re-esecuzione `change_onexec("crun")` a salto singolo in un profilo non confinato che mantiene le capacità userns. Ogni modalità di exploit gestisce questo internamente tramite una fork: il genitore rimane nel namespace init, il figlio esegue la danza di bypass, il genitore legge la cache di pagina globale ed esegue `su` per ottenere root reale del namespace init. Il flag legacy `--aa-bypass` esiste ancora per il debug isolato della meccanica di bypass. Vedi [§8.5 Architettura](#85-architecture-outerinner-fork-based-bypass).

## Verificato funzionante su

DIRTYFAIL è stato convalidato empiricamente end-to-end su più distribuzioni e versioni del kernel. La matrice seguente riflette i risultati dei test per modalità dell'esecuzione di ciascuna modalità `--exploit-*` su un'installazione pulita di ciascuna distribuzione.

| Distro | Kernel | LSM | Copy Fail | xfrm-ESP v4 | xfrm-ESP v6 | RxRPC | GCM | Backdoor | SU shellcode |
|---|---|---|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
| Ubuntu 24.04 LTS | `6.8.0-111-generic` | AppArmor | 🛡²  | ✅ | ✅ | ✅ | ✅¹ | ✅¹ | (non testato) |
| Debian 13.4 | `6.12.86+deb13` | nessuno | 🛡 | 🛡 | 🛡 | 🛡 | 🛡 | 🛡 | 🛡⁵ |
| AlmaLinux 10.1 | `6.12.0-124.8.1.el10_1` | SELinux | ✅ | ✅ | ✅ | ⏭³ | ✅ | ✅ | ✅ |
| Fedora 44 (Server) | `6.19.10-300.fc44` | SELinux | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Ubuntu 26.04 LTS | `7.0.0-15-generic` | AppArmor (rafforzato) | 🛡 | 🛡⁴ | 🛡⁴ | 🛡⁴ | 🛡⁴ | 🛡⁴ | 🛡⁵ |

**Legenda:** ✅ exploit atterrato e ha prodotto root reale del namespace init  · 🛡 mitigato — l'exploit non può raggiungere il bug del kernel (kernel patchato O LSM blocca il percorso non privilegiato)  · ⏭ non applicabile (precondizione mancante)

### Convalida sonda attiva (`--scan --active`)

Il flag `--active` aggiunge una sonda STORE per file sentinella per CVE durante il rilevamento. Abbiamo convalidato gli output della sonda contro le stesse 4 distribuzioni sopra (Debian, Fedora, AlmaLinux, Ubuntu 26.04) — la matrice seguente mostra il verdetto della sonda per modalità e corrisponde uno-a-uno con la verità di base dell'exploit completo:

| Distro | Sonda Copy Fail | Sonda ESP v4 | Sonda ESP v6 | Sonda RxRPC | Sonda GCM |
|---|:-:|:-:|:-:|:-:|:-:|
| Debian 13.4 | intatta 🛡 | intatta 🛡 | intatta 🛡 | intatta 🛡 | intatta 🛡 |
| Fedora 44   | marker @0 ✅ | STORE @0 ✅ | STORE @8 ✅ | byte cambiato ✅ | sentinel[0] 0x41→0x27 ✅ |
| AlmaLinux 10.1 | marker @0 ✅ | STORE @0 ✅ | STORE @8 ✅ | precondizioni ⏭ | sentinella cambiata ✅ |
| Ubuntu 26.04 | intatta 🛡 | bloccata da LSM 🛡 | bloccata da LSM 🛡 | bloccata da LSM 🛡 | bloccata da LSM 🛡 |

L'offset di atterraggio STORE della sonda V6 (8 su Fedora e Alma) corrisponde allo `V6_STORE_SHIFT` empirico che `calibrate_v6_shift()` scopre in esecuzione — confermando che l'autocalibrazione sostituisce correttamente la costante precedentemente hard-coded tra le build del kernel.

¹ GCM e Backdoor richiedono che `algif_aead` sia caricabile. Ubuntu 24.04 include `/etc/modprobe.d/disable-algif_aead.conf` che lo mette in blacklist come mitigazione di Copy Fail. Rimossa la blacklist (ad esempio su un kernel precedente alla mitigazione), entrambe le modalità funzionano end-to-end.

² Il percorso `algif_aead` di Copy Fail è mitigato dalla blacklist modprobe; la primitiva CVE sottostante nel kernel è la stessa sia che `authencesn` sia raggiungibile o meno. xfrm-ESP, RxRPC e la variante GCM atterrano tutte sullo stesso kernel perché non passano attraverso `algif_aead`.

³ Il pacchetto `kernel-modules-extra` di AlmaLinux 10 non è installato per default su un'installazione Minimal, quindi `rxrpc.ko` manca sul disco. Installando `kernel-modules-extra-$(uname -r)` da EPEL o dal repository extras di AlmaLinux si riporta il modulo; su un'installazione minimal standard RxRPC non è raggiungibile.

⁴ **Ubuntu 26.04 LTS blocca in modo completo lo sfruttamento non privilegiato.** Il kernel in distribuzione `7.0.0-15.15` (rilasciato il 22-04-2026) **precede la patch mainline `f4c50a4034e6` (incorporata il 07-05-2026) di circa 2 settimane** — quindi il bug È ancora presente nel kernel. La difesa di Ubuntu è **difesa in profondità tramite rafforzamento di AppArmor**, non una patch del kernel:
Scarica lo strumento