CVE-2020-28036 Overview
CVE-2020-28036 is a privilege escalation vulnerability in WordPress's XML-RPC implementation located in wp-includes/class-wp-xmlrpc-server.php. This vulnerability allows unauthenticated attackers to gain elevated privileges by exploiting improper access controls when using XML-RPC to comment on posts. The flaw stems from missing authorization checks (CWE-862) that fail to properly validate user permissions before allowing certain XML-RPC operations.
Critical Impact
Unauthenticated attackers can exploit this vulnerability remotely to gain privileges on affected WordPress installations, potentially leading to complete site compromise with high impact to confidentiality, integrity, and availability.
Affected Products
- WordPress versions prior to 5.5.2
- Fedora 31, 32, and 33 (via WordPress packages)
- Debian Linux 10.0 (via WordPress packages)
Discovery Timeline
- 2020-10-29 - WordPress releases security patch in version 5.5.2
- 2020-11-02 - CVE-2020-28036 published to NVD
- 2024-11-21 - Last updated in NVD database
Technical Details for CVE-2020-28036
Vulnerability Analysis
This vulnerability exists due to missing authorization checks in WordPress's XML-RPC server component. The XML-RPC interface, which provides remote procedure call functionality for WordPress, failed to properly validate user permissions when processing comment-related requests. This missing authorization (CWE-862) allows attackers to bypass access controls and perform privileged operations without proper authentication.
The vulnerability is exploitable over the network without requiring any user interaction or prior authentication. Successful exploitation can result in unauthorized access to WordPress administrative functions, enabling attackers to modify content, create accounts, or potentially execute malicious code through plugin or theme manipulation.
Root Cause
The root cause of CVE-2020-28036 is a missing authorization vulnerability (CWE-862) in the class-wp-xmlrpc-server.php file. The code failed to implement proper permission checks before allowing XML-RPC operations related to post commenting. Without these authorization checks, the system incorrectly assumed that requests through the XML-RPC interface were legitimate, allowing unauthenticated users to perform actions that should require elevated privileges.
Attack Vector
The attack vector for this vulnerability is network-based, requiring no privileges, no user interaction, and presenting low complexity for exploitation. An attacker can craft malicious XML-RPC requests targeting the /xmlrpc.php endpoint on a vulnerable WordPress installation.
The attacker sends specially crafted XML-RPC requests to the target WordPress site's xmlrpc.php endpoint. By manipulating the comment functionality through XML-RPC, the attacker can bypass authorization checks and gain unauthorized privileges. The XML-RPC protocol uses HTTP POST requests with XML payloads, making this attack relatively straightforward to execute with standard HTTP tools.
Detection Methods for CVE-2020-28036
Indicators of Compromise
- Unusual XML-RPC traffic patterns with high volumes of POST requests to /xmlrpc.php
- Unexpected comments appearing on posts from unauthorized sources
- New user accounts with elevated privileges created without administrator action
- Modified site content or settings without corresponding administrator activity
- Log entries showing successful XML-RPC method calls from unknown IP addresses
Detection Strategies
- Monitor web server access logs for suspicious POST requests to xmlrpc.php with unusual payloads
- Implement Web Application Firewall (WAF) rules to detect and block malicious XML-RPC requests
- Review WordPress user database for unauthorized privilege escalations or new administrator accounts
- Analyze authentication logs for anomalies in user role assignments
Monitoring Recommendations
- Enable comprehensive logging for all XML-RPC requests on WordPress installations
- Set up alerts for bulk comment submissions or rapid-fire XML-RPC requests from single IP addresses
- Monitor for changes in user roles and permissions, particularly escalations to administrator level
- Implement real-time monitoring of WordPress database tables related to user capabilities
How to Mitigate CVE-2020-28036
Immediate Actions Required
- Update WordPress to version 5.5.2 or later immediately on all affected installations
- If immediate patching is not possible, disable XML-RPC functionality as a temporary measure
- Review all user accounts for unauthorized privilege escalations and remove suspicious accounts
- Audit recent comments and content changes for signs of exploitation
Patch Information
WordPress addressed this vulnerability in version 5.5.2, released on October 29, 2020. The fix is available in the WordPress Security Release announcement. The specific code changes can be reviewed in the GitHub WordPress commit c9e6b98968025b1629015998d12c3102165a7d32.
For Debian-based systems, refer to DSA-4784 and the Debian LTS Announcement for package updates. Fedora users should apply updates as documented in the Fedora Package Announcements.
Workarounds
- Disable XML-RPC entirely by adding add_filter('xmlrpc_enabled', '__return_false'); to your theme's functions.php file
- Block access to xmlrpc.php at the web server level using Apache .htaccess or Nginx configuration rules
- Use a security plugin like Wordfence or iThemes Security to disable or restrict XML-RPC access
- Implement IP whitelisting if XML-RPC functionality is required for specific integrations
# Apache .htaccess configuration to block XML-RPC
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
# Nginx configuration to block XML-RPC
location = /xmlrpc.php {
deny all;
return 403;
}
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


