Skip to content
このページは AI で翻訳されており、不正確な表現が含まれる場合があります。GitHub で改善にご協力ください。

Gately v0.6.1 リリース ​

2026年10月30日

このバージョンにはセキュリティ修正が含まれています。Docker 管理を有効にし、読み取り専用アカウントや読み取り専用 API トークンを使っている方は早めにアップグレードしてください。あわせて #35、#37、#38、#40 に対応し、セキュリティポリシーを追加しました。

v0.6.1 をダウンロード · GitHub Release · セキュリティアドバイザリ GHSA-m6h7-mm5r-r53q

セキュリティ修正:Docker の読み取り権限でコンテナーの機密情報が漏れる問題 ​

v0.6.0.4 以前では、読み取り専用アカウントと docker:read 権限だけを持つ API トークンが、GET /api/docker/containers/{id} からコンテナーの環境変数、Command、Entrypoint、起動引数を平文で読めました。プロセス一覧にも完全なコマンドラインが表示されるため、データベースのパスワードや API キーが読み取り専用の主体から取得できる状態でした。責任ある形で報告してくださった Yousef Alturki さん(@YousefAlturki)に感謝します。

修正後:

  • Docker の書き込み権限を持たない主体がコンテナーを表示すると、環境変数は名前だけが表示され、値、Command、Entrypoint、起動引数、プロセス一覧のコマンド引数は ******** になります。イメージ詳細の環境変数、Cmd、Entrypoint、ビルド履歴のコマンドも同様に隠されます。
  • 平文は docker:write が必要な GET /api/docker/containers/{id}/secrets から取得します。管理者が編集フォームを開くと自動で読み込まれ、プレースホルダーのまま送信した項目は元の値を引き継ぎます。
  • リクエスト中のコンテナー名や ID の前方一致は、まず完全な ID に解決されます。これにより Gately 自身が動いているコンテナーの保護をコンテナー名で回避できなくなりました。編集とアップグレードによる再作成では常に完全な ID で旧コンテナーを扱い、名前で呼び出したときにクリーンアップ段階で新しいコンテナーを削除してしまい、失敗後にロールバックできなかった問題を修正しました。再作成中のコンテナーへの開始・停止・削除は 409 を返します。

アップグレード後、読み取り専用 API トークンを信頼できない相手に渡したことがないか確認し、必要に応じてコンテナー内の秘密情報を入れ替えてください。脆弱性の報告方法は SECURITY.md にあり、GitHub の非公開脆弱性報告またはメールで送れます。

証明書発行のネットワーク ​

証明書に「ネットワーク」オプションを追加しました(#35)。「IPv4 のみ」または「IPv6 のみ」を選ぶと、CA への接続、DNS プロバイダー API の呼び出し、TXT レコード反映の確認がすべてそのアドレスファミリーだけを使います。ホストに IPv6 アドレスがあるのに IPv6 が実際には通じない場合、これまでは反映確認で権威 DNS サーバーへの問い合わせがタイムアウトして発行に失敗していましたが、「IPv4 のみ」を選べば解決します。HTTPS_PROXY などのプロキシを経由する場合、プロキシへの接続自体はこのオプションの制限を受けません。詳しくは SSL 証明書 · 発行ネットワークを参照してください。

Gately 自身のコンテナーの保護 ​

Docker ページのアップグレード、一括アップグレード、編集による再作成、および Gately が属する Compose プロジェクトでの up やプロジェクト削除は、いずれも先に旧コンテナーを停止します。そのとき Gately のプロセスも終了するため再作成が完了せず、コンテナーが停止したままになっていました(#38)。現在はこれらの操作を自身に対しては拒否し、ボタンをグレーアウトしてホスト側で更新するよう案内します。一括アップグレードは自身をスキップします。Gately が属する Compose プロジェクトを再起動する場合、自身は最後に再起動します。

通知とログが画面の言語に従う ​

サーバーの言語が「システムに従う」のとき、GATELY_LANG、LANG で指定された言語を順に使います。Docker、fnOS、OpenWrt では通常どちらも設定されていないため、通知が英語になっていました(#40)。現在は管理者が最後にログインしたとき、またはトップバーで切り替えたときの画面の言語に従います。読み取り専用アカウントのログインでは変わりません。通知の「ソース」がプログラムの生成した名前の場合は翻訳され、ユーザーが入力したタスク名はそのまま残ります。[warn] [auth] のような接頭辞付きの英語ログに中国語が混ざることもなくなりました。

デフォルトサイトを設定 ​

Web サービスのリスナーにデフォルトサイトがまだ設定されていない場合、カードに「デフォルトサイトを設定」ボタンが表示されます(#37)。どのドメインにも一致しないリクエストの受け皿をその場で設定できます。

アップグレードの注意 ​

  • Docker は新しいイメージを pull してコンテナーを作り直してください。OpenWrt は新しい .apk / .ipk を上書きインストールし、LuCI ページが必要な場合は同じバージョンの luci-app-gately も導入してください。fnOS はアプリセンターで新しい .fpk を手動でインストールしてください。その他の環境は「システム設定」からオンラインでアップグレードできます。

Apache-2.0 ライセンスで公開されています。