Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
copy-fail-cve-2026-31431 — Port Go del PoC Copy Fail per CVE-2026-31431, una vulnerabilità del kernel Linux authencesn che consente una scrittura di 4 byte nella cache di pagina tramite AF_ALG e splice. Include pipeline di build multi-arch e documentazione tecnica dettagliata. | Kitploit
Strumenti/GitHubGitHub/erdemozgen/copy-fail-cve-2026-31431
Framework di ExploitAnalisi delle VulnerabilitàExploitApprendimento e FormazioneBinary Exploitation
GitHuberdemozgen/copy-fail-cve-2026-31431

copy-fail-cve-2026-31431

Port Go del PoC Copy Fail per CVE-2026-31431, una vulnerabilità del kernel Linux authencesn che consente una scrittura di 4 byte nella cache di pagina tramite AF_ALG e splice. Include pipeline di build multi-arch e documentazione tecnica dettagliata.

Vedi RepositorySito web
83 mesi faNon ancora revisionato

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

Copy Fail - CVE-2026-31431

Questo repository fornisce una porta Go del PoC pubblico di Copy Fail e una pipeline di build riproducibile per binari Linux multi-architettura.

Copy Fail (CVE-2026-31431) è un difetto logico del kernel Linux in authencesn che consente una scrittura deterministica di 4 byte nei dati della page cache referenziati tramite AF_ALG + splice().

Uso Responsabile

Utilizza questo progetto solo in ambienti in cui sei esplicitamente autorizzato a testare. Non eseguire questo PoC contro sistemi che non possiedi o per i quali non hai il permesso scritto di valutare.

Test Rapido (Senza Build)

Se vuoi testare immediatamente senza compilare dal sorgente, scarica un binario di release ed eseguilo:

root@kitploit:~
wget https://github.com/ErdemOzgen/copy-fail-cve-2026-31431/releases/download/v1.0.1/copy-fail-cve-2026-31431_linux_amd64
chmod +x copy-fail-cve-2026-31431_linux_amd64
./copy-fail-cve-2026-31431_linux_amd64

Per altre architetture, scarica l'asset corrispondente dalla pagina GitHub Releases:

https://github.com/ErdemOzgen/copy-fail-cve-2026-31431/releases

Contenuti

  • Test Rapido (Senza Build)
  • Prerequisiti di Build
  • Build Locale
  • Utilizzo
  • Risoluzione dei Problemi
  • Panoramica
  • Perché È Importante
  • Causa Radice
  • Percorso di Attivazione in authencesn
  • Come il Bug È Diventato Raggiungibile
  • Flusso di Exploit ad Alto Livello
  • Riepilogo della Correzione
  • Rimedi
  • Cronologia della Divulgazione
  • Come È Stato Trovato
  • Struttura del Repository
  • GitHub Actions
  • Distribuzioni Testate
  • Riferimenti

Prerequisiti di Build

  • Go 1.23+
  • GNU Make

Build Locale

Compila tutti i target Linux:

root@kitploit:~
make clean build-linux

Compila e genera i checksum:

root@kitploit:~
make clean checksums

Binari di output in dist/:

  • copy-fail-cve-2026-31431_linux_amd64
  • copy-fail-cve-2026-31431_linux_arm64
  • copy-fail-cve-2026-31431_linux_386
  • copy-fail-cve-2026-31431_linux_armv7
  • SHA256SUMS

Utilizzo

Esecuzione predefinita:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64

Utilizza un percorso target personalizzato:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64 -target /path/to/binary

Disabilita l'esecuzione di su post esecuzione:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64 -spawn-su=false

Stampa i metadati di build:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64 -version

Risoluzione dei Problemi

Se l'esecuzione fallisce all'offset 0 con un errore simile a:

root@kitploit:~
error: copy chunk at offset 0: splice(pipe->AF_ALG): software caused connection abort

