Tainted flow: 'req' from os.environ.get (line 93, credential/environment) → urllib.request.urlopen (network output)
Critical
- Category
- Data Flow
- Content
loop = asyncio.get_event_loop() data = await loop.run_in_executor( None, lambda: urllib.request.urlopen(req, timeout=120).read(), ) return web.Response( body=data,- Confidence
- 93% confidence
- Finding
- The transcribe proxy forwards raw request bodies to a URL taken from the VOICE_TRANSCRIBE_URL environment variable without validating scheme, host, or destination. If deployment is exposed beyond localhost or an attacker can influence configuration, this becomes an SSRF-style proxy/data exfiltration sink that can send microphone audio or arbitrary uploaded content to an unintended internal or external service.
