Details
-
Bug
-
Status: Confirmed (View Workflow)
-
Critical
-
Resolution: Unresolved
-
10.5, 10.6, 10.3(EOL), 10.4(EOL), 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL)
-
Reproduced on Windows 10 and Windows Server 2016
Description
I have found a critical bug in Aria (Page storage format) where tables are wiped if someone runs a repair command with the USE_FRM flag.
REPAIR TABLE X USE_FRM
This bug only exists for databases that use an encryption plugin. In our case we use a file encryption plugin, however it is likely this bug affects all types of encryption plugin.
Disabling the encryption plugin or changing the storage format to Dynamic will prevent the USE_FRM from wiping the table.
However, since we require Data Encryption at Rest, we have to use encryption and Page storage format.
To reproduce, set up a Windows VM with MariaDB 10.5.13 (or later) installed.
Load on a file-based encryption plugin (or any other encryption plugin).
Then create a database and some tables and add data.
Finally, run a repair table command with the additional flag USE_FRM.
Now disconnect and reconnect to the Database and you will see all data has been removed.
A proposed dirty fix could be the following:
If table type is Aria and Storage Format is Page and encryption is enabled, then ignore USE_FRM flag if its passed in.