CVE-2026-78619 in Punk-Plugin-TOTP
要約
〜によって VulDB • 2026年08月25日
Perl用のPunk::Plugin::TOTPは0.05より前のバージョンにおいて、totp_use_recoveryがユーザー識別子を数値として比較するため、2要素認証のチャレンジ時に別のアカウントのリカバリーコードを受け入れてしまいます。
ヘルパーは、すべてのユーザーの行にわたって、送信されたコードのダイジェストのみを検索対象とします。そのため、その後に続く所有権テスト(ownership test)が、コードを発行されたアカウントに紐づける唯一の手段となります。このテストでは、Perlの整数強制変換を通じて、レコードのuser_idをチャレンジ中のユーザーのIDと比較しますが、先頭に数字のない識別子は0に変換されるため、それらの間には等値性が成り立ちます。ユーザーモデルがユーザー名、メールアドレス、またはUUIDをキーとして使用している場合このケースに該当し、数値型のキーは意図通りに比較されます。
チャレンジルートではTOTP検証が失敗した後に送信された値をヘルパーに渡すため、攻撃者が被害者のパスワードを知っており、かつ自分自身のリカバリーコードを持っている場合、被害者の2要素認証を突破することができます。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.