<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 06 Oct 2026 23:40:12 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-39983 — FTP Command Injection via CRLF in basic-ftp</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2026-39983</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; patrickjuchli basic-ftp, Red Hat Developer Hub 1.8, Red Hat Developer Hub 1.9, Red Hat OpenShift AI (RHOAI), Red Hat OpenShift Container Platform 4, Red Hat Self-service automation portal 2&lt;/p&gt;
&lt;p&gt;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&amp;#39;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; patrickjuchli basic-ftp, Red Hat Developer Hub 1.8, Red Hat Developer Hub 1.9, Red Hat OpenShift AI (RHOAI), Red Hat OpenShift Container Platform 4, Red Hat Self-service automation portal 2&lt;/p&gt;
&lt;p&gt;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&amp;#39;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2026-39983</guid>
    </item>
    <item>
      <title>GHSA-chqc-8p9q-pq6q — basic-ftp has FTP Command Injection via CRLF</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-chqc-8p9q-pq6q</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: basic-ftp&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`basic-ftp` version `5.2.0` 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&amp;#39;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.&lt;/p&gt;
&lt;p&gt;## Affected product&lt;/p&gt;
&lt;p&gt;| Product | Affected versions | Fixed version |
| --- | --- | --- |
| basic-ftp (npm) | 5.2.0 (confirmed) | no fix available as of 2026-04-04 |&lt;/p&gt;
&lt;p&gt;## Vulnerability details&lt;/p&gt;
&lt;p&gt;- CWE: `CWE-93` - Improper Neutralization of CRLF Sequences (&amp;#39;CRLF Injection&amp;#39;)
- CVSS 3.1: `8.6` (`High`)
- Vector: `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L`
- Affected component: `dist/Client.js`, all path-handling methods via `protectWhitespace()` and `send()`&lt;/p&gt;
&lt;p&gt;The vulnerability exists because of two interacting code patterns:&lt;/p&gt;
&lt;p&gt;**1. Inadequate path sanitization in `protectWhitespace()` (line 677):**&lt;/p&gt;
&lt;p&gt;```javascript
async protectWhitespace(path) {
    if (!path.startsWith(&amp;#34; &amp;#34;)) {
        return path;  // No sanitization of \r\n characters
    }
    const pwd = await this.pwd();
    const absolutePathPrefix = pwd.endsWith(&amp;#34;/&amp;#34;) ? pwd : pwd + &amp;#34;/&amp;#34;;
    return absolutePathPrefix + path;
}
```&lt;/p&gt;
&lt;p&gt;This function only handles lead…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: basic-ftp&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`basic-ftp` version `5.2.0` 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&amp;#39;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.&lt;/p&gt;
&lt;p&gt;## Affected product&lt;/p&gt;
&lt;p&gt;| Product | Affected versions | Fixed version |
| --- | --- | --- |
| basic-ftp (npm) | 5.2.0 (confirmed) | no fix available as of 2026-04-04 |&lt;/p&gt;
&lt;p&gt;## Vulnerability details&lt;/p&gt;
&lt;p&gt;- CWE: `CWE-93` - Improper Neutralization of CRLF Sequences (&amp;#39;CRLF Injection&amp;#39;)
- CVSS 3.1: `8.6` (`High`)
- Vector: `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L`
- Affected component: `dist/Client.js`, all path-handling methods via `protectWhitespace()` and `send()`&lt;/p&gt;
&lt;p&gt;The vulnerability exists because of two interacting code patterns:&lt;/p&gt;
&lt;p&gt;**1. Inadequate path sanitization in `protectWhitespace()` (line 677):**&lt;/p&gt;
&lt;p&gt;```javascript
async protectWhitespace(path) {
    if (!path.startsWith(&amp;#34; &amp;#34;)) {
        return path;  // No sanitization of \r\n characters
    }
    const pwd = await this.pwd();
    const absolutePathPrefix = pwd.endsWith(&amp;#34;/&amp;#34;) ? pwd : pwd + &amp;#34;/&amp;#34;;
    return absolutePathPrefix + path;
}
```&lt;/p&gt;
&lt;p&gt;This function only handles lead…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-chqc-8p9q-pq6q</guid>
    </item>
  </channel>
</rss>
