Calm down. · Both
Calm down: the "3 Critical" GoAhead TLS bugs are one Critical, and all three are opt-in
At 4:51 PM ET on Oct 26, John Althouse, founder and CTO of FoxIO, posted "Announcing 3 Critical vulns" in GoAhead, a web server device makers embed in their products, and followed it with a long list of big brand names. The post closes with "These are critical because these types of devices run our world. Water systems, electricity, military, firewalls, critical infrastructure." Calm down.
The post links to FoxIO's own blog, titled "Choose Your Backend: Three TLS Bugs in GoAhead," and its TLDR rates the bugs the way the vendor, Embedthis, does in its GitHub advisories: one Critical, one High and one Medium. The blog doesn't say three Criticals; only the post does.
Here they are, by the vendor's IDs:
- GOAHEAD-SA-2026-0006, 9.1 Critical. A certificate revocation list (CRL) gets loaded but not enforced, so a revoked mTLS client cert still works. It only bites on OpenSSL with mTLS, a CA bundle, issuer checking and a CRL all switched on, and the attacker still needs a revoked-but-once-trusted client cert and its private key.
- GOAHEAD-SA-2026-0004, 7.4 High. The mTLS chain-depth check gets skipped, but only on LibreSSL 3.2.x or 3.3.2–3.3.6 with mTLS on and issuer checking off, a setup where, as FoxIO notes, "ordinary self-signed certificates are already allowed."
- GOAHEAD-SA-2026-0005, 5.9 Medium. The Diffie-Hellman (DH) modulus gets truncated to 1 byte. That takes the Mbed TLS backend, a TLS 1.2 DHE_RSA suite, a passive observer on the network path and a client willing to accept a 1-byte DH group. TLS 1.3 and ECDHE aren't affected.
None of that is on by default. The default build uses OpenSSL with mTLS off and no CRL, and the vendor puts it plainly: "The default GoAhead build does not enable mTLS and does not load a CRL." On the LibreSSL bug, it adds, "Mutual TLS is an opt-in feature. Default GoAhead builds do not perform any client-certificate verification and are not exposed to this defect." GoAhead 6.1.1 fixes all three. The release notes date it Aug 2, 2026, for device builders, and the advisories went public Oct 12, well before the blog went up Oct 26, but the post is right that device makers still have to ship firmware with the fix.
The vendor's advisories and FoxIO's blog cite CVE-2026-115881 and CVE-2026-115884, but both are only reserved at cve.org with no NVD record, and the Mbed TLS bug has no CVE at all, so ask vendors by SA ID.
Claimed vs. confirmed
| What the post says | What the sources say |
|---|---|
| "3 Critical vulns" | One Critical (9.1), one High (7.4) and one Medium (5.9), per the vendor and FoxIO's blog |
| A '1-byte secret, "04"' | FoxIO's blog lists eight possible values: "01, 02, 04, 08, 10, 20, 40 and 80" |
| DHE negotiation is "extremely likely" | The vendor says OpenSSL 1.0.2 and later, current Go, current Java and mainstream browsers refuse the group and fall back to ECDHE, and FoxIO's own tested OpenSSL client rejected it |
| "LibreSSL mTLS has been completely bypassed, meaning anyone can connect over mTLS" | Only on LibreSSL 3.2.x or 3.3.2–3.3.6 with issuer checking off, where self-signed certs "are already allowed," per FoxIO |
| The brand list | FoxIO's blog TLDR carries the same list, and Althouse's follow-up post points to Embedthis's "Who's Using GoAhead" logo wall as the reference, which is marketing that doesn't even include Palo Alto Networks or Lockheed Martin. We found no public advisory for these bugs from any named vendor (Palo Alto Networks' advisory page has nothing on GoAhead) |
| Exploited? | Not in CISA's Known Exploited Vulnerabilities (KEV) catalog, and no exploitation reported by Embedthis, FoxIO, Blaze Labs, RuntimeWire or CISA |
Embedthis's own page calls that wall "a small selection of who is using GoAhead," and it says nothing about what went into each product, which is the part that matters. As FoxIO's blog puts it, "Exposure depends on the TLS library and the verification settings built into the device." Nobody has confirmed that any named vendor ships an affected setup.
The internet mostly shrugged. As of about 10:37 PM ET on Oct 26, the post had about 16 reposts, 8 quotes and roughly 7.4K views. RuntimeWire added the qualifier the post skipped, that "the flaws affect particular TLS backends and configurations, not every device that includes GoAhead," and Blaze Labs, which reproduced the CRL bug on its own, put it plainly: "The attack also has substantial preconditions… That does not make it a generic unauthenticated bypass on every GoAhead build."
The bugs are real, though, and fixed. My take: the 9.1 is the one worth your time, but it's narrower than its score, because needing a revoked cert and its private key sits oddly with the vendor's CVSS rating of PR:N (no privileges required). It matters most if you revoke certs to cut off lost or decommissioned devices.
Classic security FUD. I've seen this exact play at least 25 times already (joking): real bugs, a scary headline, and a brand list doing the heavy lifting.
What to do:
- If you actually run or build GoAhead, check for a non-default TLS setup. Why: all three bugs need an opt-in backend or setting. How: check your build flags.
- The CRL bug needs
ME_GOAHEAD_SSL_VERIFY_PEER=1,ME_GOAHEAD_SSL_AUTHORITYset,ME_GOAHEAD_SSL_VERIFY_ISSUER=1andME_GOAHEAD_SSL_REVOKEset, on an OpenSSL-compatible backend. - The LibreSSL bug needs
VERIFY_PEER=1andVERIFY_ISSUER=0on LibreSSL 3.2.x or 3.3.2–3.3.6. - The DH bug needs the Mbed TLS backend (
ME_COM_MBEDTLS=1 ME_COM_OPENSSL=0) with a TLS 1.2 DHE_RSA suite enabled.
- The CRL bug needs
- Upgrade to GoAhead 6.1.1. Why: it fixes all three. How: rebuild on 6.1.1, since neither the vendor nor FoxIO lists a workaround for the CRL bug. If you can't upgrade yet, FoxIO's blog lists workarounds for the other two: for the LibreSSL bug, set
VERIFY_ISSUER=1with a trusted CA bundle or move to OpenSSL or LibreSSL 4.x, and for the DH bug, disable finite-field DHE suites or use the OpenSSL backend. The vendor's advisories confirm those setups aren't affected. - Don't trust the version string alone. Why: Blaze Labs found a development tree that already called itself 6.1.1 but was still vulnerable. How: per Blaze, "Identify the actual code compiled into the product, including vendor backports… rather than treating an older date or version string as proof that every finding applies."
- If you own devices that embed GoAhead, ask the vendor. Why: being on a logo wall doesn't make a device exposed, and being off one doesn't make it safe. How: ask each vendor for its GoAhead version, TLS backend and library version, and build flags (
VERIFY_PEER,VERIFY_ISSUER,REVOKE, Mbed TLS vs. OpenSSL). Log the answers and dates, track firmware built on 6.1.1, and keep management interfaces off the internet until it lands. - Ask about the rest of 6.1.1, too. Why: the release lists 11 advisories, and two of its other Criticals aren't TLS bugs: a basic-auth password bypass for users with Blowfish (
BF1:) stored hashes in 6.1.0 only (SA-2026-0001) and a 9.8 Windows.bat/.cmdCGI command injection (SA-2026-0007). How: ask vendors about all 11. - If you rely on mTLS plus a CRL to cut off lost or retired devices, do some incident response. Why: that's the one setup where the 9.1 bites. How:
- Treat every cert revoked since the device shipped as possibly still working.
- Contain: remove the CA or reissue, block revoked identities at a network layer or proxy, and restrict management interfaces to trusted networks.
- Preserve and review TLS and access logs for any client cert serial or subject on your CRL that completed a handshake after its revocation date.
- If you ran Mbed TLS with DHE, check your logs. Why: that's the one setup where the DH bug matters. How: FoxIO suggests checking JA4S logs for DHE_RSA server responses from GoAhead devices (example
t120100_009f_1ca028f07214). If those sessions carried credentials or session tokens over a network an attacker could observe, rotate them and disable finite-field DHE suites.
Want the next one?
One email, weekly-ish. The week's briefs, how worried to be, and what to do about it. No doom.
Subscribe on Beehiiv ↗Free. Opens Beehiiv in a new tab. Unsubscribe whenever, I won't be offended.Sources
- FoxIO: Choose Your Backend: Three TLS Bugs in GoAhead (Oct 26, 2026)
- Embedthis GoAhead releases (v6.1.1 release notes)
- Embedthis GoAhead GitHub security advisories
- GHSA-5m75-xq69-c3c5 (GOAHEAD-SA-2026-0006, CRL not enforced)
- GHSA-r392-vqwx-3r4g (GOAHEAD-SA-2026-0004, LibreSSL chain depth)
- GHSA-fmvx-2xfx-2gq4 (GOAHEAD-SA-2026-0005, Mbed TLS DH)
- GHSA-584w-ph2x-4gfq (GOAHEAD-SA-2026-0007, Windows CGI command injection)
- cve.org ID state: CVE-2026-115881 (reserved), CVE-2026-115884 (reserved)
- NVD API: CVE-2026-115881 (no record)
- CISA Known Exploited Vulnerabilities catalog (JSON)
- Embedthis GoAhead page ("Who's Using GoAhead")
- John Althouse on X (Oct 26, 2026), follow-up
- RuntimeWire: FoxIO details three GoAhead TLS flaws affecting embedded devices (Oct 26, 2026)
- Blaze Labs: Sixteen fixes we found too late to report: our GoAhead investigation (Oct 14, 2026)
- Palo Alto Networks security advisories