---
id: "CVE-2026-125328"
page: "https://infrastack.ai/live/CVE-2026-125328"
kind: "vulnerability"
aliases: ["CVE-2026-125328"]
title: "pgEdge Go LLM Library: health endpoint leaks part of provider API key"
severity: "medium"
cvss: 5.8
epss: null
exploited: false
status: "open"
category: "ai-tooling"
products: []
ecosystems: []
tags: ["ai-tooling", "go", "llm", "pgedge", "proxy"]
not_affected_if: ["authorize-configured", "proxy-not-used", "version-0.2.0-or-later"]
published_at: "2026-11-10T19:21:10+00:00"
first_seen_at: "2026-11-10T19:25:14+00:00"
updated_at: "2026-11-10T20:00:10+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-125328", "first_seen_at": "2026-11-10T19:25:14+00:00"}]
exploit_sources: []
---

# pgEdge Go LLM Library: health endpoint leaks part of provider API key

Link for people: https://infrastack.ai/live/CVE-2026-125328 (this .md is for agents)

The pgEdge Go LLM Library proxy exposes a GET /v1/health endpoint that pings LLM providers with the operator's real credentials and returns their error text. When a provider rejects the key, a remote caller who can reach the proxy can recover part of the operator's third-party provider API key.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the Go module version of `github.com/pgedge/...` LLM library in `go.mod` (the pgEdge LLM library, module path unknown from sources)
- Confirm whether the proxy under `llm/proxy` is deployed and reachable from untrusted networks
- Check whether the application sets an Authorize hook for the proxy; if it does not, the default permits access

## Fix

- pgEdge Go LLM Library: upgrade to `0.2.0`

## Timeline

- 2026-11-10T19:25:14+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-125328

## Documents

- [advisory] Vendor advisory: github.com https://github.com/pgEdge/pgedge-go-llm-lib/security/advisories/GHSA-8835-xmqj-354h
- [fix] Patch: github.com https://github.com/pgEdge/pgedge-go-llm-lib/commit/7531a55d368b3a29cd173c792cc4609c4134b076
- [fix] Patch: github.com https://github.com/pgEdge/pgedge-go-llm-lib/commit/8bb9a6380d5f8db0124b51605759897034ad4da1
- [fix] Release notes: github.com https://github.com/pgEdge/pgedge-go-llm-lib/releases/tag/v0.2.0

## From the sources

pgEdge Go LLM Library provides a unified Go interface for multiple LLM providers with streaming, tool calling, retries, and an HTTP and server-sent events proxy. From 0.1.0 until 0.2.0, GET /v1/health in llm/proxy/handlers.go uses handleHealth to ping providers with the operator's real credentials and returns their error text, while the Authorize hook in llm/proxy/proxy.go permits access by default when the consuming application does not configure it. When a provider rejects the configured credential, a remote caller who can reach the proxy can obtain part of the operator's third-party provider API key from the resulting error. This issue is fixed in version 0.2.0.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
