Umbra Wiki weakness weakness/CWE-784
Back to wiki

CWE-784 — Reliance on Cookies without Validation and Integrity Checking in a Security Decision

provenance: imported · CWE: CWE-784

CWE-784: Reliance on Cookies without Validation and Integrity Checking in a Security Decision

MITRE CWE weakness

Kind Weakness
Abstraction Variant
Status Draft
Likelihood of exploit High

Description

The product uses a protection mechanism that relies on the existence or values of a cookie, but it does not properly ensure that the cookie is valid for the associated user.

Attackers can easily modify cookies, within the browser or by implementing the client-side code outside of the browser. Attackers can bypass protection mechanisms such as authorization and authentication by modifying the cookie to contain an expected value.

Common consequences

  • Access Control: Bypass Protection Mechanism, Gain Privileges or Assume Identity

Mitigations

Architecture and Design — Avoid using cookie data for a security-related decision.

Implementation — Perform thorough input validation (i.e.: server side validation) on the cookie data if you're going to use it for a security related decision.

Architecture and Design — Add integrity checks to detect tampering.

Architecture and Design — Protect critical cookies from replay attacks, since cross-site scripting or other attacks may allow attackers to steal a strongly-encrypted cookie that also passes integrity checks. This mitigation applies to cookies that should only be valid during a single transaction or session. By enforcing timeouts, you may limit the scope of an attack. As part of your integrity check, use an unpredictable, server-side value that is not exposed to the client.

References

  • CWE page: https://cwe.mitre.org/data/definitions/784.html
  • CWE list: https://cwe.mitre.org/data/index.html