<?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-09-28T15:19:04.295471+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-71428</id>
    <title>CVE-2026-71428 — unstructured: Server-Side Request Forgery in the URL-based partitioning</title>
    <updated>2026-09-28T15:19:04.619404+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Unstructured-IO unstructured</p>
<p>The unstructured library provides open-source components for ingesting and pre-processing images and text documents, such as PDFs, HTML, Word docs, and many more. From 0.4.7 until 0.24.0, the url argument of partition, partition_html, and partition_md is fetched without host validation in unstructured/partition/auto.py, unstructured/partition/html/partition.py, and unstructured/partition/md.py. An attacker who controls that URL can make a server-side ingestion service request loopback addresses, internal HTTP services, or cloud metadata endpoints through direct targets, redirects, or DNS rebinding. The response body is returned as Element text, allowing internal response disclosure, and side-effecting GET endpoints may also be triggered. This issue is fixed in version 0.24.0.</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-71428"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-4mvj-m6j5-pmf7</id>
    <title>GHSA-4mvj-m6j5-pmf7 — unstructured: Server-Side Request Forgery in the URL-based partitioning</title>
    <updated>2026-09-28T15:19:04.619504+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: unstructured</p>
<p>### Summary</p>
<p>Server-Side Request Forgery in `unstructured`. The `url=` argument of `partition()`, `partition_html()`, and `partition_md()` is fetched via `requests.get()` with no host validation. The response body is returned as `Element` text, so this is a **full-read SSRF** — attackers reach loopback admin APIs, internal HTTP services, and cloud metadata endpoints, and read the response.</p>
<p>`unstructured` is the de facto URL ingestion layer for LangChain `UnstructuredURLLoader`, LlamaIndex `UnstructuredReader`, Chainlit, and many agent frameworks — secure defaults must live in the library, not in every downstream caller.</p>
<p>### Details</p>
<p>Three sinks, all in `unstructured == 0.22.26` (verified on `main` at `199f255`):</p>
<p>- `unstructured/partition/auto.py:303` — `file_and_type_from_url()`, reached via `partition(url=…)`.
- `unstructured/partition/html/partition.py:160` — `partition_html(url=…)`. Post-fetch `Content-Type` check runs after the request hits the target.
- `unstructured/partition/md.py:96` — `partition_md(url=…)`. No timeout (SSRF + slow-loris DoS).</p>
<p>None of `is_private`, `is_loopback`, `ipaddress`, `gethostbyname`, or `allow_redirects` appear in any of the three files. Three exploitation paths apply: direct private-IP target; redirect bypass (`allow_redirects=True` default); DNS rebinding (TOCTOU, closeable only by socket-pinning). Affected since `0.4.7` (Feb 2023) — ~219 releases, no validation ever introduced.</p>
<p>### PoC</p>
<p>Local-only. `pip install unstructured==0.22.26…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-4mvj-m6j5-pmf7"/>
  </entry>
</feed>
