CVE-2026-102990 · GHSA-c475-qrg2-pj4r
basic-ftp: Quadratic-time CPU denial of service in Client.list() Unix directory-listing parser (RE_LINE backtracking)
- Risk score
- 70/100
- CVSS
- 8.2 v4.0
- Exploit chance (30 days)
- 0.4%
- Published
- 30 Sep 2026
Open in the live forecast Today's forecast
What to know
- What it is
- basic-ftp is an FTP client for Node.js. Prior to 6.2.1, Client.list() can be forced by a malicious or compromised FTP server to spend quadratic CPU time parsing a directory listing because the RE_LINE expression in src/parseListUnix.ts backtracks across adjacent variable-length owner and group fields when a long Unix-…
- Affected
- basic-ftp (npm) <= 6.2.0
- Fix
- Upgrade basic-ftp to 6.2.1 or later.
- Exploitation
- Public proof of concept
Why it is Amber
- CVSS 8.2 high
- Public exploit or proof of concept referenced
- Remotely exploitable without logging in
- On your watchlist: npm
Affected packages
| Package | Ecosystem | Vulnerable | Fixed in |
|---|---|---|---|
| basic-ftp | npm | <= 6.2.0 | 6.2.1 |
References
- https://github.com/advisories/GHSA-c475-qrg2-pj4r
- https://github.com/patrickjuchli/basic-ftp/security/advisories/GHSA-c475-qrg2-pj4r
- https://nvd.nist.gov/vuln/detail/CVE-2026-102990
- https://github.com/patrickjuchli/basic-ftp/commit/d0d9e07c56e519587bb50532ac6eadbb0cb0cfe9
- https://github.com/patrickjuchli/basic-ftp/releases/tag/v6.2.1
- https://github.com/advisories/GHSA-c475-qrg2-pj4r
Original description
basic-ftp is an FTP client for Node.js. Prior to 6.2.1, Client.list() can be forced by a malicious or compromised FTP server to spend quadratic CPU time parsing a directory listing because the RE_LINE expression in src/parseListUnix.ts backtracks across adjacent variable-length owner and group fields when a long Unix-style line has a valid prefix but cannot satisfy the later size and date fields. parseList() selects a parser from the last nonblank line and then applies it to every line, so a normal final line can select the Unix parser while an earlier crafted line blocks the Node.js event loop and freezes the process. This issue is fixed in version 6.2.1.
Last activity 30 Sep 2026. Patch Forecast updates every hour.