All posts by rocco

Vulnerabilities of the TLS Protocol

Read Time:2 Minute, 6 Second

Secure Socket Layer (SSL) and its successor, Transport Layer Security (TLS), are widely used protocols for secure online communication. They provide encryption and authentication between two applications over a network, ensuring the confidentiality and integrity of data transmitted between them.

However, SSL/TLS is not invulnerable, and over the years, several vulnerabilities have been discovered that can compromise the security of online transactions. One of the most significant vulnerabilities is the POODLE attack, discovered in 2014, which affects the older versions of SSL/TLS. This vulnerability allows an attacker to exploit the way SSL/TLS handles padding in the encryption process, enabling them to read encrypted information, including sensitive information such as passwords and credit card numbers.

Another vulnerability is the BEAST attack, which exploits a vulnerability in the way SSL/TLS handles block ciphers in older versions of the protocol. This attack allows an attacker to intercept and decrypt secure HTTPS cookies, potentially giving them access to sensitive data.

A third vulnerability is known as the DROWN attack, which can exploit weak encryption protocols such as SSLv2. The attack allows an attacker to read encrypted data transmitted over an SSL/TLS connection by exploiting a flaw in the SSLv2 protocol. Even though SSLv2 is now considered obsolete and no longer used, some older systems may still have it enabled, leaving them vulnerable to attack.

To ensure the maximum security of your online transactions, it’s essential to be aware of the potential vulnerabilities of SSL/TLS and to take necessary precautions. To start with, it’s recommended to use the latest version of TLS, which is currently TLS 1.3, and to disable support for older, insecure protocols like SSLv2 and SSLv3.

It’s also important to use strong encryption ciphers and to regularly test your TLS configuration for potential vulnerabilities. This can be done using tools like SSL Labs’ SSL Server Test, which can check the strength of your TLS configuration and identify any potential vulnerabilities.

Another crucial step is to regularly update your TLS certificates, which verify the identity of the server you’re communicating with and ensure that your data is not intercepted by an attacker. TLS certificates have an expiration date, so it’s essential to keep them up to date to ensure maximum security.

Finally, consider using other security measures like firewalls, antivirus software, and two-factor authentication to provide an additional layer of protection.

By taking these necessary precautions, you can significantly reduce the risk of SSL/TLS vulnerabilities and ensure the maximum security of your online transactions.

CWE

Read Time:1 Minute, 11 Second

CWE (Common Weakness Enumeration) is a list of common types of hardware and software defects that have security implications. The CWE list can be used as a framework to describe and communicate such vulnerabilities in terms of CWEs.

The goal is to support all those methods (including automatic ones) to control and prevent software errors. It can be used at the development stage, during the Code Review activity, and later on during the penetration test activity to classify and communicate the vulnerability type to developers. The system is at version 4.7 and contains over 600 categories of weaknesses and vulnerabilities

The CWE Top 25 Most Dangerous Software Weakness List is a list of the most common programming errors that can lead to software vulnerabilities. Vulnerabilities present in the CWE Top 25 are usually easy to detect and exploit. For example, the CWE-79 is related to Cross-Site Scripting while the CWE-89 to SQL Injection. A similar project is Top Ten Owasp (Open Web Application Security Project). Compared to the CWE Top 25, the Top Ten OWASP focuses solely on vulnerabilities of web applications.
The CWE Most Important Hardware Weakness List serves the same purpose, but it focuses on hardware defects.

Please check our post about Vulnerability Analysis to learn more about CWE usage.

