Description
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.
Published: 2026-04-09
Score: 8.6 High
EPSS: 1.8% Low
KEV: No
Impact: Command Injection via CRLF
Action: Immediate Patch
AI Analysis

Analysis and contextual insights are available on OpenCVE Cloud.

Remediation

No vendor fix or workaround currently provided.

Additional remediation guidance may be available on OpenCVE Cloud.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-chqc-8p9q-pq6q basic-ftp has FTP Command Injection via CRLF
History

Tue, 14 Apr 2026 20:15:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:patrickjuchli:basic-ftp:*:*:*:*:*:node.js:*:*

Sat, 11 Apr 2026 00:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Important


Fri, 10 Apr 2026 09:00:00 +0000

Type Values Removed Values Added
First Time appeared Patrickjuchli
Patrickjuchli basic-ftp
Vendors & Products Patrickjuchli
Patrickjuchli basic-ftp

Fri, 10 Apr 2026 04:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 09 Apr 2026 17:30:00 +0000

Type Values Removed Values Added
Description 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.
Title FTP Command Injection via CRLF in basic-ftp
Weaknesses CWE-93
References
Metrics cvssV3_1

{'score': 8.6, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L'}


Subscriptions

Patrickjuchli Basic-ftp
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-04-09T19:31:42.093Z

Reserved: 2026-04-08T00:01:47.628Z

Link: CVE-2026-39983

cve-icon Vulnrichment

Updated: 2026-04-09T17:33:06.392Z

cve-icon NVD

Status : Analyzed

Published: 2026-04-09T18:17:02.503

Modified: 2026-04-14T20:07:51.800

Link: CVE-2026-39983

cve-icon Redhat

Severity : Important

Publid Date: 2026-04-09T17:05:46Z

Links: CVE-2026-39983 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-04-21T23:30:02Z

Weaknesses