Yes, but the rigged sha256 seems to produce the same results as a real sha256. And there's nothing obviously hinky in the code that I can see on cursory inspection. If this is rigged, it's rigged in a particularly clever way.
[UPDATE] Turns out this is not a vulnerability at all:
I'd say that counts as a vulnerability. It doesn't mean sha256 is broken, but it's a vulnerability.
EDIT: All of this modulo a rigged sha256.py, of course