AjaxPro RCE exploited in the wild (CVE-2021-23758) [PoC]
CVE-2021-23758
CVE-2021-23758: AjaxPro.2 deserialization RCE lets unauthenticated attackers execute code (CVSS 9.8, KEV). Remove the library or upgrade to a patched fork immediately.
Actively exploited in the wild - CVE-2021-23758 is a critical deserialization vulnerability in all versions of the ajaxpro.2 package for .NET that grants unauthenticated remote code execution on the host server. This vulnerability is confirmed on CISA’s Known Exploited Vulnerabilities list, and with an EPSS score of 89.1%, exploitation attempts are expected within days.
Overview
CVE-2021-23758 affects every version of ajaxpro.2, a widely used .NET library that enables AJAX calls between web browsers and ASP.NET applications. The vulnerability stems from the library’s handling of serialized .NET objects in incoming HTTP requests. Because the deserialization process does not validate the data being processed, an attacker can craft a malicious payload that forces the server to instantiate arbitrary .NET classes.
The critical issue is not the library’s AJAX functionality, but its use of JavaScriptSerializer in a way that allows type inference from untrusted input. An attacker who can reach the AJAX endpoint can submit a serialized object that, when deserialized, triggers dangerous .NET gadgets. These gadgets can execute operating system commands, write files, or otherwise compromise the server with the privileges of the application pool.
The CVSS score of 9.8 reflects the severity: the attack requires no authentication, no user interaction, and can be launched over the network, though it does require some technical sophistication due to the high attack complexity. Successful exploitation gives the attacker complete control over the affected server.
Remediation
The original ajaxpro.2 package is no longer maintained and no patched version exists. Immediate action is required:
- Remove or replace ajaxpro.2: Migrate to a maintained fork or an alternative AJAX library for ASP.NET. The community fork “AjaxPro” on GitHub includes fixes for this vulnerability.
- Apply a WAF rule: If immediate removal is not possible, deploy a Web Application Firewall rule that blocks requests containing suspicious serialized .NET payloads bound for the AJAX handler.
- Restrict network access: Limit access to AJAX endpoints to trusted networks only, reducing the attack surface.
- Audit for compromise: Check affected servers for signs of post-exploitation activity, such as unexpected processes, new user accounts, or outbound connections to unfamiliar IPs.
For more context on recent exploitation campaigns, see the latest security news and review breach reports for indicators of compromise associated with this bug.
Security Insight
The persistence of CVE-2021-23758 in the KEV catalog despite its 2021 disclosure underscores a pattern: abandoned .NET libraries remain a silent liability in legacy applications. Unlike actively maintained frameworks where patches arrive within weeks, this vulnerability has no upstream fix, leaving every deployment permanently exposed. This mirrors the Log4j crisis - a ubiquitous library becomes a systemic risk when maintainers step away. Organizations must inventory third-party dependencies not just for known vulnerabilities, but for signs of project abandonment, and treat unmaintained components as technical debt that demands replacement, not monitoring.
Further Reading
Never miss a critical vulnerability
Get real-time security alerts delivered to your preferred platform.
Am I Affected by CVE-2021-23758?
Pick an ecosystem, paste your installed version, and we'll compare it against the fixed version published on OSV.dev. Browser-only — nothing is sent to a server.
Heuristic comparison only. Always cross-check against the vendor advisory before making patching decisions.
Metasploit Modules
Weaponized exploit code — authorized use only
The Metasploit Framework modules below are production-ready exploit code maintained by Rapid7. Unlike random GitHub PoCs, these are vetted by Metasploit maintainers and integrated into a point-and-click exploitation framework used by red teams worldwide. The presence of an MSF module means this CVE is trivially exploitable at scale — patch immediately.
Authorized use only. Run only against systems you own or have explicit written permission to test. Using exploit code against systems you do not own is illegal in most jurisdictions and violates Yazoul's terms of use.
| Module | Source |
|---|---|
exploit/windows/http/ajaxpro_deserialization_rce | View source |
1 Metasploit module indexed for this CVE. Source: rapid7/metasploit-framework.
Public PoC References
Unverified third-party code
These repositories are publicly listed on GitHub and have not been audited by Yazoul Security. They may contain malware, backdoors, destructive payloads, or operational security risks (telemetry, exfiltration). Treat them as hostile binaries. Inspect source before execution. Run only in isolated, disposable lab environments (offline VM, no credentials, no production data).
Authorized use only. This information is provided for defensive research, detection engineering, and patch validation. Using exploit code against systems you do not own or do not have explicit written permission to test is illegal in most jurisdictions and violates Yazoul's terms of use.
| Repository | Stars |
|---|---|
| numanturle/CVE-2021-23758-POC | ★ 17 |
Showing 1 of 1 known references. Source: nomi-sec/PoC-in-GitHub.
Related Advisories
In JetBrains TeamCity before 2026.1.3, 2025.11.7 unauthenticated remote code execution was possible via the agent polling protocol...
Mirasvit Full Page Cache Warmer for Magento 2 before version 1.11.12 contains a PHP object injection vulnerability that allows unauthenticated attackers to achieve remote code execution by supplying a...
JmsBinding.extractBodyFromJms() in camel-jms, and the equivalent JmsBinding class in camel-sjms, deserialized the payload of incoming JMS ObjectMessage values via javax.jms.ObjectMessage.getObject() w...
Pipecat is an open-source Python framework for building real-time voice and multimodal conversational agents. Versions 0.0.41 through 0.0.93 have a vulnerability in `LivekitFrameSerializer` – an optio...