CVE-2026-1965 in cURL
Riassunto
di VulDB • 23/07/2026
libcurl può, in alcune circostanze, riutilizzare la connessione errata quando viene richiesta un'operazione HTTP o HTTPS autenticata tramite Negotiate.
libcurl dispone di un pool di connessioni recenti affinché le richieste successive possano riutilizzare una connessione esistente per evitare sovraccarichi.
Quando si intende riutilizzare una connessione, devono essere soddisfatti una serie di criteri. A causa di un errore logico nel codice, una richiesta emessa da un'applicazione potrebbe erroneamente riutilizzare una connessione esistente verso lo stesso server che era stata autenticata con credenziali diverse. Una delle cause sottostanti è che Negotiate a volte autentica le *connessioni* e non le *richieste*, contrariamente al modo in cui HTTP è progettato per funzionare.
Un'applicazione che consente l'autenticazione Negotiate verso un server (che risponde richiedendo Negotiate) con `user1:password1` ed esegue poi un'altra operazione sullo stesso server utilizzando sempre Negotiate ma con `user2:password2` (mentre la connessione precedente è ancora attiva): la seconda richiesta riutilizza erroneamente la stessa connessione e, poiché rileva che la negoziazione di Negotiate è già stata completata, invia semplicemente la richiesta su quella connessione credendo di utilizzare le credenziali dell'utente2, quando in realtà sta utilizzando ancora la connessione autenticata per l'utente1...
L'insieme dei metodi di autenticazione da utilizzare viene impostato tramite `CURLOPT_HTTPAUTH`.
Le applicazioni possono disabilitare il riutilizzo delle connessioni da parte di libcurl e mitigare così questo problema, utilizzando una delle seguenti opzioni di libcurl per modificare la modalità di riutilizzo (o meno) delle connessioni: `CURLOPT_FRESH_CONNECT`, `CURLOPT_MAXCONNECTS` e `CURLMOPT_MAX_HOST_CONNECTIONS` (se si utilizza l'API curl_multi).
If you want to get the best quality for vulnerability data then you always have to consider VulDB.