Some "Stored Value" Unattended Payment Solutions of KioSoft use vulnerable NFC cards. Attackers could potentially use this vulnerability to change the balance on the cards and generate money. The account balance is stored on an insecure MiFare Classic NFC card and can be read and written back. By carefully observing changes in card dumps, one can identify fields that store the cash value of the card. Additionally, a checksum can be identified, which is created by XOR-ing the cash and an unknown field with a certain value. By updating the fields accordingly, arbitrary amounts of money can be loaded onto the card (up to $655,35) to pay for goods.
The cash balance on the NFC card is stored directly in the memory of the NFC MiFare Classic card, which is vulnerable to reading and writing. By observing memory dumps of the card before and after transactions, it is possible to identify fields storing the balance value. The checksum protecting data integrity is created by an XOR operation on the balance field and an unknown field with a specific constant value, which allows independent calculation and forgery. After updating the appropriate fields, an attacker can load any amount onto the card (up to $655.35) without actual payment.
An attacker can forge the balance on an NFC card and gain access to goods or services offered by the vending machine without incurring actual costs, resulting in direct financial losses to the device operator.
Apply patches available from the manufacturer according to the references provided. Migration to NFC cards offering stronger cryptographic mechanisms (e.g., MiFare DESFire) is recommended, as well as moving balance storage to the server side instead of on the card, thereby eliminating the possibility of local data modification.
KioSoft payment solutions from the 'Stored Value Unattended Payment Solutions' series using NFC MiFare Classic cards — specific versions indicated in the manufacturer's references.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N