<?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-02T23:26:17.437409+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/cve-2026-34755</id>
    <title>CVE-2026-34755 — vLLM Affected by Denial of Service via Unbounded Frame Count in video/jpeg Base64 Processing</title>
    <updated>2026-10-02T23:26:17.439158+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> vllm-project vllm, Red Hat AI Inference Server 3.2, Red Hat AI Inference Server 3.4, Red Hat Enterprise Linux AI 3.4, Red Hat AI Inference Server, Red Hat OpenShift AI (RHOAI)</p>
<p>vLLM is an inference and serving engine for large language models (LLMs). From 0.7.0 to before 0.19.0, the VideoMediaIO.load_base64() method at vllm/multimodal/media/video.py splits video/jpeg data URLs by comma to extract individual JPEG frames, but does not enforce a frame count limit. The num_frames parameter (default: 32), which is enforced by the load_bytes() code path, is completely bypassed in the video/jpeg base64 path. An attacker can send a single API request containing thousands of comma-separated base64-encoded JPEG frames, causing the server to decode all frames into memory and crash with OOM. This vulnerability is fixed in 0.19.0.</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/cve-2026-34755"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ghsa-pq5c-rjhq-qp7p</id>
    <title>GHSA-pq5c-rjhq-qp7p — vLLM: Denial of Service via Unbounded Frame Count in video/jpeg Base64 Processing</title>
    <updated>2026-10-02T23:26:17.439240+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: vllm</p>
<p>## Summary</p>
<p>The `VideoMediaIO.load_base64()` method at `vllm/multimodal/media/video.py:51-62` splits `video/jpeg` data URLs by comma to extract individual JPEG frames, but does not enforce a frame count limit. The `num_frames` parameter (default: 32), which is enforced by the `load_bytes()` code path at line 47-48, is completely bypassed in the `video/jpeg` base64 path. An attacker can send a single API request containing thousands of comma-separated base64-encoded JPEG frames, causing the server to decode all frames into memory and crash with OOM.</p>
<p>## Details</p>
<p>### Vulnerable code</p>
<p>```python
# video.py:51-62
def load_base64(self, media_type: str, data: str) -&gt; tuple[npt.NDArray, dict[str, Any]]:
    if media_type.lower() == "video/jpeg":
        load_frame = partial(self.image_io.load_base64, "image/jpeg")
        return np.stack(
            [np.asarray(load_frame(frame_data)) for frame_data in data.split(",")]
            #                                                       ^^^^^^^^^^
            # Unbounded split — no frame count limit
        ), {}
    return self.load_bytes(base64.b64decode(data))
```</p>
<p>The `load_bytes()` path (line 47-48) properly delegates to a video loader that respects `self.num_frames` (default 32). The `load_base64("video/jpeg", ...)` path bypasses this limit entirely — `data.split(",")` produces an unbounded list and every frame is decoded into a numpy array.</p>
<p>### video/jpeg is part of vLLM's public API</p>
<p>`video/jpeg` is a vLLM-specific MIME typ…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ghsa-pq5c-rjhq-qp7p"/>
  </entry>
</feed>
