sdk/python/HTTP Clients/PyHttpClient
HTTP Clients

PyHttpClient

The http.client module provides low-level HTTP primitives. HTTPConnection / HTTPSConnection.request() is an SSRF sink when the host or path comes from user input. HTTPSConnection with context=None falls back to system default TLS settings.

3 sinks
Taint flow0 sources 3 sinks
Sinks — dangerous call
.HTTPConnection()
.HTTPSConnection()
.request()

Sinks

.HTTPConnection()Sink
#
Signature
http.client.HTTPConnection(host, port=None, ...) -> HTTPConnection

Opens an HTTP connection. SSRF sink when host is user-controlled.

tracks:0
.HTTPSConnection()Sink
#
Signature
http.client.HTTPSConnection(host, port=None, *, context=None, ...) -> HTTPSConnection

Opens an HTTPS connection. SSRF sink on host. context=None uses defaults.

tracks:0
.request()Sink
#
Signature
HTTPConnection.request(method: str, url: str, body=None, headers={}) -> None

Sends an HTTP request. SSRF sink when url is user-controlled.

tracks:1

Fully-Qualified Names

FQNField
http.clientfqns[0]
http.client.HTTPConnectionfqns[1]
http.client.HTTPSConnectionfqns[2]

Wrong FQN → 0 findings. Verify with: change fqns to garbage → must produce 0 results.

Import

rule.py
from codepathfinder.go_rule import PyHttpClient