CWE-173: Improper Handling of Alternate Encoding
The product does not properly handle when an input uses an alternate encoding that is valid for the control sphere to which the input is being sent.
Browse cwe weaknesses with official CWE context and Glexia analysis.
Search And Filters
Showing 50 of 969 CWE records · Page 4 of 20.
The product does not properly handle when an input uses an alternate encoding that is valid for the control sphere to which the input is being sent.
The product decodes the same input twice, which can limit the effectiveness of any protection mechanism that occurs in between the decoding operations.
The product does not properly handle when the same input uses several different (mixed) encodings.
The product does not properly handle when an input contains Unicode encoding.
The product does not properly handle when all or part of an input has been URL encoded.
The product does not properly account for differences in case sensitivity when accessing or determining the properties of a resource, leading to inconsistent results.
The product validates input before applying protection mechanisms that modify the input, which could allow an attacker to bypass the validation via dangerous inputs that only arise after the modification.
The product validates input before it is canonicalized, which prevents the product from detecting data that becomes invalid after the canonicalization step.
The product validates data before it has been filtered, which prevents the product from detecting data that becomes invalid after the filtering step.
The product filters data in a way that causes it to be reduced or "collapsed" into an unsafe value that violates an expected security property.
The product implements a protection mechanism that relies on a list of inputs (or properties of inputs) that are explicitly allowed by policy because the inputs are assumed to be safe, but the list is too permissive - that is, it allows an input that is unsafe, leading to resultant weaknesses.
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.
The product specifies a regular expression in a way that causes data to be improperly matched or compared.
A regular expression is overly restrictive, which prevents dangerous values from being detected.
The product performs a comparison that only examines a portion of a factor before determining whether there is a match, such as a substring, leading to resultant weaknesses.
The product makes invalid assumptions about how protocol data or memory is organized at a lower level, resulting in unintended program behavior.
The product performs a calculation that can produce an integer overflow or wraparound when the logic assumes that the resulting value will always be larger than the original value. This occurs when an integer value is incremented to a value that is too large to store in the associated representation. When this occurs, the value may become a very small or negative number.
The product subtracts one value from another, such that the result is less than the minimum allowable integer value, which produces a value that is not equal to the correct result.
Integer coercion refers to a set of flaws pertaining to the type casting, extension, or truncation of primitive data types.
A product calculates or uses an incorrect maximum or minimum value that is 1 more, or 1 less, than the correct value.
The product performs an operation on a number that causes it to be sign extended when it is transformed into a larger data type. When the original number is negative, this can produce unexpected values that lead to resultant weaknesses.
The product uses a signed primitive and performs a cast to an unsigned primitive, which can produce an unexpected value if the value of the signed primitive can not be represented using an unsigned primitive.
The product uses an unsigned primitive and performs a cast to a signed primitive, which can produce an unexpected value if the value of the unsigned primitive can not be represented using a signed primitive.
Truncation errors occur when a primitive is cast to a primitive of a smaller size and data is lost in the conversion.
The product receives input from an upstream component, but it does not account for byte ordering (e.g. big-endian and little-endian) when processing the input, causing an incorrect number or value to be used.
The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.
The code transmits data to another actor, but a portion of the data includes sensitive information that should not be accessible to that actor.
When trying to keep information confidential, an attacker can often infer some of the information by using statistics.
The product behaves differently or sends different responses under different circumstances in a way that is observable to an unauthorized actor.
The product provides different responses to incoming requests in a way that reveals internal state information to an unauthorized actor outside of the intended control sphere.
The product's behaviors indicate important differences that may be observed by unauthorized actors in a way that reveals (1) its internal state or decision process, or (2) differences from other products with equivalent functionality.
The product performs multiple behaviors that are combined to produce a single result, but the individual behaviors are observable separately in a way that allows attackers to reveal internal state or internal decision points.
The product operates in an environment in which its existence or specific identity should not be known, but it behaves differently than other products with equivalent functionality, in a way that is observable to an attacker.
Two separate operations in a product require different amounts of time to complete, in a way that is observable to an actor and reveals security-relevant information about the state of the product, such as whether a particular operation was successful or not.
The product generates an error message that includes sensitive information about its environment, users, or associated data.
The product identifies an error condition and creates its own diagnostic or error messages that contain sensitive information.
The product performs an operation that triggers an external diagnostic or error message that is not directly generated or controlled by the product, such as an error generated by the programming language interpreter that a software application uses. The error can contain sensitive system information.
The product stores, transfers, or shares a resource that contains sensitive information, but it does not properly remove that information before the product makes the resource available to unauthorized actors.
The product's intended functionality exposes information to certain actors in accordance with the developer's security policy, but this information is regarded as sensitive according to the intended security policies of other stakeholders such as the product's administrator, users, or others whose information is being processed.
A process is invoked with sensitive command-line arguments, environment variables, or other elements that can be seen by other processes on the operating system.
The product inserts sensitive information into debugging code, which could expose this information if the debugging code is not disabled in production.
This entry has been deprecated, as it was not effective as a weakness and was structured more like a category. In addition, the name is inappropriate, since the "container" term is widely understood by developers in different ways than originally intended by PLOVER, the original source for this entry.
This entry has been deprecated because it incorporated and confused multiple weaknesses. The issues formerly covered in this entry can be found at CWE-766 and CWE-767.
This weakness has been deprecated because it was a duplicate of CWE-493. All content has been transferred to CWE-493.
The product stores sensitive data under the web document root with insufficient access control, which might make it accessible to untrusted parties.
The product stores sensitive data under the FTP server root with insufficient access control, which might make it accessible to untrusted parties.
The product does not record, or improperly records, security-relevant information that leads to an incorrect decision or hampers later analysis.
The product truncates the display, recording, or processing of security-relevant information in a way that can obscure the source or nature of an attack.
The product does not record or display information that would be important for identifying the source or nature of an attack, or determining if an action is safe.
The product records security-relevant information according to an alternate name of the affected entity, instead of the canonical name.