Skip to main content
← All vulnerabilities
CVE-2026-115693EUVD-2026-109836GHSA-G7GG-9JHV-68H6

Custom cacerts or cacertfile do not restrict trust to the pinned CA in hackney

Published
Last modified
Status
published
Known exploitation
Not listed in CISA KEV
Fix
Fixed in 4.9.0
Public exploit
None on Exploit-DB

Summary

Improper Certificate Validation vulnerability in hackney_ssl in benoitc hackney allows an on-path attacker to impersonate a server pinned to a private certificate authority via a certificate chain that ends in a publicly trusted root. hackney adds {partial_chain, fun hackney_ssl:partial_chain/1} to every verify_peer configuration. The callback returns any certificate in the peer chain whose public key matches a root in the bundled certifi store as the trust anchor, and OTP honours that callback over the configured cacerts. hackney_ssl:merge_ssl_opts/3 kept the callback when the caller replaced the trust store with cacerts or cacertfile in ssl_options, so a connection pinned to a private CA still accepted any chain that carried a publicly trusted root. The hostname check still applies, so the attacker needs a publicly trusted certificate for the pinned hostname. This issue affects hackney: from 1.24.0 before 4.9.0.

Affected versions

  • hackney

    From 1.24.0 · fixed in 4.9.0

  • benoitc/hackney

    From d8a9afcf5c3849904274e2eba1df56c63d1a1a0c · fixed in 915eb5737e9c489d8fc22eec8cdae30e9b027be4

References 6

GitHub · benoitc/hackney

cna.erlef.org

osv.dev