
Analisi tecnica del bypass dell'autenticazione cPanel/WHM
Un approfondimento tecnico incentrato sui difensori
| Campo | Valore |
|---|---|
| ID CVE | CVE-2026-41940 |
| CVSS v3.1 | 9.8 (Critico) — Rete / Bassa complessità / Nessun privilegio / Nessuna interazione utente |
| Classe di vulnerabilità | Iniezione CRLF pre-autenticazione → avvelenamento del file di sessione → bypass dell'autenticazione |
| CWE | CWE-93 (Neutralizzazione impropria delle sequenze CRLF), forse più vicino a CWE-117 (Neutralizzazione impropria dell'output per log/file), poiché la CRLF iniettata finisce in un file di sessione su disco anziché in un header di risposta HTTP |
| Prodotti interessati | cPanel, WHM (WebHost Manager), WP Squared |
| Impatto | Acquisizione remota non autenticata di una sessione amministrativa root completamente privilegiata in WHM |
| Data di divulgazione | 28 aprile 2026 (avviso di sicurezza cPanel) |
| Assegnazione CVE | 29 aprile 2026 |
| Sfruttamento in natura | Osservato già il 23 febbraio 2026, secondo il provider di hosting KnownHost — circa due mesi prima del rilascio della patch |
| CISA KEV | Aggiunto poco dopo la divulgazione |
| Esposizione stimata | ~1,5 milioni di istanze cPanel esposte su Internet (telemetria Shodan citata da Rapid7); si stima che cPanel detenga una quota del 94% del mercato dei pannelli di controllo web (W3Techs) |
| Workaround | Nessuno — l'applicazione della patch è l'unica mitigazione completa |
cPanel e WHM sono il software di pannello di controllo dominante per l'hosting web condiviso e rivenditore. cPanel è l'interfaccia account rivolta al cliente; WHM è l'interfaccia amministrativa di livello root utilizzata dai provider di hosting e dai proprietari dei server. Entrambi sono serviti dallo stesso demone Perl, cpsrvd, in ascolto su porte accoppiate per ogni superficie (cPanel: 2082/2083, WHM: 2086/2087, Webmail: 2095/2096).
CVE-2026-41940 consente a un attaccante senza alcuna credenziale di manipolare lo stato della sessione su disco prima che avvenga l'autenticazione, portando cpsrvd a reinterpretare in seguito i dati forniti dall'attaccante come attributi di sessione legittimi, completamente autenticati e con privilegi root. Il risultato è il completo compromesso del piano di gestione per ogni sito web e account ospitato sulla macchina — non un problema di un singolo tenant, ma a livello di host, di provider e, in aggregato, dell'intero settore, data la concentrazione di mercato di cPanel.
Un punteggio CVSS di 9.8 è abbastanza comune da diventare noioso da leggere. Tre fattori strutturali rendono CVE-2026-41940 insolitamente grave nella pratica:
Il raggio di esplosione è l'intero server, non un account. Il compromesso di WHM equivale a un compromesso root. Ogni account cliente, ogni database, ogni chiave privata TLS, ogni backup e ogni zona DNS su quel server è immediatamente nell'area di impatto.
È stato un vero zero-day per circa due mesi. La telemetria di KnownHost colloca lo sfruttamento iniziale intorno al 23 febbraio 2026, ben prima della patch del 28 aprile. Qualsiasi organizzazione esposta su Internet durante quella finestra dovrebbe considerare il compromesso possibile, non solo teorico, e dovrebbe condurre una valutazione retrospettiva del compromesso invece di affidarsi a "abbiamo applicato la patch, quindi siamo a posto".
La maggior parte delle organizzazioni colpite non può applicare la patch da sola. cPanel è tipicamente implementato dai provider di hosting per conto dei tenant. I clienti finali non hanno alcun controllo a livello di codice sulla correzione e dipendono interamente dalla cadenza di patch del loro provider — ed è esattamente il motivo per cui diversi host importanti (Namecheap, KnownHost, HostPapa, InMotion) hanno scelto di bloccare preventivamente il traffico in ingresso verso le porte interessate piuttosto che attendere che ogni tenant si aggiornasse.
Questo terzo punto merita di essere approfondito. Si stima che cPanel controlli circa il 94% del mercato dei pannelli di controllo. Un singolo difetto logico nel codice di gestione delle sessioni di un fornitore è diventato, per alcune settimane, una vulnerabilità di accesso root di fatto a livello di settore. Questo rischio di concentrazione è un tema ricorrente che vale la pena interiorizzare indipendentemente da questa specifica CVE.
cpsrvd è un demone Perl a lunga esecuzione che serve tutte e tre le superfici prodotto cPanel dallo stesso binario e, cosa fondamentale, dallo stesso percorso di codice di gestione delle sessioni:
| Coppia di porte | Superficie | Pubblico |
|---|---|---|
| 2082 / 2083 | cPanel | Clienti finali (per account) |
| 2086 / 2087 | WHM | Amministratori root/rivenditori |
| 2095 / 2096 | Webmail | Utenti email |
Poiché tutte e tre le superfici condividono la logica di sessione vulnerabile, l'esposizione di una qualsiasi di queste sei porte è sufficiente per lo sfruttamento — non esiste tra loro una superficie significativamente "meno esposta". In ambienti ben segmentati, nessuna di queste porte dovrebbe essere direttamente raggiungibile da Internet in primo luogo; in pratica, la comodità di gestione, gli accordi di hosting ibrido e il "drift" dei firewall hanno fatto sì che molte lo fossero.
Le sessioni cPanel vengono persistite in due rappresentazioni parallele su disco, apparentemente per motivi di prestazioni:
/var/cpanel/sessions/raw/<session-id>) — un formato testuale semplice orientato a righe key=value, un attributo per riga./var/cpanel/sessions/cache/<session-id>, concettualmente) — un documento JSON strutturato, letto preferenzialmente dal percorso di richiesta normale perché più economico da analizzare.In condizioni operative normali, la cache JSON è autorevole e il file grezzo è un backup di durabilità. La vulnerabilità esiste proprio perché ci sono circostanze in cui il file grezzo viene ri-analizzato e utilizzato per rigenerare la cache JSON, e i due formati sono in disaccordo sul significato di un carattere di nuova riga incorporato.
CVE-2026-41940 non è un singolo errore. È il prodotto di quattro debolezze separate, ciascuna individualmente plausibile come decisione di progettazione isolata, che si allineano per produrre un bypass completo dell'autenticazione. Questa struttura "a formaggio svizzero" è istruttiva per difensori e revisori del codice ben oltre questo specifico prodotto.
Il sottosistema di sessione di cPanel aveva già una routine di sanitizzazione responsabile della rimozione dei caratteri pericolosi — ritorni a capo, avanzamenti di riga e = — dai valori di sessione prima che venissero persistiti. Il problema è dove quella routine veniva invocata: risiedeva all'interno delle funzioni wrapper di livello superiore (l'API di "creazione"/"modifica" della sessione), ed era responsabilità del chiamante passare attraverso quei wrapper piuttosto che scrivere direttamente i dati di sessione.