Tainted flow: 'req' from os.environ.get (line 120, credential/environment) → urllib.request.urlopen (network output)
Critical
- Category
- Data Flow
- Content
method="POST", ) try: with urllib.request.urlopen(req) as resp: data = json.loads(resp.read().decode("utf-8")) except urllib.error.HTTPError as exc: detail = exc.read().decode("utf-8", "replace")- Confidence
- 81% confidence
- Finding
- The token exchange endpoint is taken from sa.get("token_uri", ...) inside untrusted service-account JSON. If a malicious or tampered GOOGLE_SERVICE_ACCOUNT_KEY is supplied, the JWT assertion signed with the service account private key could be sent to an attacker-controlled URL, disclosing a bearer-style signed assertion that can be redeemed or abused depending on endpoint behavior.
