ATM manufacturers Diebold Nixdorf and NCR have fixed a number of software vulnerabilities that allowed attackers to execute arbitrary code with or without SYSTEM privileges, and to make illegal cash withdrawals by committing deposit forgery and issueing valid commands to dispense currency.
About the vulnerabilities
“Diebold Nixdorf ProCash 2100xe USB ATMs running Wincor Probase version 1.1.30 do not encrypt, authenticate, or verify the integrity of messages between the cash and check deposit module (CCDM) and the host computer. An attacker with physical access to internal ATM components can intercept and modify messages, such as the amount and value of currency being deposited, and send modified messages to the host computer,” the CERT Coordination Center at Carnegie Mellon University explained the root of CVE-2020-9062.
A deposit forgery attack starts with the attacker depositing actual currency and modifying messages from the CCDM to the host computer to indicate a greater amount or value than was actually deposited, and ends with the attacker making a withdrawal of this artificially increased amount or value of currency (at an ATM operated by a different financial institution).
A similar vulnerability (CVE-2020-10124) with the same attack potential has been found in NCR SelfServ ATMs running APTRA XFS 04.02.01 and 05.01.00: the software does not encrypt, authenticate, or verify the integrity of messages between the bunch note accepter (BNA) and the host computer.
Two additional flaws (CVE-2020-10125 and CVE-2020-10126), stemming from the software’s poor implementation of certificates to validate BNA software updates and improper validation of the softare updates for the BNA, may allow an attacker to execute arbitrary code on the host, with or without SYSTEM privileges.
NCR SelfServ ATMs running APTRA XFS 05.01.00 or older also sport two more flaws:
- CVE-2020-9063 stems from the lack of authentication and integrity protection of the USB HID communications between the currency dispenser and the host computer
- CVE-2020-10123 is caused by the currency dispenser’s inadequate authentication of session key generation requests from the host computer, allowing the attacker to issue valid commands to dispense currency
To exploit all of these flaws, attackers must have physical access to internal ATM components, but if they succeed, they can fiddle with the host system and steal money from banks.
Affected organizations are advised to peruse the security advisories and to implement the offered firmware and software updates, as well as make specific configuration changes.
Diebold also advised them to limit physical access to the ATM and its internal components, adjust deposit transaction business logic, and implement fraud monitoring.