Update README.md
Browse files
README.md
CHANGED
|
@@ -5,8 +5,8 @@ Two minimal, self-contained C++ programs that reproduce the vulnerable **logic**
|
|
| 5 |
## What's here
|
| 6 |
| File | Demonstrates | Maps to (executorch @ main) |
|
| 7 |
|---|---|---|
|
| 8 |
-
| `craft_malformed_mps_pte.py` / `runtime_poc_mps.mm` / `malformed_mps.pte` / `RUNTIME_CRASH_REPORT.md` (
|
| 9 |
-
| `craft_malformed_webgpu_pte.py` / `runtime_poc_webgpu.cpp` / `malformed_webgpu.pte` / `RUNTIME_CRASH_REPORT.md` (
|
| 10 |
| `poc_range_overflow_oob_read.cpp` | `Range::length() = offset + size` overflows `size_t` β wraps to a small value β bypasses `slice()`'s `length() > size()` guard β pointer returned past the buffer β OOB read | `backends/apple/coreml/runtime/inmemoryfs/range.hpp:20-21`, `memory_buffer.cpp:255` |
|
| 11 |
| `poc_oob_write.cpp` | `MemoryBuffer::write` does `memcpy(dst + offset, β¦)` with an attacker-controlled `offset` and no bounds check β out-of-bounds **write** β `SIGSEGV` | `backends/apple/coreml/runtime/inmemoryfs/memory_buffer.cpp:248-251` |
|
| 12 |
| `output.txt` | Captured run output (incl. the `SIGSEGV`/exit 139) | β |
|
|
|
|
| 5 |
## What's here
|
| 6 |
| File | Demonstrates | Maps to (executorch @ main) |
|
| 7 |
|---|---|---|
|
| 8 |
+
| `craft_malformed_mps_pte.py` / `runtime_poc_mps.mm` / `malformed_mps.pte` / `RUNTIME_CRASH_REPORT.md` (runtime_mps_poc/) | **Runtime MPS PoC (2026-07-14):** generates a real `.pte` and crashes `MPSGraphBuilder.mm:162` via the actual `MPSGraph.framework` β OOB write at `_idToMPSGraphTensor[1000]` (vector size 3); heap corruption propagates to Metal/ARC cleanup (exit 137 SIGKILL on fresh build; exit 134 SEGV-in-`objc_release` on prior run β both captured in RUNTIME_CRASH_REPORT.md) | `backends/apple/mps/runtime/MPSGraphBuilder.mm:64,92,162` |
|
| 9 |
+
| `craft_malformed_webgpu_pte.py` / `runtime_poc_webgpu.cpp` / `malformed_webgpu.pte` / `RUNTIME_CRASH_REPORT.md` (runtime_webgpu_poc/) | **Runtime WebGPU PoC (2026-07-14):** generates a real `.pte` and crashes `WebGPUGraph.cpp:732-733` via attacker-controlled `cs.inline_offset` β same `vkgraph` schema Vulkan was patched for on 2026-05-13; WebGPU missed it (UBSan SEGV, `constant_data_ + 0xffffffffffff`, exit 134) | `backends/webgpu/runtime/WebGPUBackend.cpp:75`, `WebGPUGraph.cpp:378,537-538,732-733` |
|
| 10 |
| `poc_range_overflow_oob_read.cpp` | `Range::length() = offset + size` overflows `size_t` β wraps to a small value β bypasses `slice()`'s `length() > size()` guard β pointer returned past the buffer β OOB read | `backends/apple/coreml/runtime/inmemoryfs/range.hpp:20-21`, `memory_buffer.cpp:255` |
|
| 11 |
| `poc_oob_write.cpp` | `MemoryBuffer::write` does `memcpy(dst + offset, β¦)` with an attacker-controlled `offset` and no bounds check β out-of-bounds **write** β `SIGSEGV` | `backends/apple/coreml/runtime/inmemoryfs/memory_buffer.cpp:248-251` |
|
| 12 |
| `output.txt` | Captured run output (incl. the `SIGSEGV`/exit 139) | β |
|