Match & Mend: Minimally Invasive Local Reassembly for Patching N-day Vulnerabilities in ARM Binaries
Sebastian Jänich, Merlin Sievers, Johannes Kinder
TL;DR
IoT devices frequently run outdated ARM32 firmware with known vulnerabilities due to irregular vendor updates. The authors present Match & Mend, a binary-level, minimally invasive patching approach that uses CFG/DFG-guided analysis, three-phase patching (Analysis, Matching, Local Reassembly), and precise block-level patching to fix n-day vulnerabilities without altering overall functionality. The prototype patches real-world vulnerabilities (MAGMA) and real firmware (Karonte), achieving high patch rates (83% on MAGMA; 96% on Karonte) with modest patch sizes (5–46 KiB) and typical runtimes around 14 minutes per patch. This work demonstrates the practicality of static, locally targeted binary patches for extending the security and lifecycle of resource-constrained IoT devices, and points to future improvements in code similarity, automated backporting, and patch verification.
Abstract
Low-cost Internet of Things (IoT) devices are increasingly popular but often insecure due to poor update regimes. As a result, many devices run outdated and known-vulnerable versions of open-source software. We address this problem by proposing to patch IoT firmware at the binary level, without requiring vendor support. In particular, we introduce minimally invasive local reassembly, a new technique for automatically patching known (n-day) vulnerabilities in IoT firmware. Our approach is designed to minimize side effects and reduce the risk of introducing breaking changes. We systematically evaluate our approach both on 108 binaries within the controlled environment of the MAGMA benchmarks, as well as on 30 real-world Linux-based IoT firmware images from the KARONTE dataset. Our prototype successfully patches 83% of targeted vulnerabilities in MAGMA and 96% in the firmware dataset.
