Tinyproxy
CVE-2026-55202
HIGH
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Remote, no auth, single crafted request (AV:N/AC:L/PR:N/UI:N); stats disclosure gives C:H, transparent-proxy misrouting gives limited I:L, no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
7DescriptionCVE.org
Tinyproxy through 1.11.3, fixed in commit 09312a1, fails to properly validate the Host header during stathost detection, allowing unauthenticated attackers to access the stats page by injecting a matching Host header or bypass detection via port manipulation. Remote attackers can trigger unauthorized access to internal proxy statistics or misroute requests as transparent proxy connections to circumvent access controls.
AnalysisAI
Authentication bypass in Tinyproxy through 1.11.3 lets unauthenticated remote attackers reach the internal statistics page and smuggle transparent-proxy requests by forging or port-manipulating the HTTP Host header, because stathost detection used a brittle strcmp against the configured hostname. The flaw is a CWE-444 request-interpretation inconsistency reported by VulnCheck; no public exploit identified at time of analysis, though the upstream fix (commit 09312a1) and a detailed PR diff are publicly available, making a working PoC trivial to reconstruct.
Technical ContextAI
Tinyproxy is a small, widely-deployed lightweight HTTP/HTTPS proxy daemon often embedded in routers, containers, and IoT gateways (CPE cpe:2.3:a:tinyproxy:tinyproxy:*). The 'stathost' is an internal pseudo-host that, when matched, causes the daemon to serve administrative connection statistics instead of proxying the request. Pre-patch code in src/reqs.c performed exact equality with strcmp(config->stathost, request->host), which ignored the Host: request header path and did not normalize a trailing ':port' suffix. The PR diff replaces this with an is_stathost() helper that compares the configured stathost prefix and explicitly accepts either end-of-string or a ':' delimiter, and is now invoked against both the URL host and the Host header. The class is CWE-444 (Inconsistent Interpretation of HTTP Requests / request smuggling): differing parsers between the absolute-URI host and the Host header allowed the security decision and the routing decision to disagree.
RemediationAI
Upstream fix available as commit 09312a1 (PR #606); a released, tagged patched version is not independently confirmed in the supplied data, so rebuild from current main or apply the src/reqs.c patch introducing is_stathost() and its two call sites. Track distribution package updates (Debian, Alpine, OpenWrt typically ship Tinyproxy) and replace any tinyproxy <= 1.11.3 binary. As a workaround until patched, comment out or remove the StatHost directive in tinyproxy.conf, which eliminates the stathost code path entirely at the cost of losing the operational statistics endpoint; alternatively, restrict the listening interface with Listen/Allow to trusted management ranges and front the proxy with an L7 device that normalizes the Host header, accepting the side effect that legitimate clients sending Host headers with a :port suffix may be rejected. Advisory references: https://github.com/tinyproxy/tinyproxy/pull/606, https://github.com/tinyproxy/tinyproxy/commit/09312a185ae25cc486b4ff5987638a7917a48bce, https://vuldb.com/vuln/372109.
Potential leak of left-over heap data if custom error page templates containing special non-standard variables are used.
Tinyproxy through 1.11.2 contains an integer overflow vulnerability in the strip_return_port() function within src/reqs.
HTTP request smuggling in Tinyproxy through 1.11.3 allows remote unauthenticated attackers to desynchronize the proxy an
HTTP request smuggling in Tinyproxy through 1.11.3 lets remote unauthenticated attackers desynchronize the proxy and bac
Remote denial of service in tinyproxy versions through 1.11.3 allows unauthenticated attackers to exhaust all proxy work
HTTP request smuggling and denial of service in Tinyproxy through 1.11.3 allows unauthenticated remote attackers to caus
main.c in Tinyproxy 1.8.4 and earlier creates a /run/tinyproxy/tinyproxy.pid file after dropping privileges to a non-roo
Tinyproxy 1.8.3 and earlier allows remote attackers to cause a denial of service (CPU and memory consumption) via (1) a
Same weakness CWE-444 – HTTP Request/Response Smuggling
View allSame technique Authentication Bypass
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
Share
External POC / Exploit Code
Leaving vuln.today