<?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://cve.radiocsirt.org</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>Sat, 10 Oct 2026 16:33:32 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-371239</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-371239</link>
      <description>EUVD-2026-371239</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-371239</guid>
    </item>
    <item>
      <title>fkie_cve-2026-54547</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-54547</link>
      <description>&lt;p&gt;Meta Ads MCP is a Model Context Protocol (MCP) server that lets AI assistants run Meta Ads. Prior to version 1.0.115, AuthInjectionMiddleware in meta_ads_mcp/core/http_auth_integration.py rejects HTTP MCP requests only when both auth_token and pipeboard_token are absent, while extract_token_from_headers() does not recognize X-Pipeboard-Token as a primary credential. A network caller using the streamable-http transport can therefore send any X-Pipeboard-Token value, pass the guard without establishing authentication context, and cause get_auth_token() to fall back to the server operator&amp;#39;s META_ACCESS_TOKEN. Subsequent MCP tools execute with the operator&amp;#39;s Meta credentials and can read or modify the operator&amp;#39;s Meta Ads data. Deployments using the default stdio transport or without META_ACCESS_TOKEN are not affected. This issue is fixed in version 1.0.115.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Meta Ads MCP is a Model Context Protocol (MCP) server that lets AI assistants run Meta Ads. Prior to version 1.0.115, AuthInjectionMiddleware in meta_ads_mcp/core/http_auth_integration.py rejects HTTP MCP requests only when both auth_token and pipeboard_token are absent, while extract_token_from_headers() does not recognize X-Pipeboard-Token as a primary credential. A network caller using the streamable-http transport can therefore send any X-Pipeboard-Token value, pass the guard without establishing authentication context, and cause get_auth_token() to fall back to the server operator&amp;#39;s META_ACCESS_TOKEN. Subsequent MCP tools execute with the operator&amp;#39;s Meta credentials and can read or modify the operator&amp;#39;s Meta Ads data. Deployments using the default stdio transport or without META_ACCESS_TOKEN are not affected. This issue is fixed in version 1.0.115.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-54547</guid>
    </item>
    <item>
      <title>GHSA-2v2f-mvfg-ph56 — meta-ads-mcp: X-Pipeboard-Token Header Auth Bypass Reuses Operator Meta Token</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-2v2f-mvfg-ph56</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: meta-ads-mcp&lt;/p&gt;
&lt;p&gt;## X-Pipeboard-Token Header Auth Bypass Reuses Operator Meta Token&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`AuthInjectionMiddleware` in `meta-ads-mcp` rejects HTTP MCP requests only when **both** `auth_token` and `pipeboard_token` are absent. Because `extract_token_from_headers()` does not recognise the `X-Pipeboard-Token` header, an attacker who sends that header with any arbitrary value produces `auth_token = None` and `pipeboard_token = &amp;lt;attacker value&amp;gt;`, making the guard condition evaluate to `False` and passing the request through. No authentication context is set; the token getter falls back to the server operator&amp;#39;s `META_ACCESS_TOKEN` environment variable. Every subsequent MCP tool call executes with the operator&amp;#39;s Meta credentials, allowing an unauthenticated network caller to read and write the operator&amp;#39;s Meta Ads data.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The vulnerable condition is at `meta_ads_mcp/core/http_auth_integration.py:259`:&lt;/p&gt;
&lt;p&gt;```python
# http_auth_integration.py:255-260
auth_token = FastMCPAuthIntegration.extract_token_from_headers(dict(request.headers))
pipeboard_token = FastMCPAuthIntegration.extract_pipeboard_token_from_headers(dict(request.headers))&lt;/p&gt;
&lt;p&gt;if not auth_token and not pipeboard_token:      # ← bypass condition
    return Response(..., status_code=401)
```&lt;/p&gt;
&lt;p&gt;`extract_token_from_headers()` (lines 77–95) recognises only `Authorization: Bearer`, `X-META-ACCESS-TOKEN`, and `X-PIPEBOARD-API-TOKEN`. It does **not** recognise `X-Pipeboard-Token`, so that header never populates `auth_token`.&lt;/p&gt;
&lt;p&gt;`extract…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: meta-ads-mcp&lt;/p&gt;
&lt;p&gt;## X-Pipeboard-Token Header Auth Bypass Reuses Operator Meta Token&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`AuthInjectionMiddleware` in `meta-ads-mcp` rejects HTTP MCP requests only when **both** `auth_token` and `pipeboard_token` are absent. Because `extract_token_from_headers()` does not recognise the `X-Pipeboard-Token` header, an attacker who sends that header with any arbitrary value produces `auth_token = None` and `pipeboard_token = &amp;lt;attacker value&amp;gt;`, making the guard condition evaluate to `False` and passing the request through. No authentication context is set; the token getter falls back to the server operator&amp;#39;s `META_ACCESS_TOKEN` environment variable. Every subsequent MCP tool call executes with the operator&amp;#39;s Meta credentials, allowing an unauthenticated network caller to read and write the operator&amp;#39;s Meta Ads data.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The vulnerable condition is at `meta_ads_mcp/core/http_auth_integration.py:259`:&lt;/p&gt;
&lt;p&gt;```python
# http_auth_integration.py:255-260
auth_token = FastMCPAuthIntegration.extract_token_from_headers(dict(request.headers))
pipeboard_token = FastMCPAuthIntegration.extract_pipeboard_token_from_headers(dict(request.headers))&lt;/p&gt;
&lt;p&gt;if not auth_token and not pipeboard_token:      # ← bypass condition
    return Response(..., status_code=401)
