{"id":"CVE-2026-114101","kind":"vulnerability","aliases":["CVE-2026-114101"],"related":[],"title":"Coraza WAF: multipart filename parsing lets uploads bypass file rules","description":"Coraza before 3.8.1 extracts multipart upload filenames with Go's mime.ParseMediaType, which silently ignores RFC 5987 filename* parameters whose charset is not utf-8 or us-ascii. Unauthenticated attackers can send a decoy filename with filename*=iso-8859-1''shell.php, or filename* alone, so FILES-based rules never see the real name, letting dangerous uploads reach backends that honor filename*.","summary":"Coraza before 3.8.1 reads multipart upload filenames with Go's mime.ParseMediaType, which silently drops RFC 5987 filename* parameters that use a charset other than utf-8 or us-ascii. An unauthenticated attacker can send a decoy filename while the real name sits in filename*, so the WAF's file rules never see the dangerous name and it reaches a backend that honors filename*.","severity":"medium","cvss":6.3,"epss":0.00198,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["coraza","go","package","self-hosted","waf"],"not_affected_if":["no-coraza","no-file-upload-rules","no-upload-endpoints"],"how_to_check":"- Check the Coraza version in go.mod (for example `grep coraza go.mod`); affected if below `3.8.1`\n- Check whether the WAF is in front of an upload endpoint that accepts multipart forms and passes filenames to a backend that reads filename*","fix":"- Upgrade the Coraza Go module to `3.8.1` or later (`go get github.com/corazawaf/coraza/v3@v3.8.1`)\n- Rebuild and redeploy any service or proxy that embeds Coraza, such as a Caddy or Envoy plugin build","status":"open","published_at":"2026-10-21T01:17:35+00:00","first_seen_at":"2026-10-23T21:57:28+00:00","triaged_at":"2026-10-25T04:01:24+00:00","updated_at":"2026-10-25T04:01:24+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-25T04:01:24Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade the Coraza Go module to `3.8.1` or later (`go get github.com/corazawaf/coraza/v3@v3.8.1`)\n- Rebuild and redeploy any service or proxy that embeds Coraza, such as a Caddy or Envoy plugin build","reach":"internet","title":"Coraza WAF: multipart filename parsing lets uploads bypass file rules","impact":"medium","summary":"Coraza before 3.8.1 reads multipart upload filenames with Go's mime.ParseMediaType, which silently drops RFC 5987 filename* parameters that use a charset other than utf-8 or us-ascii. An unauthenticated attacker can send a decoy filename while the real name sits in filename*, so the WAF's file rules never see the dangerous name and it reaches a backend that honors filename*.","category":"package","nicknames":[],"who_cares":["coraza","waf","go","self-hosted"],"confidence":0.6,"needs_auth":"no","worst_case":"Dangerous uploads such as shell.php reach the backend past the WAF","analyst_note":"","how_to_check":"- Check the Coraza version in go.mod (for example `grep coraza go.mod`); affected if below `3.8.1`\n- Check whether the WAF is in front of an upload endpoint that accepts multipart forms and passes filenames to a backend that reads filename*","needs_analyst":false,"not_affected_if":["no-coraza","no-file-upload-rules","no-upload-endpoints"],"who_is_affected":"Teams that run Coraza as a web application firewall with file-upload rules (FILES, FILES_NAMES) in front of an application that accepts multipart uploads. Exposure depends on the backend honoring the RFC 5987 filename* parameter; systems without Coraza, or without upload rules, can skip it.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000677,"input_tokens":3420,"output_tokens":669,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-1':127C '-114101':13A,16A '-2026':12A,15A '-8':49B,111C '-8859':126C '3.8.1':26B,90C '5987':39B,103C 'alon':131C 'ascii':53B,115C 'attack':56B,117C 'backend':84B,146C 'base':135C 'bypass':8A 'charset':45B,107C 'coraza':1A,17B,24B,88C 'cve':11A,14A 'danger':78B,143C 'decoy':60B,121C 'drop':37B 'extract':91C 'file':9A,73B,134C 'filenam':4A,30B,40B,61B,68B,87B,94C,104C,122C,124C,130C,149C 'files-bas':133C 'go':18B,32B,96C 'honor':86B,148C 'host':22B 'ignor':101C 'iso':125C 'let':6A,142C 'mime.parsemediatype':34B,98C 'multipart':3A,28B,92C 'name':65B,79B,141C 'never':75B,137C 'packag':19B 'paramet':41B,105C 'pars':5A 'reach':82B,145C 'read':27B 'real':64B,140C 'rfc':38B,102C 'rule':10A,74B,136C 'see':76B,138C 'self':21B 'self-host':20B 'send':58B,119C 'shell.php':128C 'silent':36B,100C 'sit':66B 'unauthent':55B,116C 'upload':7A,29B,93C,144C 'us':52B,114C 'us-ascii':51B,113C 'use':43B 'utf':48B,110C 'waf':2A,23B,71B 'whose':106C","nicknames":[],"mitigations":[],"who_affected":"Teams that run Coraza as a web application firewall with file-upload rules (FILES, FILES_NAMES) in front of an application that accepts multipart uploads. Exposure depends on the backend honoring the RFC 5987 filename* parameter; systems without Coraza, or without upload rules, can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-21T01:17:35+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-114101","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-114101","severity":null,"published_at":"2026-10-21T01:17:35+00:00","modified_at":"2026-10-22T17:34:37+00:00","first_seen_at":"2026-10-23T21:57:28+00:00","fetched_at":"2026-10-23T22:29:01+00:00","note":null},{"source":"epss","external_id":"CVE-2026-114101","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-114101","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T13:15:54+00:00","fetched_at":"2026-10-24T13:15:54+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}