The ruling has sparked widespread outcry among parents across the country.
The court said schools should have the autonomy to decide if children are allowed to eat packed lunches on school grounds.
A lower court previously ruled in favour of a group of Turin parents who wanted to opt out of school meals, arguing that they are costly and can be unhealthy.
However, the Supreme Court ruled that bringing a packed lunch was “a possible violation of the principles of equality and non-discrimination based on economic circumstances”.
The judges said schools were places where individual differences should be taken into account “alongside the interests of the school community”.
Lorenza, whose two children attend a Turin school, told reporters she spent more than €2,000 on school meals, more than her monthly salary.
“My older daughter was not happy because the quality of the food didn’t justify the cost, and also because of the hygiene issues with the canteen,” she said.
“She would often complain that the cutlery was dirty, that the glasses were not particularly clean, or that there would be hairs on the plates.”
Other European countries, such as Finland, provide free school lunches to all students.
In France, school lunches are not free, but are heavily subsidised.
All infant students in English schools are entitled to a free hot meal at lunchtime, but take-up is not compulsory.
Bringing a packed lunch to school has never been a tradition in Italy.
School dinners have long been taken seriously in the country, with teachers sitting at a table with children to eat a pasta starter followed by a main course and fruit.
However, attitudes have changed, with one recent survey showing 26 per cent of Italians had a poor view of the quality of the food being served.