Please find a list of all the CWE below or use the search box above to find a specific CWE.

  • CWE-400 – Uncontrolled Resource Consumption

    Description The software does not properly control the allocation and maintenance of a limited resource, thereby enabling an actor to influence the amount of resources consumed, eventually leading to the exhaustion of available resources. Modes of Introduction: – Operation   Likelihood of Exploit: High   Related Weaknesses CWE-664   Consequences Availability: DoS: Crash, Exit, or…

  • CWE-356 – Product UI does not Warn User of Unsafe Actions

    Description The software’s user interface does not warn the user before undertaking an unsafe action on behalf of that user. This makes it easier for attackers to trick users into inflicting damage to their system. Software systems should warn users that a potentially dangerous action may occur if the user proceeds. For example, if the…

  • CWE-357 – Insufficient UI Warning of Dangerous Operations

    Description The user interface provides a warning to a user regarding dangerous or sensitive operations, but the warning is not noticeable enough to warrant attention. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-693   Consequences Non-Repudiation: Hide Activities   Potential Mitigations CVE References CVE-2007-1099 User not sufficiently warned if host key…

  • CWE-358 – Improperly Implemented Security Check for Standard

    Description The software does not implement or incorrectly implements one or more security-relevant checks as specified by the design of a standardized algorithm, protocol, or technique. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-573 CWE-693 CWE-345 CWE-290   Consequences Access Control: Bypass Protection Mechanism   Potential Mitigations CVE References CVE-2002-0862 Browser…

  • CWE-359 – Exposure of Private Personal Information to an Unauthorized Actor

    Description The product does not properly prevent a person’s private, personal information from being accessed by actors who either (1) are not explicitly authorized to access the information or (2) do not have the implicit consent of the person about whom the information is collected. Modes of Introduction: – Architecture and Design     Related…

  • CWE-36 – Absolute Path Traversal

    Description The software uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize absolute path sequences such as “/abs/path” that can resolve to a location that is outside of that directory. This allows attackers to traverse the file system to access files or directories that…

  • CWE-360 – Trust of System Event Data

    Description Security based on event locations are insecure and can be spoofed. Events are a messaging system which may provide control data to programs listening for events. Events often do not have any type of authentication framework to allow them to be verified from a trusted source. Any application, in Windows, on a given desktop…

  • CWE-362 – Concurrent Execution using Shared Resource with Improper Synchronization (‘Race Condition’)

    Description The program contains a code sequence that can run concurrently with other code, and the code sequence requires temporary, exclusive access to a shared resource, but a timing window exists in which the shared resource can be modified by another code sequence that is operating concurrently. Modes of Introduction: – Architecture and Design  …

  • CWE-363 – Race Condition Enabling Link Following

    Description The software checks the status of a file or directory before accessing it, which produces a race condition in which the file can be replaced with a link before the access is performed, causing the software to access the wrong file. While developers might expect that there is a very narrow time window between…

  • CWE-364 – Signal Handler Race Condition

    Description The software uses a signal handler that introduces a race condition. Modes of Introduction: – Architecture and Design   Likelihood of Exploit: Medium   Related Weaknesses CWE-362 CWE-415 CWE-416 CWE-123   Consequences Integrity, Confidentiality, Availability: Modify Application Data, Modify Memory, DoS: Crash, Exit, or Restart, Execute Unauthorized Code or Commands It may be possible…

  • CWE-365 – DEPRECATED: Race Condition in Switch

    Description This entry has been deprecated. There are no documented cases in which a switch’s control expression is evaluated more than once. It is likely that this entry was initially created based on a misinterpretation of the original source material. The original source intended to explain how switches could be unpredictable when using threads, if…

  • CWE-366 – Race Condition within a Thread

    Description If two threads of execution use a resource simultaneously, there exists the possibility that resources may be used while invalid, in turn making the state of execution undefined. Modes of Introduction: – Architecture and Design   Likelihood of Exploit: Medium   Related Weaknesses CWE-362 CWE-662 CWE-662   Consequences Integrity, Other: Alter Execution Logic, Unexpected…

  • CWE-367 – Time-of-check Time-of-use (TOCTOU) Race Condition

    Description The software checks the state of a resource before using that resource, but the resource’s state can change between the check and the use in a way that invalidates the results of the check. This can cause the software to perform invalid actions when the resource is in an unexpected state. This weakness can…

  • CWE-368 – Context Switching Race Condition

    Description A product performs a series of non-atomic actions to switch between contexts that cross privilege or other security boundaries, but a race condition allows an attacker to modify or misrepresent the product’s behavior during the switch. This is commonly seen in web browser vulnerabilities in which the attacker can perform certain actions while the…

  • CWE-369 – Divide By Zero

    Description The product divides a value by zero. This weakness typically occurs when an unexpected value is provided to the product, or if an error occurs that is not properly detected. It frequently occurs in calculations involving physical dimensions such as size, length, width, and height. Modes of Introduction: – Implementation   Likelihood of Exploit:…

  • CWE-37 – Path Traversal: ‘/absolute/pathname/here’

    Description A software system that accepts input in the form of a slash absolute path (‘/absolute/pathname/here’) without appropriate validation can allow an attacker to traverse the file system to unintended locations or access arbitrary files. Modes of Introduction: – Implementation     Related Weaknesses CWE-36 CWE-160   Consequences Confidentiality, Integrity: Read Files or Directories, Modify…

  • CWE-370 – Missing Check for Certificate Revocation after Initial Check

    Description The software does not check the revocation status of a certificate after its initial revocation check, which can cause the software to perform privileged actions even after the certificate is revoked at a later time. If the revocation status of a certificate is not checked before each action that requires privileges, the system may…

  • CWE-372 – Incomplete Internal State Distinction

    Description The software does not properly determine which state it is in, causing it to assume it is in state X when in fact it is in state Y, causing it to perform incorrect operations in a security-relevant manner. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-664   Consequences Integrity, Other:…

  • CWE-373 – DEPRECATED: State Synchronization Error

    Description This entry was deprecated because it overlapped the same concepts as race condition (CWE-362) and Improper Synchronization (CWE-662). Modes of Introduction:     Related Weaknesses   Consequences   Potential Mitigations CVE References

  • CWE-374 – Passing Mutable Objects to an Untrusted Method

    Description The program sends non-cloned mutable data as an argument to a method or function. The function or method that has been called can alter or delete the mutable data. This could violate assumptions that the calling function has made about its state. In situations where unknown code is called with references to mutable data,…

  • CWE-375 – Returning a Mutable Object to an Untrusted Caller

    Description Sending non-cloned mutable data as a return value may result in that data being altered or deleted by the calling function. In situations where functions return references to mutable data, it is possible that the external code which called the function may make changes to the data sent. If this data was not previously…

  • CWE-337 – Predictable Seed in Pseudo-Random Number Generator (PRNG)

    Description A Pseudo-Random Number Generator (PRNG) is initialized from a predictable seed, such as the process ID or system time. The use of predictable seeds significantly reduces the number of possible seeds that an attacker would need to test in order to predict which random numbers will be generated by the PRNG. Modes of Introduction:…

  • CWE-338 – Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)

    Description The product uses a Pseudo-Random Number Generator (PRNG) in a security context, but the PRNG’s algorithm is not cryptographically strong. Modes of Introduction: – Architecture and Design   Likelihood of Exploit: Medium   Related Weaknesses CWE-330 CWE-330   Consequences Access Control: Bypass Protection Mechanism If a PRNG is used for authentication and authorization, such…

  • CWE-339 – Small Seed Space in PRNG

    Description A Pseudo-Random Number Generator (PRNG) uses a relatively small seed space, which makes it more susceptible to brute force attacks. PRNGs are entirely deterministic once seeded, so it should be extremely difficult to guess the seed. If an attacker can collect the outputs of a PRNG and then brute force the seed by trying…

  • CWE-34 – Path Traversal: ‘….//’

    Description The software uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize ‘….//’ (doubled dot dot slash) sequences that can resolve to a location that is outside of that directory. Modes of Introduction: – Implementation     Related Weaknesses CWE-23   Consequences Confidentiality, Integrity:…

  • CWE-340 – Generation of Predictable Numbers or Identifiers

    Description The product uses a scheme that generates numbers or identifiers that are more predictable than required. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-330   Consequences Other: Varies by Context   Potential Mitigations CVE References

  • CWE-341 – Predictable from Observable State

    Description A number or object is predictable based on observations that the attacker can make about the state of the system or network, such as time, process ID, etc. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-340   Consequences Other: Varies by Context This weakness could be exploited by an attacker…

  • CWE-342 – Predictable Exact Value from Previous Values

    Description An exact value or random number can be precisely predicted by observing previous values. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-340   Consequences Other: Varies by Context   Potential Mitigations Phase: Description:  Increase the entropy used to seed a PRNG. Phase: Architecture and Design, Requirements Description:  Use products or…

  • CWE-343 – Predictable Value Range from Previous Values

    Description The software’s random number generator produces a series of values which, when observed, can be used to infer a relatively small range of possibilities for the next value that could be generated. The output of a random number generator should not be predictable based on observations of previous values. In some cases, an attacker…

  • CWE-344 – Use of Invariant Value in Dynamically Changing Context

    Description The product uses a constant value, name, or reference, but this value can (or should) vary across different environments. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-330   Consequences Other: Varies by Context   Potential Mitigations CVE References CVE-2002-0980 Component for web browser writes an error message to a known…

  • CWE-345 – Insufficient Verification of Data Authenticity

    Description The software does not sufficiently verify the origin or authenticity of data, in a way that causes it to accept invalid data. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-693   Consequences Integrity, Other: Varies by Context, Unexpected State   Potential Mitigations CVE References

  • CWE-346 – Origin Validation Error

    Description The software does not properly verify that the source of data or communication is valid. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-345 CWE-345 CWE-284   Consequences Access Control, Other: Gain Privileges or Assume Identity, Varies by Context An attacker can access any functionality that is inadvertently accessible to the…

  • CWE-347 – Improper Verification of Cryptographic Signature

    Description The software does not verify, or incorrectly verifies, the cryptographic signature for data. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-345 CWE-345   Consequences Access Control, Integrity, Confidentiality: Gain Privileges or Assume Identity, Modify Application Data, Execute Unauthorized Code or Commands An attacker could gain access to sensitive data and…

  • CWE-348 – Use of Less Trusted Source

    Description The software has two different sources of the same data or information, but it uses the source that has less support for verification, is less trusted, or is less resistant to attack. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-345   Consequences Access Control: Bypass Protection Mechanism, Gain Privileges or…

  • CWE-349 – Acceptance of Extraneous Untrusted Data With Trusted Data

    Description The software, when processing trusted data, accepts any untrusted data that is also included with the trusted data, treating the untrusted data as if it were trusted. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-345   Consequences Access Control, Integrity: Bypass Protection Mechanism, Modify Application Data An attacker could package…

  • CWE-35 – Path Traversal: ‘…/…//’

    Description The software uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize ‘…/…//’ (doubled triple dot slash) sequences that can resolve to a location that is outside of that directory. Modes of Introduction: – Implementation     Related Weaknesses CWE-23   Consequences Confidentiality, Integrity:…

  • CWE-350 – Reliance on Reverse DNS Resolution for a Security-Critical Action

    Description The software performs reverse DNS resolution on an IP address to obtain the hostname and make a security decision, but it does not properly ensure that the IP address is truly associated with the hostname. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-290 CWE-923 CWE-807 CWE-923   Consequences Access Control:…

  • CWE-351 – Insufficient Type Distinction

    Description The software does not properly distinguish between different types of elements in a way that leads to insecure behavior. Modes of Introduction: – Implementation     Related Weaknesses CWE-345 CWE-436   Consequences Other: Other   Potential Mitigations CVE References CVE-2005-2260 Browser user interface does not distinguish between user-initiated and synthetic events. CVE-2005-2801 Product does…

  • CWE-352 – Cross-Site Request Forgery (CSRF)

    Description The web application does not, or can not, sufficiently verify whether a well-formed, valid, consistent request was intentionally provided by the user who submitted the request. When a web server is designed to receive a request from a client without any mechanism for verifying that it was intentionally sent, then it might be possible…

  • CWE-353 – Missing Support for Integrity Check

    Description The software uses a transmission protocol that does not include a mechanism for verifying the integrity of the data during transmission, such as a checksum. If integrity check values or “checksums” are omitted from a protocol, there is no way of determining if data has been corrupted in transmission. The lack of checksum functionality…

  • CWE-354 – Improper Validation of Integrity Check Value

    Description The software does not validate or incorrectly validates the integrity check values or “checksums” of a message. This may prevent it from detecting if the data has been modified or corrupted in transmission. Improper validation of checksums before use results in an unnecessary risk that can easily be mitigated. The protocol specification describes the…

  • CWE-318 – Cleartext Storage of Sensitive Information in Executable

    Description The application stores sensitive information in cleartext in an executable. Attackers can reverse engineer binary code to obtain secret data. This is especially easy when the cleartext is plain ASCII. Even if the information is encoded in a way that is not human-readable, certain techniques could determine which encoding is being used, then decode…

  • CWE-319 – Cleartext Transmission of Sensitive Information

    Description The software transmits sensitive or security-critical data in cleartext in a communication channel that can be sniffed by unauthorized actors. Many communication channels can be “sniffed” by attackers during data transmission. For example, network traffic can often be sniffed by any attacker who has access to a network interface. This significantly lowers the difficulty…

  • CWE-32 – Path Traversal: ‘…’ (Triple Dot)

    Description The software uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize ‘…’ (triple dot) sequences that can resolve to a location that is outside of that directory. Modes of Introduction: – Implementation     Related Weaknesses CWE-23   Consequences Confidentiality, Integrity: Read Files…

  • CWE-321 – Use of Hard-coded Cryptographic Key

    Description The use of a hard-coded cryptographic key significantly increases the possibility that encrypted data may be recovered. Modes of Introduction: – Architecture and Design   Likelihood of Exploit: High   Related Weaknesses CWE-798 CWE-798 CWE-798   Consequences Access Control: Bypass Protection Mechanism, Gain Privileges or Assume Identity If hard-coded cryptographic keys are used, it…

  • CWE-322 – Key Exchange without Entity Authentication

    Description The software performs a key exchange with an actor without verifying the identity of that actor. Performing a key exchange will preserve the integrity of the information sent between two entities, but this will not guarantee that the entities are who they claim they are. This may enable an attacker to impersonate an actor…

  • CWE-323 – Reusing a Nonce, Key Pair in Encryption

    Description Nonces should be used for the present occasion and only once. Nonces are often bundled with a key in a communication exchange to produce a new session key for each exchange. Modes of Introduction: – Architecture and Design   Likelihood of Exploit: High   Related Weaknesses CWE-344   Consequences Access Control: Bypass Protection Mechanism,…

  • CWE-324 – Use of a Key Past its Expiration Date

    Description The product uses a cryptographic key or password past its expiration date, which diminishes its safety significantly by increasing the timing window for cracking attacks against that key. While the expiration of keys does not necessarily ensure that they are compromised, it is a significant concern that keys which remain in use for prolonged…

  • CWE-325 – Missing Cryptographic Step

    Description The product does not implement a required step in a cryptographic algorithm, resulting in weaker encryption than advertised by the algorithm. Modes of Introduction: – Implementation     Related Weaknesses CWE-573 CWE-358   Consequences Access Control: Bypass Protection Mechanism Confidentiality, Integrity: Read Application Data, Modify Application Data Accountability, Non-Repudiation: Hide Activities   Potential Mitigations…

  • CWE-326 – Inadequate Encryption Strength

    Description The software stores or transmits sensitive data using an encryption scheme that is theoretically sound, but is not strong enough for the level of protection required. A weak encryption scheme can be subjected to brute force attacks that have a reasonable chance of succeeding using current attack methods and resources. Modes of Introduction: –…

  • CWE-327 – Use of a Broken or Risky Cryptographic Algorithm

    Description The use of a broken or risky cryptographic algorithm is an unnecessary risk that may result in the exposure of sensitive information. The use of a non-standard algorithm is dangerous because a determined attacker may be able to break the algorithm and compromise whatever data has been protected. Well-known techniques may exist to break…

  • CWE-328 – Use of Weak Hash

    Description The product uses an algorithm that produces a digest (output value) that does not meet security expectations for a hash function that allows an adversary to reasonably determine the original input (preimage attack), find another input that can produce the same hash (2nd preimage attack), or find multiple inputs that evaluate to the same…

  • CWE-329 – Generation of Predictable IV with CBC Mode

    Description The product generates and uses a predictable initialization Vector (IV) with Cipher Block Chaining (CBC) Mode, which causes algorithms to be susceptible to dictionary attacks when they are encrypted under the same key. Modes of Introduction: – Architecture and Design   Likelihood of Exploit: Medium   Related Weaknesses CWE-1204 CWE-573   Consequences Confidentiality: Read…

  • CWE-33 – Path Traversal: ‘….’ (Multiple Dot)

    Description The software uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize ‘….’ (multiple dot) sequences that can resolve to a location that is outside of that directory. Modes of Introduction: – Implementation     Related Weaknesses CWE-23   Consequences Confidentiality, Integrity: Read Files…

  • CWE-330 – Use of Insufficiently Random Values

    Description The software uses insufficiently random numbers or values in a security context that depends on unpredictable numbers. When software generates predictable values in a context requiring unpredictability, it may be possible for an attacker to guess the next value that will be generated, and use this guess to impersonate another user or access sensitive…

  • CWE-331 – Insufficient Entropy

    Description The software uses an algorithm or scheme that produces insufficient entropy, leaving patterns or clusters of values that are more likely to occur than others. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-330 CWE-330   Consequences Access Control, Other: Bypass Protection Mechanism, Other An attacker could guess the random numbers…

  • CWE-332 – Insufficient Entropy in PRNG

    Description The lack of entropy available for, or used by, a Pseudo-Random Number Generator (PRNG) can be a stability and security threat. Modes of Introduction: – Architecture and Design   Likelihood of Exploit: Medium   Related Weaknesses CWE-331   Consequences Availability: DoS: Crash, Exit, or Restart If a pseudo-random number generator is using a limited…

  • CWE-333 – Improper Handling of Insufficient Entropy in TRNG

    Description True random number generators (TRNG) generally have a limited source of entropy and therefore can fail or block. The rate at which true random numbers can be generated is limited. It is important that one uses them only when they are needed for security. Modes of Introduction: – Architecture and Design   Likelihood of…

  • CWE-334 – Small Space of Random Values

    Description The number of possible random values is smaller than needed by the product, making it more susceptible to brute force attacks. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-330   Consequences Access Control, Other: Bypass Protection Mechanism, Other An attacker could easily guess the values used. This could lead to…

  • CWE-335 – Incorrect Usage of Seeds in Pseudo-Random Number Generator (PRNG)

    Description The software uses a Pseudo-Random Number Generator (PRNG) but does not correctly manage seeds. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-330 CWE-330   Consequences Access Control, Other: Bypass Protection Mechanism, Other If a PRNG is used incorrectly, such as using the same seed for each initialization or using a…

  • CWE-336 – Same Seed in Pseudo-Random Number Generator (PRNG)

    Description A Pseudo-Random Number Generator (PRNG) uses the same seed each time the product is initialized. Given the deterministic nature of PRNGs, using the same seed for each initialization will lead to the same output in the same order. If an attacker can guess (or knows) the seed, then the attacker may be able to…

  • CWE-299 – Improper Check for Certificate Revocation

    Description The software does not check or incorrectly checks the revocation status of a certificate, which may cause it to use a certificate that has been compromised. An improper check for certificate revocation is a far more serious flaw than related certificate failures. This is because the use of any revoked certificate is almost certainly…

  • CWE-30 – Path Traversal: ‘dir..filename’

    Description The software uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize ‘dir..filename’ (leading backslash dot dot) sequences that can resolve to a location that is outside of that directory. Modes of Introduction: – Implementation     Related Weaknesses CWE-23   Consequences Confidentiality, Integrity:…

  • CWE-300 – Channel Accessible by Non-Endpoint

    Description The product does not adequately verify the identity of actors at both ends of a communication channel, or does not adequately ensure the integrity of the channel, in a way that allows the channel to be accessed or influenced by an actor that is not an endpoint. In order to establish secure communication between…

  • CWE-301 – Reflection Attack in an Authentication Protocol

    Description Simple authentication protocols are subject to reflection attacks if a malicious user can use the target machine to impersonate a trusted user. Modes of Introduction: – Architecture and Design   Likelihood of Exploit: Medium   Related Weaknesses CWE-287 CWE-327   Consequences Access Control: Gain Privileges or Assume Identity The primary result of reflection attacks…

  • CWE-302 – Authentication Bypass by Assumed-Immutable Data

    Description The authentication scheme or implementation uses key data elements that are assumed to be immutable, but can be controlled or modified by the attacker. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-287 CWE-807   Consequences Access Control: Bypass Protection Mechanism   Potential Mitigations Phase: Architecture and Design, Operation, Implementation Description: …

  • CWE-303 – Incorrect Implementation of Authentication Algorithm

    Description The requirements for the software dictate the use of an established authentication algorithm, but the implementation of the algorithm is incorrect. This incorrect implementation may allow authentication to be bypassed. Modes of Introduction: – Implementation     Related Weaknesses CWE-287   Consequences Access Control: Bypass Protection Mechanism   Potential Mitigations CVE References CVE-2003-0750 Conditional…

  • CWE-304 – Missing Critical Step in Authentication

    Description The software implements an authentication technique, but it skips a step that weakens the technique. Authentication techniques should follow the algorithms that define them exactly, otherwise authentication can be bypassed or more easily subjected to brute force attacks. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-287 CWE-573   Consequences Access…

  • CWE-305 – Authentication Bypass by Primary Weakness

    Description The authentication algorithm is sound, but the implemented mechanism can be bypassed as the result of a separate weakness that is primary to the authentication error. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-287   Consequences Access Control: Bypass Protection Mechanism   Potential Mitigations CVE References CVE-2002-1374 The provided password…

  • CWE-306 – Missing Authentication for Critical Function

    Description The software does not perform any authentication for functionality that requires a provable user identity or consumes a significant amount of resources. Modes of Introduction: – Architecture and Design   Likelihood of Exploit: High   Related Weaknesses CWE-287 CWE-287   Consequences Access Control, Other: Gain Privileges or Assume Identity, Other Exposing critical functionality essentially…

  • CWE-307 – Improper Restriction of Excessive Authentication Attempts

    Description The software does not implement sufficient measures to prevent multiple failed authentication attempts within in a short time frame, making it more susceptible to brute force attacks. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-287 CWE-287 CWE-799   Consequences Access Control: Bypass Protection Mechanism An attacker could perform an arbitrary…

  • CWE-308 – Use of Single-factor Authentication

    Description The use of single-factor authentication can lead to unnecessary risk of compromise when compared with the benefits of a dual-factor authentication scheme. While the use of multiple authentication schemes is simply piling on more complexity on top of authentication, it is inestimably valuable to have such measures of redundancy. The use of weak, reused,…

  • CWE-309 – Use of Password System for Primary Authentication

    Description The use of password systems as the primary means of authentication may be subject to several flaws or shortcomings, each reducing the effectiveness of the mechanism. Password systems are the simplest and most ubiquitous authentication mechanisms. However, they are subject to such well known attacks,and such frequent compromise that their use in the most…

  • CWE-31 – Path Traversal: ‘dir….filename’

    Description The software uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize ‘dir….filename’ (multiple internal backslash dot dot) sequences that can resolve to a location that is outside of that directory. Modes of Introduction: – Implementation     Related Weaknesses CWE-23   Consequences Confidentiality,…

  • CWE-311 – Missing Encryption of Sensitive Data

    Description The software does not encrypt sensitive or critical information before storage or transmission. The lack of proper data encryption passes up the guarantees of confidentiality, integrity, and accountability that properly implemented encryption conveys. Modes of Introduction: – Architecture and Design   Likelihood of Exploit: High   Related Weaknesses CWE-693   Consequences Confidentiality: Read Application…

  • CWE-312 – Cleartext Storage of Sensitive Information

    Description The application stores sensitive information in cleartext within a resource that might be accessible to another control sphere. Because the information is stored in cleartext, attackers could potentially read it. Even if the information is encoded in a way that is not human-readable, certain techniques could determine which encoding is being used, then decode…

  • CWE-313 – Cleartext Storage in a File or on Disk

    Description The application stores sensitive information in cleartext in a file, or on disk. The sensitive information could be read by attackers with access to the file, or with physical or administrator access to the raw disk. Even if the information is encoded in a way that is not human-readable, certain techniques could determine which…

  • CWE-314 – Cleartext Storage in the Registry

    Description The application stores sensitive information in cleartext in the registry. Attackers can read the information by accessing the registry key. Even if the information is encoded in a way that is not human-readable, certain techniques could determine which encoding is being used, then decode the information. Modes of Introduction: – Architecture and Design  …

  • CWE-315 – Cleartext Storage of Sensitive Information in a Cookie

    Description The application stores sensitive information in cleartext in a cookie. Attackers can use widely-available tools to view the cookie and read the sensitive information. Even if the information is encoded in a way that is not human-readable, certain techniques could determine which encoding is being used, then decode the information. Modes of Introduction: –…

  • CWE-316 – Cleartext Storage of Sensitive Information in Memory

    Description The application stores sensitive information in cleartext in memory. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-312   Consequences Confidentiality: Read Memory   Potential Mitigations CVE References CVE-2001-1517 Sensitive authentication information in cleartext in memory. BID:10155 Sensitive authentication information in cleartext in memory. CVE-2001-0984 Password protector leaves passwords in memory…

  • CWE-317 – Cleartext Storage of Sensitive Information in GUI

    Description The application stores sensitive information in cleartext within the GUI. An attacker can often obtain data from a GUI, even if hidden, by using an API to directly access GUI objects such as windows and menus. Even if the information is encoded in a way that is not human-readable, certain techniques could determine which…

  • CWE-280 – Improper Handling of Insufficient Permissions or Privileges

    Description The application does not handle or incorrectly handles when it has insufficient privileges to access resources or functionality as specified by their permissions. This may cause it to follow unexpected code paths that may leave the application in an invalid state. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-755  …

  • CWE-281 – Improper Preservation of Permissions

    Description The software does not preserve permissions or incorrectly preserves permissions when copying, restoring, or sharing objects, which can cause them to have less restrictive permissions than intended. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-732 CWE-732   Consequences Confidentiality, Integrity: Read Application Data, Modify Application Data   Potential Mitigations CVE…

  • CWE-282 – Improper Ownership Management

    Description The software assigns the wrong ownership, or does not properly verify the ownership, of an object or resource. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-284   Consequences Access Control: Gain Privileges or Assume Identity   Potential Mitigations Phase: Architecture and Design, Operation Description:  Very carefully manage the setting, management,…

  • CWE-283 – Unverified Ownership

    Description The software does not properly verify that a critical resource is owned by the proper entity. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-282   Consequences Access Control: Gain Privileges or Assume Identity An attacker could gain unauthorized access to system resources.   Potential Mitigations Phase: Architecture and Design, Operation…

  • CWE-284 – Improper Access Control

    Description The software does not restrict or incorrectly restricts access to a resource from an unauthorized actor. Modes of Introduction: – Architecture and Design     Related Weaknesses   Consequences Other: Varies by Context   Potential Mitigations Phase: Architecture and Design, Operation Description:  Very carefully manage the setting, management, and handling of privileges. Explicitly manage…

  • CWE-285 – Improper Authorization

    Description The software does not perform or incorrectly performs an authorization check when an actor attempts to access a resource or perform an action. An access control list (ACL) represents who/what has permissions to a given object. Different operating systems implement (ACLs) in different ways. In UNIX, there are three types of permissions: read, write,…

  • CWE-286 – Incorrect User Management

    Description The software does not properly manage a user within its environment. Users can be assigned to the wrong group (class) of permissions resulting in unintended access rights to sensitive objects. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-284   Consequences Other: Varies by Context   Potential Mitigations CVE References

  • CWE-287 – Improper Authentication

    Description When an actor claims to have a given identity, the software does not prove or insufficiently proves that the claim is correct. Modes of Introduction: – Architecture and Design   Likelihood of Exploit: High   Related Weaknesses CWE-284 CWE-284   Consequences Integrity, Confidentiality, Availability, Access Control: Read Application Data, Gain Privileges or Assume Identity,…

  • CWE-288 – Authentication Bypass Using an Alternate Path or Channel

    Description A product requires authentication, but the product has an alternate path or channel that does not require authentication. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-287 CWE-284 CWE-420 CWE-425   Consequences Access Control: Bypass Protection Mechanism   Potential Mitigations Phase: Architecture and Design Description:  Funnel all access through a single…

  • CWE-289 – Authentication Bypass by Alternate Name

    Description The software performs authentication based on the name of a resource being accessed, or the name of the actor performing the access, but it does not properly check all possible names for that resource or actor. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-287   Consequences Access Control: Bypass Protection…

  • CWE-29 – Path Traversal: ‘..filename’

    Description The software uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize ‘..filename’ (leading backslash dot dot) sequences that can resolve to a location that is outside of that directory. Modes of Introduction: – Implementation     Related Weaknesses CWE-23   Consequences Confidentiality, Integrity:…

  • CWE-290 – Authentication Bypass by Spoofing

    Description This attack-focused weakness is caused by improperly implemented authentication schemes that are subject to spoofing attacks. Modes of Introduction: – Architecture and Design     Related Weaknesses CWE-287 CWE-287   Consequences Access Control: Bypass Protection Mechanism, Gain Privileges or Assume Identity This weakness can allow an attacker to access resources which are not otherwise…

  • CWE-291 – Reliance on IP Address for Authentication

    Description The software uses an IP address for authentication. IP addresses can be easily spoofed. Attackers can forge the source IP address of the packets they send, but response packets will return to the forged IP address. To see the response packets, the attacker has to sniff the traffic between the victim machine and the…

  • CWE-292 – DEPRECATED: Trusting Self-reported DNS Name

    Description This entry has been deprecated because it was a duplicate of CWE-350. All content has been transferred to CWE-350. Modes of Introduction:     Related Weaknesses   Consequences   Potential Mitigations CVE References

  • CWE-293 – Using Referer Field for Authentication

    Description The referer field in HTTP requests can be easily modified and, as such, is not a valid means of message integrity checking. The referer field in HTML requests can be simply modified by malicious users, rendering it useless as a means of checking the validity of the request in question. Modes of Introduction: –…

  • CWE-294 – Authentication Bypass by Capture-replay

    Description A capture-replay flaw exists when the design of the software makes it possible for a malicious user to sniff network traffic and bypass authentication by replaying it to the server in question to the same effect as the original message (or with minor changes). Capture-replay attacks are common and can be difficult to defeat…

  • CWE-295 – Improper Certificate Validation

    Description The software does not validate, or incorrectly validates, a certificate. When a certificate is invalid or malicious, it might allow an attacker to spoof a trusted entity by interfering in the communication path between the host and client. The software might connect to a malicious host while believing it is a trusted host, or…

  • CWE-296 – Improper Following of a Certificate’s Chain of Trust

    Description The software does not follow, or incorrectly follows, the chain of trust for a certificate back to a trusted root certificate, resulting in incorrect trust of any resource that is associated with that certificate. Modes of Introduction: – Architecture and Design   Likelihood of Exploit: Low   Related Weaknesses CWE-295 CWE-573   Consequences Non-Repudiation:…

