<?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://db.gcve.eu</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, 13 Nov 2026 19:11:28 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-125327</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-125327</link>
      <description>&lt;p&gt;pgEdge RAG Server is an API server for retrieval-augmented generation over PostgreSQL content using pgvector. Prior to 2.0.0, the unauthenticated query endpoint uses FetchDocuments in internal/database/search.go to read the entire filtered corpus without a LIMIT and rebuild an in-memory BM25 index on every request. Because HybridEnabled is set by default in internal/config/loader.go and the endpoint has no rate limit, inexpensive remote queries can impose database and CPU work proportional to corpus size and exhaust service resources. This issue is fixed in version 2.0.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;pgEdge RAG Server is an API server for retrieval-augmented generation over PostgreSQL content using pgvector. Prior to 2.0.0, the unauthenticated query endpoint uses FetchDocuments in internal/database/search.go to read the entire filtered corpus without a LIMIT and rebuild an in-memory BM25 index on every request. Because HybridEnabled is set by default in internal/config/loader.go and the endpoint has no rate limit, inexpensive remote queries can impose database and CPU work proportional to corpus size and exhaust service resources. This issue is fixed in version 2.0.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-125327</guid>
    </item>
    <item>
      <title>GHSA-5qg5-rgp6-j5m5 — pgEdge RAG Server unbounded corpus read allows resource exhaustion from unauthenticated requests</title>
      <link>https://db.gcve.eu/vuln/ghsa-5qg5-rgp6-j5m5</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/pgEdge/pgedge-rag-server&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;An unauthenticated caller able to reach the query endpoint could exhaust database and server resources with ordinary, inexpensive requests.&lt;/p&gt;
&lt;p&gt;The keyword-search arm read the entire corpus on every request and rebuilt an in-memory BM25 index from it, so the cost of serving a query scaled with the size of the source table rather than with the size of the result set. Each request cost the server and the tenant&amp;#39;s database far more than it cost the caller to make, which makes this a materially more effective denial-of-service lever than flooding the endpoint with ordinary requests. The amplification factor grows with corpus size, so the largest deployments are the most exposed.&lt;/p&gt;
&lt;p&gt;Hybrid search was enabled by default and configured per pipeline rather than per request, so a caller could not opt out of the keyword arm and an operator could not leave it available to some requests but not others.&lt;/p&gt;
&lt;p&gt;**Who is affected:** any deployment of pgEdge RAG Server at `1.0.0` or earlier, including all alpha and beta pre-releases, whose query endpoint is reachable by an untrusted party. The endpoint required no authentication and applied no rate limiting.&lt;/p&gt;
&lt;p&gt;In `1.0.0`, `internal/database/search.go:130` built the corpus query with no `LIMIT`:&lt;/p&gt;
&lt;p&gt;```go
query = fmt.Sprintf(`
    SELECT ...
    FROM %s%s`,
    tableIdent,
    filterClause)
```&lt;/p&gt;
&lt;p&gt;`FetchDocuments` accepted no limit parameter at all, so neither a caller nor the orchestrator had any way to bound the read.
`internal/config/loader.go…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/pgEdge/pgedge-rag-server&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;An unauthenticated caller able to reach the query endpoint could exhaust database and server resources with ordinary, inexpensive requests.&lt;/p&gt;
&lt;p&gt;The keyword-search arm read the entire corpus on every request and rebuilt an in-memory BM25 index from it, so the cost of serving a query scaled with the size of the source table rather than with the size of the result set. Each request cost the server and the tenant&amp;#39;s database far more than it cost the caller to make, which makes this a materially more effective denial-of-service lever than flooding the endpoint with ordinary requests. The amplification factor grows with corpus size, so the largest deployments are the most exposed.&lt;/p&gt;
&lt;p&gt;Hybrid search was enabled by default and configured per pipeline rather than per request, so a caller could not opt out of the keyword arm and an operator could not leave it available to some requests but not others.&lt;/p&gt;
&lt;p&gt;**Who is affected:** any deployment of pgEdge RAG Server at `1.0.0` or earlier, including all alpha and beta pre-releases, whose query endpoint is reachable by an untrusted party. The endpoint required no authentication and applied no rate limiting.&lt;/p&gt;
&lt;p&gt;In `1.0.0`, `internal/database/search.go:130` built the corpus query with no `LIMIT`:&lt;/p&gt;
&lt;p&gt;```go
query = fmt.Sprintf(`
    SELECT ...
    FROM %s%s`,
    tableIdent,
    filterClause)
```&lt;/p&gt;
&lt;p&gt;`FetchDocuments` accepted no limit parameter at all, so neither a caller nor the orchestrator had any way to bound the read.
`internal/config/loader.go…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-5qg5-rgp6-j5m5</guid>
    </item>
  </channel>
</rss>
