CVE-2026-90769: Open Notebook before 1.11.0 Server-Side Request Forgery via link-source
Advisory generated from the CVE record, CISA, Exploit Observer and VEDAS: what it is, whether it is exploited, who is affected, and how to fix and detect it.
Generated by VEDAS. Scores as of 2026-11-01 19:19 UTC. Rebuilt every few hours from cve-scores, CISA KEV and vedas-signatures. How this works and its limits.
What it is
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.
Description quoted from the CVE record (assigned by VulnCheck, published 2026-09-13).
Weakness: Server-Side Request Forgery (SSRF)
How it can be exploited
Exploitable over the network with low attack complexity with no special attack requirements needing low privileges and no user interaction. Impact: confidentiality high, integrity none, availability none. CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N
CISA assessment (SSVC): CISA assesses that a public proof of concept exists. Automatable: no. Technical impact: partial.
Public exploit evidence (Exploit Observer)
Also known as: EUVD-2026-76990, GHSA-wr7p-6rrg-8m28
VEDAS cluster: VEDAS:DESERTGUST
Exploit Observer links 5 pieces of public exploit code or detection modules that name this CVE or one of its aliases.
Exploit code and modules (5)
Code that names this CVE. A repository can be a working exploit, a scanner, a fake or malware; read it before running anything.
- Code repository: https://raw.githubusercontent.com/ARPSyndicate/vedas-signatures/main/nuclei/2026/CVE-2026-90769.yaml
- Code repository: https://raw.githubusercontent.com/ARPSyndicate/vedas-signatures/main/nuclei/2026/CVE-2026-90769.yaml
- Code repository: https://raw.githubusercontent.com/ARPSyndicate/vedas-signatures/main/suricata/2026/CVE-2026-90769.rules
- Code repository: https://raw.githubusercontent.com/ARPSyndicate/vedas-signatures/main/suricata/2026/CVE-2026-90769.rules
- Code repository: https://raw.githubusercontent.com/ARPSyndicate/vedas-signatures/main/suricata/2026/CVE-2026-90769.rules
Vulnerability databases and vendor advisories (3)
Catalogue entries, not exploit evidence.
- Vulnerability database or vendor advisory: https://euvd.enisa.europa.eu/enisa/EUVD-2026-76990
- Vulnerability database or vendor advisory: https://github.com/advisories/GHSA-wr7p-6rrg-8m28
- Vulnerability database or vendor advisory: https://nvd.nist.gov/vuln/detail/CVE-2026-90769
2 more references returned by Exploit Observer did not name this CVE or an alias, so they are left out.
VEDAS data as of 2026-11-01T17:12 UTC; fetched 2026-11-02.
Live scores
- EPSS
- 0.004
low predicted chance of attack - VEDAS
- 0.986
strong exploit evidence - On CISA KEV
- Not listed
Who is affected
| Product | Affected | Not affected |
|---|---|---|
| lfnovo open-notebook | before 1.11.0 | Not stated |
Version ranges exactly as the CVE record states them. “Before X” means X is the first fixed version.
How to fix it
Fixed versions stated in the CVE record: 1.11.0.
Vendor guidance:
How to detect it
Nuclei template (active check)
Open Notebook - Server-Side Request Forgery
Open Notebook before 1.11.0 does not validate the user-supplied URL in the POST /api/sources endpoint (api/routers/sources.py). When a source of type “link” is created, the application server fetches the supplied url directly, allowing an attacker to coerce server-side requests to internal services, localhost-bound services, or cloud metadata endpoints. This template submits a link source pointing at an out-of-band collaborator host and confirms the SSRF from the resulting interaction.
Name and description quoted from the template, written by VEDAS.
The template sends 1 request (POST /api/sources); it confirms through an out-of-band callback (interactsh), so the scanner must be able to receive it; it decides using word matchers. Severity in the template: high. Marked as not yet verified against a live vulnerable target.
Run it against a host you own or are authorised to test:
nuclei -u https://your-host -t CVE-2026-90769.yamlShow the template (41 lines)
id: CVE-2026-90769
info:
name: "Open Notebook - Server-Side Request Forgery"
author: vedas-arpsyndicate
severity: high
description: |
Open Notebook before 1.11.0 does not validate the user-supplied URL in the
POST /api/sources endpoint (api/routers/sources.py). When a source of type
"link" is created, the application server fetches the supplied url directly,
allowing an attacker to coerce server-side requests to internal services,
localhost-bound services, or cloud metadata endpoints. This template submits
a link source pointing at an out-of-band collaborator host and confirms the
SSRF from the resulting interaction.
reference:
- https://www.exploit.observer/?keyword=CVE-2026-90769&match=exact
- https://subdomain.center/?engine=ammonites&keyword=open-notebook&match=exact
classification:
cvss-metrics: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N
cvss-score: 8.3
cve-id: CVE-2026-90769
cwe-id: CWE-918
metadata:
verified: false
max-request: 1
tags: cve,cve2026,open-notebook,ssrf,oast
http:
- raw:
- |
POST /api/sources HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"type":"link","url":"http://{{interactsh-url}}"}
matchers:
- type: word
part: interactsh_protocol
words:
- "http"
Suricata rules (network detection)
1 rule that alert on traffic matching this exploit: VEDAS CVE-2026-90769 Open Notebook - Server-Side Request Forgery. Add them to your Suricata rule set and reload.
Show the rules
alert http $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"VEDAS CVE-2026-90769 Open Notebook - Server-Side Request Forgery"; flow:established,to_server; http.method; content:"POST"; http.uri; content:"/api/sources"; nocase; fast_pattern; http.request_body; content:"\"url\""; nocase; pcre:"/\"url\"\s*:\s*\"https?:\/\/(?:169\.254\.169\.254|metadata|127\.0\.0\.1|0\.0\.0\.0|localhost|10\.|192\.168\.|172\.(?:1[6-9]|2[0-9]|3[01])\.)/i"; classtype:web-application-attack; reference:cve,CVE-2026-90769; reference:url,https://www.exploit.observer/?keyword=CVE-2026-90769&match=exact; reference:url,https://subdomain.center/?engine=ammonites&keyword=open-notebook&match=exact; sid:1095000; rev:1;)
CVE-2026-90769.rules on GitHub
References
Vendor advisories and patches
Exploits and technical analysis
- GitHub Issue #1284 (issue-tracking)
- https://github.com/lfnovo/open-notebook/blob/8889087e317177d7b6e286342ab34e0c9c01d43e/api/routers/sources.py (technical-description)
- VulnCheck Advisory: Open Notebook before 1.11.0 Server-Side Request Forgery via link-source (third-party-advisory)
Other references
- https://github.com/lfnovo/open-notebook (product)
Other databases
Where this comes from
This advisory is generated automatically by VEDAS from: CVE.org record, cve-scores (EPSS and VEDAS), Exploit Observer, vedas-signatures. Text in quotes is reproduced from the source; everything else is a fixed template filled with source fields. Nothing here is written by a language model. Check the vendor advisory before acting, and read how VEDAS and Exploit Observer work, and their limits.