il kernel ha molto probabilmente rifiutato il percorso AEAD in-place vulnerabile (ad esempio perché l'host è stato patchato per CVE-2026-31431 o algif_aead è mitigato/disabilitato).

Controlli rapidi:

root@kitploit:~
uname -r
grep -E "algif_aead|authencesn" /proc/modules

Su sistemi corretti, ci si aspetta che questo PoC fallisca.

Panoramica

Secondo la divulgazione pubblica, il percorso vulnerabile consente a un utente locale non privilegiato di influenzare una primitiva di scrittura di 4 byte nel contenuto della page cache di file leggibili in condizioni specifiche.

La proprietà operativa importante è che la copia nella page cache in memoria può divergere dai byte su disco durante l'esecuzione, il che può rendere l'analisi dell'impatto non banale per i team che si affidano solo a controlli di integrità a livello di disco.

Perché È Importante

Copy Fail è notevole perché è stato segnalato come:

  • Deterministico (nessun requisito di race nel percorso di attivazione descritto).
  • Portabile tra le principali distribuzioni Linux nei test.
  • Compatto nell'implementazione, senza dipendenza da builder di payload esterni.
  • Rilevante oltre l'ambito del singolo processo a causa del comportamento condiviso della page cache.

Causa Radice

Ad alto livello, il problema si trova all'intersezione di tre meccanismi:

  1. Gestione delle richieste AEAD di AF_ALG.
  2. Movimento dei dati supportati dalla page cache tramite splice().
  3. Comportamento dello scratch di decrittazione di authencesn.

Nel design vulnerabile, i segmenti supportati dalla page cache possono essere collegati in una forma di richiesta che successivamente riceve scritture durante l'elaborazione dell'algoritmo, violando un'ipotesi chiave secondo cui vengono modificate solo le regioni di destinazione previste.

Percorso di Attivazione in authencesn

Nel percorso documentato, authencesn utilizza operazioni scratch sul lato di destinazione attorno alla gestione del layout ESN ed esegue una scrittura a un offset oltre il contratto di output di decrittazione previsto.

Quando combinato con la configurazione AEAD in-place e i riferimenti scatterlist concatenati, questa scrittura può finire nella memoria supportata dalla page cache per regioni selezionate dall'attaccante.

Come il Bug È Diventato Raggiungibile

La divulgazione descrive un'evoluzione multi-commit:

  • Il comportamento di authencesn ha avuto origine nella storia di integrazione precedente.
  • Il supporto AEAD di AF_ALG ha introdotto la raggiungibilità da userspace con l'interazione splice().
  • La successiva ottimizzazione in-place in algif_aead ha combinato il flusso di origine e destinazione in un modo che ha reso sfruttabile questa intersezione.

La lezione chiave è il rischio compositivo: modifiche individualmente ragionevoli possono diventare non sicure in combinazione.

Flusso di Exploit ad Alto Livello

Il write-up pubblico e il PoC descrivono questa sequenza:

  1. Apri e configura un socket AEAD AF_ALG per authencesn(hmac(sha256),cbc(aes)).
  2. Fornisci metadati costruiti e dati a blocchi.
  3. Usa splice() per instradare i dati dei file supportati dalla page cache attraverso il percorso di richiesta.
  4. Attiva la gestione della decrittazione e ripeti in passi controllati di 4 byte.

L'implementazione Go di questo repository rispecchia quella logica PoC pubblica per ricerca e validazione in ambienti autorizzati.

Riepilogo della Correzione

La correzione segnalata ripristina l'operazione AEAD in-place vulnerabile in algif_aead al comportamento out-of-place.

Concettualmente:

  • Prima della correzione: origine e destinazione potevano collassare in un'unica catena scrivibile per questo percorso.
  • Dopo la correzione: origine e destinazione rimangono separate, impedendo che i segmenti di origine supportati dalla page cache vengano utilizzati come regioni di destinazione scrivibili in questo flusso.

Rimedi

  • Applica patch ai kernel con versioni contenenti la correzione a monte.
  • Distribuisci gli aggiornamenti dei pacchetti kernel del vendor su fleet e immagini.
  • Considera controlli di hardening temporanei (ad esempio, restrizioni di policy sull'uso di AF_ALG dove operativamente fattibile).
  • Valida la correzione con controlli a runtime, non solo con flussi di lavoro di checksum su disco.

Cronologia della Divulgazione

Basata sul write-up pubblico:

DataEvento
2026-03-23Report inviato al team di sicurezza del kernel Linux
2026-03-24Riconoscimento iniziale
2026-03-25Discussione/revisione della patch
2026-04-01Correzione committata a mainline
2026-04-22CVE-2026-31431 assegnato
2026-04-29Divulgazione pubblica

Come È Stato Trovato

La ricerca pubblicata accredita l'analisi dei sottosistemi guidata da umani e assistita da IA, focalizzata sui percorsi di codice crypto raggiungibili da userspace e sulla provenienza scatterlist/page sotto splice().

Struttura del Repository

  • main.go: Porta Go del PoC.
  • Makefile: target di build Linux multi-architettura deterministici.
  • .github/workflows/build.yml: workflow CI di build e rilascio artefatti.

GitHub Actions

File del workflow: .github/workflows/build.yml

Trigger:

  • Pull request
  • Push su main
  • Push di tag corrispondenti a v*
  • workflow_dispatch manuale

Comportamento:

  1. Compila tutti i binari Linux con checksum tramite make clean checksums.
  2. Carica gli artefatti CI denominati con ref + commit SHA.
  3. Pubblica automaticamente gli asset di release per i tag corrispondenti a v*.

Flusso di release suggerito:

root@kitploit:~
git tag v1.0.0
git push origin v1.0.0

Distribuzioni Testate

DistribuzioneVersione del Kernel
Ubuntu 24.04 LTS6.17.0-1007-aws
Amazon Linux 20236.18.8-9.213.amzn2023
RHEL 10.16.12.0-124.45.1.el10_1
SUSE 166.12.0-160000.9-default

Riferimenti

  • Articolo pubblico originale: https://xint.io/blog/copy-fail-linux-distributions
  • Voce CVE: CVE-2026-31431
Scarica lo strumento