Why Memory Corruption Is a Board-Level Risk
Target audience: board members
Memory corruption in C and C++ accounts for 28% of the remote code execution attackers are known to use, and nothing in a standard security stack can guarantee it will stop. Cofibrant rules that class of exploit out at build time: it is an extension to the compiler already in your pipeline: no code changes, no new toolchain, with statistically negligible performance overhead. The scope is deliberately narrow, covering code execution reached through memory corruption rather than memory safety in full, which is what makes it cheap enough to apply to code nobody can afford to rewrite. The result is a categorical statement rather than a reduced likelihood, on the single highest-severity class of vulnerability.
- What it rules out
- Remote code execution reached through memory corruption, including bugs nobody has found yet.
- What it costs
- No code changes, no new toolchain, no change to engineering velocity. Statistically negligible performance overhead.
- What it does not do
- It is not full memory safety. Corruption bugs can still crash a process, but an attacker cannot turn them into code execution.
- Who it is for
- Estates with large C,C++,COBOL,Fortran codebases, hard-to-patch firmware, or heavy dependence on open source.
What changes operationally
Risk moves from probabilistic to deterministic. Conventional tools reduce the likelihood an exploit succeeds, while a guarantee means a defined class of attack cannot succeed, whether or not the underlying bug has been found. That is a different evaluation for regulators, insurers and auditors.
Emergency patching for this class of exploit stops being necessary. The underlying bugs still exist and still get fixed on a normal maintenance cycle, but with code execution ruled out they no longer carry a deadline set by an attacker. A CISO at a Fortune 500 enterprise told us emergency patching accounts for 15 to 20% of additional developer overhead in their organisation, which is capacity that returns to the typical roadmap.
Nothing else changes: engineering keeps shipping at the same velocity, test suites pass identically, and the guarantee holds through new releases because it is derived from an upper bound on program behaviour rather than from a list of known bugs. The technical whitepaper sets out how.
The risk, in numbers
Of the 1,673 entries in CISA’s Known Exploited Vulnerabilities catalogue, 689 give remote code execution and 192 of those reach it through memory corruption. Every entry has been observed in use against real targets.
The cost of finding these bugs is collapsing. In June 2026 an autonomous AI agent found 21 previously unknown vulnerabilities in FFmpeg for roughly a thousand dollars of compute, one of them latent since 2003. The cost of weaponising them is collapsing too, which we cover in our analysis of a recent FFmpeg vulnerability.
On performance, measured overhead on FFmpeg sits within a few percent of an unprotected build, and on hardware with Intel’s control-flow protections enabled most workloads land at or below baseline.
Why the alternatives do not close it
Patching is a race that is getting harder to win. Exploitation that once took a nation-state months now takes days with AI assistance, while the top tier of CISA’s current directive allows three days to remediate and real firmware timelines run to a year or more. In many industrial and embedded environments, fixes never arrive due to the difficulty of access.
Scanning is detection rather than prevention. It is useful and we would still run it, but what it misses stays missed, it produces a queue that needs human triage, and it says nothing about a vulnerability nobody has found.
Rewriting in Rust does eliminate the problem and is the strongest answer available. It also requires a new toolchain, new skills, and revalidation of every component, which for a large legacy codebase is a multi-year programme that is not realistic for most organisations: one staff engineer told us their timeline was 10 years.
Where it matters most
Hard-to-patch environments. Industrial control systems, IoT devices, medical equipment and defence systems run firmware for years between updates, sometimes for its whole service life. A guarantee enforced at build time holds regardless of the patching timeline.
Critical open-source dependencies. FFmpeg, NGINX and OpenSSL are maintained by small teams and shipped into almost everything downstream. The organisations exposed are rarely the ones able to fix them.
Large legacy codebases. Banks, insurers, telecoms and governments run decades of C, C++, Fortran and COBOL that nobody can afford to rewrite and often nobody fully understands. Hardening without changing is frequently the only viable path. Most of what we harden is C and C++ because that is where most of this code lives, but the product is the same whatever compiled the binary.
Risk and compliance
This is one of the few available actions that produces a categorical statement rather than a probabilistic one. Instead of reporting a reduced likelihood of breach, the position becomes that this class of attack is not possible against hardened builds.
For organisations under regulatory pressure, whether from CISA directives, DORA in the EU, or sector requirements in financial services, healthcare and critical infrastructure, a provable guarantee against the most dangerous class of exploit is a change in compliance posture rather than another control to evidence.