CVE-2026-54020
CVE-2026-54020 in Open WebUI is a temporal DNS validation bypass that fundamentally changes how you should think about SSRF in authenticated contexts. The core issue: Open WebUI validates URLs against blocklists at submission time but performs DNS resolution separately when actually connecting. An authenticated attacker controls this gap by owning the authoritative DNS for a domain they submit—during validation the domain resolves to a safe IP, but by connection time it resolves to an internal service. This isn't a code bug; it's a design assumption that DNS resolution is deterministic across time windows. The 'authenticated attacker' prerequisite is the critical detail that reclassifies this from a typical SSRF access vector to a lateral movement and credential exfiltration risk. You're not dealing with an external attacker trying to get in—they're already authenticated and exploiting trust within their own account. The OAuth profile picture fetch path makes this worse: the attacker can forward their legitimate OAuth token to internal services that may accept it based on valid authentication alone, without expecting tokens to come from user-controlled request routing. This transforms the vulnerability from SSRF into a token forwarding attack. Check your deployment immediately for three things. First, image_url fetch paths and image editing pipelines—these often receive less security scrutiny than core URL validation and may expose internal admin APIs or service interfaces. Second, OAuth token handling in profile picture and similar features—if tokens are forwarded to internal services beyond their intended audience, that's the same trust failure this CVE exploits. Third, multi-tenant deployments face amplified risk: an authenticated attacker in shared infrastructure can probe internal services with legitimate credentials, creating signal that's invisible in normal auth-failure logs. The fix in version 0.11.0 addresses the temporal gap, but you should verify which approach was taken—persistent IP pinning or synchronous validation at connection time—and whether it introduces constraints on legitimate use like CDN failover. Regardless of the fix, the underlying lesson is architectural: validate DNS resolution at submission time and enforce that same resolution at connection time, or resolve synchronously and reject if the answer changes between the two moments.
Reviewed through automated stages and approved by a human before publication.