CWE-669 – Incorrect Resource Transfer Between Spheres

Read Time:49 Second

Description

The product does not properly transfer a resource/behavior to another sphere, or improperly imports a resource/behavior from another sphere, in a manner that provides unintended control over that resource.

A “control sphere” is a set of resources and behaviors that are accessible to a single actor, or a group of actors. A product’s security model will typically define multiple spheres, possibly implicitly. For example, a server might define one sphere for “administrators” who can create new user accounts with subdirectories under /home/server/, and a second sphere might cover the set of users who can create or delete files within their own subdirectories. A third sphere might be “users who are authenticated to the operating system on which the product is installed.” Each sphere has different sets of actors and allowable behaviors.

Modes of Introduction:

– Architecture and Design

 

 

Related Weaknesses

CWE-664

 

Consequences

Confidentiality, Integrity: Read Application Data, Modify Application Data, Unexpected State

 

Potential Mitigations

CVE References

CWE-67 – Improper Handling of Windows Device Names

Read Time:2 Minute, 22 Second

Description

The software constructs pathnames from user input, but it does not handle or incorrectly handles a pathname containing a Windows device name such as AUX or CON. This typically leads to denial of service or an information exposure when the application attempts to process the pathname as a regular file.

Not properly handling virtual filenames (e.g. AUX, CON, PRN, COM1, LPT1) can result in different types of vulnerabilities. In some cases an attacker can request a device via injection of a virtual filename in a URL, which may cause an error that leads to a denial of service or an error page that reveals sensitive information. A software system that allows device names to bypass filtering runs the risk of an attacker injecting malicious code in a file with the name of a device.

