今週のダイジェストでは、以下をご紹介します。
- Sudoeditが任意のファイルを編集できる方法。
- DrupalとGitのセキュリティ勧告、および
- HAProxy にサービス拒否の脆弱性があります。
Sudoeditは任意のファイルを編集することができます
CVE IDCVE-2023-22809
Sudoは、システム管理者が選択したユーザーにrootとしてコマンドを実行する能力を与えることができるプログラムです。Synacktiv がこの脆弱性を発見しました。sudoers のポリシー回避の問題により、sudoedit を使用して未承認のファイルを編集することで権限昇格される可能性があります。影響を受ける Sudo のバージョンは 1.8.0 から 1.9.12p1 までの範囲です。
sudoedit を使用している間、ユーザーはSUDO_EDITOR、VISUAL、EDITOR などの環境変数を使用して編集ユーザーを選択します。これらの変数の内容は、sudo_edit()関数に渡される実際のコマンドを拡張します。A "-"引数は、編集するファイルのリストを決定するためのものです。しかし、余計な " - " を注入すると-「を注入することで、このリストを変更し、対象ユーザーの権限で他のファイルを編集することで、特権の昇格につながる可能性があります。
検出
この脆弱性は、/etc/sudoersファイルに記載されている /etc/custom/service.conf などのファイルの編集権限を付与されたユーザーで、以下のコマンドを実行することで検出できます。
$ cat /etc/sudoers
user ALL=(ALL:ALL) sudoedit /etc/custom/service.conf
[...]
$ EDITOR='vim -- /etc/passwd' sudoedit /etc/custom/service.conf
ミティゲーション
パッチ適用済みバージョンにアップグレードする以外に、sudoedit を使用する際に、影響を受ける環境変数をenv_delete の拒否リストに追加することで脆弱性を緩和することも可能です。
Defaults!SUDOEDIT env_delete+="SUDO_EDITOR VISUAL EDITOR"
Cmnd_Alias SUDOEDIT = sudoedit /etc/custom/service.conf
user ALL=(ALL:ALL) SUDOEDIT
Drupalのセキュリティ勧告
Drupal は、複数の製品に影響する脆弱性に対処するため、セキュリティアドバイザリを公開しました。攻撃者は、これらの脆弱性を悪用して機密情報にアクセスする可能性があります。CISAは、ユーザと管理者が以下のDrupalのセキュリティアドバイザリを確認し、必要な更新を適用することを推奨します。
Drupal Core - 情報公開
セキュリティ勧告のコードsa-core-2023-001
Media Library モジュールにおける不適切なエンティティアクセスチェックにより、コンテンツの編集権限を持つユーザーが、アクセス権限のないメディアアイテムのメタデータを閲覧できる可能性があります。アクセスできないメディアは、メディア参照フィールドを含むコンテンツを既に編集できるユーザーにのみ見えるため、脆弱性の緩和が可能です。
9.4.x以前のDrupalが製造終了であるかに関わらず、Drupal 10.0.2、Drupal 9.5.2、Drupal 9.4.10などの最新バージョンにアップデートすることが推奨されています。
Entity Browser - 情報公開
セキュリティ勧告のコードsa-contrib-2023-002
ユーザーは、Entity Browserモジュールのカスタムエンティティブラウザウィジェットを使用して、エンティティ参照フィールドからエンティティを選択することができます。この脆弱性は、モジュールがエンティティへのアクセスを適切にチェックしないため、コンテンツの編集権限を持つユーザが、アクセス権限のないエンティティのメタデータを参照することを可能にします。この脆弱性は、アクセスできないエンティティは、Entity Browser を使用してコンテンツを既に編集できるユーザにのみ表示されることで、緩和することができます。本脆弱性を修正するには、Drupal 9 または 10 用の Entity Browser モジュールを使用している場合、Entity Browser をバージョン 8.x-2.9 にアップグレードしてください。
メディア・ライブラリー・ブロック - 情報公開
セキュリティ勧告のコードsa-contrib-2023-003
Media Library Block モジュールは、ユーザーがブロック内のメディアエンティティをレンダリングすることを可能にします。このモジュールによる不適切なメディアアクセスチェックは、アクセス制限のあるメディアアイテムを含むブロックがページ上にある場合、ユーザーがアクセス権限のないメディアを見る結果になる可能性があります。アクセス制限のあるメディアアイテムを参照しているブロックを削除することによって、この不正アクセスを緩和してください。 Drupal 9 または 10 で Media Library Block モジュールを使用している場合、この問題を解決するためにバージョン 1.0.4 にアップグレードすることを推奨します。
メディア ライブラリ フォーム API 要素 - 情報公開
セキュリティ勧告のコードsa-contrib-2023-004
Media Library Form API Elementモジュールを使用すると、メディア ライブラリ ウィジェットを使用せずに、カスタム フォームでメディア ライブラリを使用できます。モジュールによる不適切なエンティティアクセスチェックのため、コンテンツの編集権限を持つユーザが、アクセス権限のないメディアアイテムのメタデータを見る可能性があります。 アクセスできないメディアを、メディア参照フィールドを含むコンテンツを既に編集できるユーザーにのみ見えるようにすることで、脆弱性を緩和してください。Media Library Form API Elementモジュールのバージョンが8.x-1.*、またはDrupal 9や10用の2.xの場合、モジュールをバージョン2.0.6にアップグレードすることが推奨されます。
Gitセキュリティアドバイザリ
Git のソースコードのセキュリティ監査により、ヒープベースのバッファオーバーフローの弱点を突くことに成功した後、攻撃者が任意のコードを実行することができる重大度な脆弱性2件を含む複数の脆弱性が発見されました。この脆弱性は、バージョン 2.30.7, v2.31.6, v2.32.5, v2.33.6, v2.34.6, v2.35.6, v2.36.4, v2.37.5, v2.38.3, v2.39.1 でパッチが適用されており、Git のバージョン 2.31.6 と v2.35.6 には、深刻な脆弱性はありません。
git archive`, `git log -format` でヒープオーバーフローが発生し、RCE になる。
CVE IDCVE-2022-41903
git logは-format指定で任意のフォーマットでコミットを表示できます。git archiveのexport-substgitattribute もこの機能を持っています。パディング演算子を処理する際、pretty.c の format_and_pad_commit()関数にsize_t 変数がintとして不適切に格納され、次のmemcpy()呼び出しにオフセットとして追加されます。攻撃者は、コミットフォーマットを呼び出すためにgit log -format=... を実行するか、ファイルのフォーマット指定子を展開するexport-subst属性でgit archiveを実行することにより、オーバーフローを開始することができます。この整数オーバーフローにより、メモリ上に任意のコードを書き込むことで、リモートでコードが実行される可能性があります。
ワークアラウンド
この脆弱性を完全に修正した最新バージョンにアップグレードすることを推奨します。アップグレードができない場合は、信頼できないリポジトリでgit archiveを実行しないようにしてください。 git archive がgit daemon 経由で公開されている場合は、git config -global daemon.uploadArch false を実行してコマンドを無効にしてください。
gitattributes parsing integer overflow (git属性解析の整数オーバーフロー)
CVE IDCVE-2022-23521
Gitでは、リポジトリに.gitattributesファイルを追加することでパスの属性を定義することができます。このファイルには、ファイルのパターンや、パターンにマッチするファイルに設定すべき属性が含まれています。属性をパースする際に、いくつかの条件によって整数のオーバーフローが発生することがあります。
- パスパターンが多すぎる場合。
- 1つのパターンに多数の属性がある場合。
- 宣言された属性の名前が広範囲に及ぶ場合。
オーバーフローは、細工された.gitattributesファイルがコミット履歴の一部であるときに引き起こされる可能性があります。2KBより長い行は、ファイルからgitattributesをパースする際に静かに分割されますが、インデックスからは分割されません。その結果、ファイルがインデックス、作業ツリー、またはその両方に存在する場合に失敗する可能性があります。この脆弱性により、head の任意の読み書きが可能となり、リモートでコードを実行される可能性があります。
ワークアラウンド
該当する回避策は公開されていません。唯一の回避策は、Git をリストアップされた最新のパッチ付きバージョンにアップグレードすることです。
HAProxyにおけるサービス拒否の脆弱性
CVE IDCVE-2023-0056
HAProxy は、HTTP アプリケーションのための高可用性サーバーロードバランサーです。本脆弱性は、http_wait_for_response()関数における予期せぬフラグの処理に失敗し、プロセスがクラッシュすることにより存在します。その結果、この脆弱性を利用した攻撃により、サービス拒否攻撃を受ける可能性があります。
脆弱性のあるHAProxyのバージョンは、2.0.0から2.7.0までです。バージョン 2.5.11, 2.6.8, 2.7.2 の脆弱性にパッチを当てます。ただし、2.0.x から 2.4.x までの修正バージョンはまだリリースされていません。
コメント