Skip to main content

elFinder EUVDEUVD-2026-68768

| CVE-2026-81889 HIGH
Server-Side Request Forgery (SSRF) (CWE-918)
2026-08-31 GitHub_M GHSA-8x3q-jpjh-qh5c
8.6
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Operate DNS server with zero-TTL records
  2. Delivery
    Submit attacker-controlled URL to elFinder upload
  3. Exploit
    First DNS resolution returns public IP, passes validate_address()
  4. Install
    Second DNS resolution in fsock_get_contents() returns internal IP
  5. C2
    Connect to internal HTTP service
  6. Execute
    Internal response body stored as uploaded file
  7. Impact
    Retrieve internal data via elFinder file read

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The primary exploitation path requires PHP without the cURL extension installed, forcing get_remote_contents() into the fsock_get_contents() fallback; on any PHP installation where cURL is enabled, this path is blocked. The attacker must additionally have access to elFinder's URL upload functionality - whether that endpoint requires authentication depends entirely on how the integrating application configures the elFinder connector (the GHSA notes that connectors can be deployed without authentication). The attacker must control a DNS server capable of returning low or zero TTL responses to facilitate the dual-resolution race, and the PHP process must have network-level connectivity to the targeted internal host. The MIME type returned by the internal service must match a type permitted by elFinder's upload configuration, limiting which internal endpoints are exploitable. A secondary blind SSRF via get_headers() applies to all deployments regardless of cURL availability, requiring only URL upload access without the no-cURL precondition.

Impact

The CVSS 8.6 vector (S:C/C:H) accurately reflects that SSRF can cross security boundaries and expose full internal HTTP response bodies - the non-blind nature amplifies the severity. However, the AC:L metric likely overstates exploitability: DNS rebinding requires the attacker to operate a DNS server with zero-TTL records and successfully exploit a timing race between two independent DNS lookups, which in practice introduces meaningful real-world complexity. The primary exploitation path also requires PHP without the cURL extension, which is non-default in well-maintained PHP deployments; organizations running PHP with cURL installed are only exposed to the secondary get_headers() blind SSRF path. No EPSS data was provided. KEV status is absent, indicating no confirmed mass exploitation. A public proof-of-concept is confirmed available (poc.zip attached to GHSA-8x3q-jpjh-qh5c), meaning a motivated attacker with DNS infrastructure can reproduce the attack. Realistic priority: high for elFinder deployments on cURL-less PHP with publicly or lightly authenticated URL upload endpoints; moderate for cURL-enabled deployments pending the 2.1.70 patch.

Exploit ScenarioDerived

An attacker registers a domain backed by a controlled DNS server configured to serve near-zero TTL A records, initially returning a public IP that passes elFinder's validate_address() blocklist check, then rapidly re-resolving to 127.0.0.1 or an internal address before fsock_get_contents() opens the TCP connection. The internal service response - such as AWS instance metadata from 169.254.169.254 or an unauthenticated internal API - is saved as an uploaded file in elFinder, which the attacker then retrieves via the file manager's standard read interface. A proof-of-concept demonstrating this full non-blind read-back path is publicly available in the GHSA advisory.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 31, 2026

SSRF protection bypass in elFinder's URL upload feature allows remote attackers to reach internal HTTP services by exploiting a DNS rebinding race condition in php/elFinder.class.php prior to version 2.1.70. The server stores the internal service's HTTP response body as an uploaded file that is subsequently readable through the elFinder interface, making this a non-blind SSRF - a more impactful variant than typical SSRF. A public proof-of-concept is available via the GHSA advisory; no active exploitation has been confirmed in the CISA KEV at time of analysis.

RemediationAI

Upgrade elFinder to version 2.1.70 via composer update studio-42/elfinder; the release is available at https://github.com/Studio-42/elFinder/releases/tag/2.1.70, patched via commits 191372c and 6d99738. The first commit adds an errUploadUrlNoCurl error message, indicating the fix disables URL uploads entirely when PHP's cURL extension is unavailable - eliminating the fsock_get_contents() attack path at the feature level. If immediate upgrade is not feasible: install and enable PHP's cURL extension to force the cURL code path with CURLOPT_RESOLVE IP pinning, which mitigates the primary DNS rebinding vector but does not address the secondary get_headers() blind SSRF path. Additionally, restrict access to elFinder's URL upload functionality via application-layer authentication and limit outbound connections from the PHP process to internal network ranges through firewall policy or PHP-FPM network namespace controls. Note that cURL enablement alone is an incomplete mitigation - the get_headers() blind SSRF channel persists until 2.1.70 is deployed.

Affected VersionsENISA

elFinder < 2.1.70

Affected Packages

composer studio-42/elfinder fix: 2.1.70
euvd elfinder fix: 2.1.70

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in composer, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

