Skip to main content

Grimoire EUVDEUVD-2026-114114

| CVE-2026-119709 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-30 VulnCheck GHSA-v3p4-vhx3-fmh5
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach exposed /api/fetch-metadata endpoint
  2. Delivery
    Submit POST with internal/metadata URL
  3. Exploit
    Server-side fetch via getMetadata()
  4. Execution
    Parsed response reflects internal content
  5. Impact
    Read title/description/page body of internal target

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

Exploitation requires network reachability to the Grimoire /api/fetch-metadata POST handler, which per the description performs the fetch without any authentication check - so no credentials, user interaction, or non-default setting are needed (PR:N/UI:N confirms this). The concrete prerequisite is simply that the Grimoire instance (before 1.0.0) is network-accessible to the attacker; the attacker supplies a URL targeting a loopback, internal-network, or cloud metadata endpoint. Limiting factors: impact is read-only disclosure of the parsed title, description, and page content returned by getMetadata() (VC:L, no integrity or availability impact), and real escalation depends on whether reachable internal services (e.g. a cloud metadata service) expose sensitive data to an unauthenticated GET-style fetch. Instances not exposed to the attacker's network segment are out of reach.

Impact

The signals point to a moderate, not emergency, priority. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms remote, unauthenticated, low-complexity reachability with no user interaction, which is the worst-case access profile; however impact is bounded (VC:L/VI:N/VA:N, SC:L) - the attacker reads back parsed title, description, and page content from the forged request rather than achieving write, RCE, or full data compromise, yielding the 6.9 MEDIUM base score. The vuln.today decision label is 'this_month' (not act_now/emergency), consistent with meaningful but non-critical urgency. No CISA KEV listing is present in the input, so there is no confirmation of active exploitation, and no EPSS score was provided, so statistical exploitation probability cannot be weighed here. A public PoC reference exists (a HackMD write-up and the upstream GitHub issue) but it is not verified as working exploit code. Net: a genuine, easily-reachable SSRF worth patching this cycle, but the limited (read-only, low-confidentiality) impact and absence of KEV/EPSS data argue against treating it as a drop-everything issue - the main escalation risk is using the SSRF to read cloud metadata (e.g. IMDS) credentials, which would elevate real-world severity beyond the base score.

Exploit ScenarioDerived

An attacker sends an unauthenticated POST to /api/fetch-metadata with a URL pointing at a loopback, internal-network, or cloud metadata endpoint (e.g. 169.254.169.254), and the server fetches it via getMetadata() and returns the parsed title, description, and page content. A public PoC reference exists but is not verified as working exploit code. Because the vector is AV:N/AC:L/PR:N/UI:N, no authentication, user interaction, or special timing is required.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 30, 2026

Grimoire versions before 1.0.0 expose an unauthenticated SSRF in the /api/fetch-metadata POST handler, which passes attacker-supplied URLs into getMetadata() without any authentication check. Remote attackers who can reach a Grimoire instance can point it at loopback addresses, internal network hosts, or cloud metadata endpoints and read back the parsed title, description, and page content. Impact is limited to read-only information disclosure (CVSS 4.0: 6.9, VC:L); a public PoC reference exists but it is not verified as working exploit code, and there is no KEV confirmation of active exploitation. The vuln.today priority label places it in this_month: moderate, not emergency.

RemediationAI

Upgrade Grimoire to 1.0.0 or later, which is the version boundary where the unauthenticated fetch-metadata behaviour is fixed; the change set is referenced through https://github.com/goniszewski/grimoire/issues/237 and the vendor advisory at https://www.vulncheck.com/advisories/grimoire-before-1.0.0-unauthenticated-ssrf-via-api-fetch-metadata. If upgrading cannot be done immediately, remove exposure of the /api/fetch-metadata POST route at the reverse proxy or WAF and require authentication in front of it, accepting that bookmark metadata fetching breaks until the upgrade is applied; alternatively restrict outbound traffic from the Grimoire container or host so it cannot reach loopback, RFC1918 ranges, or 169.254.169.254, understanding that this limits the SSRF blast radius but does not fix the missing authentication check, and that egress filtering may break legitimate metadata fetches for internal bookmarks. Cloud deployments should additionally enforce IMDSv2 or equivalent metadata hardening so unauthenticated GET-style fetches return no credentials, which mitigates the highest-value target without patching Grimoire itself.

Affected VersionsENISA

grimoire 0 <1.0.0

Affected Packages

euvd grimoire fix: 1.0.0

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

Grimoire is a self-hosted bookmarking application built with SvelteKit; the vulnerable endpoint is a +server.ts route handler at src/routes/api/fetch-metadata, which calls the getMetadata() helper in src/lib/utils/get-metadata.ts. That helper performs a server-side fetch of whatever URL is supplied and parses the returned document for title, description and body content. Because the handler performs no authentication check, the server's own network position is lent to the caller, making this a classic CWE-918 server-side request forgery: the server can reach loopback (127.0.0.1/::1), RFC1918 internal ranges, and link-local cloud metadata services (e.g. 169.254.169.254) that the external attacker cannot. The CPE string (cpe:2.3:a:goniszewski:grimoire:*:*:*:*:*:*:*:*) confirms all versions prior to 1.0.0 are in scope. The CWE-918 classification and the assessed vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N) match the described behaviour: no credentials or interaction needed, scope change because the request escapes the Grimoire application boundary into other internal services, and confidentiality-only impact because the parsed response is echoed back while no write or denial-of-service capability is demonstrated. The trigger is the POST request to /api/fetch-metadata with a crafted URL body; no further conditions such as race windows or special configuration are described in the available sources.

Know when Grimoire 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

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N
vuln.today AI 5.8 MEDIUM

Remote unauthenticated SSRF with no UI (AV:N/AC:L/PR:N/UI:N); scope changes as the server reaches other systems (S:C); only low-confidentiality disclosure, no integrity or availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 30, 2026 - 17:02 EUVD

DescriptionCVE.org

Grimoire before 1.0.0 contains an unauthenticated server-side request forgery vulnerability in the /api/fetch-metadata POST handler that passes user-supplied URLs to getMetadata() without authentication checks. Attackers can submit URLs targeting loopback, internal-network, or cloud metadata endpoints and read the parsed title, description, and page content returned.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Low
self-hosted open-source bookmark manager, niche hobby deployment footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy