Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

CVE-2026-48858

Gravedad CVSS v4.0:
MEDIA
Tipo:
CWE-918 Falsificación de solicitud en servidor (SSRF)
Fecha de publicación:
10/06/2026
Última modificación:
11/06/2026

Descripción

*** Pendiente de traducción *** 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.<br /> <br /> The ftp_internal:handle_ctrl_result/2 PASV handler (mode=passive, ipfamily=inet, ftp_extension=false) extracts the IP address from the server&amp;#39;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&amp;#39;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.<br /> <br /> 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.<br /> <br /> The ftp application is deprecated and scheduled for removal in OTP-30.<br /> <br /> 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_internal.erl (ftp 1.0 and later, OTP 21.0 and later).<br /> <br /> This issue affects OTP from OTP 17.4 before 29.0.2, 28.5.0.2 and 27.3.4.13 corresponding to inets from 5.10.4 before 7.0 and ftp from 1.0 before 1.2.6, 1.2.4.1 and 1.2.3.1.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:erlang:erlang\/inets:*:*:*:*:*:*:*:* 5.10.4 (incluyendo) 7.0 (excluyendo)
cpe:2.3:a:erlang:erlang\/otp:*:*:*:*:*:*:*:* 17.4 (incluyendo) 27.3.4.13 (excluyendo)
cpe:2.3:a:erlang:erlang\/otp:*:*:*:*:*:*:*:* 28.0 (incluyendo) 28.5.0.2 (excluyendo)
cpe:2.3:a:erlang:erlang\/otp:*:*:*:*:*:*:*:* 29.0 (incluyendo) 29.0.2 (excluyendo)
cpe:2.3:a:erlang:ftp:*:*:*:*:*:*:*:* 1.0 (incluyendo) 1.2.3.1 (excluyendo)
cpe:2.3:a:erlang:ftp:*:*:*:*:*:*:*:* 1.2.4 (incluyendo) 1.2.4.1 (excluyendo)
cpe:2.3:a:erlang:ftp:*:*:*:*:*:*:*:* 1.2.5 (incluyendo) 1.2.6 (excluyendo)