Arm NN deserializer stack buffer overflow proof-of-concept (CWE-787)

This repository contains a single proof-of-concept file, poc.armnn (296 bytes), used for coordinated disclosure of a stack-based buffer overflow in the Arm NN deserializer (armnnDeserializer::ToTensorInfo). It is a security research artifact. Loading the file triggers a memory-safety crash during deserialization. It performs no code execution and has no effect other than crashing the process that loads it.

File

  • poc.armnn: a serialized Arm NN graph (armnnSerializer flatbuffers schema) with a single InputLayer whose output tensor declares a dimensionSpecificity vector of length 64. The deserializer copies that vector into a fixed 5-element stack array (bool[armnn::MaxNumOfTensorDimensions]) without a bounds check.

Trigger

Loading the file through the public deserializer API crashes:

auto d = armnnDeserializer::IDeserializer::Create();
d->CreateNetworkFromBinary(bytes_of_poc_armnn);   // stack-buffer-overflow in ToTensorInfo

Under AddressSanitizer this reports a stack-buffer-overflow WRITE in armnnDeserializer::ToTensorInfo (Deserializer.cpp:756), reached from CreateNetworkFromBinary -> CreateNetworkFromGraph -> SetupInputLayers -> ToTensorInfo. The file is a structurally valid flatbuffers buffer and passes the deserializer's Verifier.

Scope and safety

This file only crashes the loader. Do not load it with an Arm NN build you depend on. It is intended for controlled reproduction of the vulnerability during disclosure.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support