{"id":"CVE-2026-81889","state":"PUBLISHED","title":"elFinder: SSRF protection bypass via DNS rebinding in the `fsock_get_contents()` fallback","description":"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.","publishedAt":"2026-08-31T20:25:27.456Z","updatedAt":"2026-09-03T18:04:09.418Z","severity":{"score":8.6,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N","source":"GitHub_M"},"assigner":"GitHub_M","products":["Studio-42 elFinder"],"affected":[{"vendor":"Studio-42","product":"elFinder","versions":[{"version":"< 2.1.70","status":"affected"}]}],"references":["https://github.com/Studio-42/elFinder/security/advisories/GHSA-8x3q-jpjh-qh5c","https://github.com/Studio-42/elFinder/commit/191372c1bbebbd36fb55af79a84b9984861390ff","https://github.com/Studio-42/elFinder/commit/6d997386cd0f1abab4706c220b46b0aea0ecff51","https://github.com/Studio-42/elFinder/releases/tag/2.1.70"],"weaknesses":["CWE-918"],"ingestedAt":"2026-10-29T20:13:15.269Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/81xxx/CVE-2026-81889.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-81889","state":"PUBLISHED","datePublished":"2026-08-31T20:25:27.456Z","dateUpdated":"2026-09-03T18:04:09.418Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2026-08-27T17:48:42.123Z"},"containers":{"cna":{"title":"elFinder: SSRF protection bypass via DNS rebinding in the `fsock_get_contents()` fallback","descriptions":[{"lang":"en","value":"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."}],"affected":[{"vendor":"Studio-42","product":"elFinder","versions":[{"version":"< 2.1.70","status":"affected"}]}],"references":[{"url":"https://github.com/Studio-42/elFinder/security/advisories/GHSA-8x3q-jpjh-qh5c","name":"https://github.com/Studio-42/elFinder/security/advisories/GHSA-8x3q-jpjh-qh5c","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/Studio-42/elFinder/commit/191372c1bbebbd36fb55af79a84b9984861390ff","name":"https://github.com/Studio-42/elFinder/commit/191372c1bbebbd36fb55af79a84b9984861390ff","tags":["x_refsource_MISC"]},{"url":"https://github.com/Studio-42/elFinder/commit/6d997386cd0f1abab4706c220b46b0aea0ecff51","name":"https://github.com/Studio-42/elFinder/commit/6d997386cd0f1abab4706c220b46b0aea0ecff51","tags":["x_refsource_MISC"]},{"url":"https://github.com/Studio-42/elFinder/releases/tag/2.1.70","name":"https://github.com/Studio-42/elFinder/releases/tag/2.1.70","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":8.6,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"NONE","privilegesRequired":"NONE","scope":"CHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-918","lang":"en","description":"CWE-918: Server-Side Request Forgery (SSRF)","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2026-08-31T20:25:27.456Z"},"source":{"advisory":"GHSA-8x3q-jpjh-qh5c","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","references":[{"url":"https://github.com/Studio-42/elFinder/security/advisories/GHSA-8x3q-jpjh-qh5c","tags":["exploit"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-09-03T18:04:00.867870Z","id":"CVE-2026-81889","options":[{"Exploitation":"poc"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-09-03T18:04:09.418Z"}}]}}}