I can't see how this can be avoided without blinding the signature but this would require a hard fork.
No it wouldn't, adding a new signature system is just a soft forking addition, of a smaller scale than we've made several times before (e.g. with the introduction of p2sh). Not something to do lightly but not that big a deal.
But blinding alone isn't enough, because you actually want the signer to see the message (because the signer needs to display what the message will do to act as an independent check or to enforce business logic). Though there is probably a very narrow and very efficient ZKP that can be used to unblind only the message.