From the review. Two issues in the bi-directional action framework:
Confirmation bypass — gui/main.py _run_action gates the confirmation on the profile-declared risk field, and validate_action allows any UDS service ID. A malicious/careless profile can label an ECU-reset/reflash "safe" and it runs with no prompt. Fix: derive effective risk from the actual UDS service IDs the steps send (2F/31/11/14/2E/27/34-37/non-default 10 => force confirmation); allowlist/classify SIDs in validate_action; gate on max(declared, derived).
Response parsing — run_action/_positive test (sid+0x40) membership ANYWHERE in the bytes, so a negative-response NRC byte 0x7E false-passes; 0x7F NRC not reliably caught; 0x78 (responsePending) treated as terminal failure. Fix: contiguous 7F <sid> reject guard + contiguous positive/expect subsequence match; handle 0x78 pending.
From the review. Two issues in the bi-directional action framework:
1. **Confirmation bypass** — `gui/main.py _run_action` gates the confirmation on the profile-declared `risk` field, and `validate_action` allows any UDS service ID. A malicious/careless profile can label an ECU-reset/reflash `"safe"` and it runs with no prompt. Fix: derive effective risk from the actual UDS service IDs the steps send (2F/31/11/14/2E/27/34-37/non-default 10 => force confirmation); allowlist/classify SIDs in `validate_action`; gate on max(declared, derived).
2. **Response parsing** — `run_action`/`_positive` test `(sid+0x40)` membership ANYWHERE in the bytes, so a negative-response NRC byte `0x7E` false-passes; `0x7F` NRC not reliably caught; `0x78` (responsePending) treated as terminal failure. Fix: contiguous `7F <sid>` reject guard + contiguous positive/expect subsequence match; handle 0x78 pending.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
From the review. Two issues in the bi-directional action framework:
gui/main.py _run_actiongates the confirmation on the profile-declaredriskfield, andvalidate_actionallows any UDS service ID. A malicious/careless profile can label an ECU-reset/reflash"safe"and it runs with no prompt. Fix: derive effective risk from the actual UDS service IDs the steps send (2F/31/11/14/2E/27/34-37/non-default 10 => force confirmation); allowlist/classify SIDs invalidate_action; gate on max(declared, derived).run_action/_positivetest(sid+0x40)membership ANYWHERE in the bytes, so a negative-response NRC byte0x7Efalse-passes;0x7FNRC not reliably caught;0x78(responsePending) treated as terminal failure. Fix: contiguous7F <sid>reject guard + contiguous positive/expect subsequence match; handle 0x78 pending.