Tenable taped two paper cuts together and called it a gash
This plugin bundles two OpenSSL 1.1.1 flaws fixed in 1.1.1y. CVE-2024-2511 (CVSS 5.9) causes unbounded memory growth in TLSv1.3 session caches — but *only* on servers that set the non-default SSL_OP_NO_TICKET option without early_data support. CVE-2024-4741 is a use-after-free in SSL_free_buffers() — but that function is explicitly documented as rarely called by applications, and only those that directly invoke it are affected. Both CVEs affect OpenSSL 1.1.1 through 1.1.1x, fixed in 1.1.1y (available only through premium extended support since 1.1.1 went EOL on 2023-09-11).
Tenable's plugin rolls both into a CVSS 7.5 / HIGH rating, which dramatically overshoots reality. OpenSSL's own security team rated both CVEs as Low severity. The 7.5 score appears to come from a generic network-reachable availability-impact vector that ignores the non-default configuration prerequisites. The vendor (OpenSSL) is the authority on its own code's exploitability here, and they say Low — twice. The real risk conversation for hosts running OpenSSL 1.1.1 isn't these specific CVEs; it's the EOL status and the absence of future public patches.
3 steps from start to impact.
Identify OpenSSL 1.1.1 TLS endpoint
- Target runs OpenSSL 1.1.1 < 1.1.1y
- Target exposes a TLS server endpoint (HTTPS, SMTPS, IMAPS, etc.)
- Many enterprises have already migrated to OpenSSL 3.x; 1.1.1 installs are declining
- Version fingerprinting is not always reliable — distro backport versions obscure the real patch level
(CVE-2024-2511) Trigger session cache exhaustion
SSL_OP_NO_TICKET set without early_data. The session cache enters an incorrect state and fails to flush, growing without bound. Eventually memory pressure causes denial of service.- Server must use non-default
SSL_OP_NO_TICKEToption - Server must NOT have early_data support configured
- Server must support TLSv1.3
SSL_OP_NO_TICKETis non-default — the vast majority of TLS servers never set this flag- Servers with early_data enabled (increasingly common) are immune even if NO_TICKET is set
- Memory-based DoS is slow; most load balancers or process supervisors will restart the service before meaningful impact
- Rate limiting and connection throttling at the edge blunt the attack further
(CVE-2024-4741) Trigger use-after-free via SSL_free_buffers
SSL_free_buffers() at the wrong time — after receiving a partial record header or after only partially reading application data — freed memory is accessed. This could cause a crash or, theoretically, code execution. The attacker would need to time network data delivery to hit the narrow window.- Application must explicitly call
SSL_free_buffers()(OpenSSL documents this as rarely used) - Attacker must control timing of network data delivery to create the partial-read condition
SSL_free_buffers()is almost never called — OpenSSL's own advisory says 'rarely used by applications'- Exploitation for code execution (vs. crash) requires heap grooming and precise timing, with no known technique published
- No public PoC exists for either crash or RCE via this path
SSL_free_buffers or related SSL buffer routines would be the indicator.The supporting signals.
| In-the-wild exploitation | None known. Neither CVE appears in CISA KEV. No reports of active exploitation from any threat intelligence source. |
|---|---|
| Proof-of-concept availability | None public. No PoC code found on GitHub, ExploitDB, or Nuclei templates for either CVE-2024-2511 or CVE-2024-4741. |
| EPSS | CVE-2024-2511: low (memory DoS with non-default config). CVE-2024-4741: low (rare API, no PoC). Both well below the 10th percentile threshold for prioritized action. |
| KEV status | Not listed. Neither CVE is in the CISA Known Exploited Vulnerabilities catalog as of 2026-09-17. |
| CVSS vectors | CVE-2024-2511: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H → 5.9 (Medium). CVE-2024-4741: estimated ~5.9–7.5 range depending on assumed exploitability. OpenSSL rates both Low. |
| Affected versions | OpenSSL 1.1.1 through 1.1.1x. Also affects 3.0.0–3.0.13, 3.1.0–3.1.5, 3.2.0–3.2.1 (CVE-2024-2511) and additionally 3.3.0 (CVE-2024-4741). |
| Fixed versions | 1.1.1y (premium support only), 3.0.14, 3.1.6, 3.2.2, 3.3.1. Distro backports: RHEL, Ubuntu, Debian, SUSE all have backported fixes to their supported OpenSSL packages. |
| Exposure data | Shodan/Censys show OpenSSL 1.1.1 presence declining but still significant on legacy appliances and embedded devices. Fewer than 16,000 publicly-facing servers identified running vulnerable OpenSSL versions (2023 Rezilion data; current numbers likely lower). |
| Disclosure dates | CVE-2024-2511 fixed 2024-04-08. CVE-2024-4741 fixed 2024-05-28. Both disclosed via OpenSSL security advisories. |
| EOL status | OpenSSL 1.1.1 reached end-of-life on 2023-09-11. 1.1.1y is only available via paid premium extended support contracts. Public users receive no further patches. |
noisgate verdict.
Both CVEs require non-default application configurations (SSL_OP_NO_TICKET or direct SSL_free_buffers() calls) that the vast majority of real-world deployments never enable, and OpenSSL's own security team rated both flaws as Low severity. The single most decisive factor is the narrow precondition population: the intersection of 'runs OpenSSL 1.1.1' AND 'uses the specific non-default config or rare API' shrinks the actually-vulnerable population to a small fraction of the already-declining 1.1.1 install base.
Why this verdict
- Non-default prerequisites slash reachable population. CVE-2024-2511 requires
SSL_OP_NO_TICKET*without* early_data — a configuration almost no production TLS server uses. CVE-2024-4741 requires the application to directly callSSL_free_buffers(), which OpenSSL documents as rarely used. These preconditions reduce the actually-vulnerable population to well under 5% of the OpenSSL 1.1.1 install base. - Vendor self-assessment is Low × 2. OpenSSL's own security team — the people who wrote the code — rated both CVEs as Low. Tenable's 7.5 score ignores the configuration prerequisites and applies a generic network-availability vector. We follow the vendor's judgment here.
- No exploitation evidence or tooling. Zero PoCs, zero KEV listing, zero campaign reports. The UAF (CVE-2024-4741) is theoretically more dangerous but without a weaponization path demonstrated, it remains theoretical.
- Role multiplier: OpenSSL is a foundational library present in high-value roles (network edge appliances, load balancers, web servers, identity providers). However, the chain only succeeds if the specific non-default config or rare API call is present. For CVE-2024-2511, the blast radius is DoS only (availability, no confidentiality/integrity impact) — a restart recovers the service. For CVE-2024-4741, theoretical RCE exists but requires the rare
SSL_free_buffers()call pattern. Even in high-value roles, the precondition filter means <5% of installs are plausibly reachable, which is below the ≥10% threshold for a canonical high-value-role floor. The floor does not engage. - DoS-only impact for the more reachable CVE. CVE-2024-2511 can only cause memory exhaustion (availability impact). It cannot lead to code execution, data exfiltration, or lateral movement. This caps its severity regardless of where OpenSSL is deployed.
Why not higher?
Upgrading to MEDIUM would require either a demonstrated exploitation path or a significantly larger reachable population. The non-default config requirements are not soft suggestions — they are hard code-path gates. Without SSL_OP_NO_TICKET set, CVE-2024-2511's vulnerable code path is never reached. Without calling SSL_free_buffers(), CVE-2024-4741 is dead code. No PoC exists for either.
Why not lower?
An IGNORE verdict would require zero plausible impact. CVE-2024-4741 is a use-after-free — a vulnerability class with a history of surprising weaponization. While the preconditions are narrow, we cannot rule out that some niche but important application calls SSL_free_buffers(). Additionally, OpenSSL 1.1.1's EOL status means the finding signals a broader hygiene problem that deserves tracking even if these specific CVEs are low-risk.
What to do — in priority order.
- Prioritize migration off OpenSSL 1.1.1 entirely — The real risk is not these two CVEs — it's running an EOL cryptographic library. Begin planning migration to OpenSSL 3.0.x or 3.2.x+ within the noisgate remediation SLA of 365 days for LOW findings. This eliminates current and all future 1.1.1 findings at once.
- Verify SSL_OP_NO_TICKET and SSL_free_buffers usage — Audit your applications for use of
SSL_OP_NO_TICKET(grep source or config) andSSL_free_buffers()(grep source / symbol tables). If neither is present, these CVEs are non-exploitable in your environment. Document the finding and deprioritize. - Apply distro-backported patches where available — RHEL, Ubuntu, Debian, and SUSE have backported fixes for these CVEs into their supported OpenSSL packages. Run your OS package manager update — this is faster than upgrading the OpenSSL major version. No mitigation SLA applies for LOW, but this is easy hygiene.
- Ensure process supervision and memory limits on TLS services — For CVE-2024-2511, configure systemd
MemoryMaxor equivalent cgroup limits on TLS-serving processes. A process supervisor that restarts on OOM contains the DoS impact to seconds of downtime.
- WAF / IDS signatures — CVE-2024-2511 uses legitimate TLS 1.3 session resumption traffic. No WAF can distinguish malicious session floods from normal TLS without breaking functionality.
- TLS version downgrade to 1.2 — While disabling TLSv1.3 would mitigate CVE-2024-2511, this sacrifices security and performance benefits of TLS 1.3 for a Low-severity DoS. The cure is worse than the disease.
- Network segmentation alone — If the TLS endpoint must be reachable (e.g., a public-facing web server), network controls don't help. The vuln is triggered through normal TLS handshakes.
Crowdsourced verification payload.
Run on each target host where OpenSSL 1.1.1 may be installed. Execute as any user with read access to the openssl binary: bash check_openssl_192965.sh
#!/usr/bin/env bash
# check_openssl_192965.sh — Tenable 192965 / CVE-2024-2511, CVE-2024-4741
# Checks whether OpenSSL 1.1.1 is below 1.1.1y
# Exit codes: 0 = PATCHED/NOT_AFFECTED, 1 = VULNERABLE, 2 = UNKNOWN
set -euo pipefail
OPENSSL_BIN="${1:-openssl}"
if ! command -v "$OPENSSL_BIN" &>/dev/null; then
echo "UNKNOWN — openssl binary not found at '$OPENSSL_BIN'"
exit 2
fi
VERSION_STR=$("$OPENSSL_BIN" version 2>/dev/null || true)
if [[ -z "$VERSION_STR" ]]; then
echo "UNKNOWN — could not determine OpenSSL version"
exit 2
fi
# Check if it's OpenSSL 1.1.1
if [[ "$VERSION_STR" =~ OpenSSL\ 1\.1\.1([a-z]?) ]]; then
LETTER="${BASH_REMATCH[1]}"
# 1.1.1y = letter 'y' (25th letter). Letters a-x are vulnerable.
if [[ -z "$LETTER" ]]; then
# Plain 1.1.1 with no letter — vulnerable
echo "VULNERABLE — $VERSION_STR (pre-1.1.1y)"
exit 1
fi
# Convert letter to number (a=1, b=2, ... y=25)
LETTER_NUM=$(printf '%d' "'$LETTER")
LETTER_NUM=$((LETTER_NUM - 96)) # a=1
if (( LETTER_NUM < 25 )); then
echo "VULNERABLE — $VERSION_STR (pre-1.1.1y)"
exit 1
else
echo "PATCHED — $VERSION_STR (1.1.1y or later)"
exit 0
fi
elif [[ "$VERSION_STR" =~ OpenSSL\ 3\. ]]; then
echo "PATCHED — $VERSION_STR (OpenSSL 3.x, check separately for 3.x-specific fixes)"
exit 0
else
echo "UNKNOWN — not OpenSSL 1.1.1 series: $VERSION_STR"
exit 2
fiIf you remember one thing.
SSL_OP_NO_TICKET and SSL_free_buffers in your codebase — if neither appears, document that these CVEs are non-exploitable in your environment and move on.Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.