willardj's picture
Upload README.md with huggingface_hub
2b09a72 verified
# ExecuTorch .pte Integer Overflow in compute_numel() PoC
## Vulnerability
`compute_numel()` in `runtime/core/portable_type/tensor_impl.cpp` multiplies tensor
dimensions without overflow checks. The overflow check in `program_validation.cpp`
was written but **commented out** (lines 48-57, 67-79). The default verification mode
(`Minimal`) skips calling the validation function entirely.
### Reproduce
```python
from executorch.runtime import Runtime
runtime = Runtime.get()
program = runtime.load_program(open('poc_numel_overflow.pte', 'rb').read())
method = program.load_method('forward')
# On 32-bit embedded targets: numel overflow → heap buffer overflow
```
### Files
- `poc_numel_overflow.pte` — Patched add.pte with INT32_MAX tensor dimension
- `poc_numel_overflow.py` — Generator script
### Affected
ExecuTorch all versions through latest (1.2.0+).