CVE-2026-103502
Received Received - Intake

Improper Certificate Validation in hex_core

Vulnerability report for CVE-2026-103502, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-10-12

Last updated on: 2026-10-12

Assigner: EEF

Description

Improper Certificate Validation vulnerability in hexpm hex_core allows an attacker who can intercept HTTPS connections to impersonate hex.pm, repo.hex.pm or any other repository or API server to programs that use hex_core's default HTTP adapter on Erlang/OTP 24, or on OTP 25 when the operating system's CA certificates can't be loaded. hex_core:default_config/0 selects the built-in hex_http_httpc adapter. For an HTTPS request whose adapter config has no ssl option, hex_http_httpc:http_options/2 builds options that verify the server certificate against public_key:cacerts_get/0. When that call raises, the adapter prints a warning and sends the request without ssl options, so httpc uses the defaults of the ssl application, which before OTP 26 don't verify the server certificate. public_key:cacerts_get/0 doesn't exist on OTP 24, so every HTTPS request falls back there, and on OTP 25 it raises when no CA store is found. hex_core versions before 0.11.0 never set ssl options, so they don't verify the server certificate on OTP 25 and earlier whether or not a CA store is found. The fallback was intended and documented, but the documentation didn't make clear that it meant no certificate verification. Since hex_core 0.8.2 the README has warned that the built-in httpc adapter "has insecure default settings" and recommended other HTTP clients, and the adapter prints "using default ssl options which are insecure" on every request that falls back. hex_core 0.11.0 added certificate verification with the changelog entry "Use secure SSL defaults for OTP 25+". Neither the README nor the warning says that the server certificate isn't verified, the README doesn't say which OTP versions the warning applies to, and on OTP 25 without CA certificates the warning tells users to upgrade to OTP 25 or later, which they already run. This advisory is published so that users who took those notices as general advice know their HTTPS requests weren't authenticated. This issue affects hex_core: from 0.1.0 before 0.20.0.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-10-12
Last Modified
2026-10-12
Generated
2026-10-12
AI Q&A
2026-10-12
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
hexpm hex_core 0.1.0
hexpm hex_core fbb6d9de472e5edb8d6fb6b32a91cb266137892e

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-636 When the product encounters an error condition or failure, its design requires it to fall back to a state that is less secure than other options that are available, such as selecting the weakest encryption algorithm or using the most permissive access control restrictions.
CWE-295 The product does not validate, or incorrectly validates, a certificate.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability is an Improper Certificate Validation issue in the hex_core library for Erlang/OTP. It allows attackers who can intercept HTTPS connections to impersonate hex.pm, repo.hex.pm, or other repository servers to programs using hex_core's default HTTP adapter on Erlang/OTP 24 or OTP 25 when CA certificates cannot be loaded. The issue occurs because the library fails to properly verify server certificates in certain configurations, falling back to insecure defaults.

Detection Guidance

Check if your system uses hex_core versions before 0.20.0 on Erlang/OTP 24 or OTP 25 without CA certificates. Monitor logs for warnings like 'using default ssl options which are insecure' from hex_http_httpc.

Impact Analysis

This vulnerability could allow attackers to intercept and manipulate HTTPS traffic between your system and hex.pm or other repositories. This might lead to the installation of malicious packages, data breaches, or unauthorized access to sensitive information. Systems using hex_core versions before 0.20.0 on affected OTP versions are at risk.

Compliance Impact

This vulnerability could lead to non-compliance with GDPR and HIPAA due to the lack of TLS certificate verification. Without proper certificate validation, sensitive data such as API keys, OAuth tokens, or repository keys may be exposed during transmission, violating confidentiality requirements in GDPR Article 32 and HIPAA Security Rule Section 164.312(e)(1).

Mitigation Strategies

Upgrade hex_core to version 0.20.0 or later. Ensure OTP 25+ is used with proper CA certificates. Replace the default HTTP adapter with a verified client as recommended in hex_core documentation.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-103502. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart