Writing garbage into the journal is quite easy, too. All it takes is for
the disk to forget a single seek after a legitimate journal write, and
it'll write something into the journal which was supposed to go elsewhere.
(I've seen this on disks running live systems on ext3 for huge banks. The
banks were not very happy, because the sysadmins simply unplugged the disk
array after the disk errors: so the filesystem was unclean, the journal
was replayed... and oops, that's sprayed quite a lot of garbage into the
fs, because a multimegabyte logfile write had landed in the journal, and
all of that was misinterpreted as metadata. That specific case, in which
the blocks look nothing like journal blocks at all, was plugged in
e2fsprogs 1.40, but the bank was using a version of RHEL that was still on
1.35...)