<?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-08T08:32:36.330461+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-40117</id>
    <title>CVE-2026-40117 — PraisonAIAgents Affected by Arbitrary File Read via read_skill_file Missing Workspace Boundary and Approval Gate</title>
    <updated>2026-10-08T08:32:37.457779+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, read_skill_file() in skill_tools.py allows reading arbitrary files from the filesystem by accepting an unrestricted skill_path parameter. Unlike file_tools.read_file which enforces workspace boundary confinement, and unlike run_skill_script which requires critical-level approval, read_skill_file has neither protection. An agent influenced by prompt injection can exfiltrate sensitive files without triggering any approval prompt. This vulnerability is fixed in 1.5.128.</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-40117"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/pysec-2026-2949</id>
    <title>PYSEC-2026-2949 — PraisonAIAgents: Arbitrary File Read via read_skill_file Missing Workspace Boundary and Approval Gate</title>
    <updated>2026-10-08T08:32:37.457882+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>`read_skill_file()` in `skill_tools.py` allows reading arbitrary files from the filesystem by accepting an unrestricted `skill_path` parameter. Unlike `file_tools.read_file` which enforces workspace boundary confinement, and unlike `run_skill_script` which requires critical-level approval, `read_skill_file` has neither protection. An agent influenced by prompt injection can exfiltrate sensitive files without triggering any approval prompt.</p>
<p>## Details</p>
<p>The vulnerability is a missing authorization check in `read_skill_file()` at `src/praisonai-agents/praisonaiagents/tools/skill_tools.py:128`.</p>
<p>The function's path validation on line 163 only ensures `file_path` doesn't escape `skill_path` via directory traversal:</p>
<p>```python
# skill_tools.py:128-170
def read_skill_file(self, skill_path: str, file_path: str, encoding: str = 'utf-8') -&gt; str:
    # ...
    skill_path = os.path.expanduser(skill_path)      # line 147
    if not os.path.isabs(skill_path):
        skill_path = os.path.join(self._working_directory, skill_path)
    skill_path = os.path.abspath(skill_path)          # line 150</p>
<p># ... existence checks ...</p>
<p>full_path = os.path.join(skill_path, file_path)   # line 159
    full_path = os.path.abspath(full_path)             # line 160</p>
<p># Security check: ensure file is within skill directory
    if not full_path.startswith(skill_path):           # line 163
        return f"Error: Path traversal detected..."</p>
<p>with open(full_path, 'r', encoding=encodin…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/pysec-2026-2949"/>
  </entry>
</feed>
