Skip to content
OpenAdvisories

Weakness (CWE)

CWE-20: Improper Input Validation

Class Mapping discouraged

The product receives input or data, but it does
not validate or incorrectly validates that the input has the
properties that are required to process the data safely and
correctly.

How to prevent it (8 mitigations)
  1. Architecture and Design

    Consider using language-theoretic security (LangSec) techniques that characterize inputs using a formal language and build "recognizers" for that language. This effectively requires parsing to be a distinct layer that effectively enforces a boundary between raw input and internal data representations, instead of allowing parser code to be scattered throughout the program, where it could be subject to errors or inconsistencies that create weaknesses. [REF-1109] [REF-1110] [REF-1111]

  2. Architecture and Design

    Use an input validation framework such as Struts or the OWASP ESAPI Validation API. Note that using a framework does not automatically address all input validation problems; be mindful of weaknesses that could arise from misusing the framework itself (CWE-1173).

  3. Architecture and Design, Implementation

    Understand all the potential areas where untrusted inputs can enter the product, including but not limited to: parameters or arguments, cookies, anything read from the network, environment variables, reverse DNS lookups, query results, request headers, URL components, e-mail, files, filenames, databases, and any external systems that provide data to the application. Remember that such inputs may be obtained indirectly through API calls.

  4. Implementation

    Assume all input is malicious. Use an "accept known good" input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does.

    When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, "boat" may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as "red" or "blue."

    Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code's environment changes. This can give attackers enough room to bypass the intended validation. However, denylists can be useful for detecting potential attacks or determining which inputs are so malformed that they should be rejected outright.

  5. Architecture and Design

    For any security checks that are performed on the client side, ensure that these checks are duplicated on the server side, in order to avoid CWE-602. Attackers can bypass the client-side checks by modifying values after the checks have been performed, or by changing the client to remove the client-side checks entirely. Then, these modified values would be submitted to the server.

    Even though client-side checks provide minimal benefits with respect to server-side security, they are still useful. First, they can support intrusion detection. If the server receives input that should have been rejected by the client, then it may be an indication of an attack. Second, client-side error-checking can provide helpful feedback to the user about the expectations for valid input. Third, there may be a reduction in server-side processing time for accidental input errors, although this is typically a small savings.

  6. Implementation

    When your application combines data from multiple sources, perform the validation after the sources have been combined. The individual data elements may pass the validation step but violate the intended restrictions after they have been combined.

  7. Implementation

    Be especially careful to validate all input when invoking code that crosses language boundaries, such as from an interpreted language to native code. This could create an unexpected interaction between the language boundaries. Ensure that you are not violating any of the expectations of the language with which you are interfacing. For example, even though Java may not be susceptible to buffer overflows, providing a large argument in a call to native code might trigger an overflow.

  8. Implementation

    Directly convert your input type into the expected data type, such as using a conversion function that translates a string into a number. After converting to the expected data type, ensure that the input's values fall within the expected range of allowable values and that multi-field consistencies are maintained.

Source: MITRE CWE-20

