| Titel | AstrBotDevs AstrBot 4.25.2 Server-Side Request Forgery (CWE-918) |
|---|
| Beschreibung | # Technical Details
An authenticated Server-Side Request Forgery (SSRF) exists in the plugin update handlers (`update_plugin` and `update_all_plugins`) in `astrbot/dashboard/routes/plugin.py` of AstrBot.
The application fails to validate the `download_url`, `download_urls`, and `proxy` fields extracted from user-supplied JSON bodies before using them to make outbound requests.
# Vulnerable Code
File: astrbot/core/star/updator.py
Method: PluginUpdator.update
Why: The update method reads attacker-controlled URLs and directly passes them to the `httpx` HTTP client configured with `follow_redirects=True`. Neither the request domain, URL scheme, nor redirect targets are validated.
# Reproduction
1. Log in to the AstrBot dashboard using valid credentials.
2. Send a POST request to `/api/plugin/update` sending a target `name` and an attacker-controlled `download_url` (e.g., `"download_url": "http://127.0.0.1:19031/plugin.zip"`).
3. Confirm that the AstrBot server successfully completes an HTTP GET request to the specified internal or arbitrary host.
# Impact
- Allows an attacker to force the server into issuing outbound HTTP GET requests to arbitrary loopback or internal RFC1918 services.
- Permits internal network probing.
- Provides access to private mirrors, admin panels, and other services not reachable from the outside. |
|---|
| Quelle | ⚠️ https://gist.github.com/YLChen-007/f84070f78d9c9c9407b0c396189cd716 |
|---|
| Benutzer | Eric-d (UID 96861) |
|---|
| Einreichung | 09.06.2026 11:18 (vor 2 Monaten) |
|---|
| Moderieren | 17.07.2026 15:39 (1 month later) |
|---|
| Status | Akzeptiert |
|---|
| VulDB Eintrag | 379789 [AstrBotDevs AstrBot bis 4.25.2 Plugin Update plugin.py update_plugin/update_all_plugins download_url/download_urls/proxy erweiterte Rechte] |
|---|
| Punkte | 20 |
|---|