Skip to main content
All Terms Glossary

Memory Corruption Vulnerabilities

Definition

Memory corruption vulnerabilities in browsers can allow attackers to execute arbitrary code or crash the browser through manipulation of memory contents. These low-level vulnerabilities often affect browser engines and plugins. Modern browsers implement various protections including process isolation and sandboxing to mitigate these risks.

What memory corruption is

Memory corruption vulnerabilities arise when a program reads or writes outside the bounds of the memory it legitimately owns. In browsers, the engine is written mostly in C and C++, languages that do not enforce memory safety, so bugs such as buffer overflows, use-after-free (using memory after it has been freed), type confusion, and integer overflows are possible. An attacker who controls the surrounding data can turn such a bug into a controlled overwrite of pointers or object metadata, and from there into arbitrary code execution or a crash. These flaws typically live in the JavaScript engine, the layout and rendering code, image and font parsers, or plugins.

Why memory corruption matters

Memory corruption is among the most severe browser vulnerability classes because a successful exploit can run native code with the browser's privileges, outside the JavaScript sandbox's intended limits. Chained with a sandbox escape, it can lead to full device compromise from nothing more than visiting a page, the mechanism behind many drive-by downloads and targeted zero-day attacks. These bugs are valuable, actively traded, and hard to eliminate because they stem from the underlying language rather than a single coding mistake. Fonts, images, and media, data that arrives from untrusted sites, are common triggers, so ordinary browsing is enough to reach the vulnerable code.

Defending against memory corruption

Because these bugs live inside the browser engine, the primary defence is to keep browsers and their components patched, since vendors ship fixes rapidly once a flaw is known. Modern browsers add layered mitigations: process isolation and site isolation contain a compromised renderer, sandboxing limits what exploited code can reach, and hardening such as ASLR, stack canaries, and control-flow integrity raise the cost of exploitation. Engines increasingly adopt memory-safe languages like Rust for high-risk parsers. As a web operator this class is largely outside your control; the practical steps are prompt updates, minimising plugins, and defence in depth for your users.

Definition

Can website owners patch memory corruption bugs?

No. These flaws live in the browser engine itself, so only the browser vendor can fix them. Site owners cannot remediate the bug, but they and their users reduce exposure by keeping browsers updated, limiting plugins, and relying on the browser's sandbox and site isolation.

Definition

How do attackers find memory corruption vulnerabilities?

Largely through fuzzing, feeding malformed inputs to the browser at scale to trigger crashes, plus manual review of complex parsers. A crash that corrupts memory in an attacker-influenced way is then studied and developed into a reliable exploit, sometimes chained with a sandbox escape to break out of the browser.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Book a demo

Want to walk through this with an engineer?

Thirty minutes, on your own site. Not a slide deck.

We'll show you:

Which third-party scripts are running on your site right now
Where you stand on PCI DSS 6.4.3 and 11.6.1
How much of your traffic is bots and AI agents

Rather just send a question?

Finding open slots…

Real humans only. We'd know.

Having trouble booking? Open scheduler in a new tab

What are you trying to solve?

Tell us in a line and we'll come back with something useful, not a generic pitch.

We usually help with:

Seeing which third-party scripts run on your site
PCI DSS 6.4.3 and 11.6.1 evidence
Bots, AI agents and account takeover

Prefer to just book a time? Pick a slot instead