| タイトル | RubyconcurrencyのConcurrent Rubyにおけるラップアラウンドエラーに関する脆弱性 |
|---|---|
| 概要 | concurrent-rubyはRubyのための最新の並行処理ツールです。バージョン1.3.7より前のConcurrent::ReentrantReadWriteLockには、あるスレッドが読み取りロックを32,768回取得した後に誤って書き込みロックを付与する問題がありました。このロックはスレッドのローカルな読み取りおよび書き込み保持カウントを1つの整数で管理しており、下位15ビットが読み取り保持カウントに、ビット15がWRITE_LOCK_HELDとして使用されています。32,768回の再入読み取り取得後、ローカルの読み取りカウントが書き込みロックのビットに重なり、try_write_lockがスレッドを既に書き込みロックを保持していると誤認します。そのため、グローバルのRUNNING_WRITERビットを設定せずにtrueを返します。これにより、コアとなる排他制御の保証が破られ、呼び出し元は書き込みロックを取得したと認識しますが、他のスレッドは同時に読み取りロックを保持または取得できてしまいます。この脆弱性はバージョン1.3.7で修正されました。 |
| 想定される影響 | ・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う情報について、書き換えは発生しません。 ・当該ソフトウェアは停止しません。 |
| 対策 | ベンダ情報を参照して適切な対策を実施してください。 |
| 公表日 | 2026年6月24日0:00 |
| 登録日 | 2026年6月29日11:23 |
| 最終更新日 | 2026年6月29日11:23 |
| CVSS3.0 : 警告 | |
| スコア | 5.5 |
|---|---|
| ベクター | CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N |
| Rubyconcurrency |
| Concurrent Ruby 1.3.7 未満 |
| No | 変更内容 | 変更日 |
|---|---|---|
| 1 | [2026年06月29日] 掲載 |
2026年6月29日11:23 |
| 概要 | concurrent-ruby is a modern concurrency tools for Ruby. Prior to 1.3.7, Concurrent::ReentrantReadWriteLock can incorrectly grant a write lock after one thread acquires the read lock 32,768 times. The lock stores a thread's local read and write hold counts in one integer. The low 15 bits are used for the read hold count, and bit 15 is used as WRITE_LOCK_HELD. After 32,768 reentrant read acquisitions, the local read count crosses into the write-lock bit. try_write_lock then treats the thread as already holding a write lock and returns true without setting the global RUNNING_WRITER bit. This breaks the core mutual-exclusion guarantee: the caller is told it has a write lock, but other threads can still hold or acquire read locks at the same time. This vulnerability is fixed in 1.3.7. |
|---|---|
| 公表日 | 2026年6月25日2:17 |
| 登録日 | 2026年6月27日4:22 |
| 最終更新日 | 2026年6月27日5:01 |
| 構成1 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:rubyconcurrency:concurrent_ruby:*:*:*:*:*:ruby:*:* | 1.3.7 | ||||