This vulnerability occurs when an application responds differently to unauthorized users based on internal conditions. Attackers can observe these variations—like changes in error messages, timing, or system behavior—to infer sensitive information, such as whether a username exists, a password is incorrect, or a specific operation succeeded.
Observable discrepancies act as unintended information leaks, providing attackers with clues about your system's internal state. These variations can appear in multiple forms: differences in response times (timing attacks), changes in error messages or HTTP status codes, alternate control flows, or even subtle behavioral shifts in the application. Attackers systematically probe these differences to map valid user accounts, guess credentials, or determine the structure of backend systems. In practice, this flaw often enables brute-force attacks or reconnaissance by removing the "blindness" from an attacker's attempts. For example, a login endpoint that returns "invalid username" versus "invalid password" tells an attacker exactly which piece of data is correct. Over time, these small information leaks can be combined to form a complete side channel, bypassing security controls that rely on keeping the system's responses uniform and unpredictable.
Impact: Read Application DataBypass Protection Mechanism
An attacker can gain access to sensitive information about the system, including authentication information that may allow an attacker to gain access to the system.
Impact: Read Application Data
When cryptographic primitives are vulnerable to side-channel-attacks, this could be used to reveal unencrypted plaintext in the worst case.
Strategy: Separation of Privilege
perlbashpythonSuppose an algorithm for implementing an encryption routine works fine per se, but the time taken to output the result of the encryption routine depends on a relationship between the input plaintext and the key (e.g., suppose, if the plaintext is similar to the key, it would run very fast).
Artificial delays may be added to ensure that all calculations take equal time to execute.