/

CVE-2026-114391

Severity:

HIGH RISK

(7.1)

Authorization Bypass (CWE-863) in ZenTao PMS AJAX Methods

CVE-2026-114391

Deferred

Vulnerability type

Category:

Authorization Bypass

CWE:

CWE-863

Impact:

Unauthorized access and privileged administrative actions

Severity:

HIGH RISK

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

ZenTao PMS before 22.3 contains an authorization bypass in commonModel::isOpenMethod(), where authenticated users can avoid group-based access-control checks for methods containing ajax.

A minimally privileged account may use exposed AJAX methods to access data, retrieve database-related credentials, trigger CI jobs, or alter database tables when the affected endpoints are enabled and reachable.

ZenTao PMS before 22.3 contains an authorization bypass in commonModel::isOpenMethod(), where authenticated users can avoid group-based access-control checks for methods containing ajax.

A minimally privileged account may use exposed AJAX methods to access data, retrieve database-related credentials, trigger CI jobs, or alter database tables when the affected endpoints are enabled and reachable.

Affected context

The issue occurs in ZenTao PMS deployments that use the affected authorization logic and expose methods whose names contain ajax. It becomes risky when a logged-in user has fewer permissions than the requested operation requires, but method-name matching causes the normal group-based ACL check to be skipped.

The issue occurs in ZenTao PMS deployments that use the affected authorization logic and expose methods whose names contain ajax. It becomes risky when a logged-in user has fewer permissions than the requested operation requires, but method-name matching causes the normal group-based ACL check to be skipped.

Exploit preconditions

  • Attack surface: Authenticated ZenTao PMS web endpoints and AJAX methods
  • Required access: A valid user account, potentially with minimal privileges
  • Trigger point: Invocation of an exposed method containing ajax
  • Why exploitation is possible: The authorization helper may treat the method name as sufficient to bypass group-based ACL enforcement
  • Attack surface: Authenticated ZenTao PMS web endpoints and AJAX methods
  • Required access: A valid user account, potentially with minimal privileges
  • Trigger point: Invocation of an exposed method containing ajax
  • Why exploitation is possible: The authorization helper may treat the method name as sufficient to bypass group-based ACL enforcement

Why this happens

The underlying flaw is an authorization decision based on an overly broad method-name condition. When commonModel::isOpenMethod() identifies methods containing ajax as open, it can bypass the permission checks that should apply to the requested operation.

This maps to CWE-863: Incorrect Authorization, because the application fails to verify whether the authenticated principal is authorized for the specific resource or action.

The underlying flaw is an authorization decision based on an overly broad method-name condition. When commonModel::isOpenMethod() identifies methods containing ajax as open, it can bypass the permission checks that should apply to the requested operation.

This maps to CWE-863: Incorrect Authorization, because the application fails to verify whether the authenticated principal is authorized for the specific resource or action.

Potential impact

  • Unauthorized users may read protected application or project data
  • Database-related credentials or connection information could be exposed
  • CI jobs could be triggered without the intended authorization
  • Database tables or other system configuration could be altered
  • An attacker could escalate access within the ZenTao deployment
  • Compromised data or configuration could affect connected systems
  • Unauthorized users may read protected application or project data
  • Database-related credentials or connection information could be exposed
  • CI jobs could be triggered without the intended authorization
  • Database tables or other system configuration could be altered
  • An attacker could escalate access within the ZenTao deployment
  • Compromised data or configuration could affect connected systems

General mitigation guidance

Mitigation generally focuses on making authorization explicit, centralized, and independent of method naming.

Common defensive patterns include:

  • Applying deny-by-default authorization to every callable method
  • Requiring explicit allowlisting for public or AJAX endpoints
  • Performing object-level and action-level permission checks after authentication
  • Avoiding method-name substring tests as authorization controls
  • Limiting database, CI, and administrative operations to narrowly scoped roles
  • Reducing trust in authenticated sessions by enforcing least privilege and appropriate session protections
  • Separating sensitive administrative functions from general user-facing request handlers

Mitigation generally focuses on making authorization explicit, centralized, and independent of method naming.

Common defensive patterns include:

  • Applying deny-by-default authorization to every callable method
  • Requiring explicit allowlisting for public or AJAX endpoints
  • Performing object-level and action-level permission checks after authentication
  • Avoiding method-name substring tests as authorization controls
  • Limiting database, CI, and administrative operations to narrowly scoped roles
  • Reducing trust in authenticated sessions by enforcing least privilege and appropriate session protections
  • Separating sensitive administrative functions from general user-facing request handlers

How teams detect issues like this

Organizations can look for:

  • Static-analysis findings where authorization depends on method names, prefixes, or substrings
  • Code-review signals showing early returns that skip ACL checks for AJAX or API handlers
  • Endpoint inventories containing callable methods without explicit permission metadata
  • Access logs showing low-privilege users invoking administrative, database, or CI-related methods
  • Policy checks requiring centralized authorization middleware for all externally reachable handlers

Automated code-review and software-composition tools may help identify suspicious authorization bypass patterns, but endpoint and role testing should complement automated analysis.

Organizations can look for:

  • Static-analysis findings where authorization depends on method names, prefixes, or substrings
  • Code-review signals showing early returns that skip ACL checks for AJAX or API handlers
  • Endpoint inventories containing callable methods without explicit permission metadata
  • Access logs showing low-privilege users invoking administrative, database, or CI-related methods
  • Policy checks requiring centralized authorization middleware for all externally reachable handlers

Automated code-review and software-composition tools may help identify suspicious authorization bypass patterns, but endpoint and role testing should complement automated analysis.

Sources

SourceLink
github.comgithub.com/easysoft/zentaopms/blob/zentaopms_22.2_20260527/module/common/model.php#L446-L463
github.comgithub.com/easysoft/zentaopms/blob/zentaopms_22.2_20260527/module/system/control.php#L454-L474
github.comgithub.com/easysoft/zentaopms/commit/ac484f3b01c0f84002391a344d99dd2993692f49
github.comgithub.com/easysoft/zentaopms/issues/181
github.comgithub.com/easysoft/zentaopms/releases/tag/zentaopms_22.3_20260707
vulncheck.comvulncheck.com/advisories/zentao-pms-before-22.3-authorization-bypass-via-ajax-controller-methods

Frequently asked

questions

Yes, it may be exploitable through reachable ZenTao web endpoints when an attacker has a valid authenticated account and the affected methods are exposed.

No. The described issue can affect minimally privileged logged-in users because the vulnerable logic may skip group-based ACL checks.

Ensure every endpoint and method performs explicit, deny-by-default authorization based on the authenticated user's role and the requested action, rather than relying on method names.

Maintain an endpoint authorization inventory, use centralized policy enforcement, test access with multiple role levels, and monitor sensitive operations such as credential access, CI triggers, and database changes.

Yes, it may be exploitable through reachable ZenTao web endpoints when an attacker has a valid authenticated account and the affected methods are exposed.

No. The described issue can affect minimally privileged logged-in users because the vulnerable logic may skip group-based ACL checks.

Ensure every endpoint and method performs explicit, deny-by-default authorization based on the authenticated user's role and the requested action, rather than relying on method names.

Maintain an endpoint authorization inventory, use centralized policy enforcement, test access with multiple role levels, and monitor sensitive operations such as credential access, CI triggers, and database changes.

Find out what's already
exploitable in your codebase.