```&lt;/p&gt;
&lt;p&gt;`extract_token_from_headers()` (lines 77–95) recognises only `Authorization: Bearer`, `X-META-ACCESS-TOKEN`, and `X-PIPEBOARD-API-TOKEN`. It does **not** recognise `X-Pipeboard-Token`, so that header never populates `auth_token`.&lt;/p&gt;
&lt;p&gt;`extract…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-2v2f-mvfg-ph56</guid>
    </item>
    <item>
      <title>PYSEC-2026-3484 — meta-ads-mcp: X-Pipeboard-Token Header Auth Bypass Reuses Operator Meta Token</title>
      <link>https://cve.radiocsirt.org/vuln/pysec-2026-3484</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: meta-ads-mcp&lt;/p&gt;
&lt;p&gt;## X-Pipeboard-Token Header Auth Bypass Reuses Operator Meta Token&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`AuthInjectionMiddleware` in `meta-ads-mcp` rejects HTTP MCP requests only when **both** `auth_token` and `pipeboard_token` are absent. Because `extract_token_from_headers()` does not recognise the `X-Pipeboard-Token` header, an attacker who sends that header with any arbitrary value produces `auth_token = None` and `pipeboard_token = &amp;lt;attacker value&amp;gt;`, making the guard condition evaluate to `False` and passing the request through. No authentication context is set; the token getter falls back to the server operator&amp;#39;s `META_ACCESS_TOKEN` environment variable. Every subsequent MCP tool call executes with the operator&amp;#39;s Meta credentials, allowing an unauthenticated network caller to read and write the operator&amp;#39;s Meta Ads data.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The vulnerable condition is at `meta_ads_mcp/core/http_auth_integration.py:259`:&lt;/p&gt;
&lt;p&gt;```python
# http_auth_integration.py:255-260
auth_token = FastMCPAuthIntegration.extract_token_from_headers(dict(request.headers))
pipeboard_token = FastMCPAuthIntegration.extract_pipeboard_token_from_headers(dict(request.headers))&lt;/p&gt;
&lt;p&gt;if not auth_token and not pipeboard_token:      # ← bypass condition
    return Response(..., status_code=401)
```&lt;/p&gt;
&lt;p&gt;`extract_token_from_headers()` (lines 77–95) recognises only `Authorization: Bearer`, `X-META-ACCESS-TOKEN`, and `X-PIPEBOARD-API-TOKEN`. It does **not** recognise `X-Pipeboard-Token`, so that header never populates `auth_token`.&lt;/p&gt;
&lt;p&gt;`extract…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: meta-ads-mcp&lt;/p&gt;
&lt;p&gt;## X-Pipeboard-Token Header Auth Bypass Reuses Operator Meta Token&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`AuthInjectionMiddleware` in `meta-ads-mcp` rejects HTTP MCP requests only when **both** `auth_token` and `pipeboard_token` are absent. Because `extract_token_from_headers()` does not recognise the `X-Pipeboard-Token` header, an attacker who sends that header with any arbitrary value produces `auth_token = None` and `pipeboard_token = &amp;lt;attacker value&amp;gt;`, making the guard condition evaluate to `False` and passing the request through. No authentication context is set; the token getter falls back to the server operator&amp;#39;s `META_ACCESS_TOKEN` environment variable. Every subsequent MCP tool call executes with the operator&amp;#39;s Meta credentials, allowing an unauthenticated network caller to read and write the operator&amp;#39;s Meta Ads data.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The vulnerable condition is at `meta_ads_mcp/core/http_auth_integration.py:259`:&lt;/p&gt;
&lt;p&gt;```python
# http_auth_integration.py:255-260
auth_token = FastMCPAuthIntegration.extract_token_from_headers(dict(request.headers))
pipeboard_token = FastMCPAuthIntegration.extract_pipeboard_token_from_headers(dict(request.headers))&lt;/p&gt;
&lt;p&gt;if not auth_token and not pipeboard_token:      # ← bypass condition
    return Response(..., status_code=401)
```&lt;/p&gt;
&lt;p&gt;`extract_token_from_headers()` (lines 77–95) recognises only `Authorization: Bearer`, `X-META-ACCESS-TOKEN`, and `X-PIPEBOARD-API-TOKEN`. It does **not** recognise `X-Pipeboard-Token`, so that header never populates `auth_token`.&lt;/p&gt;
&lt;p&gt;`extract…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/pysec-2026-3484</guid>
    </item>
  </channel>
</rss>
