<?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://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-17T17:53:38.284840+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" 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://cve.radiocsirt.org/vuln/euvd-2026-291040</id>
    <title>EUVD-2026-291040</title>
    <updated>2026-10-17T17:53:38.287676+00:00</updated>
    <content>EUVD-2026-291040</content>
    <link href="https://cve.radiocsirt.org/vuln/euvd-2026-291040"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/fkie_cve-2026-40114</id>
    <title>fkie_cve-2026-40114</title>
    <updated>2026-10-17T17:53:38.287710+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>PraisonAI is a multi-agent teams system. Prior to 4.5.128, the /api/v1/runs endpoint accepts an arbitrary webhook_url in the request body with no URL validation. When a submitted job completes (success or failure), the server makes an HTTP POST request to this URL using httpx.AsyncClient. An unauthenticated attacker can use this to make the server send POST requests to arbitrary internal or external destinations, enabling SSRF against cloud metadata services, internal APIs, and other network-adjacent services. This vulnerability is fixed in 4.5.128.</p>
      </div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/fkie_cve-2026-40114"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ghsa-8frj-8q3m-xhgm</id>
    <title>GHSA-8frj-8q3m-xhgm — PraisonAI Vulnerable to Server-Side Request Forgery via Unvalidated webhook_url in Jobs API</title>
    <updated>2026-10-17T17:53:38.287743+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: PraisonAI</p>
<p>## Summary</p>
<p>The `/api/v1/runs` endpoint accepts an arbitrary `webhook_url` in the request body with no URL validation. When a submitted job completes (success or failure), the server makes an HTTP POST request to this URL using `httpx.AsyncClient`. An unauthenticated attacker can use this to make the server send POST requests to arbitrary internal or external destinations, enabling SSRF against cloud metadata services, internal APIs, and other network-adjacent services.</p>
<p>## Details</p>
<p>The vulnerability exists across the full request lifecycle:</p>
<p>**1. User input accepted without validation** — `models.py:32`:
```python
class JobSubmitRequest(BaseModel):
    webhook_url: Optional[str] = Field(None, description="URL to POST results when complete")
```
The field is a plain `str` with no URL validation — no scheme restriction, no host filtering.</p>
<p>**2. Stored directly on the Job object** — `router.py:80-86`:
```python
job = Job(
    prompt=body.prompt,
    ...
    webhook_url=body.webhook_url,
    ...
)
```</p>
<p>**3. Used in an outbound HTTP request** — `executor.py:385-415`:
```python
async def _send_webhook(self, job: Job):
    if not job.webhook_url:
        return
    try:
        import httpx
        payload = {
            "job_id": job.id,
            "status": job.status.value,
            "result": job.result if job.status == JobStatus.SUCCEEDED else None,
            "error": job.error if job.status == JobStatus.FAILED else None,
            ...
        }
        async with htt…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ghsa-8frj-8q3m-xhgm"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/pysec-2026-2906</id>
    <title>PYSEC-2026-2906 — PraisonAI Vulnerable to Server-Side Request Forgery via Unvalidated webhook_url in Jobs API</title>
    <updated>2026-10-17T17:53:38.287826+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: praisonai</p>
<p>## Summary</p>
<p>The `/api/v1/runs` endpoint accepts an arbitrary `webhook_url` in the request body with no URL validation. When a submitted job completes (success or failure), the server makes an HTTP POST request to this URL using `httpx.AsyncClient`. An unauthenticated attacker can use this to make the server send POST requests to arbitrary internal or external destinations, enabling SSRF against cloud metadata services, internal APIs, and other network-adjacent services.</p>
<p>## Details</p>
<p>The vulnerability exists across the full request lifecycle:</p>
<p>**1. User input accepted without validation** — `models.py:32`:
```python
class JobSubmitRequest(BaseModel):
    webhook_url: Optional[str] = Field(None, description="URL to POST results when complete")
```
The field is a plain `str` with no URL validation — no scheme restriction, no host filtering.</p>
<p>**2. Stored directly on the Job object** — `router.py:80-86`:
```python
job = Job(
    prompt=body.prompt,
    ...
    webhook_url=body.webhook_url,
    ...
)
```</p>
<p>**3. Used in an outbound HTTP request** — `executor.py:385-415`:
```python
async def _send_webhook(self, job: Job):
    if not job.webhook_url:
        return
    try:
        import httpx
        payload = {
            "job_id": job.id,
            "status": job.status.value,
            "result": job.result if job.status == JobStatus.SUCCEEDED else None,
            "error": job.error if job.status == JobStatus.FAILED else None,
            ...
        }
        async with htt…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/pysec-2026-2906"/>
  </entry>
</feed>
