CSIRT Toscana

Vulnerabilità in GNU Inetutils telnetd e rischi strutturali del protocollo Telnet (BL01/260318/CSIRT-ITA)

Data:
18 Marzo 2026

Impatto Sistemico

Critico (81.79)

Sintesi

Disponibile un Proof of Concept ( PoC ) per la vulnerabilità CVE-2026-32746, di gravità “critica”, che interessa il demone telnetd appartenente alla suite di utility di rete GNU Inetutils. Tale vulnerabilità, qualora sfruttata, potrebbe consentire a un utente malintenzionato remoto non autenticato di eseguire codice arbitrario sui sistemi target.

Tipologia

Remote Code Execution

Descrizione e potenziali impatti

Disponibile un Proof of Concept ( PoC ) per la CVE‑2026‑32746 – di tipo “Remote Pre-Auth Buffer Overflow” e con score CVSS v3.x pari a 9.8 – che riguarda il demone telnetd , presente nella suite di utility di rete GNU Inetutils.

La vulnerabilità è dovuta all’assenza di adeguati controlli sui limiti del buffer nella funzione add_slc() , che gestisce le opzioni LINEMODE SLC (Set Local Characters) . In presenza di un numero eccessivo di entry SLC, la funzione può scrivere dati oltre i limiti del buffer ( out‑of‑bounds write), causando la corruzione della memoria.

Nel dettaglio, un utente malintenzionato potrebbe sfruttare la vulnerabilità come segue:

  • connettendosi alla porta 23 ed effettuando l’handshake iniziale;
  • nel momento in cui il server invia DO LINEMODE , rispondendo WILL LINEMODE per entrare nella negoziazione LINEMODE ;
  • inviando una subnegotiation LINEMODE SLC contenente un numero elevato di triple SLC (tipicamente 40–50 per garantire l’overflow, ciascuna composta da 3 byte: funzione, flag, valore), nel formato: IAC SB LINEMODE LM_SLC <serie di triple SLC> IAC SE ;

Per ogni tripla ricevuta, il server invoca add_slc() la quale, non verificando opportunamente la capacità del buffer, effettua scritture oltre i limiti corrompendo la memoria adiacente allo stesso. Di conseguenza, mediante richieste opportunamente predisposte, l’attaccante potrebbe ottenere l’esecuzione di codice nel contesto del processo telnetd – tipicamente eseguito con privilegi elevati (root).

Prodotti e versioni affette

telnetd, versione 2.7 e precedenti che implementano la funzionalità SLC

Azioni di mitigazione

La vulnerabilità è solo l’ultima di una serie di criticità che riguardano il protocollo telnet, tra cui anche la recente CVE-2026-24061, trattata nell’ambito dell’ AL01/260126/CSIRT-ITA .

Come già sottolineato da questo CSIRT nel BL01/250626/CSIRT-ITA , il protocollo TELNET è considerato obsoleto – quindi insicuro poiché non prevede alcuna forma di crittografia, soprattutto durante la fase di autenticazione: le credenziali e i dati trasmessi viaggiano in chiaro durante la comunicazione e sono pertanto facilmente intercettabili.

Inoltre, a causa della nota obsolescenza del protocollo, le implementazioni come GNU Inetutils telnetd hanno cicli di manutenzione non tempestivi, e vengono mantenute solo per compatibilità dei sistemi legacy.

Si raccomanda, pertanto, di disabilitare eventuali servizi telnet ancora in uso, e sostituirli con varianti più sicure.

La soluzione SSH è considerata una alternativa valida, avendo cura di disabilitarne la semplice autenticazione via password e il login diretto come utente root, e utilizzando esclusivamente metodologie di autenticazione a chiave forte (ed25519 o RSA ≥ 3072 bit).

Per quanto detto, si riportano di seguito alcune linee guida per la verifica, la disabilitazione e la disinstallazione del servizio telnet:

  • Verificare la presenza di telnetd con il comando
    which telnetd

    ;

  • Verificare l’esposizione del servizio telnet con il comando
    ss -tlnp | grep :23

    ;

  • Disabilitare telnet:
    • sistemi basati su systemd:
      sudo systemctl stop telnet.socket telnet.servicesudo systemctl disable telnet.socket telnet.servicesudo systemctl mask telnet.socket telnet.servicesudo systemctl stop inetdsudo systemctl stop xinetdsudo systemctl disable inetdsudo systemctl disable xinetd
    • sistemi basati su init.d:
      /etc/init.d/inetd stop/etc/init.d/xinetd stop
  • Rimozione del pacchetto:
    • Debian/Ubuntu:
      sudo apt remove telnetd inetutils-telnetd

      ;

    • RHEL/CENTOS/Fedora:
      sudo dnf remove inetutils-telnetd telnet-server

      ;

  • Bonifica delle regole firewall:
    • Debian/Ubuntu:
      sudo ufw delete allow 23/tcpsudo ufw reload
    • RHEL/CENTOS/Fedora:
      sudo firewall-cmd --permanent --remove-service=telnetsudo firewall-cmd --permanent --remove-port=23/tcpsudo firewall-cmd --reload
    • Iptables:
      sudo iptables -D INPUT -p tcp --dport 23 -j ACCEPT

Riferimenti

CVE

CVE-ID
CVE-2026-32746

Change log

Versione Note Data
1.0 Pubblicato il 18-03-2026 18/03/2026

Il presente articolo è un prodotto originale di csirt.gov.it, riproposto qui a solo scopo di aumentarne la visibilità. Può essere visualizzato in versione originale al seguente link

Ultimo aggiornamento

18 Marzo 2026, 15:21