Currently a git replace might do the trick.
In detail: Create a temporary work branch
git checkout -b temp
Reset to the commit to replace
git reset --hard <sha1>
Amend the commit with the right message
git commit --amend -m "<right message>"
Replace the old commit with the new one
git replace <old commit sha1> <new commit sha1>
go back to the branch where you were
git checkout <branch>
remove temp branch
git branch -D temp
push
guess
done.