<?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>Tue, 29 Sep 2026 01:19:20 +0000</lastBuildDate>
    <item>
      <title>GHSA-c2jp-c369-7pvx — FastMCP Auth Integration Allows for Confused Deputy Account Takeover</title>
      <link>https://db.gcve.eu/vuln/ghsa-c2jp-c369-7pvx</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: fastmcp&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;FastMCP documentation [covers the scenario](https://gofastmcp.com/integrations/azure) where it is possible to use Entra ID or other providers for authentication. In this context, because Entra ID does not support Dynamic Client Registration (DCR), the FastMCP-hosted MCP server is acting as the authorization provider, as declared in the Protected Resource Metadata (PRM) document hosted on the server.&lt;/p&gt;
&lt;p&gt;For example, on a local MCP server, it may be hosted here:&lt;/p&gt;
&lt;p&gt;```http
http://localhost:8000/.well-known/oauth-protected-resource
```&lt;/p&gt;
&lt;p&gt;And the JSON representation of the PRM document:&lt;/p&gt;
&lt;p&gt;```json
{
  &amp;#34;resource&amp;#34;: &amp;#34;http://localhost:8000/mcp&amp;#34;,
  &amp;#34;authorization_servers&amp;#34;: [
    &amp;#34;http://localhost:8000/&amp;#34;
  ],
  &amp;#34;scopes_supported&amp;#34;: [
    &amp;#34;User.Read&amp;#34;,
    &amp;#34;email&amp;#34;,
    &amp;#34;openid&amp;#34;,
    &amp;#34;profile&amp;#34;
  ],
  &amp;#34;bearer_methods_supported&amp;#34;: [
    &amp;#34;header&amp;#34;
  ]
}
```&lt;/p&gt;
&lt;p&gt;Notice that the `authorization_servers` field contains the MCP server itself - it acts as an **OAuth Client** to the downstream authorization server (e.g., Entra ID) and as a **Authorization Server** (AS) to the MCP client.&lt;/p&gt;
&lt;p&gt;The FastMCP server also hosts the AS metadata:&lt;/p&gt;
&lt;p&gt;```bash
http://localhost:8000/.well-known/oauth-authorization-server
```&lt;/p&gt;
&lt;p&gt;With the following content:&lt;/p&gt;
&lt;p&gt;```json
{
  &amp;#34;issuer&amp;#34;: &amp;#34;http://localhost:8000/&amp;#34;,
  &amp;#34;authorization_endpoint&amp;#34;: &amp;#34;http://localhost:8000/authorize&amp;#34;,
  &amp;#34;token_endpoint&amp;#34;: &amp;#34;http://localhost:8000/token&amp;#34;,
  &amp;#34;registration_endpoint&amp;#34;: &amp;#34;http://localhost:8000/register&amp;#34;,
  &amp;#34;scopes_supported&amp;#34;: [
    &amp;#34;User.Read&amp;#34;,…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: fastmcp&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;FastMCP documentation [covers the scenario](https://gofastmcp.com/integrations/azure) where it is possible to use Entra ID or other providers for authentication. In this context, because Entra ID does not support Dynamic Client Registration (DCR), the FastMCP-hosted MCP server is acting as the authorization provider, as declared in the Protected Resource Metadata (PRM) document hosted on the server.&lt;/p&gt;
&lt;p&gt;For example, on a local MCP server, it may be hosted here:&lt;/p&gt;
&lt;p&gt;```http
http://localhost:8000/.well-known/oauth-protected-resource
```&lt;/p&gt;
&lt;p&gt;And the JSON representation of the PRM document:&lt;/p&gt;
&lt;p&gt;```json
{
  &amp;#34;resource&amp;#34;: &amp;#34;http://localhost:8000/mcp&amp;#34;,
  &amp;#34;authorization_servers&amp;#34;: [
    &amp;#34;http://localhost:8000/&amp;#34;
  ],
  &amp;#34;scopes_supported&amp;#34;: [
    &amp;#34;User.Read&amp;#34;,
    &amp;#34;email&amp;#34;,
    &amp;#34;openid&amp;#34;,
    &amp;#34;profile&amp;#34;
  ],
  &amp;#34;bearer_methods_supported&amp;#34;: [
    &amp;#34;header&amp;#34;
  ]
}
```&lt;/p&gt;
&lt;p&gt;Notice that the `authorization_servers` field contains the MCP server itself - it acts as an **OAuth Client** to the downstream authorization server (e.g., Entra ID) and as a **Authorization Server** (AS) to the MCP client.&lt;/p&gt;
&lt;p&gt;The FastMCP server also hosts the AS metadata:&lt;/p&gt;
&lt;p&gt;```bash
http://localhost:8000/.well-known/oauth-authorization-server
```&lt;/p&gt;
&lt;p&gt;With the following content:&lt;/p&gt;
&lt;p&gt;```json
{
  &amp;#34;issuer&amp;#34;: &amp;#34;http://localhost:8000/&amp;#34;,
  &amp;#34;authorization_endpoint&amp;#34;: &amp;#34;http://localhost:8000/authorize&amp;#34;,
  &amp;#34;token_endpoint&amp;#34;: &amp;#34;http://localhost:8000/token&amp;#34;,
  &amp;#34;registration_endpoint&amp;#34;: &amp;#34;http://localhost:8000/register&amp;#34;,
  &amp;#34;scopes_supported&amp;#34;: [
    &amp;#34;User.Read&amp;#34;,…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-c2jp-c369-7pvx</guid>
    </item>
  </channel>
</rss>