Historically, there was a bug in the Windows operating system that caused a blue screen of death. Even after that issue was fixed DOS device names continue to be a factor.

Modes of Introduction:

– Architecture and Design

 

Likelihood of Exploit: High

 

Related Weaknesses

CWE-66

 

Consequences

Availability, Confidentiality, Other: DoS: Crash, Exit, or Restart, Read Application Data, Other

 

Potential Mitigations

Phase: Implementation

Description: 

Be familiar with the device names in the operating system where your system is deployed. Check input for these device names.

CVE References

  • CVE-2002-0106
    • Server allows remote attackers to cause a denial of service via a series of requests to .JSP files that contain an MS-DOS device name.
  • CVE-2002-0200
    • Server allows remote attackers to cause a denial of service via an HTTP request for an MS-DOS device name.
  • CVE-2002-1052
    • Product allows remote attackers to use MS-DOS device names in HTTP requests to cause a denial of service or obtain the physical path of the server.
  • CVE-2001-0493
    • Server allows remote attackers to cause a denial of service via a URL that contains an MS-DOS device name.
  • CVE-2001-0558
    • Server allows a remote attacker to create a denial of service via a URL request which includes a MS-DOS device name.
  • CVE-2000-0168
    • Microsoft Windows 9x operating systems allow an attacker to cause a denial of service via a pathname that includes file device names, aka the “DOS Device in Path Name” vulnerability.
  • CVE-2001-0492
    • Server allows remote attackers to determine the physical path of the server via a URL containing MS-DOS device names.
  • CVE-2004-0552
    • Product does not properly handle files whose names contain reserved MS-DOS device names, which can allow malicious code to bypass detection when it is installed, copied, or executed.
  • CVE-2005-2195
    • Server allows remote attackers to cause a denial of service (application crash) via a URL with a filename containing a .cgi extension and an MS-DOS device name.

