<?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, 01 Oct 2026 12:55:19 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-40087 — LangChain has incomplete f-string validation in prompt templates</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-40087</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; langchain-ai langchain&lt;/p&gt;
&lt;p&gt;LangChain is a framework for building agents and LLM-powered applications. Prior to 0.3.84 and 1.2.28, LangChain&amp;#39;s f-string prompt-template validation was incomplete in two respects. First, some prompt template classes accepted f-string templates and formatted them without enforcing the same attribute-access validation as PromptTemplate. In particular, DictPromptTemplate and ImagePromptTemplate could accept templates containing attribute access or indexing expressions and subsequently evaluate those expressions during formatting. Second, f-string validation based on parsed top-level field names did not reject nested replacement fields inside format specifiers. In this pattern, the nested replacement field appears in the format specifier rather than in the top-level field name. As a result, earlier validation based on parsed field names did not reject the template even though Python formatting would still attempt to resolve the nested expression at runtime. This vulnerability is fixed in 0.3.84 and 1.2.28.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; langchain-ai langchain&lt;/p&gt;
&lt;p&gt;LangChain is a framework for building agents and LLM-powered applications. Prior to 0.3.84 and 1.2.28, LangChain&amp;#39;s f-string prompt-template validation was incomplete in two respects. First, some prompt template classes accepted f-string templates and formatted them without enforcing the same attribute-access validation as PromptTemplate. In particular, DictPromptTemplate and ImagePromptTemplate could accept templates containing attribute access or indexing expressions and subsequently evaluate those expressions during formatting. Second, f-string validation based on parsed top-level field names did not reject nested replacement fields inside format specifiers. In this pattern, the nested replacement field appears in the format specifier rather than in the top-level field name. As a result, earlier validation based on parsed field names did not reject the template even though Python formatting would still attempt to resolve the nested expression at runtime. This vulnerability is fixed in 0.3.84 and 1.2.28.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-40087</guid>
    </item>
    <item>
      <title>GHSA-926x-3r5x-gfhw — LangChain has incomplete f-string validation in prompt templates</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-926x-3r5x-gfhw</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: langchain-core&lt;/p&gt;
&lt;p&gt;LangChain&amp;#39;s f-string prompt-template validation was incomplete in two respects.&lt;/p&gt;
&lt;p&gt;First, some prompt template classes accepted f-string templates and formatted them without enforcing the same attribute-access validation as `PromptTemplate`. In particular, `DictPromptTemplate` and `ImagePromptTemplate` could accept templates containing attribute access or indexing expressions and subsequently evaluate those expressions during formatting.&lt;/p&gt;
&lt;p&gt;Examples of the affected shape include:&lt;/p&gt;
&lt;p&gt;```python
&amp;#34;{message.additional_kwargs[secret]}&amp;#34;
&amp;#34;https://example.com/{image.__class__.__name__}.png&amp;#34;
```&lt;/p&gt;
&lt;p&gt;Second, f-string validation based on parsed top-level field names did not reject nested replacement fields inside format specifiers. For example:&lt;/p&gt;
&lt;p&gt;```python
&amp;#34;{name:{name.__class__.__name__}}&amp;#34;
```&lt;/p&gt;
&lt;p&gt;In this pattern, the nested replacement field appears in the format specifier rather than in the top-level field name. As a result, earlier validation based on parsed field names did not reject the template even though Python formatting would still attempt to resolve the nested expression at runtime.&lt;/p&gt;
&lt;p&gt;## Affected usage&lt;/p&gt;
&lt;p&gt;This issue is only relevant for applications that accept untrusted template strings, rather than only untrusted template variable values.&lt;/p&gt;
&lt;p&gt;In addition, practical impact depends on what objects are passed into template formatting:&lt;/p&gt;
&lt;p&gt;- If applications only format simple values such as strings and numbers, impact is limited and may only result in formatting errors.
- If applications format ric…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: langchain-core&lt;/p&gt;
&lt;p&gt;LangChain&amp;#39;s f-string prompt-template validation was incomplete in two respects.&lt;/p&gt;
&lt;p&gt;First, some prompt template classes accepted f-string templates and formatted them without enforcing the same attribute-access validation as `PromptTemplate`. In particular, `DictPromptTemplate` and `ImagePromptTemplate` could accept templates containing attribute access or indexing expressions and subsequently evaluate those expressions during formatting.&lt;/p&gt;
&lt;p&gt;Examples of the affected shape include:&lt;/p&gt;
&lt;p&gt;```python
&amp;#34;{message.additional_kwargs[secret]}&amp;#34;
&amp;#34;https://example.com/{image.__class__.__name__}.png&amp;#34;
```&lt;/p&gt;
&lt;p&gt;Second, f-string validation based on parsed top-level field names did not reject nested replacement fields inside format specifiers. For example:&lt;/p&gt;
&lt;p&gt;```python
&amp;#34;{name:{name.__class__.__name__}}&amp;#34;
```&lt;/p&gt;
&lt;p&gt;In this pattern, the nested replacement field appears in the format specifier rather than in the top-level field name. As a result, earlier validation based on parsed field names did not reject the template even though Python formatting would still attempt to resolve the nested expression at runtime.&lt;/p&gt;
&lt;p&gt;## Affected usage&lt;/p&gt;
&lt;p&gt;This issue is only relevant for applications that accept untrusted template strings, rather than only untrusted template variable values.&lt;/p&gt;
&lt;p&gt;In addition, practical impact depends on what objects are passed into template formatting:&lt;/p&gt;
&lt;p&gt;- If applications only format simple values such as strings and numbers, impact is limited and may only result in formatting errors.
- If applications format ric…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-926x-3r5x-gfhw</guid>
    </item>
    <item>
      <title>PYSEC-2026-2563 — LangChain has incomplete f-string validation in prompt templates</title>
      <link>https://vulnerability.circl.lu/vuln/pysec-2026-2563</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: langchain-core&lt;/p&gt;
