CVE-2024-31210 HIGH

CVE-2024-31210: PHP file upload bypass via Plugin installer

Vendor Wordpress
Product wordpress-develop
Weakness CWE-434 · Unrestricted file upload
Published April 4, 2024
Last update August 2, 2024

CVSS base score

7.7/10
Attack vector Network
Attack complexity High
Privileges required High
User interaction Required
Confidentiality High
Integrity High

CVSS vector

CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H

What the vulnerability does

01Description

WordPress is an open publishing platform for the Web. It's possible for a file of a type other than a zip file to be submitted as a new plugin by an administrative user on the Plugins -> Add New -> Upload Plugin screen in WordPress. If FTP credentials are requested for installation (in order to move the file into place outside of the `uploads` directory) then the uploaded file remains temporary available in the Media Library despite it not being allowed. If the `DISALLOW_FILE_EDIT` constant is set to `true` on the site _and_ FTP credentials are required when uploading a new theme or plugin, then this technically allows an RCE when the user would otherwise have no means of executing arbitrary PHP code. This issue _only_ affects Administrator level users on single site installations, and Super Admin level users on Multisite installations where it's otherwise expected that the user does not have permission to upload or execute arbitrary PHP code. Lower level users are not affected. Sites where the `DISALLOW_FILE_MODS` constant is set to `true` are not affected. Sites where an administrative user either does not need to enter FTP credentials or they have access to the valid FTP credentials, are not affected. The issue was fixed in WordPress 6.4.3 on January 30, 2024 and backported to versions 6.3.3, 6.2.4, 6.1.5, 6.0.7, 5.9.9, 5.8.9, 5.7.11, 5.6.13, 5.5.14, 5.4.15, 5.3.17, 5.2.20, 5.1.18, 5.0.21, 4.9.25, 2.8.24, 4.7.28, 4.6.28, 4.5.31, 4.4.32, 4.3.33, 4.2.37, and 4.1.40. A workaround is available. If the `DISALLOW_FILE_MODS` constant is defined as `true` then it will not be possible for any user to upload a plugin and therefore this issue will not be exploitable.

Explanation of Vulnerability in Simple Terms

02Summary

WordPress 6.4.0 through 6.4.2 contains an unrestricted file upload vulnerability in the media handling functionality. An authenticated administrator with high privileges can upload malicious files by bypassing file type validation. The vulnerability requires user interaction and can lead to unauthorized code execution, data modification, or site disruption affecting the entire WordPress installation.

What an attacker can do

03Attacker Capabilities

Upload and execute malicious files on the site, potentially running arbitrary code.

Potential impact on your site

04Site Impact

An admin account compromise could allow file upload leading to full site takeover, data theft, or malware injection.

Conditions required to exploit

05Prerequisites

Attacker must be logged in as an administrator and trick them into uploading a file or perform the upload themselves.

Key dates

06Disclosure timeline

April 4, 2024 CVE published
August 2, 2024 Record updated

Related vulnerabilities

08Related CVE