CVE-2026-115881
GoAhead accepts revoked mTLS client certificates on OpenSSL builds
GoAhead 3.4.5 to 6.1.0 on OpenSSL loads a CRL but never enforces it, so revoked mTLS client certificates still log in. Upgrade to 6.1.1. Not in CISA KEV; no known attacks.
By ThreatWire Desk · Published 12 Oct 2026 · Updated 27 Oct 2026
- CVSS
- 9.1
- Vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
- Class
- Auth bypass
- Status
- PoC Available
- KEV
- Not in CISA KEV
- 0-day
- No
- Vendor
- Embedthis
- Products
- GoAhead embedded web server (OpenSSL-compatible TLS backend)
- Affected
- GoAhead 3.4.5 through 6.1.0 built with the OpenSSL-compatible backend, with mutual TLS, issuer verification and a CRL configured. mbedtls builds are not affected.
- Fixed
- GoAhead 6.1.1 (shipped to device builders on 2 August 2026; advisory published 12 October 2026). Device owners need firmware from their manufacturer.
- Published
- 12 Oct 2026
- Updated
- 27 Oct 2026
The status above is the claim. Links do not upgrade it.
What happened
A device whose client certificate was revoked can still pass mutual TLS on an affected GoAhead server. GoAhead's OpenSSL backend loads the configured revocation list but never turns revocation checking on.
The missing piece is one OpenSSL flag, X509_V_FLAG_CRL_CHECK. Without it, OpenSSL skips the list on every handshake. The server logs no warning, so operators believe revocation works.
Embedthis rates the flaw Critical, CVSS 3.1 9.1. It published advisory GHSA-5m75-xq69-c3c5 on 12 October 2026. The fix, GoAhead 6.1.1, reached device builders on 2 August 2026.
Who is affected
GoAhead 3.4.5 through 6.1.0 built with the OpenSSL-compatible backend is affected. That backend is the default and also covers LibreSSL, BoringSSL and AWS-LC.
Exposure needs all of these build settings:
- Mutual TLS on, with ME_GOAHEAD_SSL_VERIFY_PEER=1.
- A CA bundle in ME_GOAHEAD_SSL_AUTHORITY.
- Issuer checks on, with ME_GOAHEAD_SSL_VERIFY_ISSUER=1.
- A CRL file in ME_GOAHEAD_SSL_REVOKE.
The attacker also needs a client certificate that the operator already revoked, such as one from a stolen device. Default GoAhead builds do not enable mutual TLS or load a CRL. Builds on the mbedtls backend are not affected.
What is confirmed
The Embedthis advisory gives the affected range, the fixed release and the CWE ids, CWE-295 and CWE-299. The fix adds the missing flag right after the CRL loads.
Sébastien Féry of FoxIO found the flaw and reported it on 30 April 2026. His write-up shows a revoked certificate completing the handshake on GoAhead 6.1.0 with OpenSSL 3.6.2. FoxIO published reproduction files, which we read but did not run.
CISA's Known Exploited Vulnerabilities catalog does not list this CVE (checked 27 October 2026).
What is not confirmed
No vendor or government source reports attacks. NVD has no entry yet, and CVE.org still shows the id as reserved. The only published score is the one from Embedthis.
We found no device maker advisory that names an affected product. Each maker builds GoAhead with its own settings, so exposure varies by product.
What to do
- Upgrade GoAhead to 6.1.1 or later and rebuild your firmware, if you ship it.
- Ask your device maker for firmware based on 6.1.1, if you run GoAhead-based gear.
- Check whether your build sets ME_GOAHEAD_SSL_REVOKE. If it does, treat revoked certificates as still valid until you patch.
- Replace the CA or reissue certificates if a revoked identity must lose access before a fix arrives.
Full context, including two related TLS flaws: GoAhead 6.1.1 fixes TLS flaws that let revoked certificates back in.