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.
4 steps from start to impact.
Find a service that still negotiates SSLv3
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.- Target service is reachable over the network
- Server still permits SSLv3 negotiation
- 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
Get into the traffic path
- Attacker can intercept and modify traffic in transit
- Victim communicates with the vulnerable service
- 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
Force protocol downgrade to SSLv3
TLS_FALLBACK_SCSV and browser-side SSLv3 removal were effective mitigations. Modern managed clients usually stop here instead of retrying into SSLv3.- Client still implements insecure fallback behavior or explicitly allows SSLv3
- Server accepts the downgraded handshake
- Modern browsers and TLS libraries largely disabled SSLv3 fallback
- If either side blocks SSLv3 or supports downgrade protection, the exploit path collapses
Exploit the padding oracle and recover session data
- Victim has an active authenticated session or otherwise sends useful secrets
- Attacker can trigger enough repeated requests to recover target data
- Impact is usually limited to session disclosure, not system compromise
- Requires repeated traffic and stable interception, which makes opportunistic mass exploitation unattractive
The supporting signals.
| In-the-wild status | Historically 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 status | Not listed in the CISA Known Exploited Vulnerabilities catalog results reviewed here. |
| Public PoC | Yes — public proof-of-concept code is available, including mpgn/poodle-PoC. |
| EPSS | Current 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 vector | CVSS: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 range | Any 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 state | The 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 population | Exposure 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 date | Publicly disclosed 2014-10-14 by Google; NVD published the CVE on 2014-10-15. |
| Researcher / reporter | Disclosed by Bodo Möller, Thai Duong, and Krzysztof Kotowicz of Google. |
noisgate verdict.
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.
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.'
What to do — in priority order.
- Disable SSLv3 everywhere — Turn off SSLv3 on servers, reverse proxies, load balancers, Java containers, mail gateways, and any SSL/TLS-terminating middleware. For a
LOWverdict 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. - 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. - Block downgrade paths — Where legacy compatibility constraints exist, ensure current libraries and endpoints support
TLS_FALLBACK_SCSVand enforce minimum protocol floors. This does not replace disabling SSLv3, but it reduces exploitability while you retire the weak protocol. - 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.
- 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_SCSVhelps 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.
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.
#!/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
If you remember one thing.
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
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.