Fedora Account System
Red Hat Associate
Red Hat Customer
The /ansibletower handler parses req.body as {towerHost, token}, constructs a URL from towerHost, validates only pathname against a 3-entry allowlist (/api/v2/job_templates/, /api/v2/workflow_job_templates/, /api/v2/inventories/), then issues an HTTPS GET to attacker-controlled hostname + port + search with rejectUnauthorized: false and an attacker-supplied Authorization header. The full upstream response (status, headers, body) is piped back to the client. Any authenticated ACM console user can reach arbitrary internal or external hosts via the hub's network position, exfiltrating full HTTP responses. The pathname allowlist is insufficient because the attacker controls the hostname. Affected file: backend/src/routes/ansibletower.ts (lines 30-66) Fix branch: glasswing/f001 Engineering contact: Kevin Cormier Jira: ACM-38691 Discovered by: Project Glasswing AI-SAST campaign (HP Mythos)