---
id: "CVE-2026-119709"
kind: "vulnerability"
aliases: ["CVE-2026-119709"]
title: "Grimoire: unauthenticated request forgery reads internal URLs before 1.0.0"
severity: "medium"
cvss: 6.9
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["grimoire", "package", "self-hosted"]
not_affected_if: ["no-external-access", "version-1.0.0-or-later"]
published_at: "2026-10-30T16:17:53+00:00"
first_seen_at: "2026-10-30T16:31:26+00:00"
updated_at: "2026-10-30T16:32:11+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-119709", "first_seen_at": "2026-10-30T16:31:26+00:00"}]
---

# Grimoire: unauthenticated request forgery reads internal URLs before 1.0.0

Grimoire before 1.0.0 has a POST endpoint, /api/fetch-metadata, that fetches any URL it is given without checking who is asking. An attacker can point it at loopback, internal network or cloud metadata addresses and read back the title, description and page content it returns.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed Grimoire version and whether it is below `1.0.0`.
- Look for the `/api/fetch-metadata` route in the deployed application.
- Confirm whether that route is reachable from outside the network.

## Fix

- Move Grimoire to `1.0.0` or later.

## Timeline

- 2026-10-30T16:31:26+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-119709

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
