# CVE-2026-85097: Bricksforge <= 3.1.8.9 - Unauthenticated Arbitrary File Upload via 'temporaryFileUploads' Parameter - Exploited (CISA KEV): no - Published: 2026-10-08 - CVSS: 9.8 CRITICAL (v3.1) - EPSS: 3.3% (88th percentile) - CWE: CWE-434 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. ## Edge WAF coverage (claimed by vendors, not measured) | Vendor | Status | First rule | Days after publication | |---|---|---|---| | Cloudflare | No public claim | — | — | | AWS | No public claim | — | — | | Microsoft Azure | No public claim | — | — | | Google Cloud | No public claim | — | — | | Fastly | No public claim | — | — | | F5 | Rule published | 2026-10-21 | 13 | | Akamai | No public source | — | — | | OWASP CRS | No public claim | — | — | ### F5 - 2026-10-21 · new · rule 200020262 > Added: signature 200020262 "WordPress Bricksforge Arbitrary File Upload" (Malicious File Upload, risk High), systems: WordPress. References: CVE-2026-85097. Source: https://docs.cloud.f5.com/docs-v2/platform/changelogs/security-details-changelog ## Our test (measured) - OWASP Core Rule Set 4.25.0, paranoia level 1, anomaly threshold 5, default CRS settings: partial (1 of 6 requests blocked), template CVE-2026-85097, 2026-11-02 - OWASP Core Rule Set 4.25.0, paranoia level 2, anomaly threshold 5, default CRS settings: partial (1 of 6 requests blocked), template CVE-2026-85097, 2026-11-02 "No public claim" means no vendor statement names this CVE; "Before feed history" means the CVE is older than the vendor feed. In both cases generic rules may still block it. HTML: https://cve.vigilbase.com/cve/CVE-2026-85097 · JSON: https://cve.vigilbase.com/api/v1/cves/CVE-2026-85097