← Back to Feed CACHED · 2026-05-17 09:42:19 · cache_key CVE-2025-29912
tenable:78479 · CWE-310 · Disclosed 2014-10-14

SSLv3 Padding Oracle On Downgraded Legacy Encryption Vulnerabi

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
01 · The Real Story

This is an old lock with a known picking trick that only matters if the attacker can stand between the door and the person using it

Tenable plugin 78479 is flagging SSLv3 support and mapping it to POODLE / CVE-2014-3566. The underlying flaw is in the SSL 3.0 protocol design: if a server still negotiates SSLv3 with CBC ciphers, an active man-in-the-middle can force a downgrade and gradually recover small pieces of plaintext such as session cookies. This is not tied to one app build; it affects any service that still allows SSLv3, and older OpenSSL trains only added downgrade signaling (TLS_FALLBACK_SCSV) rather than making SSLv3 itself safe.

The original medium-era framing overstated what matters in enterprise prioritization. In real environments, this attack requires on-path network position, downgrade success, and usually a real user session to harvest anything useful. Modern browsers and most managed server baselines already killed SSLv3 years ago, so what Tenable finds now is usually legacy infrastructure debt, not a broadly weaponizable internet edge bug. Keep it on the cleanup list, but don't let a protocol hygiene finding crowd out remotely exploitable initial-access bugs.

"POODLE is real, but it is a legacy MITM problem with a narrow, brittle attack chain—not a Monday-morning fire drill"
02 · The Attack Path

4 steps from start to impact.

STEP 01

Find a service that still negotiates SSLv3

The attacker first needs a reachable server that still offers SSLv3, which is exactly what plugin 78479 detects. If the service only allows TLS 1.2+ or TLS 1.3, the chain dies immediately. Tooling is trivial here: openssl s_client, nmap --script ssl-enum-ciphers, or Nessus itself can confirm protocol support.
Conditions required:
  • Target service is reachable over the network
  • Server still permits SSLv3 negotiation
Where this breaks in practice:
  • Most enterprise baselines and browsers removed SSLv3 years ago
  • Many modern load balancers, CDNs, reverse proxies, and managed platforms terminate TLS upstream and never expose SSLv3
Detection/coverage: Very strong scanner coverage. Nessus, Qualys, and Nmap all detect SSLv3 support reliably.
STEP 02

Get into the traffic path

POODLE is not a blind internet exploit; the attacker needs an active man-in-the-middle position between client and server. That means hostile Wi-Fi, compromised network gear, ARP spoofing on a local segment, or some other traffic interception point. Without that network position, there is nothing to exploit.
Conditions required:
  • Attacker can intercept and modify traffic in transit
  • Victim communicates with the vulnerable service
Where this breaks in practice:
  • Requires prior access to the victim network path or adjacent network
  • NGFW segmentation, WPA2-Enterprise, NAC, VPNs, and general east-west hardening raise the bar materially
Detection/coverage: No vulnerability scanner sees this attacker position requirement. Detection shifts to ARP spoofing alerts, rogue AP detection, NAC, and network telemetry.
STEP 03

Force protocol downgrade to SSLv3

The attacker then disrupts higher-version handshakes until the client falls back to SSLv3. This depended heavily on old client fallback behavior, which is why TLS_FALLBACK_SCSV and browser-side SSLv3 removal were effective mitigations. Modern managed clients usually stop here instead of retrying into SSLv3.
Conditions required:
  • Client still implements insecure fallback behavior or explicitly allows SSLv3
  • Server accepts the downgraded handshake
Where this breaks in practice:
  • Modern browsers and TLS libraries largely disabled SSLv3 fallback
  • If either side blocks SSLv3 or supports downgrade protection, the exploit path collapses
Detection/coverage: Handshake failures and protocol version anomalies may show up in reverse-proxy, WAF, or TLS telemetry, but few teams monitor for this specifically.
STEP 04

Exploit the padding oracle and recover session data

Once traffic is downgraded, the attacker abuses SSLv3 CBC padding behavior to recover small chunks of plaintext across many requests. In practice this was used to steal secure cookies or bearer material rather than to gain code execution or full host takeover. Public PoC code exists, but the exploit is noisy, session-dependent, and operationally brittle compared with modern remote RCEs.
Conditions required:
  • Victim has an active authenticated session or otherwise sends useful secrets
  • Attacker can trigger enough repeated requests to recover target data
