CVE-2026-102990 json
basic-ftp: Quadratic-time CPU denial of service in Client.list() Unix directory-listing parser (RE_LINE backtracking)
published last mo. modified last mo. also EUVD-2026-90360 , GHSA-c475-qrg2-pj4r
- cvss
- 8.2
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 31%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- npm basic-ftp 6.2.1
- patrickjuchli basic-ftp 6.2.1
- node-proxy-agents Debian 14 0~2025070717+~cs16.2.9-1
debian advisories DEBIAN-CVE-2026-102990
Is CVE-2026-102990 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-102990 updated cvss 7.5
basic-ftp: basic-ftp: Denial of Service via crafted Unix directory listings
-
Red Hat Enterprise Linux AI (RHEL AI) 3 rust 1.92.0-2.el10_2affected: workaround, no fix available
-
Red Hat OpenShift GitOps microshift-gitops 1.19.2-36.el9, openshift-gitops-argocd-cli 1.19.2-36.el9affected: workaround, no fix planned “Will not fix”
-
Red Hat Ansible Automation Platform 2.2 ansible-automation-platform/automation-portal 1792523640fixed: vendor fix RHSA-2026:86675
-
Red Hat OpenShift AI 3.5 rhoai/odh-workbench-codeserver-datascience-cpu-py312-rhel9 1791825469fixed: vendor fix RHSA-2026:86891
-
Red Hat Developer Hub 1 rhdh/rhdh-hub-rhel9, rhdh/red-hat-developer-hub-backstage-plugin-orchestrator-backendnot affected: vulnerable code not in execute path
-
Red Hat Enterprise Linux 8 rls, rust, cargo, clippy, rustfmt, rust-gdb, +8 more Red Hat Enterprise Linux 9 rust, cargo, clippy, rustfmt, rust-gdb, rust-src, +9 morenot affected: component not present
-
Red Hat Enterprise Linux 10 rust 1.92.0-2.el10_2, grafana 12.4.3-2.el10not affected: vulnerable code not present
-
Red Hat Hardened Images grafana12.4 12.4.10-0.10.hum1not affected: component not present
show 2 moreshow fewer
-
Red Hat OpenShift AI 3.5 rhoai/odh-cli-rhel9 1791945905, rhoai/rhai-cli-rhel9 1791945905, rhoai/odh-automl-rhel9 1791916705, rhoai/odh-mlflow-rhel9 1791947857, rhoai/odh-autorag-rhel9 1791903266, rhoai/odh-trainer-rhel9 1791952138, +112 morenot affected: vulnerable code not present
-
Red Hat Self-service automation portal 2 ansible-automation-platform/bootc-automation-portal-rhel9not affected: vulnerable code not in execute path
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- last mo.
Exploit prediction
0.37% chance of exploitation in the next 30 days, higher than 31% of all scored CVEs (FIRST EPSS, 2026-11-09).
Exploits and checks
- github.com https://github.com/patrickjuchli/basic-ftp/security/advisories/GHSA-c475-qrg2-pj4r referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.2 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N |
| CNA | 4.0 | 8.2 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | basic-ftp | <6.2.1 |
6.2.1 |
Affected products
- patrickjuchli basic-ftp
Classification
- Weakness
-
- CWE-1333 Inefficient Regular Expression Complexity
References
-
github.com
/patrickjuchli/basic-ftp/commit/d0d9e07c56e519587bb50532ac6eadbb0cb0cfe9
web
-
github.com
/patrickjuchli/basic-ftp/security/advisories/GHSA-c475-qrg2-pj4r
exploit, web
-
github.com
/patrickjuchli/basic-ftp/releases/tag/v6.2.1
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-102990
advisory
-
github.com
/patrickjuchli/basic-ftp
package
Sources
- CVE List CVE-2026-102990
- GitHub Advisory GHSA-c475-qrg2-pj4r
- NVD CVE-2026-102990
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.