My money has always been on Haffner, but last night made it seem much more likely to me.
The PI told Cho that she was hired by visualize, but then we learn that Cooper had no knowledge of this.
However, Haffner was also involved in this case and could have easily been the one to hire the PI to bug the CBI.
As we know, Haffner is an expert in surveillance and while people will say he could have easily done it himself, if he were caught for any reason then he would be in trouble.
The only reason the PI got caught was because Jane happened to get a glimpse of her and knew something was off.
Otherwise she would have been fine.
Since Cooper was not the one to bug CBI, it makes sense that Haffner did it.
Remember too, that Cooper said he did not know where Haffner was after the investigation ended, and thats because Haffner was off to kill the PI.
Also, if you look at the shadow in the door, the hair does resemble Haffner.
One final food for thought.
Haffner is introduced in Season 4, Episode 2.
The fake Red John is killed in the Season 3 finale and we find out in Season 4, Episode 1 from Jane that the person he killed was a fake.
What better time to introduce the real Red John then right after we are led to believe that Red John has been killed.