{"basis":"claimed","id":"CVE-2026-85097","name":"Bricksforge <= 3.1.8.9 - Unauthenticated Arbitrary File Upload via 'temporaryFileUploads' Parameter","vendorProject":"Bricksforge","product":"Bricksforge","publishedAt":"2026-10-08","cvss":{"score":9.8,"severity":"CRITICAL","version":"3.1"},"exploited":null,"epss":{"score":0.03287,"percentile":0.88476,"date":"2026-11-02"},"coverage":{"cloudflare":{"status":"none","firstOn":null,"daysToRule":null},"aws":{"status":"none","firstOn":null,"daysToRule":null},"azure":{"status":"none","firstOn":null,"daysToRule":null},"google":{"status":"none","firstOn":null,"daysToRule":null},"fastly":{"status":"none","firstOn":null,"daysToRule":null},"f5":{"status":"rule","firstOn":"2026-10-21","daysToRule":13},"akamai":{"status":"no_source","firstOn":null,"daysToRule":null},"crs":{"status":"none","firstOn":null,"daysToRule":null}},"title":"Bricksforge <= 3.1.8.9 - Unauthenticated Arbitrary File Upload via 'temporaryFileUploads' Parameter","description":"The Bricksforge plugin for WordPress is vulnerable to unauthenticated arbitrary file upload in versions up to, and including, 3.1.8.9. This is due to insufficient validation of the attacker-controlled URL field in the 'temporaryFileUploads' parameter during form submission. An unauthenticated attacker can first obtain a valid nonce via the bricksforge_regenerate_nonce AJAX endpoint, then upload a GIF/PHP polyglot file to the temporary upload directory where MIME type validation is correctly performed. Subsequently, the attacker can submit a form with a crafted 'temporaryFileUploads' parameter where the server-side file path points to the validated GIF file, but the attacker-controlled url field ends with a .php extension. This makes it possible for unauthenticated attackers to upload and execute arbitrary PHP code on the server.","cwes":["CWE-434"],"vendors":[{"vendor":"cloudflare","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"aws","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"azure","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"google","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"fastly","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"f5","status":"rule","basis":"claimed","firstOn":"2026-10-21","firstIsNew":true,"daysToRule":13,"daysAtMost":null,"freePlan":false,"claims":[{"id":"a72344f5069ed8c0011fd3599485e9be4afad7220c1ab85cd62594b714221ea9","cve_id":"CVE-2026-85097","vendor":"f5","product":"Attack signatures","rule_id":"200020262","rule_name":"WordPress Bricksforge Arbitrary File Upload","change":"new","default_action":null,"published_on":"2026-10-21","source_url":"https://docs.cloud.f5.com/docs-v2/platform/changelogs/security-details-changelog","source_title":"F5 Distributed Cloud attack signatures changelog","excerpt":"Added: signature 200020262 \"WordPress Bricksforge Arbitrary File Upload\" (Malicious File Upload, risk High), systems: WordPress. References: CVE-2026-85097.","first_seen_at":"2026-11-02T21:00:23.824Z"}]},{"vendor":"akamai","status":"no_source","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"crs","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]}],"updatedAt":"2026-11-02T21:17:16.518Z","cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","ssvc":{"exploitation":"none","automatable":"yes","technicalImpact":"total"},"measured":[{"engineId":"owasp-crs","engineName":"OWASP Core Rule Set","engineVersion":"4.25.0","runtime":"Coraza v3.8.1","config":"paranoia level 1, anomaly threshold 5, default CRS settings","ranAt":"2026-11-02T13:02:57.000Z","verdict":"partial","templateId":"CVE-2026-85097","templatePath":"http/cves/2026/CVE-2026-85097.yaml","requests":6,"blockedRequests":1,"rules":["930120","934110"],"note":"","requestDetail":[{"method":"GET","path":"/wp-content/plugins/bricksforge/README.txt","status":200,"blocked":false,"rules":[]},{"method":"GET","path":"/wp-content/plugins/bricksforge/readme.txt","status":200,"blocked":false,"rules":[]},{"method":"POST","path":"/wp-admin/admin-ajax.php","status":200,"blocked":false,"rules":[]},{"method":"POST","path":"/wp-json/bricksforge/v1/form_file_upload","status":200,"blocked":false,"rules":[]},{"method":"POST","path":"/wp-json/bricksforge/v1/form_submit","status":403,"blocked":true,"rules":["930120","934110"]},{"method":"GET","path":"/wp-content/uploads/x/x/syuicmyb.php","status":200,"blocked":false,"rules":[]}]},{"engineId":"owasp-crs","engineName":"OWASP Core Rule Set","engineVersion":"4.25.0","runtime":"Coraza v3.8.1","config":"paranoia level 2, anomaly threshold 5, default CRS settings","ranAt":"2026-11-02T13:03:28.000Z","verdict":"partial","templateId":"CVE-2026-85097","templatePath":"http/cves/2026/CVE-2026-85097.yaml","requests":6,"blockedRequests":1,"rules":["930120","934110","942200","942340","942370","942430"],"note":"","requestDetail":[{"method":"GET","path":"/wp-content/plugins/bricksforge/README.txt","status":200,"blocked":false,"rules":[]},{"method":"GET","path":"/wp-content/plugins/bricksforge/readme.txt","status":200,"blocked":false,"rules":[]},{"method":"POST","path":"/wp-admin/admin-ajax.php","status":200,"blocked":false,"rules":[]},{"method":"POST","path":"/wp-json/bricksforge/v1/form_file_upload","status":200,"blocked":false,"rules":[]},{"method":"POST","path":"/wp-json/bricksforge/v1/form_submit","status":403,"blocked":true,"rules":["930120","934110","942200","942340","942370","942430"]},{"method":"GET","path":"/wp-content/uploads/x/x/syuicmyb.php","status":200,"blocked":false,"rules":[]}]}],"social":{"total":0,"first_seen":null,"daily":[{"day":"2026-10-20","posts":0},{"day":"2026-10-21","posts":0},{"day":"2026-10-22","posts":0},{"day":"2026-10-23","posts":0},{"day":"2026-10-24","posts":0},{"day":"2026-10-25","posts":0},{"day":"2026-10-26","posts":0},{"day":"2026-10-27","posts":0},{"day":"2026-10-28","posts":0},{"day":"2026-10-29","posts":0},{"day":"2026-10-30","posts":0},{"day":"2026-10-31","posts":0},{"day":"2026-11-01","posts":0},{"day":"2026-11-02","posts":0}],"top_posts":[],"exploit_repositories":[]}}