Skip to content

BlinkGTK v1.2.0-build8 — セキュリティ点検の結果を反映

Choose a tag to compare

@daisy19gnu daisy19gnu released this 12 Aug 12:45
· 7 commits to main since this release

自主的なセキュリティ点検を行い、見つかった点を直しました。

更新をおすすめします

とくに、遠隔のページや利用者が持ち込んだ文書を開く用途では、この版への更新をおすすめします。

動きに気付く可能性がある変更

サイトごとのプロセス分離を既定で有効にしました。

分離は、あるサイトのページが乗っ取られたときに別のサイトのデータを読ませないための境界です。build7 まで、描画上の不具合を避ける目的で無条件に無効化されていました。現行の Chromium 151 でその不具合が再現しないことを確かめたうえで、既定に戻しています。

複数のサイトを開くと描画プロセスが増えるため、メモリ使用量が増えることがあります。従来の挙動に戻す場合:

BLINKGTK_DISABLE_SITE_ISOLATION=1

そのほかの修正

  • sandbox の可否判定を、推測から実測に変えました。 判定材料 (/proc/sys/user/max_user_namespaces) が読めない環境 — /proc を持たないコンテナなど — で、名前空間が実際には使えるのに無効化されることがありました。無効になった場合はエラーとして通知します
  • 証明書エラーの可否判断で、型の確認をしていなかった箇所を是正しました
  • パスを設定する API (blink_gtk_set_resources_path() など) が、渡された文字列を複製せずに保持していました。呼び出し後にバッファを解放・再利用すると、誤ったパスを読みます。複製するようにしました
  • 描画エンジンがページ側のオブジェクトを操作する際、失敗すると異常終了する書き方をしていた箇所を是正しました

追加

  • blink_gtk_is_sandboxed() — sandbox の状態を問い合わせる API です。1 なら有効。信頼できない内容を開いてよいかを、アプリ側で判断できます
if (!blink_gtk_is_sandboxed()) {
    /* 信頼できない内容は開かない、警告する、などの判断 */
}
  • 環境変数の一覧を新設しました。保護を弱めるもの / 動作を選ぶもの / 診断用 / デモ専用を区分してあります。「動かすために設定したが、何を失ったか分からない」を避けるためのものです
  • カスタムスキームのハンドラでファイルを開く際の注意 (パスの正規化) を公開ヘッダに明記しました

注記

実行部分の Chromium 版数は 151.0.7922.108 のままです。エンジン本体の更新ではありません。


Chromium: 151.0.7922.108 / GTK: 4.6.0 以上 / Wayland 専用

インストール手順は同梱の INSTALL、または https://blinkgtk.org/ をご覧ください。