German students are to be given a guarantee of no fees for a first degree under a government reform of the national framework law on higher education.
But the reform leaves the door open for education ministries of the 16 Länder to impose penalty fees on "slow-lane" students who exceed the regular study period.
With this reform, education minister Edelgard Bulmahn hopes to fulfil an election promise to ban student fees just a few months before the next general election.
She said the reform would improve Germany's low-participation rate in higher education. "No one should be put off higher education on financial grounds," she said.
But the cabinet decision has met almost universal criticism. The 16 Länder are sceptical because the government has declared the reform does not need the agreement of the Bundesrat, the upper house of parliament that represents the interests of the states.
Bavaria, led by the conservative Christian Social Union, has declared it will appeal against the decision in the constitutional court on the grounds that it encroaches on its powers.
Bavarian education minister Hans Zehetmair said: "With the haste of a shoplifter, the government is trying, shortly before the end of the legislative period, to regulate issues that are none of its business."
Student groups condemn the reform for not going far enough to reject fees of all kinds.
The Student Coalition against Study Fees said: "It allows exceptions to the rule that will open up opportunities to introduce fees by the back door."
Detlef Mueller-Boeling, head of the Centre for Higher Education, said that, contrary to Ms Bulmahn's argument, countries that had introduced fees such as the Netherlands and Australia, had seen a subsequent rise in student numbers.