<?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, 08 Oct 2026 06:09:03 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-335481</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-335481</link>
      <description>EUVD-2026-335481</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-335481</guid>
    </item>
    <item>
      <title>fkie_cve-2026-58198</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-58198</link>
      <description>&lt;p&gt;ChatterBot is a machine learning, conversational dialog engine for creating chat bots. Prior to 1.2.14, UbuntuCorpusTrainer.extract() uses a predictable home-rooted output directory (~/ubuntu_data/ubuntu_dialogs) with a check-then-create pattern followed by tar.extractall(path=self.data_path), allowing a local attacker who pre-plants a symlink at the predictable path to cause archive contents to be written through the symlink to an attacker-chosen directory. This issue is fixed in version 1.2.14.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;ChatterBot is a machine learning, conversational dialog engine for creating chat bots. Prior to 1.2.14, UbuntuCorpusTrainer.extract() uses a predictable home-rooted output directory (~/ubuntu_data/ubuntu_dialogs) with a check-then-create pattern followed by tar.extractall(path=self.data_path), allowing a local attacker who pre-plants a symlink at the predictable path to cause archive contents to be written through the symlink to an attacker-chosen directory. This issue is fixed in version 1.2.14.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-58198</guid>
    </item>
    <item>
      <title>GHSA-wvrh-2f4m-924v — ChatterBot: Symlink-Following Arbitrary Write via UbuntuCorpusTrainer</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-wvrh-2f4m-924v</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: ChatterBot&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;ChatterBot&amp;#39;s `UbuntuCorpusTrainer.extract()` uses a predictable, home-rooted output directory (`~/ubuntu_data/ubuntu_dialogs`) with a check-then-create pattern (`if not os.path.exists: os.makedirs`) followed by `tar.extractall(path=self.data_path)`. A local attacker who pre-plants a symlink at the predictable path causes `os.path.exists()` to return True (following the symlink), skipping `makedirs`, and subsequent `extractall` writes archive contents through the symlink to the attacker-chosen directory.&lt;/p&gt;
&lt;p&gt;The existing `safe_extract` function validates tar **member names** (zip-slip defense) but does not validate the **output directory** itself — it cannot detect that `self.data_path` is a symlink. This is the defining distinction between the archive_extraction (zip-slip) and insecure_fs_create_toctou families.&lt;/p&gt;
&lt;p&gt;## Vulnerability Details&lt;/p&gt;
&lt;p&gt;### Predictable output directory (line 535-546)&lt;/p&gt;
&lt;p&gt;```python
home_directory = os.path.expanduser(&amp;#39;~&amp;#39;)
self.data_directory = kwargs.get(
    &amp;#39;ubuntu_corpus_data_directory&amp;#39;,
    os.path.join(home_directory, &amp;#39;ubuntu_data&amp;#39;)   # ~/ubuntu_data — predictable
)
self.data_path = os.path.join(
    self.data_directory, &amp;#39;ubuntu_dialogs&amp;#39;          # ~/ubuntu_data/ubuntu_dialogs
)
```&lt;/p&gt;
&lt;p&gt;### Check-then-create (line 621-622)&lt;/p&gt;
&lt;p&gt;```python
def extract(self, file_path: str):
    if not os.path.exists(self.data_path):   # ← follows symlink → True → skips makedirs
        os.makedirs(self.data_path)          # ← never reached if symlink exists
```&lt;/p&gt;
&lt;p&gt;### Extra…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: ChatterBot&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;ChatterBot&amp;#39;s `UbuntuCorpusTrainer.extract()` uses a predictable, home-rooted output directory (`~/ubuntu_data/ubuntu_dialogs`) with a check-then-create pattern (`if not os.path.exists: os.makedirs`) followed by `tar.extractall(path=self.data_path)`. A local attacker who pre-plants a symlink at the predictable path causes `os.path.exists()` to return True (following the symlink), skipping `makedirs`, and subsequent `extractall` writes archive contents through the symlink to the attacker-chosen directory.&lt;/p&gt;
&lt;p&gt;The existing `safe_extract` function validates tar **member names** (zip-slip defense) but does not validate the **output directory** itself — it cannot detect that `self.data_path` is a symlink. This is the defining distinction between the archive_extraction (zip-slip) and insecure_fs_create_toctou families.&lt;/p&gt;
&lt;p&gt;## Vulnerability Details&lt;/p&gt;
&lt;p&gt;### Predictable output directory (line 535-546)&lt;/p&gt;
&lt;p&gt;```python
home_directory = os.path.expanduser(&amp;#39;~&amp;#39;)
self.data_directory = kwargs.get(
    &amp;#39;ubuntu_corpus_data_directory&amp;#39;,
    os.path.join(home_directory, &amp;#39;ubuntu_data&amp;#39;)   # ~/ubuntu_data — predictable
)
self.data_path = os.path.join(
    self.data_directory, &amp;#39;ubuntu_dialogs&amp;#39;          # ~/ubuntu_data/ubuntu_dialogs
)
```&lt;/p&gt;
&lt;p&gt;### Check-then-create (line 621-622)&lt;/p&gt;
&lt;p&gt;```python
def extract(self, file_path: str):
    if not os.path.exists(self.data_path):   # ← follows symlink → True → skips makedirs
        os.makedirs(self.data_path)          # ← never reached if symlink exists
```&lt;/p&gt;
&lt;p&gt;### Extra…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-wvrh-2f4m-924v</guid>
    </item>
  </channel>
</rss>
