Debian Package Tracker
Register | Log in
Subscribe

ruby-bcrypt

Ruby binding for the bcrypt() password hashing algorithm

Choose email to subscribe with

general
  • source: ruby-bcrypt (main)
  • version: 3.1.22-1
  • maintainer: Debian Ruby Team (archive) (DMD)
  • uploaders: Cédric Boutillier [DMD]
  • arch: any
  • std-ver: 4.7.3
  • VCS: Git (Browse, QA)
versions [more versions can be listed by madison] [old versions available from snapshot.debian.org]
[pool directory]
  • o-o-stable: 3.1.16-1
  • oldstable: 3.1.18-1
  • stable: 3.1.20-1
  • testing: 3.1.21-1
  • unstable: 3.1.22-1
versioned links
  • 3.1.16-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 3.1.18-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 3.1.20-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 3.1.21-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 3.1.22-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
binaries
  • ruby-bcrypt
action needed
1 security issue in trixie high

There is 1 open security issue in trixie.

1 important issue:
  • CVE-2026-33306: 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.
Created: 2026-03-22 Last update: 2026-03-24 05:01
1 security issue in forky high

There is 1 open security issue in forky.

1 important issue:
  • CVE-2026-33306: 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.
Created: 2026-03-22 Last update: 2026-03-24 05:01
1 security issue in bullseye high

There is 1 open security issue in bullseye.

1 important issue:
  • CVE-2026-33306: 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.
Created: 2026-03-22 Last update: 2026-03-24 05:01
1 security issue in bookworm high

There is 1 open security issue in bookworm.

1 important issue:
  • CVE-2026-33306: 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.
Created: 2026-03-22 Last update: 2026-03-24 05:01
Failed to analyze the VCS repository. Please troubleshoot and fix the issue. high
vcswatch reports that there is an error with this package's VCS, or the debian/changelog file inside it. Please check the error shown below and try to fix it. You might have to update the VCS URL in the debian/control file to point to the correct repository.

fatal: unable to access 'https://salsa.debian.org/ruby-team/ruby-bcrypt.git/': The requested URL returned error: 503
Created: 2026-03-22 Last update: 2026-03-22 21:33
testing migrations
  • This package is part of the ongoing testing transition known as auto-upperlimit-ruby-bcrypt. Please avoid uploads unrelated to this transition, they would likely delay it and require supplementary work from the release managers. On the other hand, if your package has problems preventing it to migrate to testing, please fix them as soon as possible. You can probably find supplementary information in the debian-release archives or in the corresponding release.debian.org bug.
  • excuses:
    • Migration status for ruby-bcrypt (3.1.21-1 to 3.1.22-1): BLOCKED: Rejected/violates migration policy/introduces a regression
    • Issues preventing migration:
    • ∙ ∙ migrating ruby-bcrypt/3.1.22-1/amd64 to testing makes trocla-puppetserver/0.6.0-1+b2/amd64 uninstallable
    • ∙ ∙ migrating ruby-bcrypt/3.1.22-1/arm64 to testing makes trocla-puppetserver/0.6.0-1+b2/arm64 uninstallable
    • ∙ ∙ migrating ruby-bcrypt/3.1.22-1/armhf to testing makes trocla-puppetserver/0.6.0-1+b2/armhf uninstallable
    • ∙ ∙ migrating ruby-bcrypt/3.1.22-1/i386 to testing makes trocla-puppetserver/0.6.0-1+b2/i386 uninstallable
    • ∙ ∙ migrating ruby-bcrypt/3.1.22-1/ppc64el to testing makes trocla-puppetserver/0.6.0-1+b2/ppc64el uninstallable
    • ∙ ∙ migrating ruby-bcrypt/3.1.22-1/riscv64 to testing makes trocla-puppetserver/0.6.0-1+b2/riscv64 uninstallable
    • ∙ ∙ migrating ruby-bcrypt/3.1.22-1/s390x to testing makes trocla-puppetserver/0.6.0-1+b2/s390x uninstallable
    • ∙ ∙ Autopkgtest for ruby-bcrypt/3.1.22-1: amd64: Pass, arm64: Pass, i386: Pass, ppc64el: Pass, riscv64: Pass, s390x: Pass
    • ∙ ∙ Autopkgtest for trocla: amd64: Test deferred, arm64: Test deferred, i386: Test deferred, ppc64el: Test deferred, riscv64: Test deferred, s390x: Test deferred
    • ∙ ∙ Too young, only 2 of 5 days old
    • Additional info (not blocking):
    • ∙ ∙ Piuparts tested OK - https://piuparts.debian.org/sid/source/r/ruby-bcrypt.html
    • ∙ ∙ Reproduced on amd64
    • ∙ ∙ Reproduced on arm64
    • ∙ ∙ Reproduced on armhf
    • ∙ ∙ Reproduced on i386
    • ∙ ∙ Reproducibility check waiting for results on ppc64el
    • Not considered