2,572 results · Clear filters · Feed

  • Medium 6.5

    PocketMine-MP before 4.2.3 Denial of Service via NBT Metadata

    PocketMine-MP versions before 4.2.3 fail to validate damage metadata values in tool and armor item NBT data received from clients. Attackers can send negative or out-of-range damage values in itemstack NBT to trigger unhandled exceptions in the Durable class,…

  • Medium 6.5

    PocketMine-MP before 4.2.9 Denial of Service via NBT Deserialization

    PocketMine-MP versions before 4.2.9 fail to properly validate NBT data types during deserialization of inventory transaction packets from clients. Attackers can send crafted inventory transactions with malformed NBT tags to trigger server crashes and cause de…

  • Medium 6.5

    PocketMine-MP before 4.4.2 Server Crash via Item ID

    PocketMine-MP versions before 4.4.2 fail to properly validate item IDs received from clients in itemstack NBT data. Attackers can send crafted item IDs outside the valid range to trigger an uncaught exception that crashes the server.

  • Medium 4.3

    PocketMine-MP before 4.2.10 Denial of Service via Chat Messages

    PocketMine-MP before 4.2.10 fails to validate the total length of incoming chat message blobs before splitting them by newline characters, allowing attackers to send large messages containing many newlines. Malicious clients can send megabyte-sized chat packe…

  • Medium 5.1

    MISP Dashboard Button Widget Allows Stored XSS via Unsafe javascript: and Backslash URLs

    Affected versions of MISP insufficiently validate URLs used by dashboard widgets, particularly the Button widget. The widget's URL is stored configuration controlled by a user. The previous renderer considered a URL safe if it appeared relative or if its pars…

  • Medium 5.1

    MISP User Homepage Validation Allows Authenticated Open Redirect via Protocol-Relative URL

    Affected versions of MISP validate the user-configurable homepage by checking only whether the supplied path begins with /. That check is insufficient because protocol-relative URLs such as //attacker.example also begin with / but resolve to an external origi…

  • Medium 6.5

    PocketMine-MP before 3.18.1 Denial of Service via MovePlayerPacket

    PocketMine-MP versions before 3.18.1 fail to validate NaN or INF values in MovePlayerPacket position and rotation fields. Malicious clients can send crafted movement packets with invalid floating-point values to crash servers through unhandled mathematical op…

  • Medium 5.3

    Snowflake JDBC Driver auto-configuration account validation permits credential redirection

    Improper input validation of the auto-configuration account identifier in Snowflake JDBC Driver versions 4.2.0 through 4.3.3 allowed a credential-bearing login request to be redirected to an attacker-selected HTTPS endpoint. An attacker able to control the ac…

  • Medium 5.3

    MISP Dashboard Button Widget Allows Persistent JavaScript URL Injection

    A persistent unsafe URL injection vulnerability exists in the MISP dashboard ButtonWidget configuration. Dashboard widget URLs were validated only when the widget was rendered and were not validated when the configuration was saved. As a result, an authentica…

  • Medium 4.4

    DSpace: ORE resource URI does not validate scheme for non-web resources

    DSpace open source software is a repository application which provides durable access to digital resources. Prior to versions 7.6.7, 8.4, 9.3, and 10.0, when ingesting an aggregated ORE resource by URI (using the OAI-ORE Harvester), the ORE Ingestion Crosswal…

  • Medium 6.3

    async-tar PAX extension-header desync enables tar entry/content smuggling

    async-tar is a tar archive reading/writing library for async Rust. Prior to version 0.6.1, async-tar mis-applies a buffered PAX size extension to an intermediary extension header (a GNU longname L, a GNU longlink K, or a PAX x/g header) instead of to the next…

  • Medium 5.4

    Jenkins Job Configuration History Plugin 1367.vc8fa_b_15101dc and earlier allows overwriting the plugin's history recor…

  • Medium 5.9

    Link content parser - Critical - Unsupported - SA-CONTRIB-2026-101

    Vulnerability in Drupal Link content parser. This issue affects Link content parser versions: *.*.

  • Medium 6.5

    Improper input validation in Omnibox in Google Chrome prior to 152.0.7977.75 allowed a remote attacker leveraging socia…

  • Medium 5.9

    Ash.Type.UUIDv7 accepts non-v7 UUIDs that then fail to load, causing persistent denial of service

    Improper Input Validation vulnerability in ash-project ash allows an attacker to persistently deny reads of a record by storing a non-version-7 UUID in an Ash.Type.UUIDv7 attribute. Ash.Type.UUIDv7.cast_input/2 accepts any well-formed UUID string, including n…

  • Medium 6.3

    Declared argument constraints not enforced on AshTypescript typed controller routes

    Improper Input Validation vulnerability in ash-project ash_typescript allows a remote attacker to submit argument values outside a declared allowlist or bound on typed-controller routes. AshTypescript.TypedController.RequestHandler in lib/ash_typescript/typed…

  • Medium 6.9

    WordPress Kubio AI Website Builder - Denial Of Service

    Improper input validation vulnerability in Extend Themes Kubio AI Website Builder. This issue affects Kubio AI Website Builder: before 2.9.1.

  • Medium 6.9

    Unhandled KeyError in AshGraphql relay node resolution crashes queries via an unknown type segment

    Improper Input Validation vulnerability in ash-project ash_graphql allows an unauthenticated client to crash a relay node(id: ...) query with an unhandled KeyError. AshGraphql.Graphql.Resolver.resolve_node/2 decodes the client-supplied global ID with decode_r…

  • Medium 5.3

    Linux Foundation Magma NGSetupRequest input validation

    A security flaw has been discovered in Linux Foundation Magma 1.9.0. This impacts an unknown function of the component NGSetupRequest Handler. Performing a manipulation of the argument NG-IoT-DefaultPagingDRX results in improper input validation. Remote explo…

  • Medium 6.3

    EmbeddedHeadersJsonMessageMapper default gives wire peer full control of MessageHeaders

    The EmbeddedHeadersJsonMessageMapper defaults to an overly permissive header parsing posture in its constructor. When decodeNativeFormat processes raw byte payloads, it deserializes embedded JSON headers into a plain Map and constructs a GenericMessage with M…

  • Medium 6.2

    openssl_encrypt before 1.4.9 D-Bus Properties Authorization Bypass

    openssl_encrypt 1.4.x before 1.4.9 contains an optional D-Bus crypto service whose org.freedesktop.DBus.Properties.Set method performs neither a polkit authorization check nor value validation. Any local user on the system bus can call Set without authorizati…

  • Medium 6.9

    Flowintel Login Email Validation Bypass Allows Log Injection via Crafted Email Input

    Affected versions of Flowintel incorrectly attempted to validate login email addresses by calling Email(email). That does not perform WTForms field validation; it merely constructs a validator object. Consequently, malformed attacker-controlled email input co…

  • Medium 5.4

    DefaultJmsHeaderMapper copies all JMS user properties into MessageHeaders without excluding framework-significant names

    A producer who can publish to a JMS destination consumed by any Spring Integration JMS inbound component can set String JMS properties named replyChannel, errorChannel, or json__TypeId__ which are copied verbatim into the Spring Integration MessageHeaders. Sp…

  • Medium 5.7

    Email Login OTP - Critical - Unsupported - SA-CONTRIB-2026-085

    Vulnerability in Drupal Email Login OTP. This issue affects Email Login OTP versions: *.*.

  • Medium 5.7

    Lunr exposed filters - Critical - Unsupported - SA-CONTRIB-2026-086

    Vulnerability in Drupal Lunr exposed filters. This issue affects Lunr exposed filters versions: *.*.

  • Medium 5.7

    Development Environment - Critical - Unsupported - SA-CONTRIB-2026-089

    Vulnerability in Drupal Development Environment. This issue affects Development Environment versions: *.*.

  • Medium 5.7

    Disable Login Page - Moderately critical - Access bypass - SA-CONTRIB-2026-110

    Improper Restriction of Excessive Authentication Attempts vulnerability in Drupal Disable Login Page allows Brute Force. This issue affects Disable Login Page versions: from 0.0.0 to 1.1.4.

  • Medium 5.7

    Powerful Surveys - Critical - Unsupported - SA-CONTRIB-2026-092

    Vulnerability in Drupal Powerful Surveys. This issue affects Powerful Surveys versions: *.*.

  • Medium 6.5

    Improper input validation in Network in Google Chrome on on Windows prior to 152.0.7977.65 allowed a remote attacker le…

  • Medium 6.5

    Improper input validation in Cookies in Google Chrome prior to 152.0.7977.65 allowed a remote attacker who had compromi…

  • Medium 4.3

    Improper input validation in Mobile in Google Chrome on on iOS prior to 152.0.7977.65 allowed a remote attacker to bypa…

  • Medium 4.3

    Improper input validation in ReaderMode in Google Chrome prior to 152.0.7977.65 allowed a remote attacker leveraging so…

  • Medium 4.3

    Improper input validation in ServiceWorker in Google Chrome prior to 152.0.7977.65 allowed a remote attacker to bypass …

  • Medium 6.5

    Improper input validation in NTP Footer in Google Chrome on on Windows prior to 152.0.7977.65 allowed a remote attacker…

  • Medium 6.5

    Improper input validation in ReadingList in Google Chrome on on Windows prior to 152.0.7977.65 allowed a remote attacke…

  • Medium 4.3

    Improper input validation in DeviceBoundSessionCredentials in Google Chrome prior to 152.0.7977.65 allowed a remote att…

  • Medium 4.2

    Improper input validation in Workers in Google Chrome prior to 152.0.7977.65 allowed a remote attacker who had compromi…

  • Medium 4.3

    Improper input validation in StorageAccessAPI in Google Chrome prior to 152.0.7977.65 allowed a remote attacker who had…

  • Medium 4.3

    Improper input validation in Safebrowsing in Google Chrome prior to 152.0.7977.65 allowed a remote attacker to bypass s…

  • Medium 4.3

    Improper input validation in Preload in Google Chrome prior to 152.0.7977.65 allowed a remote attacker who had compromi…