ZeroHour

CVE-2026-77939

niche

Expression Language Injection in Flextype CMS API Enables Arbitrary File Read

CVSS 4.0
7.1 high
EPSS
<1%p37
Published
()
Modified
AI analysis

Flextype CMS through v1.0.0-dev fails to sanitize user-supplied input passed to the Symfony ExpressionLanguage engine at the POST /api/v1/query endpoint, allowing an expression language injection. An authenticated attacker holding a valid API token can craft expressions that invoke exposed application objects such as filesystem() and serializers() to read arbitrary files on the server. If the attacker can additionally place a PHP file on disk through a secondary vector, the injection can escalate to conditional remote code execution. Any Flextype instance whose API is reachable and whose API tokens are in circulation is affected. There is no known public proof-of-concept, no CISA KEV entry, and a low EPSS score of 0.4%, indicating exploitation is not currently observed.

What to do: Audit which accounts hold valid Flextype API tokens and revoke or rotate any that are unnecessary, since a valid token is required for exploitation. Restrict network access to the /api/v1/query endpoint, sanitize or validate input passed into the expression engine, and consider disabling or limiting the filesystem() and serializers() objects in the evaluation scope. Monitor for a patched release (all versions through 1.0.0-dev are affected) and upgrade as soon as one is published, and check access logs for unusual POST /api/v1/query calls.

Affected
Flextype CMSall versions through v1.0.0-dev
Estimated exposure
nichelikely a few hundred to a few thousand self-hosted sites — Flextype is a niche open-source flat-file CMS with a small community footprint and no public install-count telemetry, so the estimate is bounded by its limited adoption rather than any measured exposure count.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Flextype CMS through v1.0.0-dev contains an expression language injection vulnerability that allows authenticated attackers with a valid API token to read arbitrary files by passing unsanitized user-supplied input to the Symfony ExpressionLanguage engine via the POST /api/v1/query endpoint. Attackers can leverage exposed application objects including filesystem() and serializers() within the evaluation scope to read arbitrary server files and achieve conditional remote code execution if a PHP file can be placed on disk through a secondary vector.

Weakness
CWE-94, CWE-1336
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.