コンテンツへ移動
ittechwire

出典が明確なテクノロジーニュース

  1. ホーム
  2. セキュリティ

セキュリティ

OpenBSD 7.9のerrataが、Califがローカルroot権限奪取エクスプロイトに連鎖させたカーネルの不具合を修正

セキュリティ企業Califによると、オリジナルのBSDコードにまで約37年さかのぼる共有メモリの欠陥が、ローカルでroot権限を得る攻撃チェーンの一方を成していた。CalifはOpenBSDがerrata 018と026として修正を公開したとしている。

ittechwire 編集部5分で読めます出典: 2AI翻訳 · 原文: English
オペレーティングシステムの旧リリースであるOpenBSD 5.3のテキストコンソールにrootログインが表示されたモニターと、その横にある2台目の画面。
NAVY Stealth Reverser · CC0

ポイント

  1. 1Califは、2つのカーネルの不具合を組み合わせたOpenBSDのローカルroot権限奪取エクスプロイトに関する研究を公開した。修正はOpenBSD 7.9のerrataに掲載されている。
  2. 2Califによると、欠陥の1つは符号付き16-bitの共有メモリのアタッチ数カウンタに関わるもので、オリジナルのBSDソースにまで約37年さかのぼる。
  3. 32026年9月14日付のOpenBSD errata 018は、shmatにおける整数オーバーフローに対する信頼性向上の修正とされている。
  4. 42026年9月30日付のerrata 026は、use-after-freeを引き起こす可能性のあるカーネルの参照カウントの不具合に対するセキュリティ修正とされている。
  5. 5このエクスプロイトにはローカルアクセスが必要。Califはまた、安全なリストのアンリンク、アロケータのランダム化、コンパイラベースの緩和策など、より広範なカーネルの堅牢化も提案した。

記事全文

セキュリティ企業Califは、OpenBSDで2つのカーネルの欠陥を組み合わせてroot権限を取得した手法を説明する研究を公開した。これらの欠陥はその後、プロジェクトによって修正されている。Andrew Griffithsによる10月16日付の解説記事で、同社は不具合の1つがオリジナルのBSDソースにまで約37年さかのぼるとしている。Califによると、同社は今年初めにこれらの脆弱性をOpenBSDに報告しており、その多くには修正パッチの提案も添えていたという。

Califによると、古い方の欠陥は共有メモリのアタッチ数を管理するカウンタに関するもので、このカウンタは符号付き16-bit値として定義されており、オーバーフローする可能性がある。同社によれば、このオーバーフローは競合状態を通じてuse-after-freeにつながる可能性があり、カーネル内の別の境界外書き込みと組み合わせることで、ローカルユーザーがroot権限へ昇格できたという。Califは、この攻撃がOpenBSDのKARLによるカーネル再リンクと、SMAPおよびSMEPのプロセッサ保護機能が有効な状態でも成功し、情報漏えいの不具合を必要としなかったとしている。解説記事にはコードと概念実証(PoC)へのリンクも掲載されている。

Califによると、これらの問題はOpenBSDのerrata 018と026で対処された。OpenBSD 7.9のerrataページでは、018は2026年9月14日付で、shmatにおける整数オーバーフローを防ぐ信頼性向上の修正として記載されている。2026年9月30日付のerrata 026は、カーネル内でuse-after-freeの状態を引き起こす可能性のある参照カウントの不具合に対するセキュリティ修正として記載されている。いずれの項目もすべてのアーキテクチャに適用される。Califは両errataを自社の攻撃チェーンに含まれる問題の修正として挙げており、つまり2つの修正のうち1つにはセキュリティではなく信頼性のラベルが付けられていることになる。

errataページには、パッチは署名付きのunified diff形式で配布され、syspatchユーティリティによりamd64、i386、arm64でバイナリアップデートをインストールできると記載されている。サポート対象リリース向けの修正は-stableブランチにも取り込まれ、プロジェクトはこのブランチをリリース後1年間保守している。Califはこのエクスプロイトをローカル権限昇格と説明しており、攻撃者はまずシステムへのアクセスを得る必要がある。

Califはerrata以外にも、同様の攻撃経路をより困難にすることを目的とした複数の堅牢化案を示した。その中には、双方向連結リストから要素を削除する前の整合性チェックが含まれ、同社はFreeBSDとNetBSDがすでにこれを実装していると指摘した。また、カーネルメモリのランダム化の強化も挙げており、CalifによればKARLがカーネルバイナリの配置をランダム化しているにもかかわらず、OpenBSDのカーネルアロケータは依然として決定論的だという。同社はさらに、配列境界サニタイザや今後導入予定のAlloc Tokensといったコンパイラ機能にも言及した。Califは、FreeBSDにこのサニタイザを提案し、それによって検出できたはずの21件の問題を同プロジェクトに非公開で報告したと述べ、AIが脆弱性の発見を支援するようになるにつれ、不具合のクラス全体を緩和することの重要性が増していると主張した。

なぜ重要か

セキュリティのラベルが付いたerrataのみを適用している管理者は、OpenBSDが信頼性向上の修正として記載している018を適用していない可能性がある。しかしCalifは、018を自社のroot権限奪取の攻撃チェーンに含まれる不具合に対する2つの修正のうちの1つとして挙げている。エクスプロイトコードが公開で参照されていることから、特に信頼できないユーザーがローカルでログインできるシステムでは、018と026の両方が適用されていることを確認することが推奨される。

経緯

  1. · 公開

トピック#OpenBSD#カーネル#権限昇格#パッチ管理#Calif

出典

この記事は以下の情報源に基づいています。全体の文脈は各情報源をご覧ください。

  1. 1Calif · 研究Big Fish: Exploiting a 37-Year-Old Kernel Bug in OpenBSDcalif.io
  2. 2OpenBSD · 公式発表OpenBSD 7.9 Erratawww.openbsd.org