Uptime Kuma 2.5.0、新しいnpmパッケージを信頼する前に2週間待機

Uptime Kumaは、ウェブサイトやDockerコンテナ、DNSレコード、Steamのゲームサーバーが応答しているかどうかを確認し、応答が止まるとTelegramやSlack、メールにメッセージを送信するツールです。

このセルフホスト型監視ツールはMITライセンスで提供されており、コンテナまたはNode.js上で動作し、GitHubでは89,800個のスターと8,200件のフォークを獲得しています。バージョン2.5.0における最も影響範囲の広い変更点は、サプライチェーン攻撃を最小限に抑えるため、npmアップデートに14日間のクールダウンを設定するようになったことです。

Image

このクールダウンは、乗っ取られたパッケージが被害をもたらす期間を狙ったものです。攻撃者が依存パッケージの悪意あるバージョンを公開した場合、汚染されたリリースは発見から数日以内に取り下げられるのが通常であるため、最も大きな被害を受けるのは、公開された瞬間に最新バージョンを取り込んでしまうプロジェクトです。

Uptime Kumaはネットワーク内部に配置され、接続可能な90以上の通知サービスの認証情報を保持しているため、その依存関係のツリーは攻撃対象として狙う価値があります。2週間待機することで、Uptime Kumaのビルドは取り下げられるパッケージの大半を回避できるようになります。

新しい監視タイプ

Uptime Kumaには新たにNTPモニターが追加され、ネットワークタイムサーバーを直接監視できるようになりました。NTPは複数のマシンが時刻を一致させる仕組みであり、時刻ソースがずれたり停止したりすると、証明書のチェックが失敗し始め、ホスト間でログのタイムスタンプが一致しなくなります。このリリース以前は、時刻サービスを稼働させているマシン自体は監視できても、サービスそのものを監視することはできませんでした。

2つ目の変更点は、これまで約24日が上限だったチェック間隔の上限を引き上げたことです。証明書やドメインの有効期限など、四半期に一度確認すれば十分な対象を追跡しているユーザーは、これまでのようにより短い間隔で代用する必要がなくなりました。また、コンテナ内で監視プロセスをrootとして実行したくないユーザー向けに、next-rootless Dockerタグも追加されています。

知っておくべき修正点

バッジジェネレーターはスラッシュが重複することで壊れたURLを生成しており、READMEやダッシュボードに埋め込まれたステータスバッジが表示されない不具合が発生していました。MQTTモニターはmqtts://アドレスに対応するようになったため、TLSで保護されたブローカーでも回避策なしで利用できます。Steamのゲームサーバーモニターは、IPアドレスの指定を必須とせず、ホスト名を解決できるようになりました。DNSモニターはサービスURLにリゾルバーのポート番号を付加しないよう修正され、Discord通知のタイムスタンプは正しいタイムゾーンで表示されるようになりました。

あるデータベースの修正は目立たないものですが、二度読む価値があります。stat_dailyテーブルのupおよびdown列が、SMALLINTから符号なし整数型へと拡張されました。符号付きSMALLINTは32,767が上限であり、短い間隔で多数のホストをチェックする監視構成では、日次カウンターがこの上限を超えてしまう可能性がありました。稼働率の履歴に欠損や不自然な値がアクセス過多の日に見られる場合、これが原因の一つとして考えられます。

翻訳元: https://www.helpnetsecurity.com/2026/08/04/uptime-kuma-2-5-0-cooldown-npm-updates/

本記事は helpnetsecurity.com の記事を翻訳・要約したものです。