Critical

Server-Side Request Forgery in ftp-srv

  • Disclosed: 17.08.2020
  • Updated: 11.10.2026 10:22

Background

The FTP protocol creates two connections, one for commands and one for transferring data. This second data connection can be created in two ways, on the server by sending the PASV command, or on the client by sending the PORT command.

The PORT command sends the IP and port for the server to connect to the client with.

Issue

Since the client can send an arbitrary IP with the PORT command, this can be used to cause the server to make a connection elsewhere.

Patches

  • fix: disallow PORT connections to alternate hosts: e449e75219d918c400dec65b4b0759f60476abca

Deprecation notices have been published for older versions.

Workarounds

Blacklisting the FTP Command PORT will prevent the server from exposing this behaviour through active connections until a fix is applied.

js
const ftp = new FtpSrv({
  blacklist: ['PORT']
});

References

https://www.npmjs.com/advisories/1445

Credits

Thank you to; @trs for fixing it @andreeleuterio for reporting it to us for an anonymous user (Vincent) through the NPM platform @quiquelhappy for bringing it to our attention after it slipped through the cracks during Christmas

For more information

If you have any questions or comments about this advisory:

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
npm package ftp-srv >= 1.0.0, < 2.19.6, >= 3.0.0, < 3.1.2, >= 4.0.0, < 4.3.4 2.19.6, 3.1.2, 4.3.4

References

CVSS score 9.1/10
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Weakness (CWE)
CWE-918
Platform
npm
Package
ftp-srv
Disclosed
17.08.2020
Updated
11.10.2026 10:22

Sources and licenses

OSV / GitHub Advisory Database - GHSA-jw37-5gqr-cf9j - CC BY 4.0

Vulnerability history: ftp-srv

All published vulnerabilities of this package (npm package), newest first. Shows whether this is a one-off slip or a package that needs watching.

Total entries
3
First → latest
08.2020 02.2021
Without a fix
0
Exploited in attacks
0

Severity breakdown

  • Critical 1
  • High 1
  • Medium 1

Disclosures per year

  1. 2020: 2
  2. 2021: 1
  3. 2022: 0
  4. 2023: 0
  5. 2024: 0
  6. 2025: 0
  7. 2026: 0
  1. Medium CVE-2020-26299 < 4.4.0 4.4.0
  2. High ghsa-r4m5-47cq-6qg8 >= 1.0.0, < 2.19.6, >= 3.0.0, < 3.1.2, >= 4.0.0, < 4.3.4 2.19.6, 3.1.2, 4.3.4
  3. Server-Side Request Forgery in ftp-srv this entry
    Critical · 9.1 CVE-2020-15152 >= 1.0.0, < 2.19.6, >= 3.0.0, < 3.1.2, >= 4.0.0, < 4.3.4 2.19.6, 3.1.2, 4.3.4

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.