The vulnerability is a heap-buffer-overflow in the mlx::core::load function in the mlx library when parsing .npy files. The vulnerability is caused by incorrect handling of the header of the .npy file. The code creates a std::string from the header buffer without specifying the length. If the header contains a null byte, the string will be truncated. Later, the code accesses an offset of this string without a proper bounds check, leading to an out-of-bounds read. The AddressSanitizer output clearly identifies the vulnerable function and the location of the crash. There are two overloads of the load function that are affected. The first one takes a Reader object and contains the core logic. The second one takes a file path as a string, opens the file, and calls the first function. Both are considered vulnerable as they are part of the exploitation path.