Skip to main content

ZenTao PMS CVE-2026-114391

| EUVDEUVD-2026-107238 HIGH
Incorrect Authorization (CWE-863)
2026-10-21 VulnCheck GHSA-crpg-r4ww-5jx4
7.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privilege user
  2. Delivery
    Call 'ajax'-named ACL-bypassed method
  3. Exploit
    Invoke system.ajaxDBAuthUrl / task.ajaxGetByID
  4. Execution
    Read data and obtain DB credentials
  5. Impact
    Alter tables or trigger CI jobs

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated session as a minimal-privilege ZenTao user (PR:L); it is not remote-unauthenticated. The vulnerability is present in default configurations of ZenTao PMS before 22.3 because commonModel::isOpenMethod() unconditionally treats any method whose name contains the substring 'ajax' as publicly accessible, bypassing group-based ACL - no special feature toggle or non-default setting is needed. The practical limiting factor is that the attacker must already hold valid credentials for a low-privilege account; there is no user-interaction requirement and no platform-specific constraint. Upgrading to 22.3 (which adds the config/privilege.php allow-list) removes the condition.

Impact

This is a credentialed authorization-bypass (CWE-863) in ZenTao PMS before 22.3, rated CVSS 4.0 7.1 (High) with vector AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:N. The signals are internally consistent: network-reachable, low attack complexity, no user interaction, but requiring an existing authenticated low-privilege account (PR:L), with high confidentiality impact (data read plus database credential disclosure) and limited integrity impact (triggering CI jobs, altering tables). No EPSS score was provided in the input and the CVE is not listed in CISA KEV, so there is no evidence of active exploitation; the finding was reported by VulnCheck, a credible research source, and a vendor patch plus commit are available. The root cause is clearly documented in source (commonModel::isOpenMethod() treating any method name containing 'ajax' as open), and the fix adds an explicit privilege.php allow-list, which strongly corroborates the vulnerability. Realistic priority is moderate-to-high for organizations running ZenTao with many low-trust internal users, because any authenticated minimal-privilege account can reach sensitive methods; it is lower for deployments where accounts are tightly controlled. Note: EPSS and POC availability are unknown from the provided data, so the exploitation-likelihood dimension cannot be fully quantified - treat the practical urgency as patch-promptly rather than emergency.

Exploit ScenarioDerived

An attacker with any low-privilege authenticated ZenTao account (or a compromised employee login) sends requests to ACL-bypassing endpoints such as system.ajaxDBAuthUrl to harvest database credentials and task.ajaxGetByID to read records they should not see. With the leaked DB credentials or admin.ajaxChangeTableEngine, they can then manipulate backend data or pivot to the database. No public exploit was identified in the provided data, though the bypass logic is fully disclosed in the patched source.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 21, 2026

ZenTao PMS before 22.3 permits authenticated low-privilege users to bypass group-based access controls by invoking any controller method whose name contains 'ajax', potentially exposing sensitive data and administrative actions. The flaw in commonModel::isOpenMethod() treats such methods as open, enabling calls such as task.ajaxGetByID, system.ajaxDBAuthUrl, and admin.ajaxChangeTableEngine to read records, retrieve database credentials, trigger CI jobs, and alter tables. Exploitation requires a valid low-privilege session; no public exploit was identified at time of analysis, and the vendor has released 22.3 with an explicit privilege allow-list. The issue is rated CVSS 4.0 7.1 (High) with high confidentiality impact and low integrity impact.

RemediationAI

Vendor-released patch: upgrade to ZenTao PMS 22.3 (release tag zentaopms_22.3_20260707), which introduces config/privilege.php with explicit openMethods and logonMethods allow-lists and removes the substring-based 'ajax' bypass. If maintaining a source branch, apply upstream commit ac484f3b01c0f84002391a344d99dd2993692f49 and verify that config/config.php includes config/privilege.php. If immediate upgrade is not possible, restrict network access to ZenTao to trusted users and monitor or block requests to ajax-named methods that should not be available to low-privilege accounts, especially task.ajaxGetByID, system.ajaxDBAuthUrl, and admin.ajaxChangeTableEngine; this is only a compensating control and does not correct the ACL bypass. Because system.ajaxDBAuthUrl may expose database credentials, rotate database credentials after suspected exposure. Review web server and application logs for unauthorized ajax method invocations. Advisory references: https://www.vulncheck.com/advisories/zentao-pms-before-22.3-authorization-bypass-via-ajax-controller-methods and https://github.com/easysoft/zentaopms/releases/tag/zentaopms_22.3_20260707.

Affected VersionsENISA

zentaopms 0 <22.3

Affected Packages

euvd zentaopms fix: 22.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

ZenTao PMS is a PHP-based project management application whose request dispatch relies on commonModel::isOpenMethod() to decide whether the current user is subject to group-based ACL checks. The root cause is CWE-863 (Incorrect Authorization): before 22.3, the method treated any controller method containing the substring 'ajax' as open, so authenticated users could reach methods outside their group permissions without an explicit allow-list entry. This is not a remote unauthenticated bypass; the CVSS vector includes PR:L and the independent assessment confirms that a valid minimal-privilege ZenTao session is required. The affected code is application-level PHP authorization logic, not a memory-safety flaw. The vendor fix adds config/privilege.php with explicit $config->openMethods and $config->logonMethods allow-lists and includes that file from config/config.php, replacing the broad substring behavior. Relevant code references include the vulnerable isOpenMethod() implementation in module/common/model.php and the system controller in module/system/control.php, plus the upstream commit ac484f3b01c0f84002391a344d99dd2993692f49 and VulnCheck advisory for CVE-2026-114391.

Know when Easysoft gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 7.1 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 7.1 HIGH

Network-reachable with low complexity and no UI, but requires an authenticated low-privilege account (PR:L); high confidentiality from DB credential/data exposure and low integrity from table/CI changes, no availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

ZenTao PMS before 22.3 contains an authorization bypass vulnerability in commonModel::isOpenMethod() that lets logged-in users skip group-based ACL checks for any method containing 'ajax'. Minimal-privilege users can call methods like task.ajaxGetByID, system.ajaxDBAuthUrl and admin.ajaxChangeTableEngine to read data, obtain database credentials, trigger CI jobs and alter tables.

Executive ViewAI

Why It Matters

ZenTao project management deployments running versions earlier than 22.3 permit any holder of a valid low-privilege login to reach administrative controller functions and sensitive records through a flaw in group-based access control, meaning internal staff, contractors, or anyone issued limited access could obtain database credentials or alter tables. Because exploitation requires an authenticated session and no public exploit code has been identified at time of analysis, the practical exposure is primarily insider misuse or misuse of a compromised low-privilege account rather than mass external attack. Leadership should care because credential exposure at this layer can escalate into broader database compromise affecting the integrity of project and operational data.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Medium
popular project-management suite, widely used in China, not globally ubiquitous
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy