Why are CA root certificates all SHA-1 signed (since SHA-1 is deprecated)?
Solution 1:
The signature of the root CA certificates do not matter at all, since there is no need to verify them. They are all self-signed.
If you trust a root CA certificate, there’s no need to verify its signature. If you don’t trust it, its signature is worthless for you.
Edit: there are some very relevant comments below. I don’t feel comfortable copying or rephrasing them and taking credit for them instead of their authors. But I welcome people to add explanations to this answer.
Solution 2:
At the end of the day, a root certificate is self-signed. It is never signed by another entity except itself. The root certificate gets its trust through out-of-band processes like submitting it to a browsers list of trusted publishers, or getting it accepted by Microsoft for insertion into the default list of Windows trusted publishers.
These certificates (and the companies that self-signed them) are (allegedly, hopefully) thoroughly vetted through other means than just their signatures.
Solution 3:
The only case where this matters, is if the root is signed by SHA-1 it can be revoked by SHA-1. That is, somebody who can attack SHA-1 can construct a revocation for the root. And I'm absolutely sure the browser doesn't know how to persist that so the vandal has accomplished no more than dropping SSL connections. How lame.