Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach exposed /api/fetch-metadata endpoint
-
DeliverySubmit POST with internal/metadata URL
-
ExploitServer-side fetch via getMetadata()
-
ExecutionParsed response reflects internal content
-
ImpactRead 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
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
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
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.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.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
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-114114
GHSA-v3p4-vhx3-fmh5
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB