BlinkGTK v1.2.0-build8 — セキュリティ点検の結果を反映
自主的なセキュリティ点検を行い、見つかった点を直しました。
更新をおすすめします
とくに、遠隔のページや利用者が持ち込んだ文書を開く用途では、この版への更新をおすすめします。
動きに気付く可能性がある変更
サイトごとのプロセス分離を既定で有効にしました。
分離は、あるサイトのページが乗っ取られたときに別のサイトのデータを読ませないための境界です。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/ をご覧ください。