CVE-2024-34069: Werkzeug debugger vulnerable to remote execution when interacting with attacker controlled domain
7.5
Basic Information
Technical Details
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
Werkzeug | pip | < 3.0.3 | 3.0.3 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability allowed remote code execution via the Werkzeug debugger if an attacker could make a developer's browser send requests to the debugger, even if running on localhost. The core issue was the lack of validation of the 'Host' header for requests made to the debugger's various functionalities. The provided commit (3386395b24c7371db11a5b8eaac0c91da5362692) introduces checks for trusted_hosts
in several methods of the DebuggedApplication
class. The functions listed as vulnerable are those methods within DebuggedApplication
that, prior to this patch, handled debugger operations (like displaying the console, executing commands, PIN authentication, and rendering the debugger UI with evalex
enabled) without verifying the requesting host. The patch_evidence
points to the newly added check_host_trust
calls, implying their absence was the vulnerability. The __call__
method is included as it's the main entry point that dispatches to these other vulnerable methods.