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-8794 — Enumerazione degli Username tramite Side-Channel sui Tempi di Autenticazione in PaperCut NG | Kitploit
Strumenti/GitHubGitHub/h4zaz/cve-2026-8794
RicognizioneAnalisi delle VulnerabilitàSfruttamento di Applicazioni WebRaccolta InformazioniSicurezza WebPenetration TestingAutenticazione
GitHubh4zaz/cve-2026-8794

CVE-2026-8794

Enumerazione degli Username tramite Side-Channel sui Tempi di Autenticazione in PaperCut NG

Vedi Repository
526 giorni 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

CVE-2026-8794 — Enumerazione degli Username tramite Canale Laterale di Temporizzazione nell'Autenticazione di PaperCut NG

CampoDettagli
ID CVECVE-2026-8794
ProdottoPaperCut NG
Versione interessata25.0.11 (Build 75758) e precedenti
CWECWE-208 — Discrepanza di Temporizzazione Osservabile
Punteggio CVSS3.7 (Basso) — autonomo; aumenta se combinato con CVE-2026-8793
RicercatoreVivien LEBAS (@Hazaz)
SegnalazioneMaggio 2026
StatoCorretto — PaperCut NG 26.0.3

Sommario

L'endpoint di autenticazione di PaperCut NG presenta una discrepanza di temporizzazione misurabile tra i tentativi di accesso effettuati con account esistenti e quelli con account inesistenti. Questa discrepanza — causata dal fatto che l'hashing bcrypt della password viene eseguito solo quando viene trovato un account corrispondente — consente a un attaccante non autenticato di determinare in modo affidabile se un determinato username esiste nel sistema, misurando i tempi di risposta HTTP.

Se combinata con CVE-2026-8793 (assenza di protezione contro la forza bruta), questa vulnerabilità consente una catena di attacco completa per il compromesso delle credenziali: enumerare prima gli username validi, quindi eseguire tentativi illimitati di indovinare le password senza alcun rischio di blocco dell'account.


Dettagli Tecnici

Causa Principale

La discrepanza di temporizzazione deriva da un classico pattern implementativo: l'applicazione richiama il confronto bcrypt solo quando nel database viene trovato un account corrispondente allo username inserito. Per gli account inesistenti, la routine di autenticazione termina in anticipo — prima che bcrypt venga chiamato — con un tempo di risposta conseguentemente più breve e misurabile.

root@kitploit:~
Username valido:   ricerca DB (trovato) → confronto bcrypt → risposta di errore  ~2,1s media
Username non valido: ricerca DB (non trovato) → risposta di errore immediata      ~0,2s media

Questo pattern è ben documentato (vedi CWE-208). La soluzione standard consiste nell'eseguire un confronto bcrypt fittizio anche quando l'account non esiste, uniformando i tempi di risposta su entrambi i percorsi di codice.

Metodologia di Misurazione

Sono stati effettuati tentativi di autenticazione contro l'endpoint di login di PaperCut NG in condizioni controllate:

  • Ambiente: laboratorio isolato, Windows Server 2022, rete locale (latenza di base sub-millisecondo)
  • Dimensione del campione: 15 tentativi per condizione (username valido / username non valido)
  • Strumento: curl con --write-out "%{time_total}", password volutamente errata in tutti i casi

Risultati

Le due distribuzioni mostrano zero sovrapposizioni, rendendo l'enumerazione affidabile anche con un jitter di rete moderato.

Prova di Concetto

root@kitploit:~
# Misurare il tempo di risposta per un account esistente (password errata)
curl -s -o /dev/null -w "%{time_total}\n" \
  -X POST "http://<target>:9191/app" \
  -H "Origin: http://<target>:9191" \
  --data "service=direct/1/Home/%24Form&inputUsername=admin&inputPassword=wrongpassword"
# Output: ~2.1s

# Misurare il tempo di risposta per un account inesistente
curl -s -o /dev/null -w "%{time_total}\n" \
  -X POST "http://<target>:9191/app" \
  -H "Origin: http://<target>:9191" \
  --data "service=direct/1/Home/%24Form&inputUsername=zz_doesnotexist_zz&inputPassword=wrongpassword"
