<?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>Thu, 01 Oct 2026 03:47:28 +0000</lastBuildDate>
    <item>
      <title>GHSA-fxg7-897c-57mp — Nuxt Ollama: Public Runtime Config Exposes Ollama API Key to Browser Clients</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-fxg7-897c-57mp</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: nuxt-ollama&lt;/p&gt;
&lt;p&gt;## Public Runtime Config Exposes Ollama API Key to Browser Clients&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`nuxt-ollama@1.2.26` unconditionally merges all module options — including `api_key` — into Nuxt&amp;#39;s **public** runtime config (`runtimeConfig.public.ollama`). Nuxt serializes `runtimeConfig.public` into the SSR HTML response inside a `&amp;lt;script&amp;gt;` payload block (`window.__NUXT__`), making the API key visible in plaintext to any unauthenticated HTTP client that fetches the page. An attacker with no credentials can steal the Ollama cloud API key with a single HTTP GET request, then use it to make arbitrary requests to the Ollama API at the operator&amp;#39;s expense.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The vulnerability is a design flaw in `src/module.ts`. During Nuxt module setup, the entire `_options` object — which contains `api_key` when configured for cloud Ollama as documented in `README.md:71-80` — is merged into the **public** runtime config namespace:&lt;/p&gt;
&lt;p&gt;```ts
// src/module.ts:35-36
const currentConfig = (runtimeConfig.public.ollama ?? {}) as OllamaOptions
runtimeConfig.public.ollama = defu(currentConfig, _options)
```&lt;/p&gt;
&lt;p&gt;Nuxt&amp;#39;s SSR pipeline serializes `runtimeConfig.public` and embeds it in every server-rendered HTML page for client-side hydration. This results in the `api_key` appearing verbatim in the `window.__NUXT__` script block:&lt;/p&gt;
&lt;p&gt;```html
&amp;lt;script&amp;gt;
window.__NUXT__={};
window.__NUXT__.config={
  public:{
    ollama:{
      protocol:&amp;#34;https&amp;#34;,
      host:&amp;#34;api.ollama.com&amp;#34;,
      port:&amp;#34;&amp;#34;,
      proxy:false,
      api_key:&amp;#34;LEAK…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: nuxt-ollama&lt;/p&gt;
&lt;p&gt;## Public Runtime Config Exposes Ollama API Key to Browser Clients&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`nuxt-ollama@1.2.26` unconditionally merges all module options — including `api_key` — into Nuxt&amp;#39;s **public** runtime config (`runtimeConfig.public.ollama`). Nuxt serializes `runtimeConfig.public` into the SSR HTML response inside a `&amp;lt;script&amp;gt;` payload block (`window.__NUXT__`), making the API key visible in plaintext to any unauthenticated HTTP client that fetches the page. An attacker with no credentials can steal the Ollama cloud API key with a single HTTP GET request, then use it to make arbitrary requests to the Ollama API at the operator&amp;#39;s expense.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The vulnerability is a design flaw in `src/module.ts`. During Nuxt module setup, the entire `_options` object — which contains `api_key` when configured for cloud Ollama as documented in `README.md:71-80` — is merged into the **public** runtime config namespace:&lt;/p&gt;
&lt;p&gt;```ts
// src/module.ts:35-36
const currentConfig = (runtimeConfig.public.ollama ?? {}) as OllamaOptions
runtimeConfig.public.ollama = defu(currentConfig, _options)
```&lt;/p&gt;
&lt;p&gt;Nuxt&amp;#39;s SSR pipeline serializes `runtimeConfig.public` and embeds it in every server-rendered HTML page for client-side hydration. This results in the `api_key` appearing verbatim in the `window.__NUXT__` script block:&lt;/p&gt;
&lt;p&gt;```html
&amp;lt;script&amp;gt;
window.__NUXT__={};
window.__NUXT__.config={
  public:{
    ollama:{
      protocol:&amp;#34;https&amp;#34;,
      host:&amp;#34;api.ollama.com&amp;#34;,
      port:&amp;#34;&amp;#34;,
      proxy:false,
      api_key:&amp;#34;LEAK…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-fxg7-897c-57mp</guid>
    </item>
  </channel>
</rss>
