The part about listening and transmitting data onshore makes sense, the other part doesn’t.
If they already knew that someone was slipping info to enemies, they really didn’t need to go to such lengths to disable transfer or even collection of it, it could have easily been done via high level channels. Besides, it was pretty difficult to make sure at the time that they would only cripple Liberty instead of sinking it, and not kill anyone (a high price to pay) only to do something that can be just as easily and maybe faster done through the channels.
Also, I don’t see how disabling Liberty would help in actually finding out who the spy was, as it would immediately shut down the transmission of the info. If anything, it would probably make it more difficult, when once they knew that someone was leaking info, they could simply do a bit of counterespionage and start feeding wrong info to different people - that would help flush out who the spy was.
IMHO.
Personally, I prefer that it was an accident of war. People are tired and fatigued from fighting for their existence for three days. Liberty was in close proximity to a very hot and fast war.