Skip to content

Don't report DROWN from TLS 1.0 and TLS 1.1 alone - #29

Draft
cursor[bot] wants to merge 1 commit into
mainfrom
cursor/critical-bug-management-a5de
Draft

Don't report DROWN from TLS 1.0 and TLS 1.1 alone#29
cursor[bot] wants to merge 1 commit into
mainfrom
cursor/critical-bug-management-a5de

Conversation

@cursor

@cursor cursor Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Bug and impact

check_drown() treated any host with two or more deprecated TLS versions as confirmed DROWN (CVE-2016-0800, CRITICAL, CVSS 9.8), which forced TLS grade F.

Python cannot negotiate SSLv2, and the only deprecated versions the analyzer can actually probe are TLS 1.0 and TLS 1.1. A typical legacy stack that still offers both therefore got a false CRITICAL on every TLS scan — including hosts that have never spoken SSLv2.

Trigger: scan any host that successfully handshakes TLS 1.0 and TLS 1.1 (very common). probe_protocols() puts both in deprecated; len(deprecated) >= 2 fired DROWN.

Root cause

The DROWN heuristic used len(deprecated) >= 2 as a stand-in for SSLv2 because SSLv2 cannot be tested from Python. TLS 1.0 + TLS 1.1 is not DROWN. DROWN requires SSLv2 on the host or a shared RSA key with an SSLv2 server.

Fix

Only emit the DROWN finding when SSLv2 is actually present in the deprecated list. TLS 1.0/1.1 remain MEDIUM deprecated-protocol findings and still grade D when both are present.

Validation

  • python3 -m pytest test_tls.py test_hardening.py -q — 61 passed
  • New tests cover: TLS 1.0+1.1 must not emit DROWN; SSLv2 still does; probe → check → grade path is D not F
Open in Web View Automation 

CVE-2016-0800 requires SSLv2. The analyzer cannot negotiate SSLv2, so treating any two deprecated protocols as confirmed DROWN marked typical TLS 1.0+1.1 hosts CRITICAL with grade F. Only emit DROWN when SSLv2 is actually in the deprecated list.

Co-authored-by: dmitryflynn <dmitryflynn@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant