<?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>Thu, 15 Oct 2026 18:00:38 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-9205 — Langflow is affected by weaknesses in secret handling and sensitive configuration access</title>
      <link>https://db.gcve.eu/vuln/cve-2026-9205</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; IBM Langflow OSS&lt;/p&gt;
&lt;p&gt;IBM Langflow OSS contains a weak cryptographic key derivation vulnerability in the ensure_fernet_key() function.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; IBM Langflow OSS&lt;/p&gt;
&lt;p&gt;IBM Langflow OSS contains a weak cryptographic key derivation vulnerability in the ensure_fernet_key() function.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-9205</guid>
    </item>
    <item>
      <title>PYSEC-2026-4235 — Langflow: Weak Fernet Key via random.seed()</title>
      <link>https://db.gcve.eu/vuln/pysec-2026-4235</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: langflow&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Langflow uses Python&amp;#39;s `random` module (Mersenne Twister, a non-cryptographic PRNG) seeded with the `SECRET_KEY` to derive the Fernet encryption key for all stored user credentials (API keys, LLM provider secrets, database passwords). When the `SECRET_KEY` is shorter than 32 characters — a common scenario for self-hosted deployments using simple/memorable secrets — the derived encryption key is fully deterministic and reproducible by anyone who knows the seed value. An attacker who obtains the `SECRET_KEY` (e.g., via the MCP path traversal in this repo) can reconstruct the exact Fernet key offline and decrypt every credential stored in the database with no brute force required.&lt;/p&gt;
&lt;p&gt;Even when `SECRET_KEY` is 32+ characters (the &amp;#34;safe&amp;#34; branch), the raw key material is used directly as the Fernet key — meaning exfiltrating the `secret_key` file is sufficient to decrypt all credentials without any additional computation.&lt;/p&gt;
&lt;p&gt;**Severity:** Critical — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N (9.1)
**CWE-338:** Weak PRNG | **CWE-321:** Hard-coded Cryptographic Key | **CWE-311:** Missing Encryption of Sensitive Data&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;**Root cause: `src/backend/base/langflow/services/auth/service.py`, lines 651–663**&lt;/p&gt;
&lt;p&gt;```python
MINIMUM_KEY_LENGTH = 32&lt;/p&gt;
&lt;p&gt;def _ensure_valid_key(self, raw_key: str) -&amp;gt; bytes:
    if len(raw_key) &amp;lt; MINIMUM_KEY_LENGTH:
        random.seed(raw_key)                                   # Non-cryptographic PRNG seeded with the secret
        key = bytes(ran…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: langflow&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Langflow uses Python&amp;#39;s `random` module (Mersenne Twister, a non-cryptographic PRNG) seeded with the `SECRET_KEY` to derive the Fernet encryption key for all stored user credentials (API keys, LLM provider secrets, database passwords). When the `SECRET_KEY` is shorter than 32 characters — a common scenario for self-hosted deployments using simple/memorable secrets — the derived encryption key is fully deterministic and reproducible by anyone who knows the seed value. An attacker who obtains the `SECRET_KEY` (e.g., via the MCP path traversal in this repo) can reconstruct the exact Fernet key offline and decrypt every credential stored in the database with no brute force required.&lt;/p&gt;
&lt;p&gt;Even when `SECRET_KEY` is 32+ characters (the &amp;#34;safe&amp;#34; branch), the raw key material is used directly as the Fernet key — meaning exfiltrating the `secret_key` file is sufficient to decrypt all credentials without any additional computation.&lt;/p&gt;
&lt;p&gt;**Severity:** Critical — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N (9.1)
**CWE-338:** Weak PRNG | **CWE-321:** Hard-coded Cryptographic Key | **CWE-311:** Missing Encryption of Sensitive Data&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;**Root cause: `src/backend/base/langflow/services/auth/service.py`, lines 651–663**&lt;/p&gt;
&lt;p&gt;```python
MINIMUM_KEY_LENGTH = 32&lt;/p&gt;
&lt;p&gt;def _ensure_valid_key(self, raw_key: str) -&amp;gt; bytes:
    if len(raw_key) &amp;lt; MINIMUM_KEY_LENGTH:
        random.seed(raw_key)                                   # Non-cryptographic PRNG seeded with the secret
        key = bytes(ran…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/pysec-2026-4235</guid>
    </item>
  </channel>
</rss>
