Skip to main content
← All vulnerabilities
CVE-2026-39983GHSA-CHQC-8P9Q-PQ6Q

FTP Command Injection via CRLF in basic-ftp

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.2.1
1 proof of concept on GitHub
  • Exploitation: poc
  • Automatable: yes
  • Technical impact: partial

Summary

basic-ftp is an FTP client for Node.js. Prior to 5.2.1, basic-ftp allows FTP command injection via CRLF sequences (\r\n) in file path parameters passed to high-level path APIs such as cd(), remove(), rename(), uploadFrom(), downloadTo(), list(), and removeDir(). The library's protectWhitespace() helper only handles leading spaces and returns other paths unchanged, while FtpContext.send() writes the resulting command string directly to the control socket with \r\n appended. This lets attacker-controlled path strings split one intended FTP command into multiple commands. This vulnerability is fixed in 5.2.1.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: poc · Automatable: yes · Technical impact: partial

  3. Record last updated

Affected versions

  • patrickjuchli basic-ftp

    fixed in 5.2.1

  • basic-ftpnpm

    From 5.2.0 · fixed in 5.2.1

References 4

GitHub · patrickjuchli/basic-ftp

GitHub · zebbernCVE/CVE-2026-39983