Habréの最近のマゼランエラーとそれに関連する脆弱性をどうにかして回避しました。この省略を修正しようとします。
ちょっとした歴史
- 2018年11月1日、900910のバグレポートがChromiumに飛びました:「WebSQLを介したSQLiteの複数の問題」。 このエラーは、Tencent Blade TeamのWenxiang Qianによって報告されています。
- 2018年11月5日に、 エラーは SQLiteライブラリ(FTS3)のコアで閉じられます 。ここでは、モジュールが作成されたときからほぼ実際にエラーが発生します 。 2009年11月から。
- 2018年11月28日、 Chromiumに統合されます
- 少し後に、Tencent Blade Teamはエラーメッセージを発行し、特に詳細を明らかにせずに、マゼランという名前を付け、既成のエクスプロイトとPoCの公開がまだ計画されていないことを示します。
- 1週間後、インターネットはPoCで一杯になり、Chrome、Electron開発フレームワークなどがクラッシュします。 脆弱性が悪意のある目的で使用されたという証拠やその他の証拠はまだありません。
- DRHは、脆弱性が存在するというハッカーニュースでの疑いを確認しました(少なくとも「外部」SQLクエリの実行が許可されている場合、または同様のシナリオのSQLインジェクションの場合)。
脆弱なものは何ですか?
潜在的に、SQLiteを使用する(FTSが有効になっている)またはそのアプリケーションを使用する、またはそれに基づいたすべてのデバイスとプログラム(Chromiumなど) それらが影響を受ける可能性のある範囲と、可能な「敗北」の影響は、適切な攻撃ベクトルが見つかるかどうかによって異なります。
Magellan SQLite BUGについてもう少し
このエラーは、整数の合計(整数オーバーフロー)のオーバーフローに関連しています。これは、FTSテーブルのインデックスを変更することでFTS3 / 4サブシステムで発生する可能性があります。
書き込みバッファの適切な「トリミング」によるこの整数オーバーフローの対象となる人工的なアプリケーションは、メモリオーバーフローを引き起こし、特別に作成されたSQLクエリによって将来使用できます。
その結果、理論的には、SQLite(仮想FTSテーブル)を使用する多くのアプリケーション 、特に、FTSが有効なSQLiteに基づいたSQLiteをサポートする一般的なブラウザー(たとえば、Google Chrome、Chromium、Opera、Slimjet Browser、SRWare Iron、Torch)が脆弱になります。 Comodo Dragon、CoolNovo、Yandex Browser、Vivaldiなど)。
SQLiteデータベースは一般的に非常に人気があり、12種類以上のプログラミング言語、ツールチェーン、フレームワークなどを使用して提供され、モバイルデバイスとハイグレードコンピューターの両方のアプリケーションで使用され、サーバーソリューションでもよく見られます。 したがって、たとえば、Google Chrome、Mozilla Firefox、Yandex Browserなどの人気のあるWebブラウザー、多くのインスタントメッセンジャー(WhatsApp、Viber、WeChatなど)は、この形式でデータを保存します。 など
たとえば、同じFossil SCMは、SQLiteデータベースを使用して改訂履歴を保存し、FTSを介してフルテキストインデックスを使用できるようにします(たとえば、カスタムチケットレポートなどの独自のSQLクエリを作成する可能性があるUI / Web銃口からアクセスできます)など)。
更新:DRHはFossilの共同執筆者および開発者であり、明らかに同じことを考えていたため、SQLiteを3.26.0に更新することで既に「 穴を塞いだ」
このような「予測可能な」オーバーフローは、それ自体は非常に楽しいものではありませんが、銀行自体に正確に保存できるものを思い出せば(雑誌の内容からテーブル自体まで)...
だから私たちは怠zyな仲間ではありません...そして更新され、更新されます。
修正プログラムはどこで入手できますか?
パッチ[940f2adc8541a838]は 、SQLite 3.25.3アップデートの一部として提供されています(Chromium and co。もアップデートされています。たとえば、バージョン71.0.3578.80のChrome)。
SQLiteバージョン3.26は、次のようなFTSコンテナの追加のセキュリティ機能も提供します。
SQLITE_DBCONFIG_DEFENSIVEオプションが有効な場合の読み取り専用シャドウテーブルのサポート
この脆弱性の危険性は何ですか?
クリティカル。 リモートでコードを実行できます。 メモリリークとプログラムクラッシュも発生する可能性があります。
この脆弱性を悪用する既製のエクスプロイトの例はありますか?
はい
特に、Tencent Bladeチームは、この脆弱性を使用してGoogle Homeの攻撃を成功させたと主張しています(Googleバグトラッカーの問題の説明へのアクセスは閉じられています)。上記のように、現時点ではエクスプロイトコードを公開する予定はありません。
脆弱性の使用条件は?
この脆弱性は、たとえば、特定のWebページがブラウザーで呼び出される場合、またはSQLステートメントの実行を許可する場合など、リモートで実行できます(FTSが無効になっていない場合、攻撃ベクトルおよび/または悪用を促進する他の要因の存在または発生時に脆弱性)。
これは、偶然にも、特にSQLiteおよび特にFTSモジュール(たとえば[56be976859294027] )でのタイプオーバーフローとバッファオーバーランの最初の間違いではありませんが、おそらく、適用の可能性と結果の評価における重要性、理論的影響、および相対的な「スケール」において、この種の最大のものですこれ。