[rtl] Faults that reach only the register file can go unnoticed
メンテナーはふだん 2 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 活発
- 領域
- security
調査の方向性
Start by reading security.rst and the fault-injection findings described in the issue, then trace the register file ECC and lockstep coverage in the OpenTitan ibex_top configuration. The issue asks whether register-file-only faults are in scope; the expected outcome is a decision on that coverage and, if they are out of scope, a one-line clarification in security.rst.
索引モデルが issue の本文から書いたものです。
説明
A fault that reaches only the register file, not the lockstep, can still go unnoticed. #2566 added the register file's read addresses and write port to the lockstep compare, through u_signals_prim_buf. A fault that the lockstep does not receive is left to the register file ECC. That ECC misses a wrong value with the same check bits as the correct one, for example its inverse. A fault in the register file's own address decoding could do the same, but I did not test that.
I ran a SymbiYosys fault-injection check on #2566, using ibex_top in the opentitan config with CHERIoT mode off and on. It flipped one bit of the port A read address, the write address or the write enable for one cycle. A flip on the core's output reaches both the register file and the lockstep. Every such flip was followed by a lockstep mismatch and the major alert, unless it came too late for the check to see the response. For flips that reached only the register file, the check found cases with no major alert within three clock cycles of the core using the wrong value.
The check ran about 10 clock cycles deep, without interrupts or debug requests. Address flips hit a read or a write that an instruction made. Write-enable flips could also hit a cycle without a write. I did not inject faults on the write data, the port B address, address bit 4 in CHERIoT mode, or during dummy instructions.
security.rst counts the register file as covered by its ECC and the lockstep compare. If faults that reach only the register file are out of scope, should I send a one-line follow-up that says so?
- 主要言語
- SystemVerilog
- スター
- 2.2k
- フォーク
- 836
- 平均マージ
- 5日 8時間
- マージ済み PR(30日)
- 22
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
lowRISC/ibex のほかの issue
-
[Bug Report] rvfi_intr is not set on the first instruction of an exception handler対応中かも @h-filali が 6 日前に担当しました。 オープンType:Bug
難易度 2/5 半日 初心者へのやさしさ 68/100
lowRISC/ibex#2556 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
Type:Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
lowRISC/ibex#2528 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
Type:Bug
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
メンテナーはふだん 2 日以内に返信
-
[doc] Document basic commands for running/checking Ibex対応中かも @shrutikbalwan が 46 日前に担当しました。 オープンComponent:Doc Good First Issue Type:Task
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 2 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 42/100
メンテナーはふだん 2 日以内に返信
似ている issue
-
enhancement maintenance
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
OWASP/OWASP-Hunting#76 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
databricks/databricks-sql-python#1034 ·
メンテナーはふだん 1 日以内に返信
-
priority:medium
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
silent-suite/silentsuite#992 ·
メンテナーはふだん 1 日以内に返信
-
IP hex groups are parsed with parseInt, so malformed groups parse partially and NaN reaches BigIntオープンbug claude Minor static-analysis
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
linagora/crowdsieve#79 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
eclipse-theia/theia#18365 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信