| --- |
| license: mit |
| tags: [security, poc, executorch] |
| --- |
| # Harmless PoC: ExecuTorch Method::init `args` / `operators` vector length OOB |
|
|
| `gen_instruction_arguments` indexes `KernelCall.args[i]` / `DelegateCall.args[i]` using a forged FlatBuffer vector length with no bound against the program buffer. Under default `Program::Verification::Minimal`, loading a malicious `.pte` and calling `Method::load` triggers ASan heap-buffer-overflow READ at `method.cpp:259`. |
|
|
| Related: forged `operators()->size()` → `resolve_operator` `ops->Get(op_index)` HBO at `method.cpp:750`. |
|
|
| Distinct from packaged values/chains/instructions length OOB, READY constant/mutable offsets, MethodMeta sizes, WebGPU, Vela, VGF. |
|
|
| ## Files |
| - `poc_method_load_operators_asan.cpp`, `asan.log` (kernel-args-oob) |
| - related: `delegate-args-oob`, `operators-oob` |
| - `NOTES.md` |
|
|
| ```bash |
| ./poc_method_load_operators_asan kernel-args-oob |
| ``` |
|
|