<?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-10-02T03:53:59.430120+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/fkie_cve-2026-73307</id>
    <title>fkie_cve-2026-73307</title>
    <updated>2026-10-02T03:53:59.448127+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>Budibase is an open-source low-code platform. Prior to 3.39.4, uploadUrl in packages/server/src/utilities/fileUtils.ts used a bare server-side fetch for string attachment values passed by processAttachments in packages/server/src/sdk/workspace/ai/helpers/rows.ts. A builder with the AI table-generation feature could cause an attachment value to reference an internal service or cloud metadata endpoint, and the response would be stored as an attachment without fetchWithBlacklist validation. This issue is fixed in version 3.39.4.</p>
      </div>
    </content>
    <link href="https://db.gcve.eu/vuln/fkie_cve-2026-73307"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-hfhx-w8p8-4hc7</id>
    <title>GHSA-hfhx-w8p8-4hc7 — Budibase: SSRF via bare fetch() in uploadUrl during AI table generation</title>
    <updated>2026-10-02T03:53:59.448186+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> npm: @budibase/server</p>
<p># Budibase: SSRF via bare fetch() in uploadUrl during AI table generation</p>
<p>## Summary</p>
<p>The `uploadUrl()` function in `packages/server/src/utilities/fileUtils.ts` uses a bare `fetch(url)` call without any SSRF protection. This function is invoked when the AI table generation feature processes LLM-generated attachment column values that are strings (URLs).</p>
<p>A builder-level user can craft prompts that cause the LLM to generate internal IP addresses or cloud metadata endpoints as attachment URLs. When `generateRows()` calls `processAttachments()`, these URLs are fetched server-side without blacklist validation, allowing the attacker to reach internal services, cloud metadata APIs (169.254.169.254), or other network-internal resources.</p>
<p>This is a variant of the same class of issue addressed in other Budibase code paths where `fetchWithBlacklist()` is correctly used to prevent SSRF.</p>
<p>## Affected Versions</p>
<p>&lt;= 3.39.0 (current `lerna.json` version at time of analysis)</p>
<p>## Vulnerability Details</p>
<p>### Root Cause: uploadUrl() uses bare fetch() without SSRF blacklist check</p>
<p>```typescript
// packages/server/src/utilities/fileUtils.ts:21-23
export async function uploadUrl(url: string): Promise&lt;Upload | undefined&gt; {
  try {
    const res = await fetch(url)  // No blacklist validation
```</p>
<p>This is called from:</p>
<p>```typescript
// packages/server/src/sdk/workspace/ai/helpers/rows.ts:104-114
async function processAttachments(
  entry: Record&lt;string, any&gt;,
  attachmentColumns: FieldSchema[]
) {…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-hfhx-w8p8-4hc7"/>
  </entry>
</feed>
