Summary
CVE-2026-102811 is a missing-authentication vulnerability (CWE-306) in the Marmite static-site generator’s built-in development server (marmite --serve), affecting all versions through 0.4.2. The server’s /__marmite__/content, /__marmite__/config, and /__marmite__/file/ endpoints accept requests with no credential check, and unsanitized path parameters in the content-creation and content-cloning handlers allow directory traversal, letting an unauthenticated network attacker create, modify, or overwrite files both inside and outside the site’s project directory. The issue is rated HIGH severity (CVSS 8.7 under v4.0 scoring).
Technical details
- Root cause: The
--servedevelopment server exposes management endpoints (/__marmite__/content,/__marmite__/config,/__marmite__/file/) without any authentication, and thehandle_create_contentandhandle_clone_contenthandlers insrc/server.rsdo not sanitize user-supplied path/slug parameters before writing files. - Trigger conditions: The target must be running Marmite’s development server (
marmite --serve), which by default listens on all network interfaces (0.0.0.0:8000) rather than loopback only. - Attack vector: Network — no authentication, user interaction, or special privileges are required to send crafted requests to the exposed endpoints.
- Impact: High integrity impact. An attacker can create, modify, or overwrite site content and configuration, and write files outside the intended project directory via directory traversal (path traversal in slug/clone/move parameters).
Affected software
- Marmite (Rust crate
marmite, maintained by rochacbruno) — all versions through 0.4.2, when run with the--servedevelopment server flag. - Static, already-generated site deployments (i.e., not running the dev server) are not affected.
Severity
- CVSS v3.1: 7.5 (HIGH) —
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - CVSS v4.0: 8.7 (HIGH) —
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Mitigation and recommended actions
- Immediate: Upgrade to a Marmite release containing the fix in commit
303a0bf2fff4302f4164c0c39932fdffc6683ad4, which changes the development server to default to binding on the loopback interface (127.0.0.1) and preserves this behavior even if an explicit bind fails, rather than falling back to all interfaces. - If upgrading is not immediately possible:
- Never expose the
marmite --servedevelopment server to the public internet or untrusted networks; restrict it to127.0.0.1or a trusted internal network via firewall rules. - Place the development server behind a reverse proxy that enforces authentication if remote access is required for legitimate development purposes.
- Use the development server only for local/offline content authoring, and rely on the statically generated site output for any deployment reachable from the internet.
- Never expose the