news
[rss feed]
  • [2026-03-22] Accepted ruby-bcrypt 3.1.22-1 (source) into unstable (Simon Quigley)
  • [2026-03-15] ruby-bcrypt 3.1.21-1 MIGRATED to testing (Debian testing watch)
  • [2026-02-10] Accepted ruby-bcrypt 3.1.21-1 (source) into unstable (Simon Quigley)
  • [2024-11-23] ruby-bcrypt 3.1.20-1 MIGRATED to testing (Debian testing watch)
  • [2024-11-20] Accepted ruby-bcrypt 3.1.20-1 (source) into unstable (Jérôme Charaoui)
  • [2023-02-09] ruby-bcrypt 3.1.18-1 MIGRATED to testing (Debian testing watch)
  • [2023-02-05] Accepted ruby-bcrypt 3.1.18-1 (source) into unstable (Cédric Boutillier)
  • [2022-05-07] ruby-bcrypt 3.1.17-1 MIGRATED to testing (Debian testing watch)
  • [2022-05-05] Accepted ruby-bcrypt 3.1.17-1 (source) into unstable (Cédric Boutillier)
  • [2020-12-30] ruby-bcrypt 3.1.16-1 MIGRATED to testing (Debian testing watch)
  • [2020-12-27] Accepted ruby-bcrypt 3.1.16-1 (source) into unstable (Cédric Boutillier)
  • [2020-09-02] ruby-bcrypt 3.1.15-2 MIGRATED to testing (Debian testing watch)
  • [2020-08-28] Accepted ruby-bcrypt 3.1.15-2 (source) into unstable (Cédric Boutillier)
  • [2020-07-31] Accepted ruby-bcrypt 3.1.15-1 (source) into unstable (Cédric Boutillier)
  • [2020-02-21] ruby-bcrypt 3.1.13-2 MIGRATED to testing (Debian testing watch)
  • [2020-02-19] Accepted ruby-bcrypt 3.1.13-2 (source) into unstable (Lucas Kanashiro)
  • [2020-01-28] Accepted ruby-bcrypt 3.1.13-1 (source) into unstable (Cédric Boutillier)
  • [2018-10-02] ruby-bcrypt 3.1.12-1 MIGRATED to testing (Debian testing watch)
  • [2018-09-30] Accepted ruby-bcrypt 3.1.12-1 (source) into unstable (Cédric Boutillier)
  • [2016-05-11] ruby-bcrypt 3.1.11-1 MIGRATED to testing (Debian testing watch)
  • [2016-05-05] Accepted ruby-bcrypt 3.1.11-1 (source) into unstable (Christian Hofstaedtler)
  • [2015-06-27] ruby-bcrypt 3.1.10-1 MIGRATED to testing (Britney)
  • [2015-06-21] Accepted ruby-bcrypt 3.1.10-1 (source amd64) into unstable (Cédric Boutillier)
  • [2015-05-02] Accepted ruby-bcrypt 3.1.10-1~exp1 (source amd64) into experimental (Cédric Boutillier)
  • [2014-04-10] ruby-bcrypt 3.1.7-2 MIGRATED to testing (Debian testing watch)
  • [2014-04-04] Accepted ruby-bcrypt 3.1.7-2 (source amd64) (Pirate Praveen) (signed by: Praveen Arimbrathodiyil)
  • [2014-03-10] ruby-bcrypt 3.1.7-1 MIGRATED to testing (Debian testing watch)
  • [2014-03-04] Accepted ruby-bcrypt 3.1.7-1 (source amd64) (Cédric Boutillier)
  • [2013-12-19] ruby-bcrypt 3.1.2-2 MIGRATED to testing (Debian testing watch)
  • [2013-12-09] ruby-bcrypt 3.1.2-1 MIGRATED to testing (Debian testing watch)
  • 1
  • 2
bugs [bug history graph]
  • all: 0
links
  • homepage
  • lintian
  • buildd: logs, reproducibility, cross
  • popcon
  • browse source code
  • edit tags
  • other distros
  • security tracker
  • debian patches
  • debci
ubuntu Ubuntu logo [Information about Ubuntu for Debian Developers]
  • version: 3.1.20-1

Debian Package Tracker — Copyright 2013-2025 The Distro Tracker Developers
Report problems to the tracker.debian.org pseudo-package in the Debian BTS.
Documentation — Bugs — Git Repository — Contributing