CWE-670 – Always-Incorrect Control Flow Implementation

Read Time:49 Second

Description

The code contains a control flow path that does not reflect the algorithm that the path is intended to implement, leading to incorrect behavior any time this path is navigated.

This weakness captures cases in which a particular code segment is always incorrect with respect to the algorithm that it is implementing. For example, if a C programmer intends to include multiple statements in a single block but does not include the enclosing braces (CWE-483), then the logic is always incorrect. This issue is in contrast to most weaknesses in which the code usually behaves correctly, except when it is externally manipulated in malicious ways.

Modes of Introduction:

– Architecture and Design

 

 

Related Weaknesses

CWE-691

 

Consequences

Other: Other, Alter Execution Logic

 

Potential Mitigations

CVE References

  • CVE-2021-3011
    • virtual interrupt controller in a virtualization product allows crash of host by writing a certain invalid value to a register, which triggers a fatal error instead of returning an error code

CWE-671 – Lack of Administrator Control over Security

Read Time:39 Second

Description

The product uses security features in a way that prevents the product’s administrator from tailoring security settings to reflect the environment in which the product is being used. This introduces resultant weaknesses or prevents it from operating at a level of security that is desired by the administrator.

If the product’s administrator does not have the ability to manage security-related decisions at all times, then protecting the product from outside threats – including the product’s developer – can become impossible. For example, a hard-coded account name and password cannot be changed by the administrator, thus exposing that product to attacks that the administrator can not prevent.

