Crawl4AI 0.7.0 before 0.9.4 SSRF via link_preview_config URL Seeder
Crawl4AI 0.7.0 before 0.9.4 contains a server-side request forgery vulnerability that allows API clients to reach internal addresses by enabling link_preview_config on /crawl requests. Attackers can supply a controlled page with include_external and include_patterns set, causing AsyncUrlSeeder to fetch internal, private, and cloud-metadata links and return their parsed head data.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-109238
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 6 Nov 2026, 02:26 UTC · Revision 1
Source evidence
Crawl4AI 0.7.0 before 0.9.4 SSRF via link_preview_config URL Seeder
core-osv · Original sourcePublished 12 Oct 2026, 16:04 UTC
Crawl4AI 0.7.0 before 0.9.4 contains a server-side request forgery vulnerability that allows API clients to reach internal addresses by enabling link_preview_config on /crawl requests. Attackers can supply a controlled page with include_external and include_patterns set, causing AsyncUrlSeeder to fetch internal, private, and cloud-metadata links and return their parsed head data.
osv:CVE-2026-109238
Complete source record
{
"id": "4aa0e8c557e73787e6aa533be8239e279a5c3f8ba49dfddf424047d97cb97f33",
"url": "https://osv.dev/vulnerability/CVE-2026-109238",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Crawl4AI 0.7.0 before 0.9.4 SSRF via link_preview_config URL Seeder",
"summary": "Crawl4AI 0.7.0 before 0.9.4 contains a server-side request forgery vulnerability that allows API clients to reach internal addresses by enabling link_preview_config on /crawl requests. Attackers can supply a controlled page with include_external and include_patterns set, causing AsyncUrlSeeder to fetch internal, private, and cloud-metadata links and return their parsed head data.",
"evidence": "osv:CVE-2026-109238",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2026-109238",
"aliases": [
"CVE-2026-109238",
"GHSA-wh5w-hmj3-vgg7"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/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": "7b9ba3015f3458e366dbb851a7e01c9ef8fbc6b4"
},
{
"fixed": "133e1d92e37885dfccc03ea2e3687d06c98b7ceb"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0.7.0"
},
{
"fixed": "0.9.4"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"introduced": "0.7.0"
},
{
"fixed": "0.9.4"
}
],
"source": "DESCRIPTION"
}
]
}
}
],
"versions": [
"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"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-109238.json"
}
}
],
"modified": "2026-10-28T02:30:45.904892143Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/109xxx/CVE-2026-109238.json",
"https://github.com/unclecode/crawl4ai/security/advisories/GHSA-wh5w-hmj3-vgg7",
"https://nvd.nist.gov/vuln/detail/CVE-2026-109238",
"https://www.vulncheck.com/advisories/crawl4ai-0.7.0-before-0.9.4-ssrf-via-link-preview-config-url-seeder"
],
"provider_metadata": {
"cwe_ids": [
"CWE-918"
],
"cna_assigner": "VulnCheck",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/109xxx/CVE-2026-109238.json"
}
},
"related_cves": [
{
"value": "CVE-2026-109238",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 514266,
"published_at": "2026-10-12T16:04:15.75+00:00"
}