Advisory Database
  • Advisories
  • Dependency Scanning
  1. pypi
  2. ›
  3. praisonai
  4. ›
  5. CVE-2026-40156

CVE-2026-40156: PraisonAI Vulnerable to Implicit Execution of Arbitrary Code via Automatic `tools.py` Loading

April 10, 2026

PraisonAI automatically loads a file named tools.py from the current working directory to discover and register custom agent tools. This loading process uses importlib.util.spec_from_file_location and immediately executes module-level code via spec.loader.exec_module() without explicit user consent, validation, or sandboxing.

The tools.py file is loaded implicitly, even when it is not referenced in configuration files or explicitly requested by the user. As a result, merely placing a file named tools.py in the working directory is sufficient to trigger code execution.

This behavior violates the expected security boundary between user-controlled project files (e.g., YAML configurations) and executable code, as untrusted content in the working directory is treated as trusted and executed automatically.

If an attacker can place a malicious tools.py file into a directory where a user or automated system (e.g., CI/CD pipeline) runs praisonai, arbitrary code execution occurs immediately upon startup, before any agent logic begins.


References

  • github.com/MervinPraison/PraisonAI
  • github.com/MervinPraison/PraisonAI/releases/tag/v4.5.128
  • github.com/MervinPraison/PraisonAI/security/advisories/GHSA-2g3w-cpc4-chr4
  • github.com/advisories/GHSA-2g3w-cpc4-chr4
  • nvd.nist.gov/vuln/detail/CVE-2026-40156

Code Behaviors & Features

Detect and mitigate CVE-2026-40156 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 4.5.128

Fixed versions

  • 4.5.128

Solution

Upgrade to version 4.5.128 or above.

Impact 7.8 HIGH

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

Learn more about CVSS

Weakness

  • CWE-426: Untrusted Search Path
  • CWE-829: Inclusion of Functionality from Untrusted Control Sphere
  • CWE-94: Improper Control of Generation of Code ('Code Injection')

Source file

pypi/praisonai/CVE-2026-40156.yml

Spotted a mistake? Edit the file on GitLab.

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

Page generated Sat, 09 May 2026 12:17:57 +0000.