CVE-2026-90769: Open Notebook: SSRF via source URL hits internal services
HIGHOpen Notebook fails to validate the URL supplied to its source-ingestion endpoint, letting any authenticated user force the application server to make arbitrary outbound HTTP requests — including to cloud metadata endpoints (AWS/GCP/Azure IMDS), internal-only APIs, and localhost-bound services that should never be reachable from outside. There's no EPSS score yet since this is a fresh disclosure, it isn't in CISA KEV, and no public exploit or Nuclei template exists today, so this isn't an active mass-exploitation event — but the attack requires only low privileges, no user interaction, and low complexity (CVSS 7.7, AV:N/AC:L/PR:L), meaning any low-trust account (including a free-tier or shared-workspace user) can pivot straight to your cloud IAM credentials. The scope-changed (S:C) rating in the vector reflects exactly this: impact extends beyond the vulnerable component into whatever internal network the app server sits on. Patch to Open Notebook 1.11.0 immediately; if you can't patch right away, block outbound requests from the app server to link-local/metadata ranges (169.254.169.254, RFC1918 space) at the network or egress-proxy layer and require IMDSv2 with hop-limit 1 on any AWS-hosted instance. Detection: alert on POST /api/sources payloads containing non-http(s) schemes, internal IPs, or metadata-service hostnames, and audit `sources` table entries for URLs pointing at 169.254.169.254 or private ranges.
What is the risk?
High risk despite the absence of a KEV listing or known exploit: the vulnerability is trivially exploitable (CWE-918 classic SSRF, AC:L, PR:L, UI:N) and the scope-changed CVSS component confirms the blast radius extends past the application into the hosting environment's internal network and cloud control plane. Any authenticated user — even a low-privilege one — can weaponize this immediately with a single crafted request; no AI/ML-specific expertise is required. The lack of public PoC/Nuclei coverage today should not be read as low urgency given how mechanical SSRF discovery and exploitation is once the vulnerable parameter is known (it's now public via the GitHub advisory and commit diff).
How does the attack unfold?
How severe is it?
What is the attack surface?
What should I do?
1 step-
Upgrade to Open Notebook 1.11.0 or later, which fixes the missing URL validation per the linked GitHub commit. Until patched: place an egress allowlist/proxy in front of the app server that blocks requests to RFC1918/link-local ranges and the cloud metadata IP (169.254.169.254), enforce IMDSv2 with a hop limit of 1 on AWS to neutralize metadata-credential theft even if SSRF succeeds, and run the app server with the least-privilege IAM role possible so a successful SSRF yields minimal value. Detection: log and alert on outbound requests from the source-fetch worker to internal IP ranges or non-standard schemes (file://, gopher://, etc.), and review existing
sourcesrecords for suspicious internal/metadata URLs already ingested.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-90769?
Open Notebook fails to validate the URL supplied to its source-ingestion endpoint, letting any authenticated user force the application server to make arbitrary outbound HTTP requests — including to cloud metadata endpoints (AWS/GCP/Azure IMDS), internal-only APIs, and localhost-bound services that should never be reachable from outside. There's no EPSS score yet since this is a fresh disclosure, it isn't in CISA KEV, and no public exploit or Nuclei template exists today, so this isn't an active mass-exploitation event — but the attack requires only low privileges, no user interaction, and low complexity (CVSS 7.7, AV:N/AC:L/PR:L), meaning any low-trust account (including a free-tier or shared-workspace user) can pivot straight to your cloud IAM credentials. The scope-changed (S:C) rating in the vector reflects exactly this: impact extends beyond the vulnerable component into whatever internal network the app server sits on. Patch to Open Notebook 1.11.0 immediately; if you can't patch right away, block outbound requests from the app server to link-local/metadata ranges (169.254.169.254, RFC1918 space) at the network or egress-proxy layer and require IMDSv2 with hop-limit 1 on any AWS-hosted instance. Detection: alert on POST /api/sources payloads containing non-http(s) schemes, internal IPs, or metadata-service hostnames, and audit `sources` table entries for URLs pointing at 169.254.169.254 or private ranges.
Is CVE-2026-90769 actively exploited?
No confirmed active exploitation of CVE-2026-90769 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-90769?
Upgrade to Open Notebook 1.11.0 or later, which fixes the missing URL validation per the linked GitHub commit. Until patched: place an egress allowlist/proxy in front of the app server that blocks requests to RFC1918/link-local ranges and the cloud metadata IP (169.254.169.254), enforce IMDSv2 with a hop limit of 1 on AWS to neutralize metadata-credential theft even if SSRF succeeds, and run the app server with the least-privilege IAM role possible so a successful SSRF yields minimal value. Detection: log and alert on outbound requests from the source-fetch worker to internal IP ranges or non-standard schemes (file://, gopher://, etc.), and review existing `sources` records for suspicious internal/metadata URLs already ingested.
What systems are affected by CVE-2026-90769?
This vulnerability affects the following AI/ML architecture patterns: RAG pipelines, document/source ingestion pipelines, self-hosted AI knowledge tools.
What is the CVSS score for CVE-2026-90769?
CVE-2026-90769 has a CVSS v3.1 base score of 7.7 (HIGH). The EPSS exploitation probability is 0.26%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0049 Exploit Public-Facing Application AML.T0075 Cloud Service Discovery Compliance Controls Affected
What are the technical details?
Original Advisory
Open Notebook before 1.11.0 fails to validate the URL parameter in POST /api/sources endpoint, allowing authenticated users to perform server-side requests to internal services. Attackers can supply arbitrary URLs to read cloud metadata, internal network services, and localhost-bound services through the application server's direct HTTP requests.
Exploitation Scenario
An attacker who has obtained (or self-registered, if signup is open) a low-privileged account on a shared Open Notebook instance submits a new 'source' with a URL of `http://169.254.169.254/latest/meta-data/iam/security-credentials/<role>` instead of a legitimate article link. The server-side ingestion worker fetches this URL directly and stores/returns the response as the source's extracted content, handing the attacker the instance's temporary IAM credentials inside the notebook UI. Using those credentials, the attacker pivots into the cloud account to access S3 buckets, other internal APIs, or the database backing the application — turning a content-ingestion feature into a full cloud-environment compromise.
Weaknesses (CWE)
CWE-918 — Server-Side Request Forgery (SSRF): 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.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N References
- github.com/lfnovo/open-notebook
- github.com/lfnovo/open-notebook/blob/8889087e317177d7b6e286342ab34e0c9c01d43e/api/routers/sources.py
- github.com/lfnovo/open-notebook/commit/9045ea50196927eac7de647bb5b7009349236fb4
- github.com/lfnovo/open-notebook/issues/1284
- vulncheck.com/advisories/open-notebook-before-1.11.0-server-side-request-forgery-via-link-source
Timeline
Related Vulnerabilities
CVE-2025-5120 10.0 smolagents: sandbox escape enables unauthenticated RCE
Same attack type: Data Leakage CVE-2026-33663 10.0 n8n: member role steals plaintext HTTP credentials
Same attack type: Data Leakage CVE-2025-53767 10.0 Azure OpenAI: SSRF EoP, no auth required (CVSS 10)
Same attack type: Privacy Violation CVE-2023-3765 10.0 MLflow: path traversal allows arbitrary file read
Same attack type: Data Leakage CVE-2026-46695 10.0 Boxlite: read-only bypass enables host code execution
Same attack type: Data Leakage