/

CVE-2026-56660

Severity:

CRITICAL RISK

(9.1)

Unrestricted File Upload (CWE-434) in GetSimple CMS

CVE-2026-56660

Deferred

Vulnerability type

Category:

Unrestricted File Upload

CWE:

CWE-352, CWE-434, CWE-918

Impact:

Remote Code Execution and Arbitrary File Write

Severity:

CRITICAL RISK

(9.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A critical archive-handling vulnerability in GetSimple CMS CE allows malicious ZIP contents to be extracted into the web root without adequate file-type or path validation.

If an attacker can cause a crafted archive to be processed, they may place executable PHP files in a web-accessible location and achieve remote code execution as the web-server user.

Affected context

The issue occurs in the CMS update workflow when an update archive is downloaded and extracted into the web root. Risk is present where an attacker can influence the archive source or otherwise cause a malicious archive to be processed, and where the web server can execute PHP files written by the extraction process. Archive entry names may also permit writes outside the intended extraction directory.

Exploit preconditions

  • Attack surface: The CMS update handler and its archive-download and extraction functionality
  • Required access: The ability to cause the update process to handle an attacker-controlled or attacker-influenced archive
  • Trigger point: ZIP extraction performed by the update workflow
  • Why exploitation is possible: File types are not adequately restricted, executable files can be written beneath a web-accessible directory, and archive paths are not safely constrained to the intended destination

Why this happens

The underlying flaw is an unsafe archive extraction pattern mapped primarily to CWE-434: Unrestricted Upload of File with Dangerous Type. The update handler treats archive contents as trusted and writes them into a web root without enforcing an allowlist of permitted file types or isolating extracted content from the server's execution context.

The use of archive entry names without canonicalization and containment checks also creates a CWE-22: Path Traversal condition, because relative path components may direct files outside the intended extraction directory. The update workflow may additionally involve request-forgery or server-side fetching concerns represented by the associated CWE classifications.

Potential impact

  • An attacker may execute arbitrary PHP code as the web-server user.
  • Attackers could modify CMS files, templates, or configuration data.
  • Sensitive application data and credentials could be exposed.
  • The application could be defaced, disrupted, or used for persistence.
  • Files outside the intended extraction directory could be overwritten.

General mitigation guidance

Mitigation generally focuses on treating update archives as untrusted input and separating update acquisition, validation, extraction, and activation.

Common defensive patterns include:

  • Allowing only explicitly approved archive formats and file types.
  • Extracting into a non-web-accessible staging directory before validation.
  • Canonicalizing archive paths and enforcing destination-directory containment.
  • Rejecting absolute paths, traversal components, links, and unexpected metadata.
  • Applying strict archive size, file-count, and decompression limits.
  • Separating download and extraction privileges from the web-server process.
  • Disabling script execution in upload, staging, and update directories.
  • Requiring authenticated, authorized update workflows with integrity verification.
  • Using least-privilege filesystem permissions and maintaining recoverable backups.

How teams detect issues like this

Detection approaches can include:

  • Static analysis for archive extraction APIs that write directly into web roots.
  • Code review checks for missing path canonicalization and containment validation.
  • Rules identifying unrestricted archive entry types, especially executable scripts.
  • Runtime monitoring for unexpected PHP files or modifications beneath CMS directories.
  • File-integrity monitoring on web roots, configuration files, and update components.
  • Policy enforcement requiring signed or hash-verified update packages.
  • Automated security review tools can help identify dangerous extraction and file-write patterns.

Sources

SourceLink
github.comgithub.com/GetSimpleCMS-CE/GetSimpleCMS-CE/security/advisories/GHSA-q5rx-gppg-768r

Frequently asked

questions

Potentially. Remote exploitation depends on whether an attacker can cause the update workflow to retrieve or process a malicious archive and whether the resulting files are reachable and executable through the web server.

The key prerequisite is the ability to influence the archive processed by the update handler. The exact access requirements depend on authentication, authorization, request-forgery protections, and update-source controls in the deployment.

Treat update archives as untrusted, validate their integrity and contents, extract them in an isolated non-executable staging area, enforce path containment, and activate only approved files.

Use least-privilege update services, disable script execution in writable directories, enforce signed-package policies, monitor web-root changes, and test archive extraction logic for traversal and dangerous file-type handling.

Find out what's already
exploitable in your codebase.