---
id: CVE-2026-81889
title: >-
  elFinder is an open-source file manager for web, written in JavaScript using
  jQuery UI
summary: >-
  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
  becau…
severity: high
cvss: 8.6
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N'
cwe:
  - CWE-918
vendor: studio-42
product: studio-42/elfinder
affected:
  - studio-42/elfinder <= 2.1.69
patched:
  - studio-42/elfinder 2.1.70
published: '2026-08-31'
updated: '2026-09-09'
sourceUpdated: '2026-09-09T21:09:13.080'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-81889'
references:
  - url: >-
      https://github.com/Studio-42/elFinder/commit/191372c1bbebbd36fb55af79a84b9984861390ff
    label: security-advisories@github.com
  - url: >-
      https://github.com/Studio-42/elFinder/commit/6d997386cd0f1abab4706c220b46b0aea0ecff51
    label: security-advisories@github.com
  - url: 'https://github.com/Studio-42/elFinder/releases/tag/2.1.70'
    label: security-advisories@github.com
  - url: >-
      https://github.com/Studio-42/elFinder/security/advisories/GHSA-8x3q-jpjh-qh5c
    label: security-advisories@github.com
  - url: >-
      https://github.com/Studio-42/elFinder/security/advisories/GHSA-8x3q-jpjh-qh5c
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
  - url: 'https://github.com/advisories/GHSA-8x3q-jpjh-qh5c'
tags:
  - nvd
  - ghsa
  - composer
epss: 0.0055
epssPercentile: 0.4358
aliases:
  - GHSA-8x3q-jpjh-qh5c
ecosystem: composer
ingestedAt: '2026-08-31T21:14:21.376Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-81889)

Affected packages:

- `studio-42/elfinder <= 2.1.69`

Patched in:

- `studio-42/elfinder 2.1.70`

Source: https://github.com/advisories/GHSA-8x3q-jpjh-qh5c
