CVE-2026-81889
nicheUnauthenticated SSRF bypass via DNS rebinding in elFinder URL uploads
elFinder, an open-source web-based file manager, does not fully enforce its server-side request forgery (SSRF) protections for URL uploads before version 2.1.70: when PHP cURL is unavailable, validate_address() checks the IP from an initial DNS resolution, but fsock_get_contents() then connects using the hostname and performs a second, independent DNS lookup. An attacker who can submit a URL upload can exploit DNS rebinding so the first lookup returns a public address while the connection lookup returns a loopback or private address, causing the server to fetch an internal resource and store its HTTP response body as an uploaded file that the attacker can then read through elFinder. Independently, get_headers($url, true) re-requests the original hostname without reusing the validated and pinned connection, creating an additional blind SSRF path that applies even when the cURL code path is selected. Any deployment running the elFinder PHP backend prior to 2.1.70 with URL uploads enabled is affected, including standalone installations and applications that embed elFinder. There is currently no known exploitation, no public proof-of-concept, and the flaw is not in CISA's KEV catalog, with EPSS estimating a 0.3% chance of exploitation in the next 30 days.
What to do: Upgrade elFinder to version 2.1.70 or later. As interim mitigations, ensure the PHP cURL extension is installed so the vulnerable fsockopen path is not used, restrict URL-upload functionality to trusted users, and apply network controls that prevent the web server from reaching loopback or internal/private network services. Check your elFinder configuration to confirm whether URL uploads are enabled and whether any untrusted users can reach them.
| elFinder project elFinder (PHP file manager backend) | prior to 2.1.70 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
elFinder is an open-source file manager for web, written in JavaScript using jQuery UI. Prior to 2.1.70, elFinder URL uploads in php/elFinder.class.php can bypass server-side request forgery protections when PHP cURL is unavailable because validate_address() validates $info['ip'], but get_remote_contents() selects fsock_get_contents(), which connects to $arr['host'] and performs a second DNS resolution. An attacker able to submit a URL upload can use DNS rebinding to have the first resolution return a public address and the connection resolution return a loopback or private address, causing the internal HTTP response body to be stored as an uploaded file and made readable through elFinder. After a successful fetch, get_headers($url, true) separately requests the original hostname without reusing the validated and pinned connection, creating an additional blind server-side request forgery path even when curl_get_contents() is selected. This issue is fixed in version 2.1.70.
- Weakness
- CWE-918
- Vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
In the news0 stories
No ingested article mentions this CVE yet.