Where this breaks in practice:
  • Impact is usually limited to session disclosure, not system compromise
  • Requires repeated traffic and stable interception, which makes opportunistic mass exploitation unattractive
Detection/coverage: Little host-based detection value. Best signals are abnormal TLS negotiation patterns, downgraded protocol logs, and session hijack indicators.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusHistorically exploited as a named attack after Google disclosed it in October 2014, but I found no CISA KEV listing for CVE-2014-3566, which is a strong sign this is not being treated as a current enterprise patch-priority driver.
KEV statusNot listed in the CISA Known Exploited Vulnerabilities catalog results reviewed here.
Public PoCYes — public proof-of-concept code is available, including mpgn/poodle-PoC.
EPSSCurrent third-party mirrors show EPSS around 0.94 with roughly 99.9th percentile. Treat that carefully: age, references, and historical exploitability inflate EPSS, while the real-world attacker-position requirement sharply lowers enterprise urgency.
CVSS vectorCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:N/A:N — the important parts are High attack complexity, User Interaction required, and confidentiality-only impact.
Affected rangeAny deployment that still negotiates SSLv3 is exposed. NVD describes the issue in SSL 3.0 as used in OpenSSL through 1.0.1i and other products; Red Hat states more bluntly that all SSLv3 implementations are affected.
Fixed / mitigated stateThe real fix is disable SSLv3. Older crypto stacks added TLS_FALLBACK_SCSV support — e.g. OpenSSL 1.0.1j / 1.0.0o / 0.9.8zc — which helps stop downgrade abuse but does not make SSLv3 safe.
Exposure populationExposure is now mostly legacy residue. Qualys SSL Pulse states plainly that sites must not use SSLv3, reflecting how far mainstream internet services have moved away from it; when this still appears in enterprise scans, it is usually old appliances, embedded services, or nonstandard admin ports.
Disclosure datePublicly disclosed 2014-10-14 by Google; NVD published the CVE on 2014-10-15.
Researcher / reporterDisclosed by Bodo Möller, Thai Duong, and Krzysztof Kotowicz of Google.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to LOW (2.2/10)

The decisive downgrading factor is attacker position: POODLE needs an active man-in-the-middle, not just internet reachability. Even where SSLv3 still exists, modern clients, proxies, and downgrade protections drastically shrink the reachable population and keep this from behaving like a practical initial-access bug.

HIGH Attack-path friction assessment
HIGH Severity bucket selection
MEDIUM Current residual exposure prevalence in typical enterprises

Why this verdict

  • Requires on-path interception — this is not unauthenticated remote exploitation from anywhere on the internet; the attacker must already control or influence the victim's network path.
  • Requires downgrade behavior — both the client and server have to cooperate badly enough for a fallback to SSLv3, and modern browsers/libraries usually do not.
  • Impact is narrow — the practical outcome is usually cookie or session disclosure, not code execution or host compromise.
  • Legacy exposure only — if you still have this finding, it is usually on old appliances, embedded services, or forgotten admin interfaces rather than mainstream front-door applications.
  • Scanner finds configuration debt, not a live exploit path — Tenable is correctly flagging unsafe protocol support, but the presence of SSLv3 alone does not imply a remotely exploitable attack chain in a modern estate.

Why not higher?

To score higher, this would need to behave like a reliable initial-access or broad post-auth break. It does not: the attack chain is gated by MITM position, downgrade success, and usually a real user session. Those prerequisites compound, and each one cuts the reachable population hard.

Why not lower?

I would not mark it IGNORE because SSLv3 should not still be present on managed enterprise services. If the scanner sees it, you have a real cryptographic hygiene failure that can matter on hostile internal networks, guest Wi-Fi, or legacy client paths. LOW is the right bucket for 'fix it, but do not let it jump the queue.'

05 · Compensating Control

What to do — in priority order.

  1. Disable SSLv3 everywhere — Turn off SSLv3 on servers, reverse proxies, load balancers, Java containers, mail gateways, and any SSL/TLS-terminating middleware. For a LOW verdict there is no fixed mitigation SLA, so treat this as backlog hygiene and remove it during the normal hardening cycle rather than as an emergency change.
  2. Terminate TLS upstream on modern infrastructure — If the backend app or appliance is old, move TLS termination to a current reverse proxy or load balancer that only allows TLS 1.2/1.3. This is often the fastest way to kill exposure without waiting on a vendor firmware refresh; for LOW, schedule it as normal engineering work.
  3. Block downgrade paths — Where legacy compatibility constraints exist, ensure current libraries and endpoints support TLS_FALLBACK_SCSV and enforce minimum protocol floors. This does not replace disabling SSLv3, but it reduces exploitability while you retire the weak protocol.
  4. Hunt for legacy listeners — Inventory non-443 services, admin ports, embedded HTTPS stacks, IPMI/iDRAC-era interfaces, and appliance management planes. Most surviving SSLv3 findings live off the main web path, so close the long tail instead of assuming the public VIPs are the whole story.
