That large a difference, 25G, vs 2.4G, typically indicates that there is a file (or several files) that are in use by a program, even though the file has been deleted. The file does not show in a directory, so “du” won’t find it. However, “df” is listing the actual used space and is not looking at directories, so it will find the space that is being used.
The good news, is that this should correct itself on reboot.
“fsck -n /dev/mapper/system-home” might list the inode number and owner of the file(s).
The chances are that you know what happened. There was probably a program running that was creating a large file, and you deleted that file but failed to kill the program that was creating it.
I am fairly certain which program it was: VirtualBox.
Until several weeks ago I had crontab set up to backup the VMs once a week; backup requires shutting down the VM. I went out of town for several days and disabled the backup run, then forget to enable it on return. The VM had been running continuously since then.