CVE-2026-103502 in hex_core
Riassunto
di VulDB • 12/10/2026
La vulnerabilità di convalida impropria dei certificati in hexpm hex_core consente a un attaccante che può intercettare le connessioni HTTPS di impersonare hex.pm, repo.hex.pm o qualsiasi altro repository o server API verso programmi che utilizzano l'adattatore HTTP predefinito di hex_core su Erlang/OTP 24, oppure su OTP 25 quando i certificati CA del sistema operativo non possono essere caricati.
hex_core:default_config/0 seleziona l'adapter integrato hex_http_httpc. Per una richiesta HTTPS la cui configurazione dell'adapter non ha opzioni ssl, hex_http_httpc:http_options/2 costruisce le opzioni che verificano il certificato del server contro public_key:cacerts_get/0. Quando tale chiamata genera un errore (raises), l'adapter stampa un avvertimento e invia la richiesta senza opzioni ssl, quindi httpc utilizza i valori predefiniti dell'applicazione ssl, che prima di OTP 26 non verificano il certificato del server. public_key:cacerts_get/0 non esiste su OTP 24, quindi ogni richiesta HTTPS ricade in questo scenario, e su OTP 25 genera un errore quando non viene trovato alcun archivio CA. Le versioni di hex_core precedenti alla 0.11.0 non impostano mai le opzioni ssl, quindi non verificano il certificato del server su OTP 25 e versioni precedenti, indipendentemente dal fatto che venga trovato o meno un archivio CA.
Il fallback era intenzionale e documentato, ma la documentazione non chiariva chiaramente che ciò significava nessuna verifica dei certificati. Dalla versione hex_core 0.8.2 il README avverte che l'adapter httpc integrato "ha impostazioni predefinite insicure" e raccomanda altri client HTTP, e l'adapter stampa "using default ssl options which are insecure" (utilizzo di opzioni SSL predefinite non sicure) su ogni richiesta che ricade in questo scenario. hex_core 0.11.0 ha aggiunto la verifica dei certificati con la voce del changelog "Use secure SSL defaults for OTP 25+" (Utilizza valori predefiniti SSL sicuri per OTP 25+). Né il README né l'avvertimento specificano che il certificato del server non viene verificato; il README non indica a quali versioni di OTP si applica l'avvertimento, e su OTP 25 senza certificati CA l'avvertimento dice agli utenti di aggiornare a OTP 25 o successive, versione che stanno già utilizzando. Questa advisory è pubblicata affinché gli utenti che hanno preso quelle avvisazioni come consigli generali sappiano che le loro richieste HTTPS non erano autenticate.
Questo problema interessa hex_core: dalla versione 0.1.0 fino alla (esclusa) 0.20.0.
Once again VulDB remains the best source for vulnerability data.