Summary
CVE-2026-53953 is a critical vulnerability in GetSimple CMS-CE (Community Edition) that allows unauthenticated attackers to take over administrator accounts. The flaw stems from a predictable password-reset mechanism combined with the absence of any brute-force protection on the admin login, and carries a CVSS v3.1 score of 9.1 (Critical).
Technical details
- Root cause: the
createRandomPassword()function seeds PHP’srand()usingsrand((double)microtime()*1000000), which limits the effective seed space to roughly one million possible values derived from the fractional-second timestamp of the request. - This weak seeding makes the "random" temporary password generated during a reset predictable/brute-forceable by an attacker who can approximate the request time.
- Trigger conditions: an unauthenticated attacker submits a password-reset request (e.g., via
/admin/resetpassword.php) for the administrator account, then generates a set of candidate passwords based on the limited seed space. - The admin login endpoint (
/admin/index.php) has no rate limiting, account lockout, CAPTCHA, or delay mechanism, allowing the attacker to test all candidate passwords against it without resistance. - Attack vector: network, no authentication or user interaction required.
- Impact: full compromise of the administrator account, granting the attacker complete control over the CMS (content, configuration, and potentially server-side code execution through CMS admin functionality).
Affected software
- GetSimple CMS-CE (Community Edition), version 3.3.22
Severity
- CVSS v3.1 Base Score: 9.1 (Critical)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Mitigation and recommended actions
- Immediate: No official patched version is available as of publication. Monitor the vendor’s GitHub repository for a fix that replaces
rand()/srand()with a cryptographically secure generator (e.g.,random_int()) and adds single-use, time-limited reset tokens. - Workarounds: Until a patch is released, restrict network access to the
/admin/path (e.g., IP allow-listing, VPN, or a reverse proxy requiring separate authentication), disable the password-reset feature if not required, and add rate limiting/account lockout or a Web Application Firewall rule in front of the admin login endpoint to block repeated login attempts. Monitor logs for repeated password-reset requests or high-volume login attempts against the admin account.

