High Court Judge Quentin Loh said Shadrake, 75, was "guilty of the offence of contempt by scandalising the court". He said the author would be given the opportunity to make amends for his comments in the book, but did not say if that would affect the sentencing, which was deferred until 9 November.
Shadrake, a freelance journalist, was arrested in Singapore in July over his book, Once a Jolly Hangman: Singapore Justice in the Dock, but is free on bail. He could also face separate charges of defamation.
In a written judgment, Mr Loh said Shadrake had used a "selective background of truths and half-truths, and sometimes outright falsehoods" in his book, which he said accused Singapore judges of being influenced by executive and diplomatic pressure.
There is no maximum sentence for contempt of court, but Shadrake's lawyer, M Ravi, said prosecutors had asked for a jail term of three to six months. Contempt of court is punishable by a fine, prison or both under Singapore law.