# Output: ~0.2s

Un tempo di risposta significativamente superiore a ~0,5s indica in modo affidabile uno username valido. Un semplice script può automatizzare l'enumerazione contro una wordlist di comuni pattern di denominazione aziendale (firstname.lastname, flastname, ecc.).


Catena di Attacco con CVE-2026-8793

Questa scoperta ha il massimo impatto quando viene utilizzata come primo passo di un attacco in due fasi:

  1. Passo 1 (CVE-2026-8794, questa scoperta) — Costruire un elenco di nomi account validi di PaperCut NG misurando i tempi di risposta dell'autenticazione. In ambienti aziendali, una breve wordlist di combinazioni firstname.lastname derivata da fonti pubbliche (LinkedIn, sito web aziendale, firme delle email) è spesso sufficiente.

  2. Passo 2 (CVE-2026-8793) — Inviare tentativi illimitati di password contro account validi confermati. L'assenza di rate-limiting o blocco account fa sì che qualsiasi attacco di credential stuffing o password spraying possa essere condotto interamente online a piena velocità.


Impatto

Un attaccante non autenticato con accesso di rete a TCP/9191 può:

  • Determinare in modo affidabile se un determinato username è registrato in PaperCut NG
  • Costruire un elenco di username validi senza attivare alcun avviso o blocco
  • Utilizzare questo elenco come primo passo verso il pieno compromesso delle credenziali tramite CVE-2026-8793

Nelle tipiche implementazioni aziendali, gli username di PaperCut rispecchiano gli account di Active Directory. Uno username PaperCut valido e confermato è quindi anche un nome account di dominio valido e confermato, amplificando il valore di ricognizione oltre il solo PaperCut.


Rimedio

Per gli amministratori (mitigazioni provvisorie):

  • Limitare l'accesso di rete a TCP/9191 ai soli host di gestione attendibili
  • Distribuire un reverse proxy o un WAF davanti a PaperCut NG che imponga il rate-limiting sull'endpoint di login
  • Utilizzare, dove possibile, formati di username non intuibili e non standard

Per il fornitore:

Eseguire un confronto bcrypt fittizio a tempo costante quando lo username inserito non corrisponde ad alcun account, garantendo che i tempi di risposta siano uniformati indipendentemente dall'esistenza dell'account:

root@kitploit:~
# Pseudocodice — pattern di autenticazione a tempo costante
user = db.find_user(username)
if user:
    valid = bcrypt.verify(password, user.password_hash)
else:
    bcrypt.verify(password, DUMMY_HASH)  # sempre eseguito, risultato scartato
    valid = False

Questo è un pattern consolidato per mitigare CWE-208 nei flussi di autenticazione.


Cronologia

DataEvento
9 maggio 2026Segnalazione iniziale inviata al PaperCut Security Team

Riferimenti

  • CVE-2026-8794 su cve.org
  • CVE-2026-8793 — Vulnerabilità collegata
  • CWE-208: Discrepanza di Temporizzazione Osservabile
  • Attacchi di Temporizzazione sulle Password — OWASP
  • Pagina del Prodotto PaperCut NG

Divulgazione effettuata in conformità con i principi di responsible disclosure. I dettagli tecnici completi sono stati condivisi con il PaperCut Security Team prima della pubblicazione.

Ricercatore: Vivien LEBAS — @Hazaz

Scarica lo strumento
CondizioneMin (s)Max (s)Media (s)Dev. Std
Account esistente (admin)2.082.192.130.031
Account inesistente (zz_doesnotexist_zz)0.180.240.210.018
Differenza~1,92s
10 maggio 2026
Ricevuta conferma di ricezione
Maggio 2026CVE-2026-8794 assegnato da PaperCut (CNA)
Agosto 2026Patch rilasciata — PaperCut NG 26.0.3
Agosto 2026Divulgazione pubblica coordinata con il fornitore