Looney Tunables という Linux の脆弱性:glibc に存在する危険なバッファ・オーバーフロー

New ‘Looney Tunables’ Linux bug gives root on major distros

2023/10/03 BleepingComputer — Looney Tunables と呼ばれる、新たな Linux の脆弱性が判明した。GNU C ライブラリの ld.so ダイナミック・ローダーに存在する、バッファ・オーバーフローの弱点を悪用することで、ローカル攻撃者が root 権限を取得することが可能になるという。GNU C ライブラリ (glibc) は、GNU システムの C ライブラリであり、大半の Linux カーネル・ベース・システムに含まれている。glibc が提供する機能には、open/malloc/printf/exit などのシステムコールが含まれ、また、典型的なプログラム実行に必要な機能も含まれる。glibc 内のダイナミック・ローダーは、glibc を使用する Linux システム上でプログラムの準備と実行を行うため、最も重要なものである。


Qualys により発見された脆弱性 CVE-2023-4911 は、2021年4月に glibc 2.34 がリリースされた際に、setuid プログラムにおける SXID_ERASE の動作を修正すると説明されたコミットにより紛れ込んだものだ。

Qualys Threat Research Unit の Product Manager である Saeed Abbasi は、「私たちが証明した、この脆弱性の悪用の成功は、Fedora/Ubuntu/Debian などの主要ディストリビューションにおいて、完全な root 権限につながる広大かつ重要な性質を浮き彫りにしている。現時点において、エクスプロイト・コードは公開していないが、バッファ・オーバーフローをデータのみの攻撃に変換することが容易であることから、他の研究チームが直ぐにエクスプロイトを作成/公開する可能性がある。特に、Linux ディストリビューションで glibc が広く使われていることを考えると、この脆弱性には無数のシステムを危険にさらす可能性がある」と述べている。

管理者に推奨される優先的なパッチ適用

この脆弱性は、デフォルトでインストールされている Debian 12/13 および、Ubuntu 22.04/23.04、Fedora 37/38 において、GLIBC_TUNABLES 環境変数が処理される際にトリガーされる (musl libc を使用している Alpine Linux は影響を受けない) 。

Red Hat のアドバイザリには、「GLIBC_TUNABLES 環境変数の処理中に、GNU C ライブラリのダイナミック・ローダー ld.so で、バッファ・オーバーフローが発見された。この問題により、ローカル攻撃者が SUID 権限でバイナリを起動する際に、悪意を持って細工した GLIBC_TUNABLES 環境変数を使用し、昇格した権限でコードを実行する可能性が生じる」と記されている。

低権限の攻撃者であっても、ユーザーとの対話を必要としない複雑度の低い攻撃により、この深刻度の高い脆弱性を悪用できる。

Saeed Abbasi は、「Fedora /Ubuntu/Debian のような一般的なプラットフォームでは、完全な root アクセスを提供する機能があるため、システム管理者は迅速に行動する必要がある。Alpine Linux のユーザーは安堵できるが、他のユーザーはシステムの完全性とセキュリティを確保するために、パッチの適用を優先すべきだ」と指摘している。

近年において Qualys 研究者たちは、深刻度の高い Linux セキュリティ欠陥を発見している。その中には、数多くの Linux ディストリビューションのデフォルト設定において、攻撃者による root 権限の獲得を可能にする脆弱性も含まれる。そのリストには、Polkit の pkexec コンポーネントの欠陥 (PwnKit) および、カーネルのファイル・システム層の欠陥 (Sequoia)、Sudo Unix プログラムの欠陥 (Baron Samedit) などが含まれている。