CVE-2026-27699
criticalPriorität · verfolgen · 39EPSS 0.009 · 61. PerzentilDEEURUUSEPSS · bewertet 2026-10-27
The `basic-ftp` FTP client library for Node.js contains a path traversal vulnerability (CWE-22) in versions prior to 5.2.0 in the `downloadToDir()` method. A malicious FTP server can send directory listings with filenames containing path traversal sequences (`../`) that cause files to be written outside the intended download directory. Version 5.2.0 patches the issue.
cvss
Technischer Schweregrad, 0–10. Eine Zeile je Quelle.
Basiswert 0–10 · höher = schwerwiegender · Vektor überfahren zum Auflösen
SSVC
Eine Handlungsentscheidung — aus Ausnutzung und Auswirkung.
schwächen
Die CWE-Schwächeklassen, zu denen dies gehört.
betroffene Produkte (6)
Betroffene Produkte und Versionsbereiche.
Advisories (2)
Hersteller- und Ökosystem-Meldungen dazu.
- WID-SEC-W-2026-3046IBM Concert: Mehrere SchwachstellenDeutsch2026-08-26csaf · cert_bundDE
Ein Angreifer kann mehrere Schwachstellen in IBM Concert ausnutzen, um beliebigen Programmcode auszuführen, um einen Denial of Service Angriff durchzuführen, um Informationen offenzulegen, um Dateien zu manipulieren, um einen Cross-Site Scripting Angriff durchzuführen, um einen SQL-Injection Angriff durchzuführen und um Sicherheitsvorkehrungen zu umgehen.
- GHSA-5rq4-664w-9x2cBasic FTP has Path Traversal Vulnerability in its downloadToDir() method2026-02-25ghsa · osvUS
The `basic-ftp` library contains a path traversal vulnerability in the `downloadToDir()` method. A malicious FTP server can send directory listings with filenames containing path traversal sequences (`../`) that cause files to be written outside the intended download directory. ## Source-to-Sink Flow ``` 1. SOURCE: FTP server sends LIST response └─> "-rw-r--r-- 1 user group 1024 Jan 20 12:00 ../../../etc/passwd" 2. PARSER: parseListUnix.ts:100 extracts filename └─> file.name = "../../../etc/passwd" 3. VALIDATION: parseListUnix.ts:101 checks └─> if (name === "." || name === "..") ❌ (only filters exact matches) └─> "../../../etc/passwd" !== "." && !== ".." ✅ PASSES 4. SINK: Client.ts:707 uses filename directly └─> const localPath = join(localDirPath, file.name) └─> join("/safe/download", "../../../etc/passwd") └─> Result: "/safe/download/../../../etc/passwd" → resolves to "/etc/passwd" 5. FILE WRITE: Client.ts:512 opens file └─> fsOpen(localPath, "w") → writes to /etc/passwd (outside intended directory) ``` ## Vulnerable Code **File**: `src/Client.ts:707` ```typescript protected async _downloadFromWorkingDir(localDirPath: string): Promise<void> { await ensureLocalDirectory(localDirPath) for (const file of await this.list()) { const localPath = join(localDirPath, file.name) // ⚠️ VULNERABLE // file.name comes from untrusted FTP server, no sanitization await this.downloadTo(localPath, file.name) } } ``` **Root Cause**: - Parser validation (`parseListUnix.ts:101`) only filters exact `.` or `..` entries - No sanitization of `../` sequences in filenames - `path.join()` doesn't prevent traversal, `fs.open()` resolves paths # Impact A malicious FTP server can: - Write files to arbitrary locations on the client filesystem - Overwrite critical system files (if user has write access) - Potentially achieve remote code execution ## Affected Versions - **Tested**: v5.1.0 - **Likely**: All versions (code pattern exists since initial implementation) ## Mitigation **Workaround**: Do not use `downloadToDir()` with untrusted FTP servers. **Fix**: Sanitize filenames before use: ```typescript import { basename } from 'path' // In _downloadFromWorkingDir: const sanitizedName = basename(file.name) // Strip path components const localPath = join(localDirPath, sanitizedName) ```
auch bekannt als (5)
Weitere Namen und Kennungen dieser Entität.
quellen
Welche Quellen diesen Datensatz belegen und wann.
Referenzen (10)
Externe Belege — Patches, Meldungen, Analysen.
- https://github.com/patrickjuchli/basic-ftp/commit/2a2a0e6514357b9eda07c2f8afbd3f04727a7cd9cnnvd
- https://github.com/patrickjuchli/basic-ftp/releasesPatchcnnvd
- https://github.com/patrickjuchli/basic-ftp/releases/tag/v5.2.0cnnvd
- https://github.com/patrickjuchli/basic-ftp/security/advisories/GHSA-5rq4-664w-9x2ccnnvd
- https://github.com/patrickjuchli/basic-ftp/commit/2a2a0e6514357b9eda07c2f8afbd3f04727a7cd9enisa_euvd
- https://github.com/patrickjuchli/basic-ftp/releases/tag/v5.2.0enisa_euvd
- https://github.com/patrickjuchli/basic-ftp/security/advisories/GHSA-5rq4-664w-9x2cenisa_euvd
- https://github.com/patrickjuchli/basic-ftp/commit/2a2a0e6514357b9eda07c2f8afbd3f04727a7cd9Patchnvd
Angreifer nutzen Schwachstellen wie diese gegen im Internet exponierte Dienste aus. Sehen Sie mit einem kostenlosen Passiv-Scan, was exponiert ist.
Kostenloser Scan