CVE-2026-48858: ftp client PASV response IP not validated against control peer, enabling SSRF and FTP bounce attacks

Published Jun 10, 2026
·
Updated

ftp client PASV response IP not validated against control peer, enabling SSRF and FTP bounce attacks

Other sources

Server-Side Request Forgery (SSRF) vulnerability in Erlang/OTP ftp (ftpinternal module) allows FTP bounce attacks and SSRF via an unvalidated PASV response IP address.

The ftpinternal:handlectrlresult/2 PASV handler (mode=passive, ipfamily=inet, ftpextension=false) extracts the IP address from the server's 227 response and passes it directly to gentcp: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, ftpextension=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/ftpinternal.erl (inets 5.10.4 through 6.5, OTP 17.4 through 20.3) and lib/ftp/src/ftpinternal.erl (ftp 1.0 and later, OTP 21.0 and later).

This issue affects OTP from OTP 17.4 before OTP 29.0.2, OTP 28.5.0.2 and OTP 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.

MITRE

Affected Software

11 affected componentsFixes available
Erlang/OTP OTP>=17.4<29.0.2, >=17.4<28.5.0.2, >=17.4<27.3.4.13
Erlang/OTP inets>=5.10.4<7.0
Erlang/OTP ftp>=1.0<1.2.6, >=1.0<1.2.4.1, >=1.0<1.2.3.1
Erlang Erlang\/inets>=5.10.4<7.0
Erlang Erlang\/otp>=17.4<27.3.4.13
Erlang Erlang\/otp>=28.0<28.5.0.2
Erlang Erlang\/otp>=29.0<29.0.2
Erlang ftp>=1.0<1.2.3.1
Erlang ftp>=1.2.4<1.2.4.1
Erlang ftp>=1.2.5<1.2.6
Microsoft azl3 erlang 26.2.5.20-1<26.2.5.21-2
26.2.5.21-2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 26.2.5.21-2
  2. Upgrade

    Upgrade inets ftp_internal (lib/inets/src/ftp/ftp_internal.erl) to a version that resolves this vulnerability.

    Fixed in 7.0
  3. Upgrade

    Upgrade ftp_internal (lib/ftp/src/ftp_internal.erl) to a version that resolves this vulnerability.

    Fixed in 1.2.6
  4. Upgrade

    Upgrade ftp_internal (lib/ftp/src/ftp_internal.erl) to a version that resolves this vulnerability.

    Fixed in 1.2.4.1
  5. Upgrade

    Upgrade ftp_internal (lib/ftp/src/ftp_internal.erl) to a version that resolves this vulnerability.

    Fixed in 1.2.3.1
  6. Configuration

    Avoid the vulnerable default path by not using the PASV mode that triggers ftp_internal:handle_ctrl_result/2 with mode=passive, ipfamily=inet, ftp_extension=false (the vulnerable path is the default configuration).

    Erlang/OTP ftp_internal (ftp application) mode (passive vs passive PASV handler) = passive=false
  7. Compensating control

    Validate the PASV response IP address against the control connection peer IP (RFC 2577 section 3 recommendation) to prevent SSRF/FTP bounce via an unvalidated PASV response IP.

Event History

Jun 10, 2026
CVE Published
via MITRE·02:35 PM
Data Sourced
via MITRE·02:35 PM
DescriptionWeakness
Data Sourced
via NVD·04:17 PM
RemedyDescriptionSeverityWeaknessAffected Software
Jun 17, 2026
Data Sourced
via Microsoft·08:01 AM
DescriptionSeverityWeakness
Data Sourced
via Microsoft·08:01 AM
Affected Software
Updated
via Microsoft·08:01 AM
DescriptionSeverity
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-48858?

The severity of CVE-2026-48858 is medium, with a CVSS score of 6.3.

2

How does CVE-2026-48858 exploit a vulnerability?

CVE-2026-48858 allows Server-Side Request Forgery (SSRF) and FTP bounce attacks due to an unvalidated PASV response IP address.

3

What are the potential impacts of CVE-2026-48858?

The potential impacts include unauthorized access to internal systems and data exfiltration through SSRF attacks.

4

How do I fix CVE-2026-48858?

To fix CVE-2026-48858, apply the available patch provided by Erlang/OTP for the ftp_internal module.

5

Which versions of Erlang/OTP are affected by CVE-2026-48858?

CVE-2026-48858 affects specific versions of Erlang/OTP that include the vulnerable ftp_internal module.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203