Kimai Docker Vulnerability Exposes Default APP_SECRET, Enabling Account Takeover
2026/07/20 gbhackers — Kimai Docker に、脆弱性 CVE-2026-52824 (GHSA-jr9p-4h4j-6c58) が発見された。公式 Docker イメージを実行している Kimai ユーザーに強く推奨されるのは、インストール環境の速やかな更新である。この脆弱性は、公開されているアプリケーション・シークレットを介して、既存のインストール環境をアカウント乗っ取りのリスクにさらすものである。Kimai バージョン 2.57.0 以下に影響を及ぼすが、すでにバージョン 2.58.0 で修正されている。

Kimai Docker の脆弱性
セキュリティ研究者 AzureADTrent により報告され、6月11日に Kimai のメンテナーである Kevin Papst によりアップデートが公開された。この問題は、公式コンテナ・イメージにおける、安全ではないデフォルト設定に起因している。
デフォルト環境変数として定義されている APP_SECRET=change_this_to_something_unique という値は、デプロイ時に置き換えられることを意図したものである。この値は、Symfony におけるアプリケーションの kernel.secret として機能し、HMAC で保護されたセキュリティ関連データの生成/検証で使用される暗号鍵である。
しかし、Kimai の Docker エントリポイントは、この安全ではないデフォルト値に対して検証や置換を行わず、この値がデフォルト状態での起動を拒否する処理も実装していないため、潜在的な脆弱性につながっていた。
その結果として、インターネットからアクセスが可能であり、デフォルトの Docker コンフィグで起動された Kimai デプロイメントでは、予測可能な暗号学的シークレットが漏洩する可能性がある。
この既知の値を悪用する未認証の攻撃者は、セキュリティ上重要なデータを偽造し、super_admin アカウントなどの他のユーザーとして認証される可能性を得る。この脆弱性を悪用する攻撃者は、前提として標的ユーザー名を知っている必要がある。さらに、アカウント ID を特定または推測した上で、2 要素認証が有効化されていないアカウントを標的にする必要がある。
Symfony は、影響を受けるシークレットに依存して、KIMAI_REMEMBER のログイン状態保持用 Cookie/LoginLink の署名/パスワードリセット URL/CSRF トークンなどの、複数の高機密性コンポーネントに署名している。
Kimai のユーザー ID は、11 から始まる連番の整数であるため、最初の管理者アカウントには ID 11 が割り当てられることが多く、さらに URL や API レスポンスに露出する可能性があることから、攻撃者は特権アカウントを標的にしやすくなる。
この問題は Critical に分類され、安全でないデフォルト値によるリソースの初期化 (CWE-1188) と評価されている。この脆弱性は、コンテナ・セキュリティにおける一般的な問題を示している。それが浮き彫りにするのは、本番環境向けイメージに予測可能なシークレットを残した状態で、シークレット・ローテーションや起動時の安全な初期化を徹底できていないという継続的な問題である。
これに対応して、Kimai バージョン 2.58.0 では Docker 初期化プロセスが変更され、環境変数により APP_SECRET が指定されていない場合には、bin2hex(random_bytes(32)) を用いて、ランダムな APP_SECRET を自動生成するようになった。
こうして生成されたシークレットは、”/opt/kimai/var/data/.appsecret” に保存される。それと同時に、エントリポイントは “/opt/kimai/.env.local” を作成し、管理者が指定した値または新たに生成されたシークレットのいずれかを格納する。
また、同プロジェクトでは、Dockerfile から安全ではない APP_SECRET 値を削除し、ランダムに生成されたデプロイメント固有のシークレットが必要であることを強調するようドキュメントを更新し、関連アドバイザリ (GHSA-m492-gv72-xvxj) では LoginLink 値のエントロピーを向上させている。
この変更により、古いデプロイメントがハードコードされたデフォルト・シークレットが放置されている状態であっても、攻撃者による LoginLink の生成は防止されるが、この変更をパッチ適用の代替として扱うべきではない。
それぞれの組織にとって必要なことは、Kimai Docker デプロイメントを直ちにバージョン 2.58.0 以降へアップグレードし、強力で一意の APP_SECRET を明示的に設定することである。さらに、侵害された可能性があるインスタンスでは、シークレットをローテーションする必要がある。
また、管理者に求められるのは、可能な限りアクティブ・セッションを無効化することである。さらに、管理者アカウントと認証アクティビティを確認し、2 要素認証を有効化するとともに、インターネット公開を必要としない Kimai インスタンスへのパブリック・アクセスを制限する必要がある。
今回の問題は、公式 Docker イメージの初期設定に含まれていた、暗号鍵 APP_SECRET のデフォルト値が使用できてしまう仕組みに起因します。この鍵は、セキュリティ・データの検証に使われる大切なものですが、起動時に変更を強制する検証などがなかったことで、推測可能な鍵が運用されるリスクが生じていました。それにより、アカウント乗っ取りの脆弱性 CVE-2026-52824 (GHSA-jr9p-4h4j-6c58) が発生しています。ご利用のチームは、ご注意ください。よろしければ、Docker での検索結果も、ご参照ください。
You must be logged in to post a comment.