Encryption finding · Edge
RC4 Cipher Suites Enabled: Fix It or Document It
Your scanner flagged RC4 cipher suites. What the finding means, how to remove RC4, and how to document it when a legacy system can't change.
What the scanner said
SSL RC4 Cipher Suites Supported (Bar Mitzvah)RC4 cipher suites supportedRC4Your server still offers RC4 cipher suites, such as TLS_RSA_WITH_RC4_128_SHA. Nessus reports this as SSL RC4 Cipher Suites Supported (Bar Mitzvah), plugin 65821. RC4 is a stream cipher with statistical biases in its output: an attacker who captures many encryptions of the same secret, such as a session cookie, can start recovering it (CVE-2013-2566), and the Bar Mitzvah attack recovers the first bytes of sessions that happen to use weak keys (CVE-2015-2808).
Why it matters
RFC 7465 (February 2015) requires that TLS clients and servers never negotiate RC4 cipher suites, and NIST SP 800-52 Rev. 2 does not allow them. Nessus rates the finding Medium: CVSS v3 5.9 (from CVE-2013-2566) and v2 5.0. A cipher list that offers RC4 conflicts with that guidance, so a NIST 800-53 assessment, a NERC CIP audit, or a customer security review will ask about it.
A PCI ASV scan also fails on it, because an ASV fails any score of 4.0 or higher.
The fix
Remove RC4 from every listener that terminates TLS: web servers, load balancers, CDNs, mail servers, and VPN gateways.
The smallest change is to exclude RC4 from the cipher string you already run. Append :!RC4 to it.
# nginx: replaces the whole list with modern suites (check older clients first)
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
# Apache (mod_ssl)
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
# Other OpenSSL-based services (HAProxy, Postfix, Dovecot): exclude RC4 from the cipher string, then restart
CipherString = DEFAULT:!RC4
# Windows Schannel (IIS, RDP, other Schannel services): the keys may not exist yet; reg add creates them.
# Repeat for "RC4 64/128", "RC4 56/128", and "RC4 40/128", then reboot
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128" /v Enabled /t REG_DWORD /d 0 /fOn Windows Server you can instead remove the RC4 suites from the SSL Cipher Suite Order group policy. On a managed load balancer or CDN, choose a TLS 1.2 or later security policy that excludes RC4.
Verify. Run the check below against each listener.
nmap -sT -Pn --script ssl-enum-ciphers -p 443 <host>A fixed host lists no suite with RC4 in its name and ends with least strength: A. A vulnerable host lists each RC4 suite graded C, with the warning Broken cipher RC4 is deprecated by RFC 7465. Rerun your scanner too, and keep the before and after output as the evidence that the finding is closed.
When you can't fix it
Some assets offer RC4 because nothing else is available: older payment terminals, industrial gateways, and appliances past vendor support. Your named owner chooses one treatment.
- Remediate by upgrading or replacing the asset, with a dated plan.
- Mitigate by terminating TLS in front of it with a proxy that speaks modern TLS to clients and reaches the asset over a segmented internal hop. Keep it off the internet, restrict it to an allowlist of client addresses, and monitor it.
- Accept with documented compensating controls: the asset, why it can't change, the controls above, the owner, a review date, and a replacement date. For a PCI ASV scan, give the ASV that record through its dispute process. The ASV reviews the evidence and decides.
The post Compensating Controls for Legacy Systems covers which controls carry weight and how to write the record an assessor accepts.
Where it lands in the Risk Register
| Finding | Treatment | Owner | Evidence |
|---|---|---|---|
| RC4 suites offered on a named listener | Remediate, mitigate, or accept (the owner decides) | Named by you | Before and after scan output. Maps to PCI DSS 4.2.1 and NIST 800-53 SC-8 and SC-13. |
Common questions
Is RC4 actually exploitable?
The attacks need an attacker on the network path and a very large number of encryptions of the same secret, such as a session cookie, so they are impractical against most short-lived connections. The finding persists because RFC 7465 prohibits RC4 in TLS outright, regardless of how hard the attack is.
Will removing RC4 break anything?
Almost no client needs RC4: even Windows XP-era browsers can fall back to 3DES. Some embedded devices are the exception. A full replacement list, like the nginx line above, can also drop older clients, so check the server's handshake logs first.
Why does my scanner show RC4 when I only enabled AES?
A different listener may offer it: a load balancer, a mail server, a VPN gateway, or a second port. Scan every listener, and remember that a default cipher list can include RC4 unless you exclude it.
Can I pass a PCI scan with RC4 still enabled?
Only through the ASV's dispute process, with a compensating-control record. The finding scores above the ASV failure threshold of 4.0, and the ASV reviews the evidence and decides, so removing RC4 is the reliable route.
Can I test for RC4 with openssl s_client?
Not reliably. OpenSSL 1.1.0 and later ship without RC4, so a test client built on them fails the handshake even against a server that offers RC4, which looks like a pass. Use the nmap check above.
Related reading
Need the finding closed, or documented so it stays open with your assessor's acceptance?