Security advisory
In WordPress 4.9.7, plugins uploaded via the admin area are not verified as being ZIP files. This allows for PHP files to be uploaded. Once a PHP file is uploaded, the plugin extraction fails, but the PHP file remains in a predictable wp-content/uploads location, allowing for an attacker to then execute the file. This represents a security risk in limited scenarios where an attacker (who does have the required capabilities for plugin uploads) cannot simply place arbitrary PHP code into a valid plugin ZIP file and upload that plugin, because a machine's wp-content/plugins directory permissions were set up to block all new plugins.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2018-14028
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 1 Nov 2026, 06:11 UTC · Revision 1
Source evidence
In WordPress 4.9.7, plugins uploaded via the admin area are not verified as being ZIP files. This allows for PHP files to be uploaded. Once a PHP file is uploaded, the plugin extraction fails, but the PHP file remains in a predictable wp-content/uploads location, allowing for an attacker to then execute the file. This represents a security risk in limited scenarios where an attacker (who does have the required capabilities for plugin uploads) cannot simply place arbitrary PHP code into a valid plugin ZIP file and upload that plugin, because a machine's wp-content/plugins directory permissions were set up to block all new plugins.
osv:CVE-2018-14028
Complete source record
{
"id": "83641fb9f6c47e1370ff7538f95e9276e8217a628bf7383e98e1fabed0e7e694",
"url": "https://osv.dev/vulnerability/CVE-2018-14028",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "CVE-2018-14028",
"summary": "In WordPress 4.9.7, plugins uploaded via the admin area are not verified as being ZIP files. This allows for PHP files to be uploaded. Once a PHP file is uploaded, the plugin extraction fails, but the PHP file remains in a predictable wp-content/uploads location, allowing for an attacker to then execute the file. This represents a security risk in limited scenarios where an attacker (who does have the required capabilities for plugin uploads) cannot simply place arbitrary PHP code into a valid plugin ZIP file and upload that plugin, because a machine's wp-content/plugins directory permissions were set up to block all new plugins.",
"evidence": "osv:CVE-2018-14028",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2018-14028",
"aliases": [
"CVE-2018-14028"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/wordpress/wordpress",
"type": "GIT",
"events": [
{
"introduced": "d1802a68ec7a3536f744d45afb72660e4fef0292"
},
{
"last_affected": "d1802a68ec7a3536f744d45afb72660e4fef0292"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:wordpress:wordpress:4.9.7:*:*:*:*:*:*:*",
"range": [
{
"introduced": "4.9.7"
},
{
"last_affected": "4.9.7"
}
],
"source": "CPE_STRING"
}
]
}
}
],
"versions": [
"4.9.7"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2018-14028.json"
}
},
{
"ranges": [
{
"repo": "https://github.com/wordpress/wordpress-develop",
"type": "GIT",
"events": [
{
"introduced": "c561bbe127a7b92979e318b8a0f6a763e19e5108"
},
{
"last_affected": "c561bbe127a7b92979e318b8a0f6a763e19e5108"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:wordpress:wordpress:4.9.7:*:*:*:*:*:*:*",
"range": [
{
"introduced": "4.9.7"
},
{
"last_affected": "4.9.7"
}
],
"source": "CPE_STRING"
}
]
}
}
],
"versions": [
"4.9.7"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2018-14028.json"
}
}
],
"modified": "2026-10-24T10:30:36.469414801Z",
"provider": "osv",
"references": [
"https://core.trac.wordpress.org/ticket/44710",
"https://github.com/rastating/wordpress-exploit-framework/pull/52",
"https://rastating.github.io/unrestricted-file-upload-via-plugin-uploader-in-wordpress/"
],
"provider_metadata": {}
},
"related_cves": [
{
"value": "CVE-2018-14028",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 433982,
"published_at": "2018-08-10T16:29:00.343+00:00"
}