FlareSolverr Server-Side Request Forgery (SSRF) Vulnerability Report
FlareSolverr Server-Side Request Forgery (SSRF) Vulnerability Report
- Severity: High
- Affected Versions: FlareSolverr ≤ v3.4.6 (All versions)
Overview
FlareSolverr is a proxy service designed to bypass Cloudflare protections by automating a Chrome browser. In its /v1 API, the request.get and request.post commands process user-supplied url parameters without any validation of protocol, hostname, or IP address.
The application directly invokes driver.get(url) to navigate to the target URL. An attacker can exploit this behavior by crafting malicious URLs pointing to internal resources or local files. Additionally, since Chrome is launched with the --no-sandbox flag, the file:// protocol is accessible, enabling arbitrary local file read.
Vulnerability Type
- Server-Side Request Forgery (SSRF)
- Arbitrary File Read
Affected Components and Trigger Point
- Endpoint:
POST /v1(JSON API) - Core Function:
_evil_logic()→driver.get(req.url)inflaresolverr_service.py - Trigger Condition:
An attacker can send an HTTP POST request to the FlareSolverr service (default port: 8191) and control theurlparameter.
Technical Analysis
1 | HTTP POST /v1 ← Attacker sends request |
Key Observation
From controller_v1 to driver.get(req.url), no validation is performed on:
- URL scheme (e.g.,
http,file,gopher) - Hostname
- IP address (internal or external)
The only validation is a null check on req.url.
Additional Risk Factors
Chrome is launched with the following options (utils.py):
1 | options.add_argument('--no-sandbox') |
hese options weaken browser isolation, allowing:
- Access to
file://protocol - Potential exposure of local filesystem data
Root Cause
- Lack of Input Validation
No whitelist for allowed protocols or blacklist for internal IP ranges. - Broken Trust Boundary
User-controlled input is directly passed intodriver.get()without sanitization. - Weakened Sandbox Security
The use of--no-sandboxenables access to local files viafile://.
Proof of Concept (PoC)
Arbitrary Local File Read (Requires Chrome without sandbox)
1 | curl -X POST http://<TARGET>:8191/v1 \ |
Automated Detection (Nuclei Template)
1 | id: flaresolverr-ssrf |
This template leverages the vulnerable request.get functionality to trigger SSRF by accessing well-known cloud metadata endpoints. A successful match indicates that the server is capable of reaching internal metadata services, confirming the presence of the vulnerability.
Usage
1 | The vulnerability can be verified using Nuclei: |
Security Impact
An attacker can:
- Access internal network services (SSRF)
- Retrieve cloud instance metadata
- Read arbitrary local files
- Potentially escalate to further compromise depending on environment
References
- FlareSolverr Official Repository: https://github.com/FlareSolverr/FlareSolverr



