Whoogle Search Server Side Request Forgery vulnerability
Whoogle Search is a self-hosted metasearch engine. In versions prior to 0.8.4, the `element` method in `app/routes.py` does not validate the user-controlled `src_type` and `element_url` variables and passes them to the `send` method which sends a GET request on lines 339-343 in `request.py`, which leads to a server-side request forgery. This issue allows for crafting GET requests to internal and external resources on behalf of the server. For example, this issue would allow for accessing resources on the internal network that the server has access to, even though these resources may not be accessible on the internet. This issue is fixed in version 0.8.4.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2024-22203
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 7 Nov 2026, 01:14 UTC · Revision 1
Source evidence
Whoogle Search Server Side Request Forgery vulnerability
core-osv · Original sourcePublished 23 Jan 2024, 17:20 UTC
Whoogle Search is a self-hosted metasearch engine. In versions prior to 0.8.4, the `element` method in `app/routes.py` does not validate the user-controlled `src_type` and `element_url` variables and passes them to the `send` method which sends a GET request on lines 339-343 in `request.py`, which leads to a server-side request forgery. This issue allows for crafting GET requests to internal and external resources on behalf of the server. For example, this issue would allow for accessing resources on the internal network that the server has access to, even though these resources may not be accessible on the internet. This issue is fixed in version 0.8.4.
osv:CVE-2024-22203
Complete source record
{
"id": "9c2968feca497fb6e4cb58fc979bfa898bd8f73c4b555e7093041b8b5ce5c275",
"url": "https://osv.dev/vulnerability/CVE-2024-22203",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Whoogle Search Server Side Request Forgery vulnerability",
"summary": "Whoogle Search is a self-hosted metasearch engine. In versions prior to 0.8.4, the `element` method in `app/routes.py` does not validate the user-controlled `src_type` and `element_url` variables and passes them to the `send` method which sends a GET request on lines 339-343 in `request.py`, which leads to a server-side request forgery. This issue allows for crafting GET requests to internal and external resources on behalf of the server. For example, this issue would allow for accessing resources on the internal network that the server has access to, even though these resources may not be accessible on the internet. This issue is fixed in version 0.8.4.",
"evidence": "osv:CVE-2024-22203",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2024-22203",
"aliases": [
"CVE-2024-22203",
"GHSA-q97g-c29h-x2p7",
"PYSEC-2024-20"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/benbusby/whoogle-search",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "b97f3dd4c063d5bc35fcdc8fde299c721ec56594"
},
{
"fixed": "3a2e0b262e4a076a20416b45e6b6f23fd265aeda"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:benbusby:whoogle_search:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "0.8.4"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "3a2e0b262e4a076a20416b45e6b6f23fd265aeda"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"v0.8.3",
"v0.8.2",
"v0.8.1",
"v0.8.0",
"v0.7.4",
"v0.7.3",
"v0.7.2",
"v0.7.1",
"v0.7.0",
"v0.6.0",
"v0.5.4",
"v0.5.3",
"v0.5.2",
"v0.5.1",
"v0.5.0",
"v0.4.1",
"v0.4.0",
"v0.3.2",
"v0.3.1",
"v0.3.0",
"v0.1.4",
"v0.1.3",
"v0.1.2",
"v0.1.1",
"v0.1.0",
"v0.0.1"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-22203.json"
}
}
],
"modified": "2026-10-28T02:30:48.865342507Z",
"provider": "osv",
"references": [
"https://github.com/benbusby/whoogle-search/blob/92e8ede24e9277a5440d403f75877209f1269884/app/request.py#L339-L343",
"https://github.com/benbusby/whoogle-search/blob/92e8ede24e9277a5440d403f75877209f1269884/app/routes.py#L465-L490",
"https://github.com/benbusby/whoogle-search/blob/92e8ede24e9277a5440d403f75877209f1269884/app/routes.py#L466",
"https://github.com/benbusby/whoogle-search/blob/92e8ede24e9277a5440d403f75877209f1269884/app/routes.py#L476",
"https://github.com/benbusby/whoogle-search/blob/92e8ede24e9277a5440d403f75877209f1269884/app/routes.py#L479",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/22xxx/CVE-2024-22203.json",
"https://nvd.nist.gov/vuln/detail/CVE-2024-22203",
"https://securitylab.github.com/advisories/GHSL-2023-186_GHSL-2023-189_benbusby_whoogle-search/",
"https://github.com/benbusby/whoogle-search/commit/3a2e0b262e4a076a20416b45e6b6f23fd265aeda"
],
"provider_metadata": {
"cwe_ids": [
"CWE-918"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/22xxx/CVE-2024-22203.json"
}
},
"related_cves": [
{
"value": "CVE-2024-22203",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 516894,
"published_at": "2024-01-23T17:20:15.554+00:00"
}