Advisory Database
  • Advisories
  • Dependency Scanning
  1. pypi
  2. ›
  3. chatterbot
  4. ›
  5. GHSA-wvrh-2f4m-924v

GHSA-wvrh-2f4m-924v: ChatterBot: Symlink-Following Arbitrary Write via UbuntuCorpusTrainer

June 19, 2026

ChatterBot’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.

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.

References

  • github.com/advisories/GHSA-wvrh-2f4m-924v
  • github.com/gunthercox/ChatterBot/security/advisories/GHSA-wvrh-2f4m-924v

Code Behaviors & Features

Detect and mitigate GHSA-wvrh-2f4m-924v with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions before 1.2.14

Fixed versions

  • 1.2.14

Solution

Upgrade to version 1.2.14 or above.

Impact 5.5 MEDIUM

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

Learn more about CVSS

Weakness

  • CWE-367: Time-of-check Time-of-use (TOCTOU) Race Condition
  • CWE-61: UNIX Symbolic Link (Symlink) Following

Source file

pypi/chatterbot/GHSA-wvrh-2f4m-924v.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Tue, 23 Jun 2026 12:23:12 +0000.