Modes of Introduction:

– Architecture and Design

 

 

Related Weaknesses

CWE-657

 

Consequences

Other: Varies by Context

 

Potential Mitigations

CVE References

CWE-672 – Operation on a Resource after Expiration or Release

Read Time:41 Second

Description

The software uses, accesses, or otherwise operates on a resource after that resource has been expired, released, or revoked.

Modes of Introduction:

– Architecture and Design

 

 

Related Weaknesses

CWE-666

 

Consequences

Integrity, Confidentiality: Modify Application Data, Read Application Data

If a released resource is subsequently reused or reallocated, then an attempt to use the original resource might allow access to sensitive data that is associated with a different user or entity.

Other, Availability: Other, DoS: Crash, Exit, or Restart

When a resource is released it might not be in an expected state, later attempts to access the resource may lead to resultant errors that may lead to a crash.

 

Potential Mitigations

CVE References

  • CVE-2009-3547
    • chain: race condition might allow resource to be released before operating on it, leading to NULL dereference

CWE-673 – External Influence of Sphere Definition

Read Time:22 Second

Description

The product does not prevent the definition of control spheres from external actors.

Typically, a product defines its control sphere within the code itself, or through configuration by the product’s administrator. In some cases, an external party can change the definition of the control sphere. This is typically a resultant weakness.

