Server-side Request Forgery In Recursive URL Loader
With the following crawler configuration: ```python from bs4 import BeautifulSoup as Soup url = "https://example.com" loader = RecursiveUrlLoader( url=url, max_depth=2, extractor=lambda x: Soup(x, "html.parser").text ) docs = loader.load() ``` An attacker in control of the contents of `https://example.com` could place a malicious HTML file in there with links like "https://example.completely.different/my_file.html" and the crawler would proceed to download that file as well even though `prevent_outside=True`. https://github.com/langchain-ai/langchain/blob/bf0b3cc0b5ade1fb95a5b1b6fa260e99064c2e22/libs/community/langchain_community/document_loaders/recursive_url_loader.py#L51-L51 Resolved in https://github.com/langchain-ai/langchain/pull/15559
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2024-0243
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 00:53 UTC · Revision 1
Source evidence
Server-side Request Forgery In Recursive URL Loader
core-osv · Original sourcePublished 24 Feb 2024, 17:59 UTC
With the following crawler configuration: ```python from bs4 import BeautifulSoup as Soup url = "https://example.com" loader = RecursiveUrlLoader( url=url, max_depth=2, extractor=lambda x: Soup(x, "html.parser").text ) docs = loader.load() ``` An attacker in control of the contents of `https://example.com` could place a malicious HTML file in there with links like "https://example.completely.different/my_file.html" and the crawler would proceed to download that file as well even though `prevent_outside=True`. https://github.com/langchain-ai/langchain/blob/bf0b3cc0b5ade1fb95a5b1b6fa260e99064c2e22/libs/community/langchain_community/document_loaders/recursive_url_loader.py#L51-L51 Resolved in https://github.com/langchain-ai/langchain/pull/15559
osv:CVE-2024-0243
Complete source record
{
"id": "808f98a59a8995879d1edc23d9ab8b0f3e70890c4ecf2b7edeb53b8330062a1b",
"url": "https://osv.dev/vulnerability/CVE-2024-0243",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Server-side Request Forgery In Recursive URL Loader",
"summary": "With the following crawler configuration: ```python from bs4 import BeautifulSoup as Soup url = \"https://example.com\" loader = RecursiveUrlLoader( url=url, max_depth=2, extractor=lambda x: Soup(x, \"html.parser\").text ) docs = loader.load() ``` An attacker in control of the contents of `https://example.com` could place a malicious HTML file in there with links like \"https://example.completely.different/my_file.html\" and the crawler would proceed to download that file as well even though `prevent_outside=True`. https://github.com/langchain-ai/langchain/blob/bf0b3cc0b5ade1fb95a5b1b6fa260e99064c2e22/libs/community/langchain_community/document_loaders/recursive_url_loader.py#L51-L51 Resolved in https://github.com/langchain-ai/langchain/pull/15559",
"evidence": "osv:CVE-2024-0243",
"products": [],
"severity": "low",
"structured": {
"id": "CVE-2024-0243",
"aliases": [
"CVE-2024-0243",
"GHSA-h9j7-5xvc-qhg5",
"PYSEC-2024-235",
"PYSEC-2026-1509"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:C/C:L/I:L/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/langchain-ai/langchain",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "4ac61670b283897dca3ff9aaba0a5eed80389b3d"
},
{
"fixed": "bf0b3cc0b5ade1fb95a5b1b6fa260e99064c2e22"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:langchain:langchain:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "0.1.0"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "bf0b3cc0b5ade1fb95a5b1b6fa260e99064c2e22"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"v0.0.354",
"v0.0.353",
"v0.0.352",
"v0.0.351",
"v0.0.350",
"v0.0.349",
"v0.0.349-rc.2",
"v0.0.349-rc.1",
"v0.0.347",
"v0.0.348",
"v0.0.346",
"v0.0.345",
"v0.0.344",
"v0.0.343",
"v0.0.342",
"v0.0.341",
"v0.0.339rc3",
"v0.0.339rc2",
"v0.0.340",
"v0.0.339",
"v0.0.339rc1",
"v0.0.339rc0",
"v0.0.338",
"v0.0.337",
"v0.0.336",
"v0.0.335",
"v0.0.334",
"v0.0.333",
"v0.0.332",
"v0.0.331rc3",
"v0.0.331rc2",
"v0.0.331rc1",
"v0.0.331rc0",
"v0.0.331",
"v0.0.330",
"v0.0.329",
"v0.0.327",
"v0.0.326",
"v0.0.325",
"v0.0.324",
"v0.0.323",
"v0.0.322",
"v0.0.321",
"v0.0.320",
"v0.0.319",
"v0.0.318",
"v0.0.317",
"v0.0.316",
"v0.0.315",
"v0.0.314",
"v0.0.313",
"v0.0.312",
"v0.0.311",
"v0.0.310",
"v0.0.309",
"v0.0.308",
"v0.0.307",
"v0.0.306",
"v0.0.305",
"v0.0.304",
"v0.0.303",
"v0.0.302",
"v0.0.301",
"v0.0.298",
"v0.0.300",
"v0.0.299",
"v0.0.297",
"v0.0.296",
"v0.0.295",
"v0.0.294",
"v0.0.293",
"v0.0.292",
"v0.0.291",
"v0.0.290",
"v0.0.289",
"v0.0.288",
"v0.0.287",
"v0.0.286",
"v0.0.285",
"v0.0.284",
"v0.0.283",
"v0.0.281",
"v0.0.279",
"v0.0.278",
"v0.0.277",
"v0.0.276",
"v0.0.275",
"v0.0.274",
"v0.0.273",
"v0.0.272",
"v0.0.271",
"v0.0.270",
"v0.0.269",
"v0.0.268",
"v0.0.267",
"v0.0.266",
"v0.0.265",
"v0.0.264",
"v0.0.263",
"v0.0.262",
"v0.0.261",
"v0.0.260",
"v0.0.259",
"v0.0.258",
"v0.0.257",
"v0.0.256",
"v0.0.255",
"v0.0.254",
"v0.0.253",
"v0.0.252",
"v0.0.251",
"v0.0.250",
"v0.0.249",
"v0.0.248",
"v0.0.247",
"v0.0.245",
"v0.0.5",
"v0.0.244",
"v0.0.4",
"v0.0.243",
"v0.0.242",
"v0.0.2",
"v0.0.240",
"v0.0.1",
"v0.0.240rc4",
"v0.0.1rc4",
"v0.0.240rc1",
"v0.0.240rc0",
"v0.0.1rc3",
"v0.0.1rc2",
"v0.0.1rc1",
"v0.0.1rc0",
"v0.0.239",
"v0.0.238",
"v0.0.237",
"v0.0.236",
"v0.0.235",
"v0.0.234",
"v0.0.233",
"v0.0.232",
"v0.0.231",
"v0.0.230",
"v0.0.229",
"v0.0.228",
"v0.0.227",
"v0.0.226",
"v0.0.225",
"v0.0.224",
"v0.0.223",
"v0.0.222",
"v0.0.221",
"v0.0.220",
"v0.0.219",
"v0.0.218",
"v0.0.217",
"v0.0.216",
"v0.0.215",
"v0.0.214",
"v0.0.213",
"v0.0.212",
"v0.0.211",
"v0.0.210",
"v0.0.209",
"v0.0.208",
"v0.0.207",
"v0.0.206",
"v0.0.205",
"v0.0.204",
"v0.0.202",
"v0.0.201",
"v0.0.200",
"v0.0.199",
"v0.0.198",
"v0.0.197",
"v0.0.196",
"v0.0.195",
"v0.0.194",
"v0.0.193",
"v0.0.192",
"v0.0.191",
"v0.0.190",
"v0.0.189",
"v0.0.188",
"v0.0.187",
"v0.0.186",
"v0.0.185",
"v0.0.184",
"v0.0.183",
"v0.0.182",
"v0.0.181",
"v0.0.180",
"v0.0.179",
"v0.0.178",
"v0.0.177",
"v0.0.175",
"v0.0.174",
"v0.0.173",
"v0.0.172",
"v0.0.171",
"v0.0.170",
"v0.0.169",
"v0.0.168",
"v0.0.167",
"v0.0.166",
"v0.0.165",
"v0.0.164",
"v0.0.163",
"v0.0.161",
"v0.0.162",
"v0.0.160",
"v0.0.159",
"v0.0.158",
"v0.0.157",
"v0.0.156",
"v0.0.155",
"v0.0.154",
"v0.0.153",
"v0.0.152",
"v0.0.151",
"v0.0.150",
"v0.0.149",
"v0.0.147",
"v0.0.146",
"v0.0.145",
"v0.0.144",
"v0.0.143",
"v0.0.142",
"v0.0.141",
"v0.0.140",
"v0.0.139",
"v0.0.138",
"v0.0.137",
"v0.0.136",
"v0.0.135",
"v0.0.134",
"v0.0.133",
"v0.0.132",
"v0.0.131",
"v0.0.130",
"v0.0.129",
"v0.0.128",
"v0.0.127",
"v0.0.126",
"v0.0.125",
"v0.0.124",
"v0.0.123",
"v0.0.122",
"v0.0.121",
"v0.0.120",
"v0.0.119",
"v0.0.118",
"v0.0.117",
"v0.0.116",
"v0.0.115",
"v0.0.114",
"v0.0.113",
"v0.0.112",
"v0.0.111",
"v0.0.110",
"v0.0.109",
"v0.0.108",
"v0.0.107",
"v0.0.106",
"v0.0.105",
"v0.0.104",
"v0.0.103",
"v0.0.102",
"v0.0.101",
"v0.0.100",
"v0.0.99",
"v0.0.98",
"v0.0.97",
"v0.0.96",
"v0.0.95",
"v0.0.94",
"v0.0.93",
"v0.0.92",
"v0.0.91",
"v0.0.90",
"v0.0.89",
"v0.0.88",
"v0.0.87",
"v0.0.86",
"v0.0.85",
"v0.0.84",
"v0.0.83",
"v0.0.82",
"v0.0.81",
"v0.0.80",
"v0.0.79",
"v0.0.78",
"v0.0.77",
"v0.0.76",
"v0.0.75",
"v0.0.74",
"v0.0.73",
"v0.0.72",
"v0.0.71",
"v0.0.70",
"v0.0.69",
"v0.0.68",
"v0.0.67",
"v0.0.66",
"v0.0.65",
"v0.0.64"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-0243.json"
}
}
],
"modified": "2026-10-28T02:30:24.918519886Z",
"provider": "osv",
"references": [
"https://huntr.com/bounties/370904e7-10ac-40a4-a8d4-e2d16e1ca861",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/0xxx/CVE-2024-0243.json",
"https://nvd.nist.gov/vuln/detail/CVE-2024-0243",
"https://github.com/langchain-ai/langchain/commit/bf0b3cc0b5ade1fb95a5b1b6fa260e99064c2e22",
"https://github.com/langchain-ai/langchain/pull/15559"
],
"provider_metadata": {
"cwe_ids": [
"CWE-918"
],
"cna_assigner": "@huntr_ai",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/0xxx/CVE-2024-0243.json"
}
},
"related_cves": [
{
"value": "CVE-2024-0243",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 491336,
"published_at": "2024-02-24T17:59:26.498+00:00"
}