| --- |
| license: mit |
| tags: [security, poc, executorch] |
| --- |
| # Harmless PoC: ExecuTorch `Program::get_backend_delegate_data` vector length OOB |
| |
| `Program::get_backend_delegate_data` indexes `Program.backend_delegate_data[index]` 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` (FakeBackend INLINE delegate) triggers ASan heap-buffer-overflow READ at `program.cpp:547`. |
|
|
| Distinct from packaged values/chains/instructions, READY operators/args, READY ExecutionPlan.delegates/compile_specs, READY constant/mutable offsets, MethodMeta sizes, #16704/#19904 null `backend_delegate_data`, Vela, VGF, Vulkan. |
| |
| ## Files |
| - `poc_backend_delegate_data_asan.cpp`, `asan.log` |
| - `method_deps_stub.cpp` (FakeBackend + Method link stubs) |
| - `NOTES.md` |
| |
| ```bash |
| ./poc_backend_delegate_data_asan |
| ``` |
| |