<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-08T05:57:42.139848+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/cve-2026-40152</id>
    <title>CVE-2026-40152 — PraisonAIAgents has a Path Traversal via Unvalidated Glob Pattern in list_files Bypasses Workspace Boundary</title>
    <updated>2026-10-08T05:57:42.172027+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> MervinPraison PraisonAIAgents</p>
<p>PraisonAIAgents is a multi-agent teams system. Prior to 1.5.128, he list_files() tool in FileTools validates the directory parameter against workspace boundaries via _validate_path(), but passes the pattern parameter directly to Path.glob() without any validation. Since Python's Path.glob() supports .. path segments, an attacker can use relative path traversal in the glob pattern to enumerate arbitrary files outside the workspace, obtaining file metadata (existence, name, size, timestamps) for any path on the filesystem. This vulnerability is fixed in 1.5.128.</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-40152"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-7j2f-xc8p-fjmq</id>
    <title>GHSA-7j2f-xc8p-fjmq — PraisonAIAgents: Path Traversal via Unvalidated Glob Pattern in list_files Bypasses Workspace Boundary</title>
    <updated>2026-10-08T05:57:42.172129+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: praisonaiagents</p>
<p>## Summary</p>
<p>The `list_files()` tool in `FileTools` validates the `directory` parameter against workspace boundaries via `_validate_path()`, but passes the `pattern` parameter directly to `Path.glob()` without any validation. Since Python's `Path.glob()` supports `..` path segments, an attacker can use relative path traversal in the glob pattern to enumerate arbitrary files outside the workspace, obtaining file metadata (existence, name, size, timestamps) for any path on the filesystem.</p>
<p>## Details</p>
<p>The `_validate_path()` method at `file_tools.py:25` correctly prevents path traversal by checking for `..` segments and verifying the resolved path falls within the current workspace. All file operations (`read_file`, `write_file`, `copy_file`, etc.) route through this validation.</p>
<p>However, `list_files()` at `file_tools.py:114` only validates the `directory` parameter (line 127), while the `pattern` parameter is passed directly to `Path.glob()` on line 130:</p>
<p>```python
@staticmethod
def list_files(directory: str, pattern: Optional[str] = None) -&gt; List[Dict[str, Union[str, int]]]:
    try:
        safe_dir = FileTools._validate_path(directory)  # directory validated
        path = Path(safe_dir)
        if pattern:
            files = path.glob(pattern)  # pattern NOT validated — traversal possible
        else:
            files = path.iterdir()</p>
<p>result = []
        for file in files:
            if file.is_file():
                stat = file.stat()
                result.a…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-7j2f-xc8p-fjmq"/>
  </entry>
</feed>
