1586
In cryptography, salt refers to some random addition of data to an input before hashing to make
dictionary attacks more difficult.
Common Consequences
Scope Impact Likelihood
Access Control Bypass Protection Mechanism
Gain Privileges or Assume Identity
If an attacker can gain access to the hashes, then the lack
of a salt makes it easier to conduct brute force attacks
using techniques such as rainbow tables.
Detection Methods
Automated Static Analysis - Binary or Bytecode
According to SOAR, the following detection techniques may be useful: Cost effective for partial
coverage: Bytecode Weakness Analysis - including disassembler + source code weakness
analysis Binary Weakness Analysis - including disassembler + source code weakness analysis
Effectiveness = SOAR Partial
Manual Static Analysis - Binary or Bytecode
According to SOAR, the following detection techniques may be useful: Cost effective for partial
coverage: Binary / Bytecode disassembler - then use manual analysis for vulnerabilities &
anomalies
Effectiveness = SOAR Partial
Manual Static Analysis - Source Code
According to SOAR, the following detection techniques may be useful: Highly cost effective:
Focused Manual Spotcheck - Focused manual analysis of source Manual Source Code Review
(not inspections)
Effectiveness = High
Automated Static Analysis - Source Code
According to SOAR, the following detection techniques may be useful: Highly cost effective:
Source code Weakness Analyzer Context-configured Source Code Weakness Analyzer
Effectiveness = High
Automated Static Analysis
According to SOAR, the following detection techniques may be useful: Cost effective for partial
coverage: Configuration Checker
Effectiveness = SOAR Partial
Architecture or Design Review
According to SOAR, the following detection techniques may be useful: Highly cost effective:
Formal Methods / Correct-By-Construction Cost effective for partial coverage: Inspection (IEEE
1028 standard) (can apply to requirements, design, source code, etc.)
Effectiveness = High
Potential Mitigations
Phase: Architecture and Design
Use an adaptive hash function that can be configured to change the amount of computational
effort needed to compute the hash, such as the number of iterations ("stretching") or the amount
of memory required. Some hash functions perform salting automatically. These functions
can significantly increase the overhead for a brute force attack compared to intentionally-fast
functions such as MD5. For example, rainbow table attacks can become infeasible due to the
CWE Version 4.14
CWE-759: Use of a One-Way Hash without a Salt
CWE-759: Use of a One-Way Hash without a Salt