/

CVE-2026-63213

Severity:

HIGH RISK

(7.2)

Path Traversal (CWE-22) in SuiteCRM Upgrade Wizard

CVE-2026-63213

Undergoing Analysis

Vulnerability type

Category:

Path Traversal

CWE:

CWE-22

Impact:

Unauthorized file write, potential code execution, and denial of service

Severity:

HIGH RISK

(7.2)

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 path traversal flaw in SuiteCRM's Upgrade Wizard lets an authenticated administrator influence where extracted package files are written. If the hidden destination parameter contains traversal sequences that path validation does not reject, files may be written outside the intended directory, potentially enabling code execution or denial of service.

A path traversal flaw in SuiteCRM's Upgrade Wizard lets an authenticated administrator influence where extracted package files are written. If the hidden destination parameter contains traversal sequences that path validation does not reject, files may be written outside the intended directory, potentially enabling code execution or denial of service.

Affected context

The issue is in the Upgrade Wizard commit flow in SuiteCRM versions before 7.15.2 and 8.10.2. The flow trusts the hidden zip_to_dir parameter, and clean_path() does not reject traversal sequences, which may allow extracted files to escape the intended destination.

The issue is in the Upgrade Wizard commit flow in SuiteCRM versions before 7.15.2 and 8.10.2. The flow trusts the hidden zip_to_dir parameter, and clean_path() does not reject traversal sequences, which may allow extracted files to escape the intended destination.

Exploit preconditions

  • Attack surface: The SuiteCRM Upgrade Wizard commit flow
  • Required access: An authenticated administrator able to use the upgrade flow
  • Trigger point: Processing and extracting an upgrade package during the commit flow
  • Why exploitation is possible: The destination parameter is trusted, and path cleaning does not reject traversal sequences
  • Attack surface: The SuiteCRM Upgrade Wizard commit flow
  • Required access: An authenticated administrator able to use the upgrade flow
  • Trigger point: Processing and extracting an upgrade package during the commit flow
  • Why exploitation is possible: The destination parameter is trusted, and path cleaning does not reject traversal sequences

Why this happens

The underlying bug is improper limitation of a path to a restricted directory, mapping to CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal'). The application uses a client-controllable destination value without adequately canonicalizing and constraining the resulting file paths to the intended extraction directory.

The underlying bug is improper limitation of a path to a restricted directory, mapping to CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal'). The application uses a client-controllable destination value without adequately canonicalizing and constraining the resulting file paths to the intended extraction directory.

Potential impact

  • Package files could be written outside the intended destination
  • Application or configuration files could be overwritten
  • Executable PHP could be placed under the web root, potentially enabling code execution
  • The application could become unavailable or behave unpredictably
  • Package files could be written outside the intended destination
  • Application or configuration files could be overwritten
  • Executable PHP could be placed under the web root, potentially enabling code execution
  • The application could become unavailable or behave unpredictably

General mitigation guidance

Defensive patterns include resolving and canonicalizing destination paths, then verifying that each resolved path remains within an explicitly allowed extraction directory. Treat client-provided path values as untrusted, prefer server-side destination selection over hidden parameters, and reject traversal attempts rather than trying to sanitize them. Limit upgrade operations to appropriately privileged roles and constrain the permissions of the process that writes extracted files.

Defensive patterns include resolving and canonicalizing destination paths, then verifying that each resolved path remains within an explicitly allowed extraction directory. Treat client-provided path values as untrusted, prefer server-side destination selection over hidden parameters, and reject traversal attempts rather than trying to sanitize them. Limit upgrade operations to appropriately privileged roles and constrain the permissions of the process that writes extracted files.

How teams detect issues like this

  • Use static analysis to identify file extraction and write operations that incorporate request parameters into paths.
  • Review code for path checks that rely on string cleanup without canonicalization and containment checks.
  • Add tests and policy checks ensuring archive entries and destination paths cannot escape an approved directory.
  • Monitor upgrade activity and file changes in sensitive application, configuration, and web-root locations.
  • Use static analysis to identify file extraction and write operations that incorporate request parameters into paths.
  • Review code for path checks that rely on string cleanup without canonicalization and containment checks.
  • Add tests and policy checks ensuring archive entries and destination paths cannot escape an approved directory.
  • Monitor upgrade activity and file changes in sensitive application, configuration, and web-root locations.

Sources

SourceLink
github.comgithub.com/SuiteCRM/SuiteCRM-Core/commit/a11f50180d939f639cc468b5d536e8ad714dfb68
github.comgithub.com/SuiteCRM/SuiteCRM-Core/releases/tag/v8.10.2
github.comgithub.com/SuiteCRM/SuiteCRM/commit/d6bca97a0159ec019a969b86eca32affab3beb7c
github.comgithub.com/SuiteCRM/SuiteCRM/releases/tag/v7.15.2
github.comgithub.com/SuiteCRM/SuiteCRM/security/advisories/GHSA-wfvr-mpq2-257w

Frequently asked

questions

The described attack requires an authenticated administrator who can use the Upgrade Wizard commit flow.

Depending on the files written and the deployment, an attacker could overwrite application or configuration files, place executable PHP under the web root, or cause a denial of service.

Canonicalize each target path and enforce that it remains inside a fixed, server-controlled extraction directory.

Treat path values and archive entries as untrusted, avoid relying on hidden parameters for security decisions, and test file operations against traversal and directory-escape cases.

The described attack requires an authenticated administrator who can use the Upgrade Wizard commit flow.

Depending on the files written and the deployment, an attacker could overwrite application or configuration files, place executable PHP under the web root, or cause a denial of service.

Canonicalize each target path and enforce that it remains inside a fixed, server-controlled extraction directory.

Treat path values and archive entries as untrusted, avoid relying on hidden parameters for security decisions, and test file operations against traversal and directory-escape cases.

Find out what's already
exploitable in your codebase.