Such an utility is
From its description:
Zerofree finds the unallocated, non-zeroed blocks in an ext2 or ext3
file-system and fills them with zeroes. This is useful if the device
on which this file-system resides is a disk image. In this case,
depending on the type of disk image, a secondary utility may be able
to reduce the size of the disk image after zerofree has been
run. Zerofree requires the file-system to be unmounted or mounted
The usual way to achieve the same result (zeroing the unused
blocks) is to run "dd" do create a file full of zeroes that takes up
the entire free space on the drive, and then delete this file. This
has many disadvantages, which zerofree alleviates:
* it is slow;
* it makes the disk image (temporarily) grow to its maximal extent;
* it (temporarily) uses all free space on the disk, so other
concurrent write actions may fail.
Zerofree has been written to be run from GNU/Linux systems installed
as guest OSes inside a virtual machine. If this is not your case, you
almost certainly don't need this package.
The description of the .deb package contains the following paragraph now which would imply this will work fine with ext4 too.
Description: zero free blocks from ext2, ext3 and ext4 file-systems
Zerofree finds the unallocated blocks with non-zero value content in
an ext2, ext3 or ext4 file-system and fills them with zeroes...