Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege user
-
DeliveryCraft document embedding attacker-controlled URL
-
ExploitInvoke document export endpoint
-
ExecutionServer-side export pipeline fetches URL
-
ImpactReach internal services / leak response
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated low-privilege account on SurfSense (PR:L) and access to the Document Export Feature (POST to the export_document route in editor_routes.py). The SSRF is reachable through the server-side export/conversion pipeline (pypandoc/typst) that processes document content - an attacker must supply document content containing a URL or reference that the server dereferences during export. Limiting factors: valid authentication is needed (not exploitable pre-auth), no user interaction beyond the attacker's own request (UI:N), and impact is confidentiality-limited (VC:L) with no integrity/availability effect. Versions up to 0.0.36 are affected; 0.0.36.3 removes the server-side PDF/typst export path, reducing the exposed conversion surface. |
| Impact | This is a genuinely low-severity issue despite being remotely reachable. The vendor CVSS 4.0 vector (AV:N/AC:L/PR:L/UI:N/VC:L/VI:N/VA:N, base 2.1) reflects that exploitation requires an authenticated low-privilege user (PR:L) and yields only limited confidentiality impact (VC:L) with no integrity or availability impact - consistent with a classic SSRF that lets an attacker coax the server into making outbound requests but does not, on its own, expose secrets wholesale or corrupt/deny service. Exploitation signals: POC is publicly available (VulDB gist by DReazer, E:P), a patch exists (0.0.36.3, commit 2faff7b3), but there is no EPSS score and no CISA KEV entry provided, so this is 'publicly available exploit code exists' rather than confirmed active exploitation. No SSVC decision data (Exploitation/Automatable/Technical Impact) was supplied. Net: this is a low-priority, low-impact SSRF in a niche product - public exploit code raises opportunistic risk slightly, but the authentication requirement and confidentiality-only impact keep real-world risk modest. Note the source-code evidence: the fix removed the entire server-side PDF/typst export path rather than adding URL/SSRF filtering, so the reachable SSRF surface appears tied to the pandoc/typst conversion pipeline fetching remote resources embedded in exported documents. |
| Exploit ScenarioDerived | An authenticated low-privilege SurfSense user submits a document for export whose content embeds an attacker-chosen URL (e.g., an internal metadata endpoint or intranet host); the backend export pipeline in editor_routes.py fetches that resource server-side, letting the attacker probe or reach internal network services from the server's vantage point. A public proof-of-concept (VulDB/DReazer gist) exists, and because the attack complexity is low (AC:L) it is straightforward to reproduce once authenticated. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 29, 2026
Server-side request forgery (SSRF) in MODSetter SurfSense 0.0.36 and earlier allows an authenticated, low-privilege user to make the backend dereference attacker-influenced URLs by supplying crafted content to the Document Export Feature (the export_document route in surfsense_backend/app/routes/editor_routes.py). Because the server-side export/conversion pipeline (pypandoc/typst) fetches or processes references embedded in document content, a malicious export request can cause the server to issue outbound requests to resources it can reach. Publicly available exploit code exists and the flaw is remotely reachable, but the assessed impact is confidentiality-limited (VC:L) with no integrity or availability effect, making this a genuinely low-severity issue despite remote reachability.
RemediationAI
Vendor-released patch: SurfSense 0.0.36.3 (commit 2faff7b3823322a9cb6797973e6caf089386c354, release https://github.com/MODSetter/SurfSense/releases/tag/0.0.36.3). Upgrading is the primary and recommended fix; the patch removes the server-side PDF/typst export path that supplied the request-forging surface and drops the typst dependency, so no separate configuration step is needed once 0.0.36.3 or later is deployed. If an immediate upgrade is not possible, reduce exposure by restricting the Document Export endpoint to trusted roles only (the attack requires an authenticated low-privilege account, so tightening account provisioning and privileges removes the practical foothold), and by disabling the server-side export formats (PDF/Typst) in favor of client-side or locally generated output - though this degrades export functionality for legitimate users. Operators should also enforce outbound egress filtering from the SurfSense backend host so that even if a forged request is issued it cannot reach internal metadata services, admin interfaces, or RFC1918 ranges; this is a compensating control with the trade-off of requiring careful allowlisting of any legitimate endpoints the conversion pipeline still needs, and it should not be treated as a substitute for applying the 0.0.36.3 update. Note that the public exploit code (https://gist.github.com/DReazer/57126e711507324a547edde96c62c218) demonstrates that proof-of-concept exploitation is already available, increasing the urgency of patching despite the low assessed severity.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability is a classic CWE-918 Server-Side Request Forgery rooted in an unsafe server-side document conversion pipeline. SurfSense's editor_routes.py exposed a multi-format export function (PDF, DOCX, HTML, LaTeX, EPUB, ODT, plain text) that used pypandoc and typst to convert user-supplied Markdown into output formats, including a standalone Typst/PDF path that loaded external templates and normalized LaTeX delimiters. When attacker-controlled Markdown or embedded references are passed into that pipeline, the backend can be induced to dereference a URL or resource supplied by the user, reaching internal network endpoints or services not otherwise exposed. Per the CPE (cpe:2.3:a:modsetter:surfsense:*:*:*:*:*:*:*:*) all SurfSense releases through 0.0.36 are in scope. The vendor's fix (commit 2faff7b3823322a9cb6797973e6caf089386c354) removes the server-side PDF/typst export path entirely, dropping the typst dependency and the get_typst_template_path usage, which is the component that materially reduced the SSRF exposure surface.
Know when Surfsense gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P
Remote and low-complexity but requires an authenticated low-priv user (PR:L); SSRF yields limited confidentiality (C:L) with no integrity or availability impact and no confirmed scope change.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A security flaw has been discovered in MODSetter SurfSense up to 0.0.36. Impacted is an unknown function of the file surfsense_backend/app/routes/editor_routes.py of the component Document Export Feature. Performing a manipulation results in server-side request forgery. The attack can be initiated remotely. The exploit has been released to the public and may be used for attacks. Upgrading to version 0.0.36.3 is recommended to address this issue. The patch is named 2faff7b3823322a9cb6797973e6caf089386c354. The affected component should be upgraded.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
EUVD-2026-88618
GHSA-m6qw-8q66-9vp2
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB