KEEBWZRD commited on
Commit
29f35de
Β·
verified Β·
1 Parent(s): cf6a025

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +2 -2
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` (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` (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) | β€” |
 
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) | β€” |