PUBLISHED
2026-03-24 01:17
MODIFIED
2026-03-24 01:17
EPSS (Prob. Exploit)
0.24%
Top 85.2%
> DESCRIPTION
bcrypt-ruby is a Ruby binding for the OpenBSD bcrypt() password hashing algorithm. Prior to version 3.1.22, an integer overflow in the Java BCrypt implementation for JRuby can cause zero iterations in the strengthening loop. Impacted applications must be setting the cost to 31 to see this happen. The JRuby implementation of bcrypt-ruby (`BCrypt.java`) computes the key-strengthening round count as a signed 32-bit integer. When `cost=31` (the maximum allowed by the gem), signed integer overflow causes the round count to become negative, and the strengthening loop executes **zero iterations**. This collapses bcrypt from 2^31 rounds of exponential key-strengthening to effectively constant-time computation — only the initial EksBlowfish key setup and final 64x encryption phase remain. The resulting hash looks valid (`$2a$31$...`) and verifies correctly via `checkpw`, making the weakness invisible to the application. This issue is triggered only when cost=31 is used or when verifying a `$2a$31$` hash. This problem has been fixed in version 3.1.22. As a workaround, set the cost to something less than 31.
> AFFECTED_PRODUCTS
ℹ️ Aucun produit affecté n'a encore été publié par NVD pour cette CVE.
> CVSS V3 METRICS
CVSS_VECTOR
CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
> MÉTRIQUES CVSS DÉTAILLÉES
CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
| Métrique |
Valeur |
Interprétation |
|
AV (Vecteur d'Attaque)
Attack Vector
|
Local (L)
|
Exploit nécessite un accès local au système
|
|
AC (Complexité d'Attaque)
Attack Complexity
|
High (H)
|
Conditions spécifiques doivent être réunies pour exploiter
|
|
PR (Privilèges Requis)
Privileges Required
|
None (N)
|
Aucune authentification requise
|
|
UI (Interaction Utilisateur)
User Interaction
|
None (N)
|
Aucune interaction utilisateur nécessaire
|
|
S (Périmètre)
Scope
|
Unchanged (U)
|
Impact reste dans le périmètre du composant compromis
|
|
C (Impact Confidentialité)
Confidentiality Impact
|
High (H)
|
Divulgation totale d'informations
|
|
I (Impact Intégrité)
Integrity Impact
|
High (H)
|
Modification totale des données possible
|
|
A (Impact Disponibilité)
Availability Impact
|
None (N)
|
Aucune interruption de service
|
> RÉSUMÉ DES IMPACTS
Confidentialité
High
Divulgation totale d'informations
Intégrité
High
Modification totale des données possible
Disponibilité
None
Aucune interruption de service
> CWE DETAILED DESCRIPTIONS
CWE-190: Integer Overflow or Wraparound - The product performs a calculation that can
produce an integer overflow or wraparound when the logic
assumes that the resulting value will always be larger than
the original value. This occurs when an integer value is
incremented to a value that is too large to store in the
associated representation. When this occurs, the value may
become a very small or negative number.
> RED HAT SEVERITY ASSESSMENT
> GITHUB SECURITY ADVISORY
GHSA-f27w-vcwj-c954
MODERATE
bcrypt-ruby has an Integer Overflow that Causes Zero Key-Strengthening Iterations at Cost=31 on JRuby
AFFECTED PACKAGES:
RUBYGEMS / bcrypt
<= 3.1.21
Fixed in: 3.1.22
> OSV (GOOGLE OPEN SOURCE VULNERABILITIES)
bcrypt-ruby has an Integer Overflow that Causes Zero Key-Strengthening Iterations at Cost=31 on JRuby
AFFECTED PACKAGES:
Unknown / Unknown
26 versions affected
ALIASES:
GHSA-f27w-vcwj-c954
> HISTORIQUE DES MODIFICATIONS
Première apparition
24/03/2026 01:17
Source: NVD
📊
ENRICHISSEMENT
01/04/2026 06:02
CWE
Champ modifié: Description CWE
Nouvelle valeur:
CWE-190: Integer Overflow or Wraparound - The product performs a calculation that can
produce an integer overflow or wraparound when the logic
assumes that the resulting value will a...
📊
ENRICHISSEMENT
29/03/2026 05:02
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 23:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 22:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 21:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 20:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 19:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 18:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 17:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 16:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 15:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 14:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 13:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 12:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 11:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 10:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 09:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 08:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 07:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 06:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 05:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 04:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 03:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 02:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 01:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
25/03/2026 00:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
24/03/2026 23:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
24/03/2026 22:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
24/03/2026 21:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
24/03/2026 20:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
24/03/2026 19:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
24/03/2026 18:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
24/03/2026 17:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
24/03/2026 16:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
24/03/2026 15:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
24/03/2026 14:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
24/03/2026 13:30
REDHAT
Champ modifié: Sévérité Red Hat
Ancienne valeur:
{
"severity_scale": null,
"threat_severity": "Moderate"
}
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
24/03/2026 12:30
REDHAT
Champ modifié: Sévérité Red Hat
Nouvelle valeur:
{
"threat_severity": "Moderate",
"severity_scale": null
}
📊
ENRICHISSEMENT
24/03/2026 12:30
REDHAT
Total des modifications: 39
Dernière mise à jour: 7 months ago