<?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, 08 Oct 2026 05:39:40 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-105741</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-105741</link>
      <description>&lt;p&gt;Langflow is a tool for building and deploying AI-powered agents and workflows. From 1.5.0 until 1.10.3, an IP spoofing vulnerability in the Model Context Protocol (MCP) configuration installation endpoint (POST /api/v1/mcp/project/{project_id}/install) allowed authenticated remote attackers to bypass the &amp;#34;local-only&amp;#34; access restriction. By sending a spoofed X-Forwarded-For: 127.0.0.1 header, an attacker could make the server treat the request as originating from localhost, letting them write/overwrite an MCP client configuration file on the server&amp;#39;s filesystem. This vulnerability is fixed in 1.10.3.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Langflow is a tool for building and deploying AI-powered agents and workflows. From 1.5.0 until 1.10.3, an IP spoofing vulnerability in the Model Context Protocol (MCP) configuration installation endpoint (POST /api/v1/mcp/project/{project_id}/install) allowed authenticated remote attackers to bypass the &amp;#34;local-only&amp;#34; access restriction. By sending a spoofed X-Forwarded-For: 127.0.0.1 header, an attacker could make the server treat the request as originating from localhost, letting them write/overwrite an MCP client configuration file on the server&amp;#39;s filesystem. This vulnerability is fixed in 1.10.3.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-105741</guid>
    </item>
    <item>
      <title>GHSA-4f6c-2vvp-gw82 — Langflow: IP Spoofing Bypass via `X-Forwarded-For` Allowing Remote Configuration Write</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-4f6c-2vvp-gw82</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: langflow&lt;/p&gt;
&lt;p&gt;**Description**:
### Summary
An IP spoofing vulnerability in the Model Context Protocol (MCP) configuration installation endpoint (`POST /api/v1/mcp/project/{project_id}/install`) allowed authenticated remote attackers to bypass the &amp;#34;local-only&amp;#34; access restriction. By sending a spoofed `X-Forwarded-For: 127.0.0.1` header, an attacker could make the server treat the request as originating from localhost, letting them write/overwrite an MCP client configuration file on the server&amp;#39;s filesystem.&lt;/p&gt;
&lt;p&gt;### Details
The vulnerability lived in the `get_client_ip` helper, used to enforce the local-only gate for `install_mcp_config`. It trusted the leftmost (fully client-controlled) entry of `X-Forwarded-For` unconditionally, with no check for whether the request had actually passed through a trusted proxy.&lt;/p&gt;
&lt;p&gt;**Vulnerable code (introduced by commit `d3d06be8e5`, first released in v1.5.0):** `src/backend/base/langflow/api/v1/mcp_projects.py`&lt;/p&gt;
&lt;p&gt;```python
def get_client_ip(request: Request) -&amp;gt; str:
    # Check for X-Forwarded-For header (common when behind proxies)
    forwarded_for = request.headers.get(&amp;#34;X-Forwarded-For&amp;#34;)
    if forwarded_for:
        # The client IP is the first one in the list
        return forwarded_for.split(&amp;#34;,&amp;#34;)[0].strip()
    if request.client:
        return request.client.host
    return &amp;#34;255.255.255.255&amp;#34;&lt;/p&gt;
&lt;p&gt;@router.post(&amp;#34;/{project_id}/install&amp;#34;)
async def install_mcp_config(
    project_id: UUID,
    body: MCPInstallRequest,        # {client: str, transport: &amp;#34;sse&amp;#34; | &amp;#34;s…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: langflow&lt;/p&gt;
&lt;p&gt;**Description**:
### Summary
An IP spoofing vulnerability in the Model Context Protocol (MCP) configuration installation endpoint (`POST /api/v1/mcp/project/{project_id}/install`) allowed authenticated remote attackers to bypass the &amp;#34;local-only&amp;#34; access restriction. By sending a spoofed `X-Forwarded-For: 127.0.0.1` header, an attacker could make the server treat the request as originating from localhost, letting them write/overwrite an MCP client configuration file on the server&amp;#39;s filesystem.&lt;/p&gt;
&lt;p&gt;### Details
The vulnerability lived in the `get_client_ip` helper, used to enforce the local-only gate for `install_mcp_config`. It trusted the leftmost (fully client-controlled) entry of `X-Forwarded-For` unconditionally, with no check for whether the request had actually passed through a trusted proxy.&lt;/p&gt;
&lt;p&gt;**Vulnerable code (introduced by commit `d3d06be8e5`, first released in v1.5.0):** `src/backend/base/langflow/api/v1/mcp_projects.py`&lt;/p&gt;
&lt;p&gt;```python
def get_client_ip(request: Request) -&amp;gt; str:
    # Check for X-Forwarded-For header (common when behind proxies)
    forwarded_for = request.headers.get(&amp;#34;X-Forwarded-For&amp;#34;)
    if forwarded_for:
        # The client IP is the first one in the list
        return forwarded_for.split(&amp;#34;,&amp;#34;)[0].strip()
    if request.client:
        return request.client.host
    return &amp;#34;255.255.255.255&amp;#34;&lt;/p&gt;
&lt;p&gt;@router.post(&amp;#34;/{project_id}/install&amp;#34;)
async def install_mcp_config(
    project_id: UUID,
    body: MCPInstallRequest,        # {client: str, transport: &amp;#34;sse&amp;#34; | &amp;#34;s…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-4f6c-2vvp-gw82</guid>
    </item>
  </channel>
</rss>
