Centre for Science and Environment's (CSE's) laboratory in Delhi, which did the study, found mercury in 44 per cent of the 32 fairness creams it tested.
It also found chromium in 50 per cent and nickel in 43 per cent of the 30 lipstick samples.
The report from CSE said they found mercury in 14 fairness creams in the range of 0.10 parts per million (ppm) to 1.97 ppm.
Under the Drugs and Cosmetics Acts and Rules of India, mercury is banned for use in cosmetics.
More From This Section
Chromium was found in 15 out of 30 lipsticks tested in the range of 0.45 ppm to 17.83 ppm while nickel was found in 13 out of 30 products tested in the range of 0.57 to 9.18 ppm.
Hexavalent chromium, one of the forms in which chromium is present, is known to cause cancer in humans.
Eminent environmentalist and CSE director general Sunita Narain said, "Mercury is not supposed to be present in cosmetic products. Their mere presence in these products is completely illegal and unlawful".
"What is coming out very clearly is that this sector has extremely weak regulations and almost no enforcement of whatever laws that exist," said Chandra Bhushan, CSE deputy director general and head of its lab.
He said that manufacturers often get away on the pretext that toxic metals are present in trace levels as limits for final products are not set.
One of the fastest growing industries in India, it is estimated that the cosmetic industry sold products worth Rs 26,410 crore in 2011.