elFinder (CPE: cpe:2.3:a:studio-42:elfinder:*:*:*:*:*:*:*:*) is a PHP-based server-side file management connector. The vulnerability is classified as CWE-918 (Server-Side Request Forgery) and arises from a time-of-check/time-of-use (TOCTOU) flaw in the URL upload pipeline. validate_address() calls gethostbyname() on the attacker-supplied hostname and rejects loopback and RFC1918 addresses. When PHP's cURL extension is absent, get_remote_contents() falls back to fsock_get_contents(), which reconnects to the original hostname and triggers a second, independent DNS resolution. An attacker controlling a DNS server with near-zero TTL records can serve a public IP for the first (validation) resolution and a loopback or private IP for the second (connection) resolution, bypassing the blocklist entirely. The cURL code path correctly defends against this by pinning the validated IP via CURLOPT_RESOLVE, but the socket fallback lacks this pin. A secondary blind SSRF channel exists even in cURL-enabled deployments: get_headers($url, true) is called after validation on the original hostname without reusing the validated, pinned connection.

Know when Elfinder gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.6 HIGH
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
vuln.today AI 6.8 MEDIUM

DNS rebinding requires attacker-controlled DNS infrastructure and a timed dual-resolution race, elevating AC to H over the NVD's AC:L assignment.

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

2
Patch available
Aug 31, 2026 - 22:18 EUVD
CVE Published
Aug 31, 2026 - 20:25 cve.org
HIGH 8.6

DescriptionCVE.org

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.

Technical POC Analysis

CWE-918 (SSRF), with a TOCTOU sub-flaw (possibly CWE-367) in php/elFinder.class.php.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

elFinder prior to version 2.1.70 contains a server-side request forgery (SSRF) vulnerability in its URL upload feature that enables attackers to access internal HTTP services and retrieve sensitive data through the application interface. Organizations deploying elFinder face risk of unauthorized backend system access and potential data exfiltration from internal services. Immediate action is required to restrict this capability until a vendor patch becomes available.

Business Impact: High
Compensating Controls

Disable the URL upload feature in elFinder configuration settings. Implement network-level egress filtering and firewall rules to prevent outbound HTTP/HTTPS connections to internal services. Restrict access to elFinder administrative and upload interfaces through IP whitelisting or require VPN authentication. Enable detailed application logging to detect and alert on unusual connection attempts. Isolate the elFinder application server on a separate network segment with minimal connectivity to sensitive internal systems.

Threat Intelligence Overview

EPSS Score
0.3%
Top 74% exploitable
Prevalence
Medium
popular open-source PHP file manager, widely integrated in CMS and web apps
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

63
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +43
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

CVE-2021-32682 CRITICAL POC
9.8 Jun 14

elFinder is an open-source file manager for web, written in JavaScript using jQuery UI. Rated critical severity (CVSS 9.

CVE-2019-9194 CRITICAL POC
9.8 Feb 26

elFinder before 2.1.48 has a command injection vulnerability in the PHP connector. Rated critical severity (CVSS 9.8), t

CVE-2022-27115 CRITICAL POC
9.8 Apr 11

In Studio-42 elFinder 2.1.60, there is a vulnerability that causes remote code execution through file name bypass for fi

CVE-2021-23394 CRITICAL POC
9.8 Jun 13

The package studio-42/elfinder before 2.1.58 are vulnerable to Remote Code Execution (RCE) via execution of PHP code in

CVE-2022-26960 CRITICAL POC
9.1 Mar 21

connector.minimal.php in std42 elFinder through 2.1.60 is affected by path traversal. Rated critical severity (CVSS 9.1)

CVE-2026-81891 HIGH POC
8.1 Aug 31

Remote code execution in elFinder prior to 2.1.70 allows an authenticated user with ZIP upload permission to bypass the

CVE-2023-35840 MEDIUM POC
6.5 Jun 19

_joinPath in elFinderVolumeLocalFileSystem.class.php in elFinder before 2.1.62 allows path traversal in the PHP LocalVol

CVE-2024-38909 CRITICAL
9.8 Jul 30

Studio 42 elFinder 2.1.64 is vulnerable to Incorrect Access Control. Rated critical severity (CVSS 9.8), this vulnerabil

CVE-2026-81890 MEDIUM POC
5.4 Aug 31

CSRF protection is absent for the netmount command in elFinder prior to 2.1.70, allowing a cross-site request from an at

CVE-2018-9110 CRITICAL
9.1 Mar 28

Studio 42 elFinder before 2.1.37 has a directory traversal vulnerability in elFinder.class.php with the zipdl() function

CVE-2018-9109 CRITICAL
9.1 Mar 28

Studio 42 elFinder before 2.1.36 has a directory traversal vulnerability in elFinder.class.php with the zipdl() function

CVE-2026-41247 HIGH
8.9 Apr 23

Command injection in elFinder before 2.1.67 lets attackers reach OS command execution as the web server user through the

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy