Skip to main content

Lektor CVE-2026-104059

| EUVDEUVD-2026-91007 HIGH
Cross-Site Request Forgery (CSRF) (CWE-352)
2026-10-01 VulnCheck GHSA-76hh-mx5x-4xrx
7.0
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Operator runs Lektor admin server locally
  2. Delivery
    Lure operator to malicious web page
  3. Exploit
    Browser auto-sends forged cross-origin requests
  4. Execution
    Hit unprotected admin API endpoints
  5. Impact
    Write files, delete pages, force publish

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires the Lektor admin/edit server (the admin API blueprint, e.g. started via lektor server) to be actively running, and the operator to visit an attacker-controlled web page in a browser that can reach that server (UI:A). The admin API performs NO CSRF token, Origin/Referer, CORS, or Host allowlist validation, so no authentication or special configuration is needed to trigger the state-changing endpoints (newattachment, deleterecord, build, clean, publish). Limiting factors: exploitation depends on operator interaction (visiting the malicious page while the server is live), and because the admin server is normally bound to localhost/development use rather than exposed to the internet, the attacker reaches it through the victim's own browser; reaching READ endpoints to disclose data additionally requires a successful DNS rebinding attack, which is a materially harder precondition.

Impact

This is a CWE-352 CSRF flaw in Lektor's admin API, scored CVSS 4.0 7.0 (High). The vector (AV:N/AC:L/AT:N/PR:N/UI:A) is internally consistent with the description: the attack is browser-delivered (network), trivially reliable (low complexity), needs no authentication because the Lektor admin API itself ships with no CSRF token, Origin/Referer, CORS, or Host checks (PR:N), but does require an active victim - the operator must visit a malicious page while their admin server is running (UI:A). Impact is integrity- and availability-focused (VI:H/VA:H via arbitrary file write, page deletion, build-output wipe, and forced publish) with no direct confidentiality loss (VC:N) unless the attacker additionally pulls off DNS rebinding to reach read endpoints - a notably harder, multi-step precondition that should not be treated as baseline. The practical risk is bounded by deployment reality: Lektor's admin/edit server is typically a localhost development interface, not an internet-exposed production service, so a 'pure network' reading overstates reach - exploitation realistically targets a developer/operator's own machine via a drive-by page (UI:A is the real gating factor). No EPSS score and no KEV listing were provided, so there is no evidence of widespread or active exploitation; a public gist referenced in the advisory appears to be proof-of-concept material. Net: a legitimately exploitable, well-documented CSRF against an unauthenticated admin surface, but one whose real-world blast radius is limited by low product prevalence and the requirement to trick an operator while their local admin server is live.

Exploit ScenarioDerived

A developer is running the Lektor admin/edit server locally (e.g. lektor server) and, in the same browser, visits an attacker-controlled web page. That page silently fires cross-origin requests to the admin API's newattachment, deleterecord, build, clean, or publish endpoints - which lack any CSRF token, Origin/Referer, CORS, or Host validation - causing arbitrary file writes, page deletion, build-output wiping, or a forced deployment publish without the operator's knowledge. A public gist referenced in the VulnCheck advisory appears to provide proof-of-concept exploit code, and via DNS rebinding the same technique can reach read endpoints to exfiltrate site data.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 01, 2026

Cross-site request forgery in the Lektor admin API lets unauthenticated remote attackers perform state-changing actions - writing arbitrary files via newattachment, deleting pages via deleterecord, wiping build output via clean/build, and triggering deployment via publish - when an operator visits a malicious web page while the admin server is running. The flaw affects Lektor 3.3.14 and 3.4.0b15 and stems from the complete absence of CSRF tokens, Origin/Referer validation, CORS configuration, or Host allowlisting; read endpoints can additionally be reached via DNS rebinding to disclose data. No public exploit code or confirmed active exploitation was identified at time of analysis.

RemediationAI

No vendor-released patch was identified at time of analysis, so operators must rely on compensating controls until an update is published. Stop the admin/edit server (lektor server) whenever it is not actively needed and avoid browsing untrusted web pages in the same browser profile while it is running, since exploitation requires the operator's browser to reach the live server. Where the admin server must remain available, bind it strictly to 127.0.0.1, place it behind a reverse proxy that rejects state-changing requests lacking a same-origin Origin/Referer header and enforces a strict Host allowlist, and disable cross-origin reads - recognizing that these proxy rules can break legitimate DNS-name or multi-host access (trade-off), and that they reduce but do not eliminate DNS-rebinding risk. Serving built output with lektor build plus a static file server avoids exposing the admin API entirely and is the most robust interim mitigation; monitor https://gist.github.com/mansurmavlankulov/c7683e3204e84892e442b0196585d5bb and https://www.vulncheck.com/advisories/lektor-csrf-via-admin-api-endpoints for updated fix guidance.

Affected VersionsENISA

lektor 3.4.0b1 ≤3.4.0b15
lektor 0 ≤3.3.14

Affected Packages

euvd lektor no fix

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

Lektor is a Python-based static site generator whose editing workflow launches an admin/edit server (commonly via lektor server) implemented as a Flask blueprint exposing the newattachment, deleterecord, build, clean, and publish endpoints. CWE-352 (Cross-Site Request Forgery) applies because these endpoints accept state-changing requests without verifying a CSRF token, Origin/Referer header, CORS policy, or Host allowlist, so a browser request triggered from an attacker-controlled page carries the site operator's implicit ambient authority against the locally running server. The CVSS 4.0 vector AV:N/PR:N/UI:A with VC:N, VI:H, VA:H reflects unauthenticated network reachability that depends on victim interaction, high integrity and availability impact, and no confidentiality impact except through the separately required DNS-rebinding path to read endpoints. The CPE cpe:2.3:a:lektor:lektor:*:*:*:*:*:*:*:* indicates the issue is tracked against the Lektor product generally, while the description narrows confirmed vulnerable builds to 3.3.14 and 3.4.0b15.

Know when Lektor 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 7.0 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.1 HIGH

Unauthenticated admin API with no CSRF protection (PR:N, AC:L) but needs the operator to visit a malicious page (UI:R); grants arbitrary file write/delete (I:H) and build-output wipe (A:H), with no direct confidentiality absent DNS rebinding (C:N).

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:H/VA:H/SC:N/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
Active
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Lektor 3.3.14 and 3.4.0b15 contains a cross-site request forgery vulnerability in the admin API blueprint that allows unauthenticated attackers to perform state-changing actions by sending cross-origin requests without CSRF tokens, Origin/Referer validation, CORS configuration, or Host allowlisting. Attackers can exploit the newattachment, deleterecord, build, clean, and publish endpoints from a malicious web page to write arbitrary files, delete pages, wipe build output, trigger deployment publication, and via DNS rebinding reach read endpoints to disclose data.

Executive ViewAI

Why It Matters

Lektor, a static site generator whose built-in admin server is used by web publishing teams, carries a cross-site request forgery flaw (CVE-2026-104059) that lets a malicious web page quietly instruct a running admin server to overwrite project files, delete content, wipe build output, or trigger a live deployment. Every team running Lektor 3.3.14 or 3.4.0b15 on a developer or publisher workstation is exposed whenever that admin server is left running, and no vendor patch is available today. Because the abuse results in silent content corruption or unauthorized publishing, leadership should treat this as a content-integrity and release-pipeline risk rather than a routine development issue.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: shut down the Lektor admin server when not in use, bind it to localhost only, block admin-port access from other networks and VPNs, keep admin sessions in a dedicated browser profile or isolated workstation, back up and monitor content and build directories for unauthorized changes, and restrict deployment credentials to least privilege.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Low
niche Python static-site generator, small production footprint
Data Quality
7 sources
Confidence: High

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 HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

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