Security Advisories
TrueCrypt Security Model bypass exploiting wrong BIOS API
usage
Synopsis
The password checking routine of TrueCrypt fails to sanitize the
BIOS keyboard buffer before AND after reading passwords.
Affected Software
TrueCrypt 5.0 (possibly older versions also)
Technical Description
Truecrypt's pre-boot authentication routines use the BIOS API to
read user input via the keyboard. The BIOS internally copies the
keystrokes in a RAM structure called the BIOS Keyboard buffer
inside the BIOS Data Area. This buffer is not flushed after use,
resulting in potential plain text password leakage once the OS
is fully booted, assuming the attacker can read the password at
physical memory location 0x40:0x1e. It is also possible for a root
user to reboot the computer by incrementing the BIOS keyboard
buffer in spite of the full disk encryption.
Impact
1) Plain text password disclosure.
Required privileges to perform this operation are OS dependant,
from unprivileged users under Windows (any), to root under most
Unix.
2) A privileged attacker able to write to the MBR and knowing the
password (for instance thanks to 1), is able to reboot the computer
in spite of the password prompted at boot time (and in spite of
disk encryption) by initializing the BIOS keyboard buffer with the
correct password (using an intermediary bootloader that will in turn
run TrueCrypt).
Full Technical Whitepaper
Patch Description
Vendor Response
Vendor denies the vulnerability
Fixed in updated versions
Credits
This vulnerability was discovered by Security Researcher
Jonathan Brossard from iViZ Techno Solutions Pvt. Ltd.
Disclosure Timeline
First private disclosure to vendor on July 29th 2008
First vendor reply on July 29th 2008, denying the
vulnerability.
First Public disclosure at Defcon 16 on August 10th 2008
Back to Security Advisories
|