SSRF (Server-Side Request Forgery) in Erlangotp (CVE-2026-48858)
Summary
SSRF in Erlangotp (CVE-2026-48858). Risk of unauthorized operations or information disclosure.
Original description
The description as published by the source.
Summary
Server-Side Request Forgery (SSRF) vulnerability in Erlang/OTP ftp (ftp_internal module) allows FTP bounce attacks and SSRF via an unvalidated PASV response IP address.
The ftp_internal:handle_ctrl_result/2 PASV handler (mode=passive, ipfamily=inet, ftp_extension=false) extracts the IP address from the server's 227 response and passes it directly to gen_tcp:connect/4 without validating it against the control connection peer address. The adjacent EPSV handlers correctly call peername(CSock) to derive the IP from the control connection, but the PASV handler does not. A malicious or compromised FTP server can redirect the client's data connection to an arbitrary internal host and port. On read operations (ftp:ls/1,2, ftp:nlist/1,2, ftp:recv/2,3), data from the redirected target is returned to the caller. On write operations (ftp:send/2,3, ftp:append/2,3), file content is sent to the redirected target. This enables SSRF against internal hosts, cloud metadata endpoints, and FTP bounce attacks against third-party hosts.
The vulnerable path is the default configuration (mode=passive, ipfamily=inet, ftp_extension=false). RFC 2577 section 3 explicitly recommends validating the PASV response IP against the control connection peer.
The ftp application is deprecated and scheduled for removal in OTP-30.
This vulnerability is associated with program files lib/inets/src/ftp/ftp_internal.erl (inets 5.10.4 through 6.5, OTP 17.4 through 20.3) and lib/ftp/src/ftp_intern…
Source: NIST National Vulnerability Database NVD GitHub Advisory
Auto-generated summary
Assembled by SecPulse from the source data (CVSS, CWE, affected versions) using templates — no AI involved. Check the original description and references below for exact details.
A vulnerability tracked as CVE-2026-48858 has been found in Erlangotp.
Risk of unauthorized operations or information disclosure. CVSS score: 6.5/10.
What to do: apply the vendor's official patched release.
If unsure, ask your IT team or search "Erlangotp CVE-2026-48858" on the vendor's site.
CVE-2026-48858 (Erlangotp) — CWE-918 / CVSS v3 6.5
Attack vector: remote (network-reachable) / unauthenticated / no user interaction
Workaround: Pass {ftp_extension, true} to ftp:open/2 to use EPSV instead of PASV.
Plan: 1) Audit SBOM/dependencies, 2) Stage→prod upgrade, 3) Add WAF/proxy monitoring on affected endpoints, 4) Hunt IOCs in logs.
Refs: see the GHSA / vendor advisory / patched release linked on this page.
SSRF (CWE-918) exists in Erlangotp.
Check the vendor advisory for the affected versions of Erlangotp.
Severity: Medium (CVSS 6.5/10). Risk of unauthorized operations or information disclosure.
Update to the patched release per vendor advisory.
Workaround: Pass {ftp_extension, true} to ftp:open/2 to use EPSV instead of PASV.
Search webserver/proxy logs for unusual request patterns matching this CVE's known IOCs. Run grep -r 'Erlangotp' . against your dependency files (package-lock.json, requirements.txt, go.sum) to find affected services.
Response actions
Concrete steps and command examples for SOC/SRE teams to execute in order
-
1Identify exposure identify
grep -r 'Erlangotp' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
Erlangotpを grep し、稼働しているサービス・バージョンを把握する。 -
2Apply temporary workaround mitigate
Pass {ftp\_extension, true} to ftp:open/2 to use EPSV instead of PASV.パッチが適用されるまでの応急処置として、Pass {ftp_extension, true} to ftp:open/2 to use EPSV instead of PASV. を実施。回避策の副作用 (機能低下) を確認した上で。
-
3Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。
Fix status by distribution
Fixed packages published by each distribution for this CVE
- Debian DEBIAN-CVE-2026-48858 erlang
- Ubuntu UBUNTU-CVE-2026-48858 erlang
References
- advisory cna.erlef.org
- advisory osv.dev
- patch github.com
- patch github.com
- patch github.com
- web erlang.org