Skip to content
Heist/ feed
Back to feed
High

Crawl4AI before 0.9.3 SSRF via PDFContentScrapingStrategy

Type: advisorySources: OSV

Crawl4AI before 0.9.3 contains a server-side request forgery vulnerability in PDFContentScrapingStrategy where _get_pdf_path() re-downloads targets with Python requests without egress validation. Authenticated attackers can supply URLs that redirect to internal addresses or use DNS rebinding to access internal services, exfiltrating responses through PDF text extraction in crawl results.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-91943
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 16:12 UTC · Revision 1

Source evidence

Crawl4AI before 0.9.3 SSRF via PDFContentScrapingStrategy

core-osv · Original source

Published 15 Sept 2026, 15:18 UTC

Crawl4AI before 0.9.3 contains a server-side request forgery vulnerability in PDFContentScrapingStrategy where _get_pdf_path() re-downloads targets with Python requests without egress validation. Authenticated attackers can supply URLs that redirect to internal addresses or use DNS rebinding to access internal services, exfiltrating responses through PDF text extraction in crawl results.

osv:CVE-2026-91943
Complete source record
{
  "id": "7834b5fb34320beceefd60493fcc2bf719c0900d3cd1cf8ee0b3b1c46f233ed4",
  "url": "https://osv.dev/vulnerability/CVE-2026-91943",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Crawl4AI before 0.9.3 SSRF via PDFContentScrapingStrategy",
    "summary": "Crawl4AI before 0.9.3 contains a server-side request forgery vulnerability in PDFContentScrapingStrategy where _get_pdf_path() re-downloads targets with Python requests without egress validation. Authenticated attackers can supply URLs that redirect to internal addresses or use DNS rebinding to access internal services, exfiltrating responses through PDF text extraction in crawl results.",
    "evidence": "osv:CVE-2026-91943",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-91943",
      "aliases": [
        "CVE-2026-91943",
        "GHSA-q5rj-45vw-vp2g"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/unclecode/crawl4ai",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "4bcd5fa8a56000ce103dd499e8ecdff2439f3e9c"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "0.9.3"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  },
                  {
                    "range": [
                      {
                        "introduced": "4AI"
                      },
                      {
                        "fixed": "0.9.3"
                      }
                    ],
                    "source": "DESCRIPTION"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v0.9.2",
            "docker-rebuild-v0.9.2",
            "v0.9.1",
            "docker-rebuild-v0.9.1",
            "v0.9.0",
            "docker-rebuild-v0.9.0",
            "v0.8.9",
            "docker-rebuild-v0.8.9",
            "v0.8.8",
            "docker-rebuild-v0.8.8",
            "v0.8.7",
            "docker-rebuild-v0.8.7",
            "docker-rebuild-v0.8.6",
            "v0.8.6",
            "v0.7.4",
            "v0.7.3",
            "v0.7.2",
            "v0.7.1",
            "v0.7.0",
            "vr0.6.3",
            "v0.6.3",
            "vr0.6.0",
            "vr0.6.0rc1",
            "v0.5.0.post1",
            "v0.4.243",
            "v0.4.24",
            "v0.3.745",
            "v.3.72",
            "v0.3.6",
            "0.3.4",
            "v0.3.3",
            "v0.3.0",
            "v0.2.77",
            "v0.0.75",
            "v0.2.74",
            "v0.2.73",
            "v0.2.72",
            "v0.2.71",
            "v0.2.7",
            "v0.2.6",
            "v0.2.4",
            "v0.2.1",
            "v0.2.0",
            "v0.1.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-91943.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:30.302196622Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/91xxx/CVE-2026-91943.json",
        "https://github.com/unclecode/crawl4ai/security/advisories/GHSA-q5rj-45vw-vp2g",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-91943",
        "https://www.vulncheck.com/advisories/crawl4ai-before-0.9.3-ssrf-via-pdfcontentscrapingstrategy"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-918"
        ],
        "cna_assigner": "VulnCheck",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/91xxx/CVE-2026-91943.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-91943",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 497192,
  "published_at": "2026-09-15T15:18:03.108+00:00"
}