&lt;p&gt;LangChain&amp;#39;s f-string prompt-template validation was incomplete in two respects.&lt;/p&gt;
&lt;p&gt;First, some prompt template classes accepted f-string templates and formatted them without enforcing the same attribute-access validation as `PromptTemplate`. In particular, `DictPromptTemplate` and `ImagePromptTemplate` could accept templates containing attribute access or indexing expressions and subsequently evaluate those expressions during formatting.&lt;/p&gt;
&lt;p&gt;Examples of the affected shape include:&lt;/p&gt;
&lt;p&gt;```python
&amp;#34;{message.additional_kwargs[secret]}&amp;#34;
&amp;#34;https://example.com/{image.__class__.__name__}.png&amp;#34;
```&lt;/p&gt;
&lt;p&gt;Second, f-string validation based on parsed top-level field names did not reject nested replacement fields inside format specifiers. For example:&lt;/p&gt;
&lt;p&gt;```python
&amp;#34;{name:{name.__class__.__name__}}&amp;#34;
```&lt;/p&gt;
&lt;p&gt;In this pattern, the nested replacement field appears in the format specifier rather than in the top-level field name. As a result, earlier validation based on parsed field names did not reject the template even though Python formatting would still attempt to resolve the nested expression at runtime.&lt;/p&gt;
&lt;p&gt;## Affected usage&lt;/p&gt;
&lt;p&gt;This issue is only relevant for applications that accept untrusted template strings, rather than only untrusted template variable values.&lt;/p&gt;
&lt;p&gt;In addition, practical impact depends on what objects are passed into template formatting:&lt;/p&gt;
&lt;p&gt;- If applications only format simple values such as strings and numbers, impact is limited and may only result in formatting errors.
- If applications format ric…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: langchain-core&lt;/p&gt;
&lt;p&gt;LangChain&amp;#39;s f-string prompt-template validation was incomplete in two respects.&lt;/p&gt;
&lt;p&gt;First, some prompt template classes accepted f-string templates and formatted them without enforcing the same attribute-access validation as `PromptTemplate`. In particular, `DictPromptTemplate` and `ImagePromptTemplate` could accept templates containing attribute access or indexing expressions and subsequently evaluate those expressions during formatting.&lt;/p&gt;
&lt;p&gt;Examples of the affected shape include:&lt;/p&gt;
&lt;p&gt;```python
&amp;#34;{message.additional_kwargs[secret]}&amp;#34;
&amp;#34;https://example.com/{image.__class__.__name__}.png&amp;#34;
```&lt;/p&gt;
&lt;p&gt;Second, f-string validation based on parsed top-level field names did not reject nested replacement fields inside format specifiers. For example:&lt;/p&gt;
&lt;p&gt;```python
&amp;#34;{name:{name.__class__.__name__}}&amp;#34;
```&lt;/p&gt;
&lt;p&gt;In this pattern, the nested replacement field appears in the format specifier rather than in the top-level field name. As a result, earlier validation based on parsed field names did not reject the template even though Python formatting would still attempt to resolve the nested expression at runtime.&lt;/p&gt;
&lt;p&gt;## Affected usage&lt;/p&gt;
&lt;p&gt;This issue is only relevant for applications that accept untrusted template strings, rather than only untrusted template variable values.&lt;/p&gt;
&lt;p&gt;In addition, practical impact depends on what objects are passed into template formatting:&lt;/p&gt;
&lt;p&gt;- If applications only format simple values such as strings and numbers, impact is limited and may only result in formatting errors.
- If applications format ric…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/pysec-2026-2563</guid>
    </item>
  </channel>
</rss>
