Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend POST to /./admin/debug_save_flow.php
-
DeliveryRouter /./ prefix bypasses login gate
-
ExploitUnauthenticated file_put_contents writes payload
-
ExecutionStored script injected into public page
-
PersistAdmin views page, session stolen
-
ImpactAdmin account takeover
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the target to run FearlessCMS ≤ 0.1.2b on PHP's built-in development server - the project's default Docker deployment - because the anonymous entry point is router.php checking an unnormalized admin URI prefix while the filesystem resolves dot segments, so the |
| Impact | All decision signals point to genuine high priority, not an inflated CVSS. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L = 9.4) describes remote, low-complexity, unauthenticated exploitation, and the vuln.today Decision label is act_now. The GHSA advisory (GHSA-3mq8-hrhf-7hv6) publishes detailed, concrete proof-of-concept exploit commands (nine curl one-liners) that demonstrate each primitive, so trivially reproducible attacks are documented publicly. The one material caveat is deployment dependency: the anonymous reachability of the debug scripts relies on PHP's built-in development server plus the router.php path-normalization bypass (the |
| Exploit ScenarioDerived | A remote, unauthenticated attacker sends a single crafted POST to |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Unauthenticated remote attackers can overwrite FearlessCMS content, plant persistent JavaScript on public pages, and enumerate and read host files through five leftover debug/test scripts in admin/ that perform privileged operations with no login check, no CSRF token, and no path validation. The anonymous entry point depends on the deployment mode: on the project's default Docker setup, which runs PHP's built-in development server, router.php tests an unnormalized admin URI prefix while the filesystem still resolves dot segments, so a request to /./admin/... is executed directly instead of being routed through the admin login gate. The issue is fixed in 0.1.4, the GitHub advisory publishes proof-of-concept request sequences with observed results, and there is no CISA KEV listing indicating active exploitation at time of analysis.
RemediationAI
Vendor-released patch: upgrade to FearlessCMS 0.1.4 (commit 59fb22cf989b5ba14c387c3212e15b146e02cf9a, release tree https://github.com/fearlessgeekmedia/FearlessCMS/tree/0.1.4), which adds isLoggedIn() checks to the debug scripts, validate_csrf_token() validation on POST requests, validate_content_path() traversal rejection, a .md-only restriction on writes, and htmlspecialchars() escaping of the print_r output. Per the advisory, GHSA-3mq8-hrhf-7hv6 documents the affected files and the request sequences; the package metadata lists the fixed version as 0.1.4 and the vulnerable range as <= 0.1.2b. Where an immediate upgrade is not possible, contain the exposure rather than treat it as a fix: remove or deny web access to admin/debug_save_flow.php, admin/debug_content.php, admin/preview-handler.php, admin/testdebug.php and admin/test_redirect.php at the web server, accepting that diagnostic tooling is lost; normalize request URIs so that dot segments such as /./admin/ cannot reach the router - for example by rejecting non-canonical paths at a reverse proxy - with the trade-off that clients relying on unnormalized paths will be refused and that this only addresses the built-in-server bypass, not the missing authentication in the scripts themselves; and run the PHP process as a non-root user so that any remaining read or write primitive is bounded by that account's permissions, which requires re-owning the content and log directories and adjusting the default Docker image.
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
FearlessCMS is a flat-file CMS that stores pages as .md files under a content directory and ships an admin panel fronted by admin/index.php. The defect class is CWE-22 (path traversal), compounded by missing authentication for critical functions (CWE-306/CWE-288), reflected and stored XSS (CWE-79), and information exposure (CWE-200) as detailed in the vendor advisory. Four debug scripts - admin/debug_save_flow.php, admin/debug_content.php, admin/preview-handler.php and admin/testdebug.php - never call isLoggedIn(), so their sinks are reachable by anyone who can request them: attack-controlled path and content values reach file_put_contents for .md writes inside content/ or, via ../ traversal, elsewhere on disk; the path parameter of debug_content.php reaches scandir(), file_get_contents() and posix_getpwuid(), exposing directory listings, absolute paths, ownership, permissions, hashes and content previews; preview-handler.php writes JSON-supplied content and title into enumerable files under content/_preview/; and testdebug.php appends to admin/testdebug.log, enabling disk exhaustion. debug_save_flow.php additionally echoes print_r($_POST) without htmlspecialchars, giving reflected XSS; test_redirect.php escapes its inputs and is an exposure/hygiene issue rather than an XSS sink. Reachability hinges on router.php, which checks strpos($uri, '/' . $adminPath) === 0 and otherwise returns false so the built-in server serves matching .php files directly: because the prefix check never normalizes the URI while file_exists() does resolve dot segments, /./admin/debug_content.php fails the prefix check but resolves to a real file and runs outside the login gate. On the tested deployment the PHP process runs as root, so every read and write inherits root filesystem reach; the 0.1.4 commit 59fb22cf989b5ba14c387c3212e15b146e02cf9a adds isLoggedIn() gates, validate_csrf_token() on POST, a validate_content_path() traversal check, a .md extension restriction, and htmlspecialchars() around the print_r output.
Know when PHP 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
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L
Default Docker deployment gives remote unauthenticated access (AV:N/PR:N/UI:N/AC:L); arbitrary file read (C:H) and write/defacement (I:H), with only disk-exhaustion availability impact (A:L).
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
FearlessCMS is a flat-file content management system centered on simplicity and open source. Prior to version 0.1.4, five debug/test PHP scripts under admin/ perform privileged operations without isLoggedIn() authentication checks, CSRF protection or adequate path validation. On PHP's built-in development server, including the default Docker deployment, router.php checks an unnormalized admin URI prefix while the filesystem resolves dot segments, so /./admin/ bypasses the admin login gate and executes those scripts directly. In admin/debug_save_flow.php, attacker-controlled path and content reach file_put_contents for arbitrary .md writes under content/ or outside it through path traversal, enabling site defacement and stored JavaScript in public pages; print_r($_POST) output without htmlspecialchars escaping also causes reflected cross-site scripting. The admin/debug_content.php path parameter reaches scandir(), file_get_contents() and posix_getpwuid(), permitting arbitrary directory enumeration and .md file reads that expose absolute paths, ownership, permissions, hashes and content previews. The admin/preview-handler.php endpoint accepts JSON content and title and writes enumerable files under content/_preview/, enabling stored cross-site scripting and disk exhaustion. The admin/testdebug.php endpoint appends to admin/testdebug.log without authentication, also enabling disk exhaustion. The admin/test_redirect.php script exposes a test artifact but escapes its inputs and is not itself an XSS sink. Stored script execution can steal sessions and compromise administrators when they view affected content. Reads and writes execute with PHP's privileges; the tested deployment runs PHP as root, amplifying filesystem impact. This issue is fixed in version 0.1.4.
Articles & Coverage 1
Technical POC Analysis
The flaw is missing authentication for critical functions (CWE-306) plus path traversal (CWE-22), with an authentication bypass (CWE-288) in router.php.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
FearlessCMS version 0.1.4 addresses critical vulnerabilities in debug scripts that allow unauthenticated attackers to alter website content, inject persistent malicious code, and access sensitive host files. This puts customer trust and data confidentiality at risk, particularly for systems running the default Docker configuration. Leadership must prioritize remediation to prevent potential defacement and data breaches.
Vendor patch exists: upgrade to FearlessCMS 0.1.4. If unable to patch immediately, restrict access to the admin/ directory via network controls (e.g., IP whitelisting), disable the debug/test scripts, and avoid running the built-in PHP development server in production.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
EUVD-2026-112405
NVD
CVE.org
GitHub
Exploit-DB