hackney (Erlang HTTP client) can accept wrong certificates when pinned to a private CA
A program using this HTTP library to talk to a server that uses its own private certificate could be tricked into trusting a fake server. An attacker on the network path who holds a publicly trusted certificate for that same hostname could
| Severity | CriticalCVSS 9.1 of 10 |
|---|---|
| Being exploited? | UnclearNo reports either way yet |
| Fix available? | Yeshackney 4.9.0 · since 26 Oct 2026 |
| How sure is this? | Official sourceBacked by an official source |
How the attack works simplified
- 1On-path attackerSits between client and server
- 2Public certificateHolds a trusted cert for the hostname
- 3Connection hijackedClient connects to attacker
- 4Chain acceptedPublic root wrongly trusted despite private CA pin
- ResultAttacker impersonates the pinned server
What happened
In hackney from 1.24.0 before 4.9.0, the partial_chain callback added to every verify_peer configuration is retained when callers replace the trust store with cacerts or cacertfile, so chains ending in a publicly trusted root from the bundled certifi store are accepted even when the connection is pinned to a private CA.
Are you affected?
You are affected if you use hackney 1.24.0 up to (but not including) 4.9.0 and pin connections to a private CA via ssl_options cacerts or cacertfile.
hackney from 1.24.0 before 4.9.0
What to do
- Upgrade hackney to version 4.9.0 or later
- Review any code that pins private CAs via ssl_options cacerts or cacertfile and verify it after the upgrade
- Confirm TLS connections to internal services still validate correctly
Timeline
- 26 Oct 2026, 14:16 UTCPublicly disclosed
- 26 Oct 2026, 14:16 UTCReported by NVD · NVD
- 26 Oct 2026, 14:21 UTCPicked up by Zero Radar
Sources 1 report, oldest first
Official vendor, government CERT or advisory database
- CVE-2026-115693NVD · 26 Oct 2026, 14:16 UTC
Technical details
- ID
- CVE-2026-115693
- CVSS
- 9.1 / 10
- EPSS
- 0.3% chance of exploitation within 30 days
- Disclosed
- 26 Oct 2026, 14:16 UTC
- On Zero Radar
- 26 Oct 2026, 14:21 UTC (5 min after disclosure)
- Last change
- 26 Oct 2026, 14:21 UTC
The plain-language parts and the attack diagram were written by an AI model (anthropic/claude-haiku-5.5) from the sources above. Facts like versions, exploitation and dates come from the sources themselves. How Zero Radar works