<?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://vulnerability.circl.lu</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>Fri, 02 Oct 2026 03:57:21 +0000</lastBuildDate>
    <item>
      <title>bdu:2026-10981</title>
      <link>https://vulnerability.circl.lu/vuln/bdu:2026-10981</link>
      <description>bdu:2026-10981</description>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/bdu:2026-10981</guid>
    </item>
    <item>
      <title>fkie_cve-2026-47668</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-47668</link>
      <description>&lt;p&gt;DbGate is cross-platform database manager. In versions 7.1.8 and prior, DbGate&amp;#39;s JSON script runner (`POST /runners/start`) allows remote code execution via code injection in the `functionName` parameter of JSON script `assign` commands. The `functionName` value is interpolated directly into dynamically generated JavaScript source code via string concatenation. The generated code is then executed in a forked Node.js child process. Version 7.1.9 contains a patch.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;DbGate is cross-platform database manager. In versions 7.1.8 and prior, DbGate&amp;#39;s JSON script runner (`POST /runners/start`) allows remote code execution via code injection in the `functionName` parameter of JSON script `assign` commands. The `functionName` value is interpolated directly into dynamically generated JavaScript source code via string concatenation. The generated code is then executed in a forked Node.js child process. Version 7.1.9 contains a patch.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-47668</guid>
    </item>
    <item>
      <title>GHSA-8v3q-9vmx-36vc — DbGate: Unauthenticated Remote Code Execution via JSON Script Runner</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-8v3q-9vmx-36vc</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: dbgate-serve&lt;/p&gt;
&lt;p&gt;### Summary
DbGate&amp;#39;s JSON script runner (`POST /runners/start`) allows remote code execution via code injection in the `functionName` parameter of JSON script `assign` commands. The `functionName` value is interpolated directly into dynamically generated JavaScript source code via string concatenation. The generated code is then executed in a forked Node.js child process.&lt;/p&gt;
&lt;p&gt;### Details
#### Step 1: User Input Entry Point&lt;/p&gt;
&lt;p&gt;**File:** `packages/api/src/controllers/runners.js` - `start()` method&lt;/p&gt;
&lt;p&gt;The `/runners/start` endpoint accepts a POST body containing a `script` object. When `script.type == &amp;#39;json&amp;#39;`, the request follows a different code path than raw shell scripts:&lt;/p&gt;
&lt;p&gt;```javascript
async start({ script }, req) {
    if (script.type == &amp;#39;json&amp;#39;) {
        if (!platformInfo.isElectron) {
            if (!checkSecureDirectoriesInScript(script)) {
                return { errorMessage: &amp;#39;Unallowed directories in script&amp;#39; };
            }
        }
        logJsonRunnerScript(req, script);
        const js = await jsonScriptToJavascript(script);
        return this.startCore(runid, scriptTemplate(js, false));
    }
```
This path skips:
1. The `run-shell-script` permission check
2. The `allowShellScripting` platform-level check&lt;/p&gt;
&lt;p&gt;The only validation performed is `checkSecureDirectoriesInScript()`, which `props.fileName` values&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;#### Step 2: JSON-to-JavaScript Conversion (Injection Point)&lt;/p&gt;
&lt;p&gt;**File:** `packages/tools/src/ScriptWriter.ts` - `assignCore()` method&lt;/p&gt;
&lt;p&gt;The JSON script&amp;#39;s `comma…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: dbgate-serve&lt;/p&gt;
&lt;p&gt;### Summary
DbGate&amp;#39;s JSON script runner (`POST /runners/start`) allows remote code execution via code injection in the `functionName` parameter of JSON script `assign` commands. The `functionName` value is interpolated directly into dynamically generated JavaScript source code via string concatenation. The generated code is then executed in a forked Node.js child process.&lt;/p&gt;
&lt;p&gt;### Details
#### Step 1: User Input Entry Point&lt;/p&gt;
&lt;p&gt;**File:** `packages/api/src/controllers/runners.js` - `start()` method&lt;/p&gt;
&lt;p&gt;The `/runners/start` endpoint accepts a POST body containing a `script` object. When `script.type == &amp;#39;json&amp;#39;`, the request follows a different code path than raw shell scripts:&lt;/p&gt;
&lt;p&gt;```javascript
async start({ script }, req) {
    if (script.type == &amp;#39;json&amp;#39;) {
        if (!platformInfo.isElectron) {
            if (!checkSecureDirectoriesInScript(script)) {
                return { errorMessage: &amp;#39;Unallowed directories in script&amp;#39; };
            }
        }
        logJsonRunnerScript(req, script);
        const js = await jsonScriptToJavascript(script);
        return this.startCore(runid, scriptTemplate(js, false));
    }
```
This path skips:
1. The `run-shell-script` permission check
2. The `allowShellScripting` platform-level check&lt;/p&gt;
&lt;p&gt;The only validation performed is `checkSecureDirectoriesInScript()`, which `props.fileName` values&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;#### Step 2: JSON-to-JavaScript Conversion (Injection Point)&lt;/p&gt;
&lt;p&gt;**File:** `packages/tools/src/ScriptWriter.ts` - `assignCore()` method&lt;/p&gt;
&lt;p&gt;The JSON script&amp;#39;s `comma…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-8v3q-9vmx-36vc</guid>
    </item>
  </channel>
</rss>
