Skip to content

Don't confirm Tomcat manager CRITICAL from a generic HTTP 200 - #34

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

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

Conversation

@cursor

@cursor cursor Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Bug and impact

src/vuln_prober.py probe_tomcat_default_creds confirmed CRITICAL CWE-306 (unauthenticated Tomcat manager / WAR deploy = RCE) whenever GET /manager/html returned HTTP 200, with no check that the body was actually Tomcat manager.

service_prober.check_http_admin_panels already requires Tomcat markers for this path. The vuln-prober duplicate did not. Fusion treats source=probe + high reliability as un-droppable, so a false CRITICAL is pinned into the report, HackerOne export, and executive summary.

Trigger: scan a host with 8080/8000/8443/etc. open (http-alt). Typical cases:

Neither body contains Tomcat manager HTML, but the probe still confirmed CRITICAL.

Root cause

if status == 200: returned a confirmed finding immediately. Default-credential 200s had the same gap (any Basic-auth 200 counted as Tomcat).

Fix

Require distinctive Tomcat manager HTML (Tomcat Web Application Manager, Manager Application, html-manager) for both the unauthenticated-200 and default-creds-200 paths. Pass scheme from the orchestrator so HTTPS ports are probed over TLS.

Validation

python3 -m pytest test_probers.py test_hardening.py -q — 65 passed.
New cases: generic SPA/login/JSON 200 rejected; real manager HTML still confirms CWE-306; default admin:admin still confirms; generic 200 after Basic auth rejected.

Open in Web View Automation 

probe_tomcat_default_creds treated any 200 on /manager/html as
unauthenticated Tomcat manager (CWE-306). SPA catch-alls and login
pages after urllib followed a 3xx pinned a false CRITICAL through
fusion. Require Tomcat manager HTML markers, matching service_prober.

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