What doesn't work
  • A WAF alone does not solve this because the weakness is in protocol negotiation and CBC padding behavior, not HTTP payload inspection.
  • Simply upgrading OpenSSL without disabling SSLv3 is not enough; TLS_FALLBACK_SCSV helps against downgrade abuse but does not make SSLv3 cryptographically sound.
  • Relying on EDR is misplaced here; this is a network cryptography issue, not a host-execution chain.
06 · Verification

Crowdsourced verification payload.

Run this from an auditor workstation or jump host that can reach the target service over the network. Invoke it as ./check_poodle.sh example.com 443; no privileges are needed beyond network access to the service, but your local openssl binary must still support the -ssl3 test mode.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_poodle.sh
# Detects whether a remote service still negotiates SSLv3, which implies POODLE exposure.
# Usage: ./check_poodle.sh <host> [port]
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN, 3=usage error

set -u

HOST="${1:-}"
PORT="${2:-443}"
TIMEOUT_BIN=""

if [[ -z "$HOST" ]]; then
  echo "Usage: $0 <host> [port]"
  exit 3
fi

if command -v timeout >/dev/null 2>&1; then
  TIMEOUT_BIN="timeout 10"
fi

if ! command -v openssl >/dev/null 2>&1; then
  echo "UNKNOWN - openssl not installed"
  exit 2
fi

# Check whether this OpenSSL build can even attempt SSLv3.
if ! openssl s_client -help 2>&1 | grep -q -- '-ssl3'; then
  echo "UNKNOWN - local openssl does not support '-ssl3'; test from a host with legacy protocol probing support"
  exit 2
fi

OUTPUT=$(bash -c "$TIMEOUT_BIN openssl s_client -connect ${HOST}:${PORT} -ssl3 -servername ${HOST} </dev/null" 2>&1)
RC=$?

# Timeout or connectivity issue
if [[ $RC -eq 124 || $RC -eq 137 ]]; then
  echo "UNKNOWN - connection timed out probing ${HOST}:${PORT}"
  exit 2
fi

if echo "$OUTPUT" | grep -Eqi 'handshake failure|wrong version number|unsupported protocol|no protocols available|alert protocol version|sslv3 alert handshake failure'; then
  echo "PATCHED - SSLv3 negotiation failed on ${HOST}:${PORT}"
  exit 0
fi

if echo "$OUTPUT" | grep -Eqi 'Protocol *: *SSLv3|New,.*Cipher is|SSL-Session:'; then
  echo "VULNERABLE - ${HOST}:${PORT} accepted SSLv3"
  exit 1
fi

if echo "$OUTPUT" | grep -Eqi 'connect:errno=|Connection refused|Name or service not known|Temporary failure in name resolution|getaddrinfo'; then
  echo "UNKNOWN - could not reach ${HOST}:${PORT}"
  exit 2
fi

echo "UNKNOWN - inconclusive result probing ${HOST}:${PORT}"
exit 2
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: treat this as legacy crypto cleanup, not emergency response. There is no noisgate mitigation SLA — go straight to the 365-day remediation window for a LOW verdict: identify every listener still offering SSLv3, disable the protocol or move TLS termination upstream on modern infrastructure, and close the finding within the noisgate remediation SLA of ≤ 365 days. If a business unit can prove a service is internet-facing *and* still has real legacy client traffic, accelerate that one locally, but estate-wide this should not outrank remotely exploitable initial-access vulnerabilities.

Sources

  1. Tenable Nessus Plugin 78479
  2. NVD CVE-2014-3566
  3. Google disclosure: This POODLE bites
  4. Mozilla: The POODLE Attack and the End of SSL 3.0
  5. Red Hat advisory and mitigation guidance
  6. CISA alert on SSL 3.0 / POODLE
  7. Public PoC repository
  8. Qualys SSL Pulse
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.