MclDecoder::parseSymbols: unchecked shndx used as index into elfSh array
まだ誰も着手していません。
評価
調査の方向性
level_zero/experimental/source/mutable_cmdlist/program/mcl_decoder.cpp の約329行目にある MclDecoder::parseSymbols から始めてください。ここでは elfSymbol.shndx が境界チェックなしで program.elfSh にインデックスしています。約199行目のセクションヘッダテーブルから program.elfSh がどのように構築されているかを読み、そのサイズを確認してください。範囲外の shndx が配列を超えて読み取ることなくシンボルをスキップまたは拒否するように参照が保護され、そのパスを通るテストまたは細工した入力があれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Problem
MclDecoder::parseSymbols (level_zero/experimental/source/mutable_cmdlist/program/mcl_decoder.cpp, line 329) uses elfSymbol.shndx as an index into program.elfSh without bounds checking:
symbol.section = static_cast<Sections::SectionType>(program.elfSh[elfSymbol.shndx].type);
program.elfSh is an ArrayRef constructed from the ELF section header table (line 199). shndx is a 16-bit field from the ELF symbol table, fully attacker-controlled in a crafted binary. If shndx >= program.elfSh.size(), this is an out-of-bounds read at an attacker-chosen index.
UBSan fires on the pointer arithmetic computing the OOB address.
Impact
Out-of-bounds read in the MCL (Mutable Command List) program decoder. Reachable through zexCommandListLoadNativeBinary (Level Zero experimental API). Crash or potential information disclosure from reading memory at an attacker-controlled offset from the section header array.
Suggested fix
Check elfSymbol.shndx < program.elfSh.size() before the array access. Skip or error on the symbol if out of bounds.
Found by BrightSec automated security scanning.
- 主要言語
- C++
- スター
- 1.5k
- フォーク
- 304
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
intel/compute-runtime のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
intel/compute-runtime#943 ·
-
OS: Windows Type: Bug
難易度 4/5 3〜5日 初心者へのやさしさ 18/100
intel/compute-runtime#1044 · コメント 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
intel/compute-runtime#1043 ·
-
難易度 3/5 半日 初心者へのやさしさ 55/100
intel/compute-runtime#1042 ·
-
難易度 3/5 半日 初心者へのやさしさ 55/100
intel/compute-runtime#1041 ·
intel/compute-runtime の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
cython/cython#8110 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
PR bot doesn't recognize hip-tests as a unit test directory対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
ROCm/rocm-systems#14923 ·
メンテナーはふだん 2 日以内に返信
-
arrays asr pass bug ICE intrinsic medium priority
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
Area: World-Readiness
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
microsoft/calculator#2522 ·
-
missing `catch.hpp`オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
microsoft/inflatelib#34 · コメント 1 件 ·