Once you push a change to a public repo, you should not change it. It sucks that it's broken, but that's your fault; you should either roll back your change or submit a second change that fixes it. However, you shouldn't rebase your second change onto your first one. There be dragons.
If you want to have a perfect public repo history, you can revert your change, fix it in private, then push the modified version to the public repo.