The vulnerability is a classic integer overflow in a memory allocation function. The patch is located in the executorch::runtime::MemoryAllocator::allocate function within the runtime/core/memory_allocator.h file. The vulnerability occurs when a large value for the size parameter is passed to the function. The calculation uint8_t* end = start + size; can overflow if size is large enough, causing the end pointer to wrap around and point to a memory address before the start pointer. The original code only checked if (end > end_), which would not catch the overflow if the wrapped-around end address was still within the allocator's bounds. This could lead to memory allocation that overlaps with existing allocations, a classic heap overflow scenario that can be exploited for arbitrary code execution. The patch adds the check end < start, which effectively detects this integer overflow condition and prevents the vulnerable allocation from occurring. Therefore, any runtime profile during exploitation would show calls to executorch::runtime::MemoryAllocator::allocate.