Using memory errors to attack a virtual machine

Sudhakar Govindavajhala, Andrew W. Appel

Research output: Contribution to journalConference articlepeer-review

114 Scopus citations

Abstract

We present an experimental study showing that soft memory errors can lead to serious security vulnerabilities in Java and .NET virtual machines, or in any system that relies on type-checking of untrusted programs as a protection mechanism. Our attack works by sending to the JVM a Java program that is designed so that almost any memory error in its address space will allow it to take control of the JVM. All conventional Java and .NET virtual machines are vulnerable to this attack. The technique of the attack is broadly applicable against other language-based security schemes such as proof-carrying code. We measured the attack on two commercial Java Virtual Machines: Sun's and IBM's. We show that a single-bit bit error in the Java program's data space can be exploited to execute arbitrary code with a probability of about 70%, and multiple-bit errors with a lower probability. Our attack is particularly relevant against smart cards or tamper-resistant-computers, where the user has physical access (to the outside of the computer) and can use various means to induce faults; we have successfully used hear. Fortunately, there are some straightforward defenses against this attack.

Original languageEnglish (US)
Pages (from-to)154-165
Number of pages12
JournalProceedings of the IEEE Computer Society Symposium on Research in Security and Privacy
StatePublished - 2003
Event2003 IEEE Symposium on Security And Privacy - Berkeley, CA, United States
Duration: May 11 2003May 14 2003

All Science Journal Classification (ASJC) codes

  • Software

Fingerprint

Dive into the research topics of 'Using memory errors to attack a virtual machine'. Together they form a unique fingerprint.

Cite this