/

CVE-2026-108902

Severity:

HIGH RISK

(8.1)

Path Traversal (CWE-22) in pH7Builder Picture Module

CVE-2026-108902

Deferred

Vulnerability type

Category:

Path Traversal

CWE:

CWE-22

Impact:

Arbitrary File Deletion and Denial of Service

Severity:

HIGH RISK

(8.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

pH7Builder contains a path traversal flaw in the picture module's deletePhoto() action. An authenticated member may be able to manipulate the picture_link parameter to delete files outside the intended photo directory, potentially causing content loss or denial of service.

pH7Builder contains a path traversal flaw in the picture module's deletePhoto() action. An authenticated member may be able to manipulate the picture_link parameter to delete files outside the intended photo directory, potentially causing content loss or denial of service.

Affected context

The vulnerability occurs in pH7Builder deployments where the picture module accepts a user-controlled file reference through the photo deletion workflow. It becomes risky when that reference is used to construct a filesystem path without reliably restricting it to the intended member photo directory.

The vulnerability occurs in pH7Builder deployments where the picture module accepts a user-controlled file reference through the photo deletion workflow. It becomes risky when that reference is used to construct a filesystem path without reliably restricting it to the intended member photo directory.

Exploit preconditions

  • Attack surface: The authenticated picture-management HTTP endpoint - Required access: A valid member account capable of invoking photo deletion - Trigger point: Processing the POST picture_link parameter in deletePhoto() - Why exploitation is possible: User-controlled path components may influence

filesystem resolution without sufficient canonicalization and directory

confinement

  • Attack surface: The authenticated picture-management HTTP endpoint - Required access: A valid member account capable of invoking photo deletion - Trigger point: Processing the POST picture_link parameter in deletePhoto() - Why exploitation is possible: User-controlled path components may influence

filesystem resolution without sufficient canonicalization and directory

confinement

Why this happens

The underlying bug is improper limitation of a filesystem path derived from external input. When application logic concatenates or resolves an attacker-influenced filename without canonicalizing it and verifying that the resulting path remains within an approved directory, path traversal can occur. This behavior maps to CWE-22, Improper Limitation of a Pathname to a Restricted Directory, and may allow deletion operations to reach unintended files.

The underlying bug is improper limitation of a filesystem path derived from external input. When application logic concatenates or resolves an attacker-influenced filename without canonicalizing it and verifying that the resulting path remains within an approved directory, path traversal can occur. This behavior maps to CWE-22, Improper Limitation of a Pathname to a Restricted Directory, and may allow deletion operations to reach unintended files.

Potential impact

  • Other members' images may be deleted
  • Application configuration files may be removed
  • Cache or runtime files may be damaged
  • The service may experience denial of service
  • Site content integrity may be reduced
  • Other members' images may be deleted
  • Application configuration files may be removed
  • Cache or runtime files may be damaged
  • The service may experience denial of service
  • Site content integrity may be reduced

General mitigation guidance

Mitigation generally focuses on removing filesystem trust from user input and enforcing a constrained file-management design. Secure-by-default patterns include using server-side identifiers mapped to known file records, accepting only allowlisted filenames or opaque asset IDs, canonicalizing paths before access, and verifying that resolved paths remain beneath a fixed storage root. File operations can be isolated in dedicated directories with limited permissions, while application processes should run with only the privileges required for their normal tasks. Input validation, authorization checks, and safe failure handling should occur before deletion is attempted.

Mitigation generally focuses on removing filesystem trust from user input and enforcing a constrained file-management design. Secure-by-default patterns include using server-side identifiers mapped to known file records, accepting only allowlisted filenames or opaque asset IDs, canonicalizing paths before access, and verifying that resolved paths remain beneath a fixed storage root. File operations can be isolated in dedicated directories with limited permissions, while application processes should run with only the privileges required for their normal tasks. Input validation, authorization checks, and safe failure handling should occur before deletion is attempted.

How teams detect issues like this

Detection approaches include static analysis for filesystem operations that incorporate request parameters, particularly path joins or concatenation followed by deletion. Code review should examine whether canonical paths are confined to an approved root and whether asset identifiers are resolved server-side. Runtime monitoring can alert on deletion attempts involving unexpected directories, configuration paths, or traversal indicators. Policy enforcement may require approved file-storage abstractions and prohibit direct use of request data in filesystem APIs. Automated security review tools can help identify these patterns during development.

Detection approaches include static analysis for filesystem operations that incorporate request parameters, particularly path joins or concatenation followed by deletion. Code review should examine whether canonical paths are confined to an approved root and whether asset identifiers are resolved server-side. Runtime monitoring can alert on deletion attempts involving unexpected directories, configuration paths, or traversal indicators. Policy enforcement may require approved file-storage abstractions and prohibit direct use of request data in filesystem APIs. Automated security review tools can help identify these patterns during development.

Sources

SourceLink
github.comgithub.com/pH7Software/pH7-Social-Dating-CMS
github.comgithub.com/pH7Software/pH7-Social-Dating-CMS/blob/v18.4.1/_protected/app/system/core/classes/PictureCore.php#L23-L38
github.comgithub.com/pH7Software/pH7-Social-Dating-CMS/commit/2ffa19ac36d58dbaac37e1c4912be469d67ee75c
vulncheck.comvulncheck.com/advisories/ph7builder-before-18.5.0-path-traversal-arbitrary-file-deletion-via-picture-link

Frequently asked

questions

It may be exploitable through the application's web interface by an

authenticated member, provided the affected photo-deletion workflow is

reachable and the deployment's filesystem permissions allow the targeted

operation.

Not necessarily. The described attack surface requires a member account with

access to the relevant deletion action, rather than administrator privileges.

Resolve files through server-side asset records or opaque identifiers instead

of trusting client-supplied paths. If path-based storage is unavoidable,

canonicalize the result and enforce containment within a dedicated storage

directory before performing any operation.

Use strict input validation, centralized filesystem access helpers, explicit

authorization checks, least-privilege service accounts, and monitoring for

unexpected file operations. Security-focused code review and automated

analysis should also flag request data flowing into filesystem APIs.

It may be exploitable through the application's web interface by an

authenticated member, provided the affected photo-deletion workflow is

reachable and the deployment's filesystem permissions allow the targeted

operation.

Not necessarily. The described attack surface requires a member account with

access to the relevant deletion action, rather than administrator privileges.

Resolve files through server-side asset records or opaque identifiers instead

of trusting client-supplied paths. If path-based storage is unavoidable,

canonicalize the result and enforce containment within a dedicated storage

directory before performing any operation.

Use strict input validation, centralized filesystem access helpers, explicit

authorization checks, least-privilege service accounts, and monitoring for

unexpected file operations. Security-focused code review and automated

analysis should also flag request data flowing into filesystem APIs.

Find out what's already
exploitable in your codebase.