Description
Changjetong T+ versions up to and including 16.x contain a .NET deserialization vulnerability in an AjaxPro endpoint that can lead to remote code execution. A remote attacker can send a crafted request to /tplus/ajaxpro/Ufida.T.CodeBehind._PriorityLevel,App_Code.ashx?method=GetStoreWarehouseByStore with a malicious JSON body that leverages deserialization of attacker-controlled .NET types to invoke arbitrary methods such as System.Diagnostics.Process.Start. This can result in execution of arbitrary commands in the context of the T+ application service account. Exploitation evidence was observed by the Shadowserver Foundation on 2023-08-19 (UTC).
EPSS Score:
0%
Comprehensive Technical Analysis of EUVD-2023-60535 (CVE-2023-7334)
Vulnerability: .NET Deserialization Leading to Remote Code Execution (RCE) in Changjetong T+
1. Vulnerability Assessment & Severity Evaluation
Vulnerability Overview
EUVD-2023-60535 (CVE-2023-7334) is a critical .NET deserialization vulnerability in Changjetong T+, a widely used enterprise resource planning (ERP) software in China and other regions. The flaw resides in an AjaxPro endpoint (/tplus/ajaxpro/Ufida.T.CodeBehind._PriorityLevel,App_Code.ashx) that improperly deserializes attacker-controlled JSON input, enabling remote code execution (RCE) in the context of the application service account.
CVSS 4.0 Severity Analysis
| Metric | Value | Explanation |
|---|---|---|
| Attack Vector (AV) | Network (N) | Exploitable remotely over HTTP/HTTPS. |
| Attack Complexity (AC) | Low (L) | No special conditions required; straightforward exploitation. |
| Attack Requirements (AT) | None (N) | No prior authentication or user interaction needed. |
| Privileges Required (PR) | None (N) | Unauthenticated exploitation possible. |
| User Interaction (UI) | None (N) | No user action required. |
| Vulnerable Component (VC) | High (H) | Full compromise of the T+ application. |
| Integrity Impact (VI) | High (H) | Arbitrary code execution allows data tampering. |
| Availability Impact (VA) | High (H) | Potential for denial-of-service (DoS) or system takeover. |
| Subsequent Confidentiality (SC) | None (N) | No direct impact on confidentiality beyond RCE. |
| Subsequent Integrity (SI) | None (N) | No additional integrity impact beyond initial RCE. |
| Subsequent Availability (SA) | None (N) | No further availability impact beyond initial RCE. |
Base Score: 9.3 (Critical) The vulnerability is trivially exploitable by unauthenticated attackers, leading to full system compromise with high impact on confidentiality, integrity, and availability.
2. Potential Attack Vectors & Exploitation Methods
Exploitation Mechanism
-
Vulnerable Endpoint Identification
- The flaw exists in the AjaxPro handler (
App_Code.ashx), which processes JSON input without proper validation. - The specific method
GetStoreWarehouseByStoreis targeted, but other methods may also be vulnerable.
- The flaw exists in the AjaxPro handler (
-
Malicious JSON Payload Construction
- Attackers craft a malicious JSON payload containing serialized .NET objects (e.g.,
System.Diagnostics.Process). - Example payload structure:
{ "__type": "System.Diagnostics.Process, System", "StartInfo": { "__type": "System.Diagnostics.ProcessStartInfo, System", "FileName": "cmd.exe", "Arguments": "/c whoami > C:\\temp\\exploit.txt" } } - Upon deserialization, the payload triggers arbitrary method invocation (e.g.,
Process.Start).
- Attackers craft a malicious JSON payload containing serialized .NET objects (e.g.,
-
Remote Code Execution (RCE)
- The deserialization process instantiates attacker-controlled objects, leading to:
- Arbitrary command execution (e.g., reverse shells, data exfiltration).
- Privilege escalation if the service account has elevated permissions.
- Lateral movement within the network if T+ is integrated with other systems.
- The deserialization process instantiates attacker-controlled objects, leading to:
-
Observed Exploitation in the Wild
- Shadowserver Foundation detected active exploitation attempts on 2023-08-19 (UTC).
- Public proof-of-concept (PoC) exploits are available (e.g., MD-SEC’s GitHub).
Attack Scenarios
| Scenario | Description |
|---|---|
| Unauthenticated RCE | Attacker sends a crafted HTTP POST request to the vulnerable endpoint without credentials. |
| Post-Exploitation | After gaining a foothold, attackers may: |
- Deploy ransomware (e.g., LockBit, BlackCat).
- Exfiltrate sensitive ERP data (financial records, PII).
- Establish persistence via scheduled tasks or backdoors. | | Supply Chain Attack | If T+ is integrated with other enterprise systems (e.g., SAP, Oracle), attackers may pivot to additional targets. |
3. Affected Systems & Software Versions
Vulnerable Software
- Product: Changjetong T+ (ERP software)
- Vendor: Changjetong Information Technology Co., Ltd.
- Affected Versions: All versions up to and including 16.x
- Vulnerable Component:
Ufida.T.CodeBehind._PriorityLevelAjaxPro handler
Deployment Context
- Primary Users: Small-to-medium enterprises (SMEs) in China, with some adoption in Europe (particularly in supply chain and logistics).
- Typical Environment:
- Windows Server (IIS-hosted ASP.NET application).
- Database Backend: SQL Server or Oracle.
- Integration: Often connected to financial, HR, and inventory systems.
4. Recommended Mitigation Strategies
Immediate Actions
| Mitigation | Details |
|---|---|
| Apply Vendor Patches | Check for updates from Changjetong’s official site and apply the latest security fixes. |
| Network-Level Protections | - Firewall Rules: Restrict access to /tplus/ajaxpro/ endpoints to trusted IPs. |
- WAF Rules: Deploy ModSecurity or Cloudflare WAF to block malicious JSON payloads (e.g.,
System.Diagnostics.Process). | | Disable Vulnerable Endpoint | If patching is not immediately possible, disable the AjaxPro handler via IIS configuration. | | Least Privilege Principle | Ensure the T+ service account runs with minimal permissions (avoidSYSTEMorAdministratorprivileges). |
Long-Term Remediation
| Strategy | Implementation |
|---|---|
| Input Validation | Implement strict JSON schema validation to reject malformed or dangerous payloads. |
| .NET Deserialization Hardening | - Use TypeNameHandling.None in JSON deserialization. |
- Apply
[JsonObject(MemberSerialization.OptIn)]to restrict deserializable properties. - Deploy Microsoft’s BinaryFormatter security guidance (MSRC Blog). |
| Runtime Application Self-Protection (RASP) | Deploy RASP solutions (e.g., Contrast Security, Hdiv) to detect and block deserialization attacks. |
| Network Segmentation | Isolate T+ servers in a dedicated VLAN with strict access controls. |
| Threat Hunting & Monitoring | - SIEM Alerts: Monitor for unusual
POSTrequests to/tplus/ajaxpro/. - Endpoint Detection (EDR): Detect
cmd.exeorpowershell.exespawned byw3wp.exe(IIS worker process). |
Detection & Forensics
- Log Analysis:
- Check IIS logs for unusual JSON payloads in
POSTrequests to/tplus/ajaxpro/. - Look for
System.Diagnostics.Processor other dangerous .NET types in logs.
- Check IIS logs for unusual JSON payloads in
- Memory Forensics:
- Use Volatility or Rekall to analyze
w3wp.exefor injected malicious code.
- Use Volatility or Rekall to analyze
- YARA Rules:
rule Detect_Changjetong_TPlus_Exploit { meta: description = "Detects CVE-2023-7334 exploitation attempts" reference = "EUVD-2023-60535" strings: $json_payload = /"__type"\s*:\s*"System\.Diagnostics\.Process/ $ajaxpro_endpoint = "/tplus/ajaxpro/Ufida.T.CodeBehind._PriorityLevel" condition: $json_payload and $ajaxpro_endpoint }
5. Impact on the European Cybersecurity Landscape
Regional Exposure
- Adoption in Europe:
- Changjetong T+ is primarily used in China, but some European SMEs (particularly in logistics, manufacturing, and trade) may deploy it due to cost-effectiveness.
- Supply chain risks: If European companies integrate T+ with local ERP systems (e.g., SAP, Microsoft Dynamics), a compromise could lead to cross-border data breaches.
Compliance & Regulatory Risks
| Regulation | Risk |
|---|---|
| GDPR (EU 2016/679) | Unauthorized RCE could lead to PII exposure, triggering Article 33 (Data Breach Notification) and potential fines (up to 4% of global revenue). |
| NIS2 Directive | If T+ is used in critical infrastructure (e.g., energy, transport), exploitation could constitute a major incident requiring reporting to CSIRTs. |
| DORA (Digital Operational Resilience Act) | Financial institutions using T+ must ensure third-party risk management to avoid systemic disruptions. |
Threat Actor Interest
- State-Sponsored APTs: Chinese threat groups (e.g., APT41, Mustang Panda) may exploit this for espionage in European supply chains.
- Ransomware Groups: LockBit, BlackCat, and Cl0p have targeted ERP systems for double extortion (data theft + encryption).
- Initial Access Brokers (IABs): May sell access to compromised T+ servers on dark web forums.
6. Technical Details for Security Professionals
Root Cause Analysis
-
Vulnerable Code Path:
- The AjaxPro handler (
App_Code.ashx) usesJavaScriptSerializerorNewtonsoft.Jsonwithout type restrictions. - The
GetStoreWarehouseByStoremethod blindly deserializes attacker-controlled JSON, allowing type confusion attacks.
- The AjaxPro handler (
-
Exploitation Flow:
- Attacker sends a malicious JSON payload to
/tplus/ajaxpro/Ufida.T.CodeBehind._PriorityLevel,App_Code.ashx?method=GetStoreWarehouseByStore. - The server deserializes the payload, instantiating
System.Diagnostics.Process. - The
Start()method is invoked, executing arbitrary commands.
- Attacker sends a malicious JSON payload to
Proof-of-Concept (PoC) Analysis
-
Public PoCs:
- MD-SEC’s GitHub PoC demonstrates command execution via
whoami. - VulnCheck’s Advisory provides detailed exploitation steps and payload examples.
- MD-SEC’s GitHub PoC demonstrates command execution via
-
Example Exploit Request:
POST /tplus/ajaxpro/Ufida.T.CodeBehind._PriorityLevel,App_Code.ashx?method=GetStoreWarehouseByStore HTTP/1.1 Host: vulnerable-tplus-server Content-Type: application/json { "__type": "System.Diagnostics.Process, System", "StartInfo": { "__type": "System.Diagnostics.ProcessStartInfo, System", "FileName": "cmd.exe", "Arguments": "/c calc.exe" } }
Defensive Code Review Recommendations
- Secure Deserialization Practices:
// Safe JSON deserialization (Newtonsoft.Json) var settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.None, // Disable type handling SerializationBinder = new SafeSerializationBinder() // Whitelist allowed types }; var obj = JsonConvert.DeserializeObject(jsonPayload, settings); - Input Sanitization:
- Reject JSON payloads containing
__typeor dangerous .NET namespaces (e.g.,System.Diagnostics,System.IO).
- Reject JSON payloads containing
- Endpoint Hardening:
- Disable unused AjaxPro methods via
web.config:<system.web> <httpHandlers> <remove verb="*" path="*.ashx" /> </httpHandlers> </system.web>
- Disable unused AjaxPro methods via
Advanced Mitigation: Runtime Protection
- Microsoft Defender for Endpoint (MDE):
- Enable Attack Surface Reduction (ASR) rules to block untrusted deserialization.
- Sysmon Monitoring:
- Track process creation from
w3wp.exe(IIS worker process):<Sysmon schemaversion="4.90"> <EventFiltering> <ProcessCreate onmatch="include"> <ParentImage condition="contains">w3wp.exe</ParentImage> <CommandLine condition="contains">cmd.exe</CommandLine> </ProcessCreate> </EventFiltering> </Sysmon>
- Track process creation from
Conclusion & Recommendations
Key Takeaways
- Critical Severity: CVE-2023-7334 is a trivially exploitable RCE with CVSS 9.3, requiring immediate patching.
- Active Exploitation: Public PoCs and in-the-wild attacks (Shadowserver) increase the urgency for remediation.
- European Impact: While primarily a Chinese ERP risk, European supply chains may be exposed, necessitating proactive threat hunting.
Action Plan for Organizations
- Patch Immediately: Apply vendor updates for T+ 16.x and later.
- Isolate & Monitor: Restrict network access to T+ servers and deploy EDR/SIEM alerts.
- Harden Deserialization: Implement safe JSON parsing and type whitelisting.
- Compliance Review: Assess GDPR/NIS2/DORA risks if T+ processes EU data.
- Threat Intelligence: Monitor dark web forums for T+ exploitation trends.
Further Reading
This vulnerability underscores the critical need for secure coding practices in ERP systems, particularly those handling sensitive financial and operational data. Proactive patching, network segmentation, and runtime protection are essential to mitigate the risk of exploitation.