# CVE-2024-22203: Whoogle Search Server Side Request Forgery vulnerability

> Attacker can force the server to make requests to internal or external resources, potentially accessing private network data.

- **Severity:** Critical 9.1 (`CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 23 Jan 2024
- **Updated:** 13 Nov 2024
- **Also known as:** GHSA-q97g-c29h-x2p7, PYSEC-2024-20

## What is CVE-2024-22203?

CVE-2024-22203 is a critical server-side request forgery vulnerability in benbusby whoogle-search, published on 23 Jan 2024. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official description

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.

Weakness: CWE-918 (Server-Side Request Forgery)

## Which versions are affected by CVE-2024-22203?

3 open source packages ship an affected version, including whoogle-search. It affects 1 product.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `whoogle-search` | PyPI | All versions | 0.8.4 |
| `whoogle-search` | PyPI | All versions | 0.8.4 |
| `whoogle-search` | PyPI | All versions | 0.8.4 |

Products: Benbusby Whoogle Search.

## How do I fix CVE-2024-22203?

Upgrade whoogle-search to 0.8.4 or later.

## Is CVE-2024-22203 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2024-22203 exists.

Public exploit code:

- Case study: Whoogle Search CVE-2024-22203/22204/22205 (SSRF, config-name path traversal). Demo only, not for use. (github_poc): https://github.com/ferralon-demo/whoogle-search-ssrf-path-traversal

## Other vulnerabilities in benbusby whoogle-search

- [CVE-2024-22205](https://insights.sbomify.com/CVE-2024-22205/): Whoogle Search Server Side Request Forgery vulnerability (critical 9.1)
- [CVE-2024-53305](https://insights.sbomify.com/CVE-2024-53305/): Whoogle allows attackers to execute arbitrary code via supplying a crafted search query (high 7.3)
- [CVE-2024-22417](https://insights.sbomify.com/CVE-2024-22417/): Whoogle Search Cross-site Scripting vulnerability (medium 6.1)
- [CVE-2024-22204](https://insights.sbomify.com/CVE-2024-22204/): Whoogle Search Limited File Write vulnerability (medium 5.3)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2024-22203 and fix it if it is affected.

What it is: CVE-2024-22203 is a critical server-side request forgery vulnerability in benbusby whoogle-search, published on 23 Jan 2024. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2024-22203 exists.

Affected packages and fixed versions:
- whoogle-search (PyPI): affected all versions; fixed in 0.8.4
- whoogle-search (PyPI): affected all versions; fixed in 0.8.4
- whoogle-search (PyPI): affected all versions; fixed in 0.8.4

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2024-22203/ (Markdown: https://insights.sbomify.com/CVE-2024-22203/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2024-22203
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2024-22203
- OSV: https://osv.dev/vulnerability/CVE-2024-22203

---
From sbomify Insights: https://insights.sbomify.com/CVE-2024-22203/
Summaries are generated and may contain mistakes; the official description above is the record.
