
Proof-of-concept exploit per CVE-2026-29781, che sfrutta le credenziali catturate dell'impianto Sliver per innescare un panic da puntatore nullo e mandare in crash il server C2 tramite pacchetti mTLS malformati.
Una vulnerabilità architetturale nel server Sliver C2 consente la Weaponization Reverse-C2. Estraendo le credenziali da un implant catturato, un difensore può armare la relazione C2 per attivare un Kill-Switch remoto dell'infrastruttura. Questo sfruttamento colpisce una mancanza sistemica di validazione dei puntatori nulli nei gestori Protobuf, portando a un panic globale del runtime.
L'impatto di CVE-2026-29781 è una Paralisi Operativa Totale dell'infrastruttura C2.
Il Cacciatore Diventa la Preda: Un difensore che cattura un binario implant può invertire l'attacco e spegnere completamente il server Sliver.
Collasso Cross-Transport: Poiché i trasporti mTLS, WireGuard e DNS non dispongono di un meccanismo recover(), un singolo pacchetto malformato causa l'uscita dell'intero runtime Go (SIGSEGV).
Perdita Collaterale di Sessioni: Un crash innescato tramite un beacon DNS ucciderà istantaneamente tutte le sessioni HTTP, mTLS e WireGuard attive nell'intera flotta.
Espulsione degli Operatori: Tutti gli operatori attivi vengono immediatamente disconnessi dall'interfaccia gRPC, perdendo ogni stato non salvato e il monitoraggio in tempo reale.
Il ripristino richiede un intervento manuale per riavviare il server e ristabilire le complesse catene di pivot, creando un elevato Recovery Time Objective (RTO).
Prerequisiti: Estrarre le Credenziali: Ottenere il certificato mTLS, la chiave privata e la chiave segreta Age da un implant Sliver catturato.
Modificare il PoC: Aprire mtls_poc.go e sostituire i valori segnaposto nel blocco var (c2Endpoint, clientCertPEM, clientKeyPEM, peerPrivateKey) con le credenziali estratte.
Eseguire l'exploit contro il proprio server Sliver di test:
go run mtls_poc.go
Risultato Atteso e Prova del Crash: Alla ricezione del pacchetto malformato, il server Sliver innesca immediatamente una Nil-Pointer Dereference. Poiché il livello di trasporto (mTLS/Yamux) non riesce a recuperare da questo panic, l'intero processo del server termina con un SIGSEGV.
È possibile verificarlo controllando lo stato del server:
systemctl status sliver
Avviso Ufficiale GHSA-hx52-cv84-jr5v

Free Palestine 🇵🇸