FICHE CVE

CVE-2024-36400

Publiée le 2024-06-04 · Dernière modification le 2026-06-17

🇫🇷 EN BREF

Les applications utilisant la crate Rust `nano-id` pour la génération d'identifiants sont concernées si elles utilisent les jeux de caractères `base62`, `base58` ou des jeux de caractères personnalisés dont la taille n'est pas une puissance de deux. Un attaquant peut prédire ou trouver ces identifiants par force brute pour détourner des sessions ou accéder à des données privées si ces identifiants sont utilisés pour des jetons liés à la sécurité. Cette action peut être réalisée à distance via un réseau, sans authentification ni interaction de l'utilisateur.

CVSS 3.19.4 CRITIQUE
Type de faiblesse
Publiée2024-06-04
Dernière modification2026-06-17

DÉTAIL DU VECTEUR CVSS

Vecteur d'attaqueRéseau
Complexité d'attaqueFaible
Privilèges requisAucun
Interaction utilisateurAucune
PortéeInchangée
Impact sur la confidentialitéÉlevé
Impact sur l'intégritéÉlevé
Impact sur la disponibilitéFaible

RÉFÉRENCES

Description officielle du NVD (en anglais)

nano-id is a unique string ID generator for Rust. Affected versions of the nano-id crate incorrectly generated IDs using a reduced character set in the `nano_id::base62` and `nano_id::base58` functions. Specifically, the `base62` function used a character set of 32 symbols instead of the intended 62 symbols, and the `base58` function used a character set of 16 symbols instead of the intended 58 symbols. Additionally, the `nano_id::gen` macro is also affected when a custom character set that is not a power of 2 in size is specified. It should be noted that `nano_id::base64` is not affected by this vulnerability. This can result in a significant reduction in entropy, making the generated IDs predictable and vulnerable to brute-force attacks when the IDs are used in security-sensitive contexts such as session tokens or unique identifiers. The vulnerability is fixed in 0.4.0.