CWEweakness
CWE-184 Incomplete List of Disallowed Inputs
- Alternate terms
- Denylist / Deny List, Blocklist / Block List, Blacklist / Black List
- Abstraction
- Base
- Structure
- Simple
- Status
- Draft
- Languages
- Not Language-Specific, Python
- CWE version
- 5.0
Description
The product implements a protection mechanism that relies on a list of inputs (or properties of inputs) that are not allowed by policy or otherwise require other action to neutralize before additional processing takes place, but the list is incomplete.
Common consequences
• Access Control: Bypass Protection Mechanism — Attackers may be able to find other malicious inputs that were not expected by the developer, allowing them to bypass the intended protection mechanism.
Potential mitigations
• [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 methods
• Black Box: Exploitation of a vulnerability with commonly-used manipulations might fail, but minor variations might succeed.
Observed examples
• CVE-2024-6091: Chain: AI agent platform does not restrict pathnames containing internal "/./" sequences (CWE-55), leading to an incomplete denylist (CWE-184) that does not prevent OS command injection (CWE-78)
• CVE-2024-4315: 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.
• CVE-2024-44335: Chain: filter only checks for some shell-injection characters (CWE-184), enabling OS command injection (CWE-78)
• CVE-2008-2309: product uses a denylist to identify potentially dangerous content, allowing attacker to bypass a warning
• CVE-2005-2782: PHP remote file inclusion in web application that filters "http" and "https" URLs, but not "ftp".
• CVE-2004-0542: Programming language does not filter certain shell metacharacters in Windows environment.
• CVE-2004-0595: XSS filter doesn't filter null characters before looking for dangerous tags, which are ignored by web browsers. Multiple Interpretation Error (MIE) and validate-before-cleanse.
• CVE-2005-3287: Web-based mail product doesn't restrict dangerous extensions such as ASPX on a web server, even though others are prohibited.
• CVE-2004-2351: Resultant XSS when only <script> and <style> are checked.
• CVE-2005-2959: Privileged program does not clear sensitive environment variables that are used by bash. Overlaps multiple interpretation error.
• CVE-2005-1824: SQL injection protection scheme does not quote the "\" special character.
• CVE-2005-2184: Detection of risky filename extensions prevents users from automatically executing .EXE files, but .LNK is accepted, allowing resultant Windows symbolic link.
• CVE-2007-1343: Product uses list of protected variables, but accidentally omits one dangerous variable, allowing external modification
• CVE-2007-5727: Chain: incomplete denylist (CWE-184) only removes SCRIPT tags, enabling XSS (CWE-79)
• CVE-2006-4308: Chain: product only checks for use of "javascript:" tag (CWE-184), allowing XSS (CWE-79) using other tags
• CVE-2007-3572: Chain: OS command injection (CWE-78) enabled by using an unexpected character that is not explicitly disallowed (CWE-184)
• CVE-2002-0661: "\" not in list of disallowed values for web server, allowing path traversal attacks when the server is run on Windows and other OSes.
Related
Attack pattern · CAPEC (9)
- CAPEC-120 Double Encoding attack pattern
- CAPEC-15 Command Delimiters attack pattern
- CAPEC-182 Flash Injection attack pattern
- CAPEC-3 Using Leading 'Ghost' Character Sequences to Bypass Input Filters attack pattern
- CAPEC-43 Exploiting Multiple Input Interpretation Layers attack pattern
- CAPEC-6 Argument Injection attack pattern
- CAPEC-71 Using Unicode Encoding to Bypass Validation Logic attack pattern
- CAPEC-73 User-Controlled Filename attack pattern
- CAPEC-85 AJAX Footprinting attack pattern
Observed example · CVE (17)
- CVE-2024-6091 A vulnerability in significant-gravitas/autogpt version 0.5.1 allows an attacker to bypass the shell commands denylist settings. vulnerability
- CVE-2024-44335 D-Link DI-7003G v19.12.24A1, DI-7003GV2 v24.04.18D1, DI-7100G+V2 v24.04.18D1, DI-7100GV2 v24.04.18D1, DI-7200GV2 v24.04.18E1, DI-7300G+V2… vulnerability
- CVE-2024-4315 parisneo/lollms version 9.5 is vulnerable to Local File Inclusion (LFI) attacks due to insufficient path sanitization. vulnerability
- CVE-2008-2309 Incomplete blacklist vulnerability in CoreTypes in Apple Mac OS X before 10.5.4 allows user-assisted remote attackers to execute arbitrary… vulnerability
- CVE-2007-5727 Incomplete blacklist vulnerability in the stripScripts function in common.php in OneOrZero Helpdesk 1.6.5.4, 1.6.4.2, and possibly other… vulnerability
- CVE-2007-3572 Incomplete blacklist vulnerability in cgi-bin/runDiagnostics.cgi in the web interface on the Yoggie Pico and Pico Pro allows remote… vulnerability
- CVE-2007-1343 includes/functions.php in Craig Knudsen WebCalendar before 1.0.5 does not protect the noSet variable from external modification, which… vulnerability
- CVE-2006-4308 Multiple cross-site scripting (XSS) vulnerabilities in Blackboard Learning System 6, Blackboard Learning and Community Portal Suite… vulnerability
- CVE-2005-2959 Incomplete blacklist vulnerability in sudo 1.6.8 and earlier allows local users to gain privileges via the (1) SHELLOPTS and (2) PS4… vulnerability
- CVE-2005-3287 Incomplete blacklist vulnerability in Mailsite Express allows remote attackers to upload and possibly execute files via attachments with… vulnerability
- CVE-2005-2782 PHP remote file inclusion vulnerability in al_initialize.php for AutoLinks Pro 2.1 allows remote attackers to execute arbitrary PHP code… vulnerability
- CVE-2005-2184 eRoom 6.x does not properly restrict files that can be attached, which allows remote attackers to execute arbitrary commands via a .lnk… vulnerability
- CVE-2005-1824 The sql_escape_string function in auth/sql.c for the mailutils SQL authentication module does not properly quote the "\" (backslash)… vulnerability
- CVE-2004-2351 Cross-site scripting (XSS) vulnerability in GBook for Php-Nuke 1.0 allows remote attackers to inject arbitrary web script or HTML via… vulnerability
- CVE-2004-0542 PHP before 4.3.7 on Win32 platforms does not properly filter all shell metacharacters, which allows local or remote attackers to execute… vulnerability
- CVE-2004-0595 The strip_tags function in PHP 4.x up to 4.3.7, and 5.x up to 5.0.0RC3, does not filter null (\0) characters within tag names when… vulnerability
- CVE-2002-0661 Directory traversal vulnerability in Apache 2.0 through 2.0.39 on Windows, OS2, and Netware allows remote attackers to read arbitrary files… vulnerability
Can precede · CWE (4)
- CWE-434 Unrestricted Upload of File with Dangerous Type weakness
- CWE-78 Improper Neutralization of Special Elements used in an OS Command weakness
- CWE-79 Improper Neutralization of Input During Web Page Generation weakness
- CWE-98 Improper Control of Filename for Include/Require Statement in PHP Program weakness
Child of · CWE (2)
Referenced by CAPEC · weakness (9)
- CAPEC-120 Double Encoding attack pattern
- CAPEC-15 Command Delimiters attack pattern
- CAPEC-182 Flash Injection attack pattern
- CAPEC-3 Using Leading 'Ghost' Character Sequences to Bypass Input Filters attack pattern
- CAPEC-43 Exploiting Multiple Input Interpretation Layers attack pattern
- CAPEC-6 Argument Injection attack pattern
- CAPEC-71 Using Unicode Encoding to Bypass Validation Logic attack pattern
- CAPEC-73 User-Controlled Filename attack pattern
- CAPEC-85 AJAX Footprinting attack pattern
Referenced by CVE · weakness (242)
- CVE-2026-96196 Incomplete list of disallowed inputs in Microsoft Edge (Chromium-based) allows an unauthorized attacker to bypass a security feature over a… vulnerability
- CVE-2026-117530 In JetBrains Junie CLI before 26.8.17 command execution was possible due to incomplete validation of allowlisted commands vulnerability
- CVE-2026-116339 A vulnerability was determined in iFlytek astron-agent up to 1.1.2. vulnerability
- CVE-2026-115751 Agentfront mcp-from-openapi from 2.2.0 before 2.9.0 contains a server-side request forgery vulnerability that allows attackers to bypass… vulnerability
- CVE-2026-115845 An incomplete list of disallowed inputs in the Python code validator of the run_script tool in AWS MCP Server might allow an authenticated… vulnerability
- CVE-2026-114615 Authlib is a Python library which builds OAuth and OpenID Connect servers. vulnerability
- CVE-2026-114728 Roundcube Webmail before 1.6.20 and 1.7.x before 1.7.5 is affected by a remote content blocking bypass in the handling of FuncIRI… vulnerability
- CVE-2026-114729 Roundcube Webmail before 1.6.20 and 1.7.x before 1.7.5 is affected by a remote content blocking bypass. vulnerability
- CVE-2026-113605 Stirling-PDF from 2.13.2 through 3.2.0 contains an incomplete denylist in DatabaseService.validateSqlContent() that allows administrators… vulnerability
- CVE-2026-112777 Craft CMS 4.x before 4.18.8 and 5.x before 5.11.0 contains a blocklist bypass in the Twig create() function because its class-name checks… vulnerability
- CVE-2026-104024 Incomplete List of Disallowed Inputs (CWE-184) in the dangerous-extension confirmation of the archive object viewer (peach.pas,… vulnerability
- CVE-2026-77466 Lychee is a free, open-source photo-management tool. vulnerability
- CVE-2026-102087 An Incomplete List of Disallowed Inputs vulnerability in the routing protocol daemon (rpd) of Juniper Networks Junos OS and Junos OS… vulnerability
- CVE-2026-108471 Untrusted pointer dereference in Windows Virtualization-Based Security (VBS) Enclave allows an authorized attacker to elevate privileges… vulnerability
- CVE-2026-110205 Roo Code through 3.54.0 contains a command approval bypass vulnerability in parseCommandLine() that discards command substitutions placed… vulnerability
- CVE-2026-84316 Nginx UI is a web user interface for the Nginx web server. vulnerability
- CVE-2026-108976 GNU Emacs before 31.2 (and TRAMP through 2.8.2) allows OS command injection via a filename because tramp-user-regexp has an incomplete list… vulnerability
- CVE-2026-107322 An incomplete list of disallowed inputs in Amazon Agent Plugins for AWS databases-on-aws plugin before 1.7.1 might allow a remote… vulnerability
- CVE-2026-106556 Backstage is an open framework for building developer portals. vulnerability
- CVE-2026-105789 Microsoft UFO is an open-source framework for intelligent automation across devices and platforms. vulnerability
- CVE-2026-105791 Microsoft UFO is an open-source framework for intelligent automation across devices and platforms. vulnerability
- CVE-2026-106218 In JetBrains TeamCity before 2026.1.3 2025.11.7 kotlin DSL sandbox escape leading to RCE on the server was possible vulnerability
- CVE-2026-106442 Hydra is a framework for elegantly configuring complex applications. vulnerability
- CVE-2026-106445 Handlebars provides the power necessary to let users build semantic templates. vulnerability
- CVE-2026-105648 Ghost is a Node.js content management system. vulnerability
- CVE-2026-105650 Ghost is a Node.js content management system. vulnerability
- CVE-2026-103687 A vulnerability has been found in rhukster dom-sanitizer up to 1.0.15. vulnerability
- CVE-2026-100253 In JetBrains TeamCity before 2026.2, 2026.1.4, 2025.11.8 sandbox escape leading to code execution was possible via the versioned settings… vulnerability
- CVE-2026-101882 OpenClaw Windows Node before 2026.7.1 contains an incomplete validation vulnerability in system.execApprovals.set that accepts… vulnerability
- CVE-2026-101884 OpenClaw Windows Node before 2026.7.1 contains an incomplete environment-variable sanitizer in system.run that fails to block GIT_CONFIG_*,… vulnerability
Referenced by CWE · can also be (1)
- CWE-186 Overly Restrictive Regular Expression weakness
Referenced by CWE · child of (1)
- CWE-692 Incomplete Denylist to Cross-Site Scripting weakness
Referenced by CWE · peer of (2)
Referenced by CWE · starts with (1)
- CWE-692 Incomplete Denylist to Cross-Site Scripting weakness
Referenced by OWASP · mapped cwe (1)
- A03:2021 Injection Top 10 2021