Impact
Server‑Side Request Forgery (SSRF) in Erlang/OTP ftp permits attackers to redirect the data channel by supplying an unvalidated IP address in the 227 PASV response. The ftp_internal:handle_ctrl_result/2 function, when in passive mode with default settings, takes the IP from that response and forwards it to gen_tcp:connect/4, without cross‑checking it against the peer address of the control connection. Consequently a malicious or compromised FTP server can ask the client to connect to any internal host or port. The client then transmits or receives data through that redirected connection, enabling SSRF against internal services, cloud metadata endpoints, or delivering FTP bounce attacks to external hosts.
Affected Systems
Erlang/OTP versions before 29.0.2, including OTP 28.5.0.2 and 27.3.4.13, contain the vulnerable ftp_internal module. The issue spans inets releases 5.10.4 through 6.5 and ftp releases 1.0 to 1.2.6, 1.2.4.1 and 1.2.3.1. The ftp application is deprecated and will be removed in OTP‑30, so newer OTP releases are safe.
Risk and Exploitability
The CVSS base score is 6.3, indicating moderate risk. EPSS is 0.24%, reflecting a very low but non‑zero exploitation probability, and the vulnerability is not listed in CISA KEV. An attacker with access to an FTP server that can send a crafted 227 response can cause the client to connect to a chosen IP and port, facilitating internal reconnaissance or data exfiltration. No special authentication is required; the attack occurs during normal FTP use.
OpenCVE Enrichment