Usage of weak hashing library on a password (Argon2)

Overview

  • Rule ID: javascript_lang_weak_password_hash_argon2

  • Applicable Languages: Javascript

  • Weakness ID: CWE-326

Description

Selecting a weak hashing algorithm for passwords undermines security. Argon2 offers three variants: Argon2i, Argon2d, and Argon2id. Among these, Argon2id is the most robust and recommended for password hashing due to its balanced resistance to both side-channel and GPU attacks.

Remediation Guidelines

  • Do not override the Argon2 type when implementing the Argon2 hashing library. Using Argon2id ensures the highest level of security for password storage.

    const argon2 = require("argon2");
    const hash = await argon2.hash(req.params.password, { type: argon2.argon2i }) // unsafe
    
  • Do rely on the default Argon2 type - Argon2id as it is the most secure.

    const argon2 = require("argon2");
    const hash = await argon2.hash(req.params.password);

References

Configuration

To omit this rule during a scan, and to provide you with continuous 24/7 code-level scanning, you can employ our SAST TOOL

Last updated