Like a fire alarm wired to a room that was never built — the vulnerable code path requires a server config so rare it borders on theoretical
CVE-2026-14457 is a NULL pointer dereference (CWE-476) in OpenSSL's RFC 7250 Raw Public Key (RPK) implementation. When a TLS server is configured with only a private key and no associated certificate — a valid but extremely uncommon RPK-only setup — and a connecting peer sends the signature_algorithms_cert TLS extension, OpenSSL dereferences a NULL certificate pointer and the process crashes. Affected versions span OpenSSL 4.0.0–4.0.1, 3.6.0–3.6.3, 3.5.0–3.5.7, and 3.4.0–3.4.6. Fixed in 4.0.2, 3.6.4, 3.5.8, and 3.4.7 respectively. Older branches (3.0.x, 1.1.1, 1.0.2) are unaffected — RPK support was introduced in OpenSSL 3.2 but the vulnerable code path only appears in 3.4+.
The CVSS:3.1 vector scores 7.5 HIGH because it sees network-reachable, no-auth, no-interaction DoS — and mechanically that is correct. But the OpenSSL project itself rates this Low, and they are right. The CVSS score completely ignores the deployment prerequisite: RPK is disabled by default in both clients and servers, and the crash only fires when the server has *no certificate at all* — just a bare private key. In practice this configuration exists almost exclusively in IoT prototyping and academic RFC 7250 test beds. The vendor HIGH label (if derived purely from CVSS) dramatically overstates the real-world risk.
3 steps from start to impact.
Identify an RPK-only OpenSSL server
SSL_set1_server_raw_public_key) and omitting the certificate load. This narrows the target population to a fraction of a percent of all OpenSSL deployments.- Target runs OpenSSL 3.4.0–4.0.1
- RPK explicitly enabled on the server
- Server configured with private key only, no certificate
- RPK is disabled by default — requires explicit opt-in via API
- The no-certificate configuration is discouraged in OpenSSL documentation
- Standard web servers, load balancers, and reverse proxies always configure certificates
- No scanner fingerprint exists to remotely identify RPK-only servers
Send a ClientHello with signature_algorithms_cert
signature_algorithms_cert extension in the ClientHello. This is a standard TLS 1.3 extension that most modern TLS stacks send by default. No special tooling is needed — any TLS client (including openssl s_client) will trigger the bug if the server meets the preconditions.- Network reachability to the target TLS port
- The extension is standard; the hard part is finding a vulnerable server, not crafting the payload
Server crashes — NULL pointer dereference
- Steps 1 and 2 succeeded
- Process supervisors (systemd, Docker, k8s) auto-restart crashed services
- Rate-limiting or connection throttling on TLS ports limits sustained DoS
- Attacker gains no foothold — each crash yields zero information
tls_choose_sigalg. Any SIEM rule on unexpected service restarts will catch this.The supporting signals.
| In-the-wild exploitation | None observed. Not listed in CISA KEV. No GreyNoise or Shadowserver activity reported as of 2026-08-26. |
|---|---|
| Proof of concept | No public PoC. Triggering the bug requires only a standard TLS ClientHello against a rare server config, so a PoC is trivial to construct but has not been published. |
| EPSS | Not yet scored (disclosed 2026-08-25). Expected to be very low given DoS-only impact and narrow preconditions. |
| KEV status | Not listed. No CISA KEV entry. |
| CVSS vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H — 7.5 HIGH. Vector reflects network DoS but ignores the deployment-level prerequisite that RPK-only configs are nearly nonexistent. |
| Affected versions | OpenSSL 4.0.0–4.0.1, 3.6.0–3.6.3, 3.5.0–3.5.7, 3.4.0–3.4.6. Older branches (3.0.x, 1.1.1, 1.0.2) unaffected — RPK was introduced in 3.2 but vulnerable code path is 3.4+. |
| Fixed versions | 4.0.2, 3.6.4, 3.5.8, 3.4.7 (all released 2026-08-25). Distro backports expected within days for Debian, Ubuntu, RHEL, SUSE. |
| Scanning / exposure | No Shodan or Censys tag exists for RPK-only OpenSSL servers. RPK adoption is negligible outside IoT/embedded research; the exposed population is estimated at <0.1% of internet-facing TLS endpoints. |
| Disclosure date | 2026-08-25 (coordinated disclosure by OpenSSL project) |
| Reporter | Not publicly credited in the initial advisory. |
noisgate verdict.
The single most decisive factor is the near-zero exposed population: RPK is disabled by default and the crash requires a certificate-less server configuration that is virtually nonexistent outside lab environments. The impact ceiling is process-crash DoS with automatic restart — no confidentiality or integrity impact.
Why this verdict
- Precondition rarity: RPK is disabled by default in all OpenSSL builds. The server must explicitly enable RPK *and* omit any certificate — a configuration the OpenSSL documentation itself discourages. This alone eliminates >99.9% of OpenSSL deployments from the attack surface.
- Impact ceiling is DoS only: CWE-476 NULL pointer dereference results in a process crash. No memory corruption, no RCE path, no data leak. CVSS C:N/I:N/A:H confirms this. Process supervisors restart the service in seconds.
- Role multiplier: OpenSSL is ubiquitous, but the *affected configuration* (RPK-only, no cert) is not. Web servers, load balancers, API gateways, reverse proxies, VPN concentrators, and every other high-value TLS role always configure certificates. The RPK-only path is used in IoT prototyping and RFC 7250 interop testing. No high-value enterprise role canonically runs RPK-only, so the blast-radius floor does not elevate the verdict.
- OpenSSL project agrees: The vendor's own severity assessment is Low, not High. The 7.5 CVSS is a mechanical artifact of the AV:N/AC:L/PR:N/UI:N vector that ignores real-world deployment context.
Why not higher?
There is no realistic path to exploiting this at scale. The vulnerable configuration is opt-in, rare, and discouraged. Even successful exploitation yields only a transient process crash — no lateral movement, no persistence, no data access. Elevating to MEDIUM would require either evidence of real-world RPK-only deployments in production or exploitation in the wild, neither of which exists.
Why not lower?
We do not drop to IGNORE because the vulnerability is real, the fix is available, and organizations running IoT or embedded TLS stacks *might* use RPK-only configurations. Additionally, the CVE is only one day old — exploitation status could change, warranting a LOW rather than outright dismissal.
What to do — in priority order.
- Audit for RPK-only server configurations — Search your OpenSSL-linked services for calls to RPK enablement APIs (
SSL_set1_server_raw_public_keyor equivalent config directives) where no certificate is loaded. If you find none — and you almost certainly will not — this CVE does not affect you. Complete this audit within the noisgate remediation window for LOW (backlog). - Add a certificate to any RPK-enabled server — If you do find an RPK-only server, pair it with a self-signed or CA-signed certificate. This prevents the NULL dereference entirely because the certificate pointer will be populated. This is the OpenSSL-recommended configuration regardless of this CVE.
- Ensure process supervision is active — Confirm that all OpenSSL-based services run under systemd, Docker, or Kubernetes with automatic restart policies. This limits DoS impact to a brief blip even if the crash is triggered.
- WAF rules — the trigger is a standard TLS extension in the ClientHello, not a malformed payload. No WAF signature can distinguish a legitimate ClientHello from a triggering one without breaking TLS.
- Network-level rate limiting — while it slows sustained DoS, a single packet triggers the crash. Rate limiting helps with recovery cadence but does not prevent the initial crash.
Crowdsourced verification payload.
Run this on any host where you want to check the installed OpenSSL version. No special privileges required. Example: bash check_cve_2026_14457.sh
#!/usr/bin/env bash
# check_cve_2026_14457.sh — Check OpenSSL version for CVE-2026-14457
# Affected: 3.4.0-3.4.6, 3.5.0-3.5.7, 3.6.0-3.6.3, 4.0.0-4.0.1
# Fixed: 3.4.7, 3.5.8, 3.6.4, 4.0.2
# Exit 0 = PATCHED, Exit 1 = VULNERABLE, Exit 2 = UNKNOWN
set -euo pipefail
VERSION=$(openssl version 2>/dev/null | awk '{print $2}') || { echo "UNKNOWN — openssl not found"; exit 2; }
# Parse major.minor.patch
IFS='.' read -r MAJOR MINOR PATCH <<< "$(echo "$VERSION" | sed 's/[^0-9.]//g')"
if [[ -z "$MAJOR" || -z "$MINOR" || -z "$PATCH" ]]; then
echo "UNKNOWN — could not parse version: $VERSION"
exit 2
fi
vulnerable=0
# Check each affected branch
if [[ $MAJOR -eq 4 && $MINOR -eq 0 && $PATCH -le 1 ]]; then
vulnerable=1
elif [[ $MAJOR -eq 3 && $MINOR -eq 6 && $PATCH -le 3 ]]; then
vulnerable=1
elif [[ $MAJOR -eq 3 && $MINOR -eq 5 && $PATCH -le 7 ]]; then
vulnerable=1
elif [[ $MAJOR -eq 3 && $MINOR -eq 4 && $PATCH -le 6 ]]; then
vulnerable=1
fi
if [[ $vulnerable -eq 1 ]]; then
echo "VULNERABLE — OpenSSL $VERSION is affected by CVE-2026-14457"
echo "NOTE: Only exploitable if RPK is enabled WITHOUT a certificate."
exit 1
else
echo "PATCHED — OpenSSL $VERSION is not affected (or not in an affected branch)"
exit 0
fiIf you remember one thing.
SSL_set1_server_raw_public_key) across your codebase and service configs — if you find nothing, this CVE does not apply to your fleet and you can fold the OpenSSL update into your normal noisgate remediation SLA for LOW (no mitigation SLA; patch at your convenience as part of routine library updates). If you *do* run RPK-only servers (IoT, embedded, test beds), add a certificate to the server config immediately as a compensating control and schedule the OpenSSL upgrade. There is no noisgate mitigation SLA for LOW — go straight to routine remediation. No exploitation in the wild, no KEV listing, no urgency override.Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.