CWE-184 Base Draft

Incomplete List of Disallowed Inputs

This vulnerability occurs when a security filter or validation mechanism relies on a 'denylist'—a predefined list of forbidden inputs—but that list is missing critical entries. Attackers can bypass…

Definition

What is CWE-184?

This vulnerability occurs when a security filter or validation mechanism relies on a 'denylist'—a predefined list of forbidden inputs—but that list is missing critical entries. Attackers can bypass the protection by using variations or inputs the developers didn't anticipate.
Denylist-based security is fundamentally fragile because it requires developers to predict and block every possible bad input. This approach often fails against sophisticated attacks, as attackers constantly evolve their techniques to use new encodings, character sequences, or command variations that aren't on the list. Relying solely on a denylist creates a false sense of security and is difficult to maintain over time. For stronger protection, prioritize 'allowlisting' (only permitting known-good patterns) over denylisting. If a denylist is unavoidable, complement it with other defenses like strict input validation, output encoding, and security libraries designed to handle the specific threat. Always assume your denylist is incomplete and design your system to fail safely when an unexpected input is encountered.
Vulnerability Diagram CWE-184
Incomplete Blocklist Block list <script> ✗ <SCRIPT> ? <ScRiPt> ? <img onerror> ? javascript: ? Bypass payloads <ScRiPt>…</ScRiPt> <img src=x onerror=…> SELECT/**/* FROM ..%2f..%2fetc Reaches sink XSS / SQLi / traversal still works Denylists miss case, encoding and equivalent forms — use allowlists.
Real-world impact

Real-world CVEs caused by CWE-184

  • Chain: API for text generation using Large Language Models (LLMs) does not include the "\" Windows folder separator in its denylist (CWE-184) when attempting to prevent Local File Inclusion via path traversal (CWE-22), allowing deletion of arbitrary files on Windows systems.

  • product uses a denylist to identify potentially dangerous content, allowing attacker to bypass a warning

  • PHP remote file inclusion in web application that filters "http" and "https" URLs, but not "ftp".

  • Programming language does not filter certain shell metacharacters in Windows environment.

  • XSS filter doesn't filter null characters before looking for dangerous tags, which are ignored by web browsers. MIE and validate-before-cleanse.

  • Web-based mail product doesn't restrict dangerous extensions such as ASPX on a web server, even though others are prohibited.

  • Resultant XSS when only and are checked.

  • Privileged program does not clear sensitive environment variables that are used by bash. Overlaps multiple interpretation error.

How attackers exploit it

Step-by-step attacker path

  1. 1

    Identify a code path that handles untrusted input without validation.

  2. 2

    Craft a payload that exercises the unsafe behavior — injection, traversal, overflow, or logic abuse.

  3. 3

    Deliver the payload through a normal request and observe the application's reaction.

  4. 4

    Iterate until the response leaks data, executes attacker code, or escalates privileges.

Vulnerable code example

Vulnerable Java

The following code attempts to stop XSS attacks by removing all occurences of "script" in an input string.

Vulnerable Java
public String removeScriptTags(String input, String mask) {
  	return input.replaceAll("script", mask);
  }
Secure code example

Secure pseudo

Secure pseudo
// Validate, sanitize, or use a safe API before reaching the sink.
function handleRequest(input) {
  const safe = validateAndEscape(input);
  return executeWithGuards(safe);
}
What changed: the unsafe sink is replaced (or the input is validated/escaped) so the same payload no longer triggers the weakness.
Prevention checklist

How to prevent CWE-184

  • Implementation Do not rely exclusively on detecting disallowed inputs. There are too many variants to encode a character, especially when different environments are used, so there is a high likelihood of missing some variants. Only use detection of disallowed inputs as a mechanism for detecting suspicious activity. Ensure that you are using other protection mechanisms that only identify "good" input - such as lists of allowed inputs - and ensure that you are properly encoding your outputs.
Detection signals

How to detect CWE-184

Black Box

Exploitation of a vulnerability with commonly-used manipulations might fail, but minor variations might succeed.

Plexicus auto-fix

Plexicus auto-detects CWE-184 and opens a fix PR in under 60 seconds.

Codex Remedium scans every commit, identifies this exact weakness, and ships a reviewer-ready pull request with the patch. No tickets. No hand-offs.

Frequently asked questions

Frequently asked questions

What is CWE-184?

This vulnerability occurs when a security filter or validation mechanism relies on a 'denylist'—a predefined list of forbidden inputs—but that list is missing critical entries. Attackers can bypass the protection by using variations or inputs the developers didn't anticipate.

How serious is CWE-184?

MITRE has not published a likelihood-of-exploit rating for this weakness. Treat it as medium-impact until your threat model proves otherwise.

What languages or platforms are affected by CWE-184?

MITRE has not specified affected platforms for this CWE — it can apply across most application stacks.

How can I prevent CWE-184?

Do not rely exclusively on detecting disallowed inputs. There are too many variants to encode a character, especially when different environments are used, so there is a high likelihood of missing some variants. Only use detection of disallowed inputs as a mechanism for detecting suspicious activity. Ensure that you are using other protection mechanisms that only identify "good" input - such as lists of allowed inputs - and ensure that you are properly encoding your outputs.

How does Plexicus detect and fix CWE-184?

Plexicus's SAST engine matches the data-flow signature for CWE-184 on every commit. When a match is found, our Codex Remedium agent opens a fix PR with the corrected code, tests, and a one-line summary for the reviewer.

Where can I learn more about CWE-184?

MITRE publishes the canonical definition at https://cwe.mitre.org/data/definitions/184.html. You can also reference OWASP and NIST documentation for adjacent guidance.

Related weaknesses

Weaknesses related to CWE-184

CWE-693 Parent

Protection Mechanism Failure

This weakness occurs when software either lacks a necessary security control, implements one that is too weak, or fails to activate an…

CWE-1039 Sibling

Inadequate Detection or Handling of Adversarial Input Perturbations in Automated Recognition Mechanism

This vulnerability occurs when a system uses automated AI or machine learning to classify complex inputs like images, audio, or text, but…

CWE-1248 Sibling

Semiconductor Defects in Hardware Logic with Security-Sensitive Implications

A security-critical hardware component contains physical flaws in its semiconductor material, which can cause it to malfunction and…

CWE-1253 Sibling

Incorrect Selection of Fuse Values

This vulnerability occurs when a hardware security fuse is incorrectly programmed to represent a 'secure' state as logic 0 (unblown). An…

CWE-1269 Sibling

Product Released in Non-Release Configuration

This vulnerability occurs when a product ships to customers while still configured with its pre-production or manufacturing settings,…

CWE-1278 Sibling

Missing Protection Against Hardware Reverse Engineering Using Integrated Circuit (IC) Imaging Techniques

This vulnerability occurs when hardware lacks safeguards against physical inspection, allowing attackers to extract sensitive data by…

CWE-1291 Sibling

Public Key Re-Use for Signing both Debug and Production Code

This vulnerability occurs when the same cryptographic key is used to sign both development/debug software builds and final production…

CWE-1318 Sibling

Missing Support for Security Features in On-chip Fabrics or Buses

This vulnerability occurs when the communication channels (fabrics or buses) within a chip lack built-in or enabled security features,…

CWE-1319 Sibling

Improper Protection against Electromagnetic Fault Injection (EM-FI)

This vulnerability occurs when a hardware device lacks sufficient shielding against electromagnetic interference, allowing attackers to…

Ready when you are

Don't Let Security
Weigh You Down.

Stop choosing between AI velocity and security debt. Plexicus is the only platform that runs Vibe Coding Security and ASPM in parallel — one workflow, every codebase.