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.

Vulnerability databases and vendor advisories (3)

Catalogue entries, not exploit evidence.

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
Detection rule
Nuclei · Suricata

Who is affected

ProductAffectedNot affected
lfnovo open-notebookbefore 1.11.0Not 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:

bash
nuclei -u https://your-host -t CVE-2026-90769.yaml
Show the template (41 lines)
yaml
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"

CVE-2026-90769.yaml on GitHub

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
suricata
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

Other references

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.