<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-09-30T19:22:43.262793+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/brew-dvc-cve-2026-54591</id>
    <title>BREW-dvc-CVE-2026-54591 — asyncssh has SCP Path Traversal to Arbitrary File Write</title>
    <updated>2026-09-30T19:22:43.265572+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Homebrew: dvc</p>
<p>| | |
|---|---|
| Product | asyncssh (all versions through 2.23.0) |
| Related | CVE-2019-6111 (same class in OpenSSH) |
| Fix | AsyncSSH 2.23.1 |</p>
<p>A malicious SSH server can write arbitrary files on the asyncssh SCP client's filesystem by sending filenames containing `../` traversal sequences. The SCP receive path does not currently sanitize server-provided filenames. By chaining directory traversals via the `D` (directory) action, an attacker can escape any target directory and overwrite `~/.bashrc`, `~/.ssh/rc`, or `~/.ssh/authorized_keys`, achieving code execution. This is the same vulnerability class as CVE-2019-6111. The mitigation applied in OpenSSH does not appear to have been adopted in asyncssh.</p>
<p>---</p>
<p>**Steps to exploit:**</p>
<p>**Step 1 - Normal usage:** Application calls `await asyncssh.scp((conn, 'file'), '/home/user/downloads/')`. This is the standard, documented API.</p>
<p>**Step 2 - SCP protocol:** asyncssh opens an SSH exec channel, runs `scp -f file`. The server controls the filename field:</p>
<p>```
C0644 100 ../pwned.txt\n       (simple traversal)</p>
<p>D0755 0 ..\n                   (traverse up, repeat as needed)
C0644 47 .bashrc\n             (write payload)
E\n
```</p>
<p>**Step 3 - `_parse_cd_args`** (`scp.py:134-142`) returns the filename verbatim:</p>
<p>```python
def _parse_cd_args(args: bytes) -&gt; Tuple[int, int, bytes]:
    permissions, size, name = args.split(None, 2)
    return int(permissions, 8), int(size), name  # no sanitization
```</p>
<p>The returned `name` is not passed thro…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/brew-dvc-cve-2026-54591"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/cve-2026-54591</id>
    <title>CVE-2026-54591 — AsyncSSH: SCP Path Traversal to Arbitrary File Write</title>
    <updated>2026-09-30T19:22:43.265676+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> ronf asyncssh</p>
<p>AsyncSSH is a Python package which provides an asynchronous client and server implementation of the SSHv2 protocol on top of the Python asyncio framework. Prior to 2.23.1, a malicious SSH server can write arbitrary files on the asyncssh SCP client's filesystem by sending filenames containing ../ traversal sequences because _parse_cd_args in scp.py returns server-provided names verbatim and _recv_files joins them to the destination path without enforcing the target directory boundary. This issue is fixed in version 2.23.1.</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/cve-2026-54591"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/pysec-2026-3808</id>
    <title>PYSEC-2026-3808 — asyncssh has SCP Path Traversal to Arbitrary File Write</title>
    <updated>2026-09-30T19:22:43.265714+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: asyncssh</p>
<p>| | |
|---|---|
| Product | asyncssh (all versions through 2.23.0) |
| Related | CVE-2019-6111 (same class in OpenSSH) |
| Fix | AsyncSSH 2.23.1 |</p>
<p>A malicious SSH server can write arbitrary files on the asyncssh SCP client's filesystem by sending filenames containing `../` traversal sequences. The SCP receive path does not currently sanitize server-provided filenames. By chaining directory traversals via the `D` (directory) action, an attacker can escape any target directory and overwrite `~/.bashrc`, `~/.ssh/rc`, or `~/.ssh/authorized_keys`, achieving code execution. This is the same vulnerability class as CVE-2019-6111. The mitigation applied in OpenSSH does not appear to have been adopted in asyncssh.</p>
<p>---</p>
<p>**Steps to exploit:**</p>
<p>**Step 1 - Normal usage:** Application calls `await asyncssh.scp((conn, 'file'), '/home/user/downloads/')`. This is the standard, documented API.</p>
<p>**Step 2 - SCP protocol:** asyncssh opens an SSH exec channel, runs `scp -f file`. The server controls the filename field:</p>
<p>```
C0644 100 ../pwned.txt\n       (simple traversal)</p>
<p>D0755 0 ..\n                   (traverse up, repeat as needed)
C0644 47 .bashrc\n             (write payload)
E\n
```</p>
<p>**Step 3 - `_parse_cd_args`** (`scp.py:134-142`) returns the filename verbatim:</p>
<p>```python
def _parse_cd_args(args: bytes) -&gt; Tuple[int, int, bytes]:
    permissions, size, name = args.split(None, 2)
    return int(permissions, 8), int(size), name  # no sanitization
```</p>
<p>The returned `name` is not passed thro…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/pysec-2026-3808"/>
  </entry>
</feed>
