In an interview with Calciomercato on Monday, Italy defender Bonucci revealed his eagerness to see the Rossoneri splash out on “top international players” in the off-season.
But the comments annoyed Gattuso, whose side meet Inter on Wednesday in a Derby della Madonnina that could have considerable top-four implications.
It is the second time Gattuso has taken issue with one of his players in a matter of days, having criticised Hakan Calhanoglu for dropping his head and failing to track back during the 3-1 defeat to Juventus on Saturday.
“Bonucci has to be a captain, I didn’t like what he said. When I played, it was the club that chose the players and the coach did his job,” Gattuso told reporters.
“I have a direct relationship with my lads, they know what I want and what I think. No one should be offended.
“With Calhanoglu, we talked and it’s all OK.”
Milan’s defeat to Juve snapped an encouraging 10-match unbeaten run in Serie A that sparked calls for Gattuso to be handed a long-term contract.
However, the former midfielder is yet to finalise an extension despite chief executive Marco Fassone’s willingness to discuss a deal.
“It’s not a problem. There’s no rush on my contract renewal,” Gattuso said.
“I was given a great opportunity, I feel a lot of responsibility and I don’t want to waste energy talking about my contract.”