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

368 results · Clear filters · Feed

  • High 8.2
    CVE-2022-24818 Public exploit

    Unchecked JNDI lookups in GeoTools

    GeoTools is an open source Java library that provides tools for geospatial data. The GeoTools library has a number of data sources that can perform unchecked JNDI lookups, which in turn can be used to perform class deserialization and result in arbitrary code…

  • Medium 4.3
    CVE-2018-25031 Public exploit EPSS 42%

    Spoofing attack in swagger-ui

    Swagger UI 4.1.2 and earlier could allow a remote attacker to conduct spoofing attacks. By persuading a victim to open a crafted URL, an attacker could exploit this vulnerability to display remote OpenAPI definitions. Note: This was originally claimed to be r…

  • Critical 9.8
    CVE-2022-24086 Exploited Public exploit Scanner template EPSS 99%

    Adobe Commerce checkout improper input validation leads to remote code execution

    Adobe Commerce versions 2.4.3-p1 (and earlier) and 2.3.7-p2 (and earlier) are affected by an improper input validation vulnerability during the checkout process. Exploitation of this issue does not require user interaction and could result in arbitrary code e…

    KEV Feb 15, 2022
  • High 8.5
    CVE-2022-23626 Public exploit

    Insufficient file checks in m1k1o/blog

    m1k1o/blog is a lightweight self-hosted facebook-styled PHP blog. Errors from functions `imagecreatefrom*` and `image*` have not been checked properly. Although PHP issued warnings and the upload function returned `false`, the original file (that could contai…

  • High 8.0
    CVE-2022-21668 Public exploit

    Pipenv's requirements.txt parsing allows malicious index url in comments

    pipenv is a Python development workflow tool. Starting with version 2018.10.9 and prior to version 2022.1.8, a flaw in pipenv's parsing of requirements files allows an attacker to insert a specially crafted string inside a comment anywhere within a requiremen…

  • Medium 6.6
    CVE-2021-44832 Public exploit EPSS 98%

    Apache Log4j2 vulnerable to RCE via JDBC Appender when attacker controls configuration

    Apache Log4j2 versions 2.0-beta7 through 2.17.0 (excluding security fix releases 2.3.2 and 2.12.4) are vulnerable to a remote code execution (RCE) attack when a configuration uses a JDBC Appender with a JNDI LDAP data source URI when an attacker has control o…

  • Medium 5.9
    CVE-2021-45105 Public exploit EPSS 100%

    Apache Log4j2 does not always protect from infinite recursion in lookup evaluation

    Apache Log4j2 versions 2.0-alpha1 through 2.16.0 (excluding 2.12.3 and 2.3.1) did not protect from uncontrolled recursion from self-referential lookups. This allows an attacker with control over Thread Context Map data to cause a denial of service when a craf…

  • Critical 10.0
    CVE-2021-44228 Exploited · Ransomware Public exploit Scanner template EPSS 100%

    Apache Log4j2 JNDI features do not protect against attacker controlled LDAP and other JNDI related endpoints

    Apache Log4j2 2.0-beta9 through 2.15.0 (excluding security releases 2.12.2, 2.12.3, and 2.3.1) JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who …

    KEV Dec 10, 2021
  • Medium 5.7
    CVE-2021-3572 Public exploit

    Improper Input Validation in pip

    A flaw was found in python-pip in the way it handled Unicode separators in git references. A remote attacker could possibly use this issue to install a different revision on a repository. The highest threat from this vulnerability is to data integrity. This i…

  • High 8.8
    CVE-2021-25741 Public exploit

    Symlink Exchange Can Allow Host Filesystem Access

    A security issue was discovered in Kubernetes where a user may be able to create a container with subpath volume mounts to access files & directories outside of the volume, including on the host filesystem.

  • Low 3.7
    CVE-2021-22924 Public exploit

    libcurl keeps previously used connections in a connection pool for subsequenttransfers to reuse, if one of them matches…

  • Unscored —
    CVE-2021-34427 Public exploit Scanner template EPSS 58%

    In Eclipse BIRT versions 4.8.0 and earlier, an attacker can use query parameters to create a JSP file which is accessib…

  • High 7.8
    CVE-2021-3490 Public exploit EPSS 27%

    Linux kernel eBPF bitwise ops ALU32 bounds tracking

    The eBPF ALU32 bounds tracking for bitwise ops (AND, OR and XOR) in the Linux kernel did not properly update 32-bit bounds, which could be turned into out of bounds reads and writes in the Linux kernel and therefore, arbitrary code execution. This issue was f…

  • Critical 9.8
    CVE-2021-21985 Exploited · Ransomware Public exploit Scanner template EPSS 100%

    The vSphere Client (HTML5) contains a remote code execution vulnerability due to lack of input validation in the Virtua…

    KEV Nov 3, 2021
  • Unscored —
    CVE-2020-27824 Public exploit

    A flaw was found in OpenJPEG’s encoder in the opj_dwt_calc_explicit_stepsizes() function. This flaw allows an attacker …

  • Medium 6.5
    CVE-2021-29425 Public exploit EPSS 11%

    Possible limited path traversal vulnerabily in Apache Commons IO

    In Apache Commons IO before 2.7, When invoking the method FileNameUtils.normalize with an improper input string, like "//../foo", or "\\..\foo", the result would be the same value, thus possibly providing access to files in the parent directory, but not furth…

  • High 8.8
    CVE-2021-26814 Public exploit

    Improper Input Validation (RCE)

    Wazuh API in Wazuh from 4.0.0 to 4.0.3 allows authenticated users to execute arbitrary code with administrative privileges via /manager/files URI. An authenticated user to the service may exploit incomplete input validation on the /manager/files API to inject…

  • Critical 9.8
    CVE-2020-14343 Public exploit

    Improper Input Validation in PyYAML

    A vulnerability was discovered in the PyYAML library in versions before 5.4, where it is susceptible to arbitrary code execution when it processes untrusted YAML files through the full_load method or with the FullLoader loader. Applications that use the libra…

  • Critical 9.8
    CVE-2020-13942 Public exploit Scanner template EPSS 69%

    Remote Code Execution in Apache Unomi

    It is possible to inject malicious OGNL or MVEL scripts into the /context.json public endpoint. This was partially fixed in 1.5.1 but a new attack vector was found. In Apache Unomi version 1.5.2 scripts are now completely filtered from the input. It is highly…

  • Medium 6.4
    CVE-2020-7842 Public exploit

    D'live AP command injection vulnerability

    Improper Input validation vulnerability exists in Netis Korea D'live AP which could cause arbitrary command injection and execution when the time setting (using ntpServerlp1 parameter) for the users. This affects D'live set-top box AP(WF2429TB) v1.1.10.

  • Critical 9.8
    CVE-2020-25592 Public exploit EPSS 58%

    SaltStack Salt Improper Validation of eauth credentials and tokens in salt-netapi

    In SaltStack Salt through 3002, salt-netapi improperly validates eauth credentials and tokens. A user can bypass authentication and invoke Salt SSH.

  • High 8.2
    CVE-2020-7740 Public exploit

    Server-side Request Forgery (SSRF)

    This affects all versions of package node-pdf-generator. Due to lack of user input validation and sanitization done to the content given to node-pdf-generator, it is possible for an attacker to craft a url that will be passed to an external server allowing an…

  • Low 3.5
    CVE-2020-15228 Public exploit

    Environment Variable Injection in GitHub Actions

    In the `@actions/core` npm module before version 1.2.6,`addPath` and `exportVariable` functions communicate with the Actions Runner over stdout by generating a string in a specific format. Workflows that log untrusted data to stdout may invoke these commands,…

  • High 8.8
    CVE-2020-13941 Public exploit

    Improper Input Validation in Apache Solr

    Reported in SOLR-14515 (private) and fixed in SOLR-14561 (public), released in Solr version 8.6.0. The Replication handler (https://lucene.apache.org/solr/guide/8_6/index-replication.html#http-api-commands-for-the-replicationhandler) allows commands backup, r…

  • High 7.5
    CVE-2020-3452 Exploited Public exploit Scanner template EPSS 100%

    Cisco Adaptive Security Appliance Software and Firepower Threat Defense Software Web Services Read-Only Path Traversal Vulnerability

    A vulnerability in the web services interface of Cisco Adaptive Security Appliance (ASA) Software and Cisco Firepower Threat Defense (FTD) Software could allow an unauthenticated, remote attacker to conduct directory traversal attacks and read sensitive files…

    KEV Nov 3, 2021
  • Critical 9.0
    CVE-2020-12029 Public exploit EPSS 47%

    Rockwell Automation FactoryTalk View SE

    All versions of FactoryTalk View SE do not properly validate input of filenames within a project directory. A remote, unauthenticated attacker may be able to execute a crafted file on a remote endpoint that may result in remote code execution (RCE). Rockwell …

  • Critical 10.0
    CVE-2020-1350 Exploited Public exploit EPSS 97%

    A remote code execution vulnerability exists in Windows Domain Name System servers when they fail to properly handle re…

    KEV Nov 3, 2021
  • Medium 5.3
    CVE-2020-7693 Public exploit

    Denial of Service (DoS)

    Incorrect handling of Upgrade header with the value websocket leads in crashing of containers hosting sockjs apps. This affects the package sockjs before 0.3.20.

  • Critical 9.8
    CVE-2020-11975 Public exploit Scanner template EPSS 31%

    Improper Input Validation in Apache Unomi

    Apache Unomi allows conditions to use OGNL scripting which offers the possibility to call static Java classes from the JDK that could execute code with the permission level of the running Java process.

  • Critical 9.8
    CVE-2020-13756 Public exploit EPSS 50%

    Sabberworm PHP CSS Parser Code injection vulnerability in allSelectors()

    Sabberworm PHP CSS Parser before 8.3.1 calls eval on uncontrolled data, possibly leading to remote code execution if the function allSelectors() or getSelectorsBySpecificity() is called with input from an attacker.

  • Medium 6.0
    CVE-2020-13401 Public exploit

    Improper Input Validation in Docker Engine

    An issue was discovered in Docker Engine before 19.03.11. An attacker in a container, with the CAP_NET_RAW capability, can craft IPv6 router advertisements, and consequently spoof external IPv6 hosts, obtain sensitive information, or cause a denial of service.

  • High 7.8
    CVE-2018-20225 Public exploit

    An issue was discovered in pip (all versions) because it installs the version with the highest version number, even if …

  • Medium 6.5
    CVE-2020-11652 Exploited Public exploit EPSS 86%

    SaltStack Salt is vulnerable Arbitrary Directory Access

    An issue was discovered in SaltStack Salt before 2019.2.4 and 3000 before 3000.2. The salt-master process ClearFuncs class allows access to some methods that improperly sanitize paths. These methods allow arbitrary directory access to authenticated users.

    KEV Nov 3, 2021
  • Critical 9.8
    CVE-2020-11651 Exploited Public exploit EPSS 97%

    SaltStack Salt Unauthenticated Remote Code Execution

    An issue was discovered in SaltStack Salt before 2019.2.4 and 3000 before 3000.2. The salt-master process ClearFuncs class does not properly validate method calls. This allows a remote user to access some methods without authentication. These methods can be u…

    KEV Nov 3, 2021
  • High 7.5
    CVE-2020-10663 Public exploit

    Unsafe object creation in json RubyGem

    The JSON gem through 2.2.0 for Ruby, as used in Ruby 2.4 through 2.4.9, 2.5 through 2.5.7, and 2.6 through 2.6.5, has an Unsafe Object Creation Vulnerability. This is quite similar to CVE-2013-0269, but does not rely on poor garbage-collection behavior within…

  • Critical 9.8
    CVE-2020-3250 Public exploit EPSS 61%

    Multiple Vulnerabilities in Cisco UCS Director and Cisco UCS Director Express for Big Data

    Multiple vulnerabilities in the REST API of Cisco UCS Director and Cisco UCS Director Express for Big Data may allow a remote attacker to bypass authentication or conduct directory traversal attacks on an affected device. For more information about these vuln…

  • Critical 9.8
    CVE-2020-3243 Public exploit EPSS 88%

    Multiple Vulnerabilities in Cisco UCS Director and Cisco UCS Director Express for Big Data

    Multiple vulnerabilities in the REST API of Cisco UCS Director and Cisco UCS Director Express for Big Data may allow a remote attacker to bypass authentication or conduct directory traversal attacks on an affected device. For more information about these vuln…

  • Critical 9.8
    CVE-2020-3161 Exploited Public exploit EPSS 84%

    Cisco IP Phones Web Server Remote Code Execution and Denial of Service Vulnerability

    A vulnerability in the web server for Cisco IP Phones could allow an unauthenticated, remote attacker to execute code with root privileges or cause a reload of an affected IP phone, resulting in a denial of service (DoS) condition. The vulnerability is due to…

    KEV Nov 3, 2021
  • Critical 9.3
    CVE-2020-5260 Public exploit EPSS 15%

    malicious URLs may cause Git to present stored credentials to the wrong server

    Affected versions of Git have a vulnerability whereby Git can be tricked into sending private credentials to a host controlled by an attacker. Git uses external "credential helper" programs to store and retrieve passwords or other credentials from secure stor…

  • High 8.8
    CVE-2020-10204 Public exploit Scanner template EPSS 38%

    Remote Code Execution - JavaEL Injection (low privileged accounts) in Nexus Repository Manager

    Sonatype Nexus Repository before 3.21.2 allows Remote Code Execution.