Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege user
-
DeliveryCall 'ajax'-named ACL-bypassed method
-
ExploitInvoke system.ajaxDBAuthUrl / task.ajaxGetByID
-
ExecutionRead data and obtain DB credentials
-
ImpactAlter 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
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
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.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Eaton easySoft software is used to program easy controllers and displays for configuring, programming and defining param
Eaton EasySoft project files use weak encryption vulnerable to brute force attacks, allowing local attackers with file a
Eaton easySoft releases below 8.46 fail to properly validate the TLS certificate presented by easyE4 devices, allowing a
Authenticated users can exploit an authorization bypass in ZenTao PMS through 22.6 to read and overwrite other users' co
EUVD-2026-107238
GHSA-crpg-r4ww-5jx4
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB