Informations de base
Modes d'introduction
Implementation : REALIZATION: This weakness is caused during implementation of an architectural security tactic.
Plateformes applicables
Langue
Class: Not Language-Specific (Undetermined)
Conséquences courantes
| Portée |
Impact |
Probabilité |
| Access Control | Bypass Protection Mechanism | |
Exemples observés
| Références |
Description |
| Blogging software uses a hard-coded salt when calculating a password hash. |
| Database server uses the username for a salt when encrypting passwords, simplifying brute force attacks. |
| Server uses a constant salt when encrypting passwords, simplifying brute force attacks. |
| chain: product generates predictable MD5 hashes using a constant value combined with username, allowing authentication bypass. |
Mesures d’atténuation potentielles
Phases : Architecture and Design
Phases : Implementation
If a technique that requires extra computational effort can not be implemented, then for each password that is processed, generate a new random salt using a strong random number generator with unpredictable seeds. Add the salt to the plaintext password before hashing it. When storing the hash, also store the salt. Do not use the same salt for every password.
Méthodes de détection
Automated Static Analysis
Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.)
Efficacité : High
Notes de cartographie des vulnérabilités
Justification : This CWE entry is at the Variant level of abstraction, which is a preferred level of abstraction for mapping to the root causes of vulnerabilities.
Commentaire : Carefully read both the name and description to ensure that this mapping is an appropriate fit. Do not try to 'force' a mapping to a lower-level Base/Variant simply to comply with this preferred level of abstraction.
Notes
As of CWE 4.5, terminology related to randomness, entropy, and
predictability can vary widely. Within the developer and other
communities, "randomness" is used heavily. However, within
cryptography, "entropy" is distinct, typically implied as a
measurement. There are no commonly-used definitions, even within
standards documents and cryptography papers. Future versions of
CWE will attempt to define these terms and, if necessary,
distinguish between them in ways that are appropriate for
different communities but do not reduce the usability of CWE for
mapping, understanding, or other scenarios.
Références
REF-291
bcrypt
Johnny Shelley.
https://bcrypt.sourceforge.net/ REF-292
Tarsnap - The scrypt key derivation function and encryption utility
Colin Percival.
http://www.tarsnap.com/scrypt.html REF-293
RFC2898 - PKCS #5: Password-Based Cryptography Specification Version 2.0
B. Kaliski.
https://www.rfc-editor.org/rfc/rfc2898 REF-294
How To Safely Store A Password
Coda Hale.
https://codahale.com/how-to-safely-store-a-password/ REF-295
How Companies Can Beef Up Password Security (interview with Thomas H. Ptacek)
Brian Krebs.
https://krebsonsecurity.com/2012/06/how-companies-can-beef-up-password-security/ REF-296
Password security: past, present, future
Solar Designer.
https://www.openwall.com/presentations/PHDays2012-Password-Security/ REF-297
Our password hashing has no clothes
Troy Hunt.
https://www.troyhunt.com/our-password-hashing-has-no-clothes/ REF-298
Should we really use bcrypt/scrypt?
Joshbw.
https://web.archive.org/web/20120629144851/http://www.analyticalengine.net/2012/06/should-we-really-use-bcryptscrypt/ REF-631
Password Storage Cheat Sheet
OWASP.
https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html REF-632
Enough With The Rainbow Tables: What You Need To Know About Secure Password Schemes
Thomas Ptacek.
http://hashphp.org/hashing.html REF-633
The Importance of Being Canonical
Robert Graham.
https://blog.erratasec.com/2009/02/importance-of-being-canonical.html#.ZCbyY7LMJPY REF-634
Password Hashing
James McGlinn.
https://privacyaustralia.net/phpsec/articles/password-hashing/ REF-635
Rainbow Hash Cracking
Jeff Atwood.
https://blog.codinghorror.com/rainbow-hash-cracking/ REF-636
Speed Hashing
Jeff Atwood.
https://blog.codinghorror.com/speed-hashing/ REF-637
Rainbow table
https://en.wikipedia.org/wiki/Rainbow_table REF-7
Writing Secure Code
Michael Howard, David LeBlanc.
https://www.microsoftpressstore.com/store/writing-secure-code-9780735617223 REF-62
The Art of Software Security Assessment
Mark Dowd, John McDonald, Justin Schuh.
Soumission
| Nom |
Organisation |
Date |
Date de publication |
Version |
| CWE Content Team |
MITRE |
2009-03-03 +00:00 |
2009-03-10 +00:00 |
1.3 |
Modifications
| Nom |
Organisation |
Date |
Commentaire |
| CWE Content Team |
MITRE |
2009-10-29 +00:00 |
updated Observed_Examples, Relationships |
| CWE Content Team |
MITRE |
2010-02-16 +00:00 |
updated References |
| CWE Content Team |
MITRE |
2011-03-29 +00:00 |
updated Observed_Examples |
| CWE Content Team |
MITRE |
2011-06-01 +00:00 |
updated Common_Consequences |
| CWE Content Team |
MITRE |
2012-05-11 +00:00 |
updated References, Relationships |
| CWE Content Team |
MITRE |
2012-10-30 +00:00 |
updated Potential_Mitigations, References |
| CWE Content Team |
MITRE |
2013-02-21 +00:00 |
updated Description, Potential_Mitigations, References, Relationships, Type |
| CWE Content Team |
MITRE |
2014-02-18 +00:00 |
updated Potential_Mitigations, References |
| CWE Content Team |
MITRE |
2014-07-30 +00:00 |
updated Relationships |
| CWE Content Team |
MITRE |
2017-01-19 +00:00 |
updated Relationships |
| CWE Content Team |
MITRE |
2017-11-08 +00:00 |
updated Modes_of_Introduction, References, Relationships |
| CWE Content Team |
MITRE |
2018-03-27 +00:00 |
updated References |
| CWE Content Team |
MITRE |
2019-06-20 +00:00 |
updated Type |
| CWE Content Team |
MITRE |
2020-02-24 +00:00 |
updated Relationships |
| CWE Content Team |
MITRE |
2021-07-20 +00:00 |
updated Maintenance_Notes |
| CWE Content Team |
MITRE |
2021-10-28 +00:00 |
updated Relationships |
| CWE Content Team |
MITRE |
2023-01-31 +00:00 |
updated Description |
| CWE Content Team |
MITRE |
2023-04-27 +00:00 |
updated Detection_Factors, References, Relationships |
| CWE Content Team |
MITRE |
2023-06-29 +00:00 |
updated Mapping_Notes |
| CWE Content Team |
MITRE |
2025-09-09 +00:00 |
updated References |
| CWE Content Team |
MITRE |
2025-12-11 +00:00 |
updated Applicable_Platforms, Relationships, Weakness_Ordinalities |