The application relies on the existence or values of cookies when performing security-critical operations, but it does not properly ensure that the setting 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. Reliance on cookies without detailed validation and integrity checking can allow attackers to bypass authentication, conduct injection attacks such as SQL injection and cross-site scripting, or otherwise modify inputs in unexpected ways.
cwe_Nature: ChildOf cwe_CWE_ID: 642 cwe_View_ID: 1000 cwe_Ordinal: Primary
cwe_Nature: ChildOf cwe_CWE_ID: 669 cwe_View_ID: 1003 cwe_Ordinal: Primary
cwe_Nature: ChildOf cwe_CWE_ID: 602 cwe_View_ID: 1000
Avoid using cookie data for a security-related decision.
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.
Add integrity checks to detect tampering.
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.
The following code excerpt reads a value from a browser cookie to determine the role of the user.
It is easy for an attacker to modify the "role" value found in the locally stored cookie, allowing privilege escalation.
|映射的分类名||ImNode ID||Fit||Mapped Node Name|
|Software Fault Patterns||SFP29||Faulty endpoint authentication|