<?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>Thu, 15 Oct 2026 17:07:42 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-34046 — Langflow: Authenticated Users Can Read, Modify, and Delete Any Flow via Missing Ownership Check</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2026-34046</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; langflow-ai langflow, langflow-ai langflow-base&lt;/p&gt;
&lt;p&gt;Langflow is a tool for building and deploying AI-powered agents and workflows. Prior to version 1.5.1, the `_read_flow` helper in `src/backend/base/langflow/api/v1/flows.py` branched on the `AUTO_LOGIN` setting to decide whether to filter by `user_id`. When `AUTO_LOGIN` was `False` (i.e., authentication was enabled), neither branch enforced an ownership check — the query returned any flow matching the given UUID regardless of who owned it. This allowed any authenticated user to read any other user&amp;#39;s flow, including embedded plaintext API keys; modify the logic of another user&amp;#39;s AI agents, and/or delete flows belonging to other users. The vulnerability was introduced by the conditional logic that was meant to accommodate public/example flows (those with `user_id = NULL`) under auto-login mode, but inadvertently left the authenticated path without an ownership filter. The fix in version 1.5.1 removes the `AUTO_LOGIN` conditional entirely and unconditionally scopes the query to the requesting user.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; langflow-ai langflow, langflow-ai langflow-base&lt;/p&gt;
&lt;p&gt;Langflow is a tool for building and deploying AI-powered agents and workflows. Prior to version 1.5.1, the `_read_flow` helper in `src/backend/base/langflow/api/v1/flows.py` branched on the `AUTO_LOGIN` setting to decide whether to filter by `user_id`. When `AUTO_LOGIN` was `False` (i.e., authentication was enabled), neither branch enforced an ownership check — the query returned any flow matching the given UUID regardless of who owned it. This allowed any authenticated user to read any other user&amp;#39;s flow, including embedded plaintext API keys; modify the logic of another user&amp;#39;s AI agents, and/or delete flows belonging to other users. The vulnerability was introduced by the conditional logic that was meant to accommodate public/example flows (those with `user_id = NULL`) under auto-login mode, but inadvertently left the authenticated path without an ownership filter. The fix in version 1.5.1 removes the `AUTO_LOGIN` conditional entirely and unconditionally scopes the query to the requesting user.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2026-34046</guid>
    </item>
    <item>
      <title>GHSA-8c4j-f57c-35cf — Langflow: Authenticated Users Can Read, Modify, and Delete Any Flow via Missing Ownership Check</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-8c4j-f57c-35cf</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: langflow, PyPI: langflow-base&lt;/p&gt;
&lt;p&gt;## Vulnerability&lt;/p&gt;
&lt;p&gt;### IDOR in `GET/PATCH/DELETE /api/v1/flow/{flow_id}`&lt;/p&gt;
&lt;p&gt;The `_read_flow` helper in `src/backend/base/langflow/api/v1/flows.py` branched on the `AUTO_LOGIN` setting to decide whether to filter by `user_id`. When `AUTO_LOGIN` was `False` (i.e., authentication was enabled), neither branch enforced an ownership check — the query returned any flow matching the given UUID regardless of who owned it.&lt;/p&gt;
&lt;p&gt;This exposed any authenticated user to:&lt;/p&gt;
&lt;p&gt;- **Read** any other user&amp;#39;s flow, including embedded plaintext API keys
- **Modify** the logic of another user&amp;#39;s AI agents
- **Delete** flows belonging to other users&lt;/p&gt;
&lt;p&gt;The vulnerability was introduced by the conditional logic that was meant to accommodate public/example flows (those with `user_id = NULL`) under auto-login mode, but inadvertently left the authenticated path without an ownership filter.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;## Fix (PR #8956)&lt;/p&gt;
&lt;p&gt;The fix removes the `AUTO_LOGIN` conditional entirely and unconditionally scopes the query to the requesting user:&lt;/p&gt;
&lt;p&gt;```diff
-    auth_settings = settings_service.auth_settings
-    stmt = select(Flow).where(Flow.id == flow_id)
-    if auth_settings.AUTO_LOGIN:
-        stmt = stmt.where(
-            (Flow.user_id == user_id) | (Flow.user_id == None)  # noqa: E711
-        )
+    stmt = select(Flow).where(Flow.id == flow_id).where(Flow.user_id == user_id)
```&lt;/p&gt;
&lt;p&gt;All three operations — read, update, and delete — route through `_read_flow`, so the single change covers the full attack surface. A cross-user isol…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: langflow, PyPI: langflow-base&lt;/p&gt;
&lt;p&gt;## Vulnerability&lt;/p&gt;
&lt;p&gt;### IDOR in `GET/PATCH/DELETE /api/v1/flow/{flow_id}`&lt;/p&gt;
&lt;p&gt;The `_read_flow` helper in `src/backend/base/langflow/api/v1/flows.py` branched on the `AUTO_LOGIN` setting to decide whether to filter by `user_id`. When `AUTO_LOGIN` was `False` (i.e., authentication was enabled), neither branch enforced an ownership check — the query returned any flow matching the given UUID regardless of who owned it.&lt;/p&gt;
&lt;p&gt;This exposed any authenticated user to:&lt;/p&gt;
&lt;p&gt;- **Read** any other user&amp;#39;s flow, including embedded plaintext API keys
- **Modify** the logic of another user&amp;#39;s AI agents
- **Delete** flows belonging to other users&lt;/p&gt;
&lt;p&gt;The vulnerability was introduced by the conditional logic that was meant to accommodate public/example flows (those with `user_id = NULL`) under auto-login mode, but inadvertently left the authenticated path without an ownership filter.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;## Fix (PR #8956)&lt;/p&gt;
&lt;p&gt;The fix removes the `AUTO_LOGIN` conditional entirely and unconditionally scopes the query to the requesting user:&lt;/p&gt;
&lt;p&gt;```diff
-    auth_settings = settings_service.auth_settings
-    stmt = select(Flow).where(Flow.id == flow_id)
-    if auth_settings.AUTO_LOGIN:
-        stmt = stmt.where(
-            (Flow.user_id == user_id) | (Flow.user_id == None)  # noqa: E711
-        )
+    stmt = select(Flow).where(Flow.id == flow_id).where(Flow.user_id == user_id)
```&lt;/p&gt;
&lt;p&gt;All three operations — read, update, and delete — route through `_read_flow`, so the single change covers the full attack surface. A cross-user isol…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-8c4j-f57c-35cf</guid>
    </item>
  </channel>
</rss>