Modes of Introduction:

– Architecture and Design

 

 

Related Weaknesses

CWE-664

 

Consequences

Other: Other

 

Potential Mitigations

CVE References

CWE-674 – Uncontrolled Recursion

Read Time:1 Minute, 29 Second

Description

The product does not properly control the amount of recursion which takes place, consuming excessive resources, such as allocated memory or the program stack.

Modes of Introduction:

– Implementation

 

 

Related Weaknesses

CWE-691

 

Consequences

Availability: DoS: Resource Consumption (CPU), DoS: Resource Consumption (Memory)

Resources including CPU, memory, and stack memory could be rapidly consumed or exhausted, eventually leading to an exit or crash.

Confidentiality: Read Application Data

In some cases, an application’s interpreter might kill a process or thread that appears to be consuming too much resources, such as with PHP’s memory_limit setting. When the interpreter kills the process/thread, it might report an error containing detailed information such as the application’s installation path.

 

Potential Mitigations

Phase: Implementation

Effectiveness: Moderate

Description: 

Ensure an end condition will be reached under all logic conditions. The end condition may include testing against the depth of recursion and exiting with an error if the recursion goes too deep. The complexity of the end condition contributes to the effectiveness of this action.

Phase: Implementation

Effectiveness: Limited

Description: 

Increase the stack size.

Increasing the stack size might only be a temporary measure, since the stack typically is still not very large, and it might remain easy for attackers to cause an out-of-stack fault.

CVE References

  • CVE-2007-3409
    • Self-referencing pointers create infinite loop and resultant stack exhaustion.
  • CVE-2016-10707
    • Javascript application accidentally changes input in a way that prevents a recursive call from detecting an exit condition.
  • CVE-2016-3627
    • An attempt to recover a corrupted XML file infinite recursion protection counter was not always incremented missing the exit condition.
  • CVE-2019-15118
    • USB-audio driver’s descriptor code parsing allows unlimited recursion leading to stack exhaustion.