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,644 results · Clear filters · Feed

  • High 8.7

    OpenVM: MemoryMerkleAir allows below-leaf rows to alter memory roots

    OpenVM is a performant and modular zkVM framework built for customization and extensibility. Before 1.7.0 in the 1.x line and in affected 2.0 and 2.1 prereleases, `MemoryMerkleAir` does not forbid Merkle expansion rows at `parent_height` = 0 or below while `e…

  • High 7.5

    AdminNeo: version-cache array injection causes persistent denial of service

    AdminNeo is a full-featured database management tool written in PHP. From 4.6.2 until 5.5.0, the unauthenticated `?script=version` endpoint accepts POST data without origin, CSRF or parameter-type validation. A `version[]` parameter becomes a PHP array that `…

  • High 8.0

    Dell OpenManage Enterprise, versions prior to 4.8.0, contains an Improper Input Validation vulnerability. A low privile…

  • High 7.2

    GroupEx PRO ( Daxko ) integration - Critical - Unsupported - SA-CONTRIB-2026-278

    Vulnerability in Drupal GroupEx PRO ( Daxko ) integration. This issue affects GroupEx PRO ( Daxko ) integration versions: *.*.

  • High 8.8

    Improper input validation in Network in Google Chrome prior to 156.0.8078.79 allowed a remote attacker to execute arbit…

  • High 7.5

    Pre-Authentication SSH Denial of Service via Malformed Public-Key Signature in Progress WS_FTP Server

    A remote attacker who knows a valid account's enrolled SSH public key can terminate the shared SSH service in Progress Software WS_FTP Server versions prior to 2024.0.7 and 2025.0.4 on Windows.

  • High 8.3

    Improper input validation in Bixby prior to version 4.0.85.6 allows privileged local attackers to launch arbitrary acti…

  • High 7.6

    OpenCATS: Authenticated SQL injection in activity DataGrid date filters

    OpenCATS is an open-source applicant tracking system and recruitment CRM for staffing agencies and hiring teams. Prior to version 0.10.0, activity DataGrid date filtering in `home:CallsDataGrid` and `activity:ActivityDataGrid` uses request-controlled `period`…

  • High 7.7

    Azure Monitor access token disclosure via SSRF

    A user with query access to an Azure Monitor data source in Grafana can cause server-side requests to an attacker-controlled endpoint that disclose the data source's Azure access token (server-side request forgery).

  • High 7.5

    Apache Kafka: Denial of service in Kafka Streams and client deserializers via unbounded memory allocation

    Several Kafka deserialization paths read a size or count field from input data and use it directly to allocate an array, collection, or byte buffer, with no check against the bytes actually available. A small crafted input can therefore declare a very large s…

  • High 8.8

    Request forgery via news: links

    Clicking a news: or snews: link that referenced a message-ID made Thunderbird connect, without asking, to the host and port given in the link, even if it was not a configured news server. Line breaks in the message-ID were sent to the server unmodified, so a …

  • High 8.7

    Fireware OS XPath Injection in SSH Authentication Allows Blind Extraction of Configuration Secrets

    An XPath injection vulnerability in WatchGuard Fireware OS's SSH authentication process allows a remote, unauthenticated attacker with access to the management SSH interface to extract sensitive configuration data by submitting a specially crafted request.

  • High 8.1

    LiteLLM: internal_user_viewer arbitrary local file read via `vertex_ai_credentials`

    ## Summary An authenticated LiteLLM proxy user could read arbitrary local files from the proxy runtime by sending a crafted `vertex_ai_credentials` value to `/utils/transform_request`. The request-body safety blocklist rejected `vertex_credentials` but missed…

  • High 8.8

    Other issue in the SVG component

    Other issue in the SVG component. This vulnerability was fixed in Firefox 159 and Thunderbird 159.

  • High 7.5

    An input validation issue was addressed with improved input validation. This issue is fixed in iOS 26.7.2 and iPadOS 26…

  • High 7.5

    A denial-of-service issue was addressed with improved input validation. This issue is fixed in iOS 27.2 and iPadOS 27.2…

  • High 8.2

    A validation issue was addressed with improved input sanitization. This issue is fixed in macOS Golden Gate 27.2, macOS…

  • High 8.4

    An authentication issue was addressed with improved validation of user attributes. This issue is fixed in macOS Golden …

  • High 8.1

    vLLM: Untrusted EPS inputs can trigger denial of service or Ghostscript RCE

    vLLM is an inference and serving engine for large language models. Prior to 0.32.0, ImageMediaIO passes attacker-controlled image bytes to Pillow through Image.open(BytesIO(data)) without restricting decoder selection, and the MIME label does not constrain th…

  • High 7.1

    MISP Guard Case-Sensitive Policy Bypass Allows Unauthorized Feed Data Forwarding

    MISP Guard, a proxy-based security filter for MISP feed distribution, contains a case-sensitivity flaw in multiple policy enforcement checks. The functions check_required_taxonomy_exists, check_required_taxonomy_tags_allowed, check_blocked_attribute_categorie…

  • High 7.7

    MISP mispguard: Feed responses with 2xx status codes other than 200 bypass filtering rules

    MISP mispguard is a security filtering proxy that inspects and blocks MISP feed responses based on configured rules. The process_feed_response method in src/mispguard.py was responsible for evaluating feed responses before they reached the MISP instance. The …

  • High 7.0

    Heimdall: IP Spoofing via Unvalidated Forwarding Headers

    Heimdall is a cloud native Identity Aware Proxy and Access Control Decision service. Prior to version 0.17.17, when the trusted_proxies option is configured, heimdall extracts client IP addresses from the Forwarded (for= parameter) and X-Forwarded-For headers…

  • High 7.0

    Heimdall: Forwarded Header Injection via Unsanitized Host Header in Proxy Mode

    Heimdall is a cloud native Identity Aware Proxy and Access Control Decision service. Prior to version 0.17.17, when Heimdall operates in proxy mode, it constructs the Forwarded HTTP header after executing the matched rule pipeline by inserting the incoming re…

  • High 7.5

    Cisco IOS XR Software for ASR 9000 Series Routers IPv4 Unicast Packets Denial of Service Vulnerability

    A vulnerability in the IPv4 packet processing functionality of Cisco IOS XR Software that affects Cisco ASR 9000 and 9900 Series Aggregation Services Routers as well as Cisco ASR 9902 and 9903 Compact High-Performance Routers could allow an unauthenticated, r…

  • High 8.8

    Cisco Unified Communications Products Hardening Release: October 2026 - Improper Input Validation Vulnerabilities

    As part of Cisco's ongoing commitment to proactive security and product quality, engineering teams for Cisco Emergency Responder, Cisco Prime Collaboration Deployment, Cisco Unified Communications Manager (Unified CM), Cisco Unified Communications Manager IM …

  • High 8.7

    JITServer: Multiple Denial of Service vulnerabilities via out-of-bounds heap reads during message and reply parsing

    In Eclipse OpenJ9 versions up to 0.63.0, the JITServer component is vulnerable to denial of service due to improper boundary checks during protocol message and reply handling. An unauthenticated remote attacker or malicious JITServer can transmit malformed ne…

  • High 7.8

    Vulnerability in the Oracle Outside In Technology product of Oracle Fusion Middleware (component: Outside In Core). The…

  • High 7.8

    Vulnerability in the Oracle Outside In Technology product of Oracle Fusion Middleware (component: Outside In Image Expo…

  • High 7.0

    Vulnerability in the Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise Edition product of Oracle Java S…

  • High 7.5

    Vulnerability in the Oracle Outside In Technology product of Oracle Fusion Middleware (component: Outside In PDF Export…

  • High 7.5

    Vulnerability in the Oracle Outside In Technology product of Oracle Fusion Middleware (component: Outside In PDF Export…

  • High 8.2

    Vulnerability in the Oracle Outside In Technology product of Oracle Fusion Middleware (component: Outside In Clean Cont…

  • High 8.8

    Improper input validation in Chromoting in Google Chrome prior to 156.0.8078.47 allowed a remote attacker leveraging so…

  • High 8.8

    Improper input validation in Network in Google Chrome prior to 156.0.8078.47 allowed a remote attacker leveraging socia…

  • High 8.8

    Improper input validation in PDF in Google Chrome prior to 156.0.8078.47 allowed a remote attacker to potentially bypas…

  • High 8.8

    Improper input validation in Compositing in Google Chrome prior to 156.0.8078.47 allowed a remote attacker who had comp…

  • High 8.8

    Improper input validation in Media in Google Chrome prior to 156.0.8078.47 allowed a remote attacker to potentially exe…

  • High 8.8

    Improper input validation in DataTransfer in Google Chrome prior to 156.0.8078.47 allowed a remote attacker leveraging …

  • High 8.8

    Improper input validation in Omnibox in Google Chrome on on Android prior to 156.0.8078.47 allowed a local attacker lev…

  • High 8.8

    Improper input validation in Downloads in Google Chrome prior to 156.0.8078.47 allowed a remote attacker who had compro…