The German-made KRI Nanggala-402 lost contact about 95 kilometres north of Bali in the early hours of Wednesday during a torpedo attack exercise with 49 crew members, three gunners and a commander, officials said.
It is believed to be 600-700 metres underwater, the Navy said.
"In the event of an electrical failure, the oxygen can last approximately 72 hours," Navy chief of staff Admiral Yudo Margono said at a news conference.
"It can last until Saturday 3 am. We hope that we can find it while the oxygen reserve is still available," he said.
Earlier in the day, naval spokesman Julius Widjojono said the submarine was designed to dive to depths of 250-500 metres.
"Beyond that it's dangerous," he added.
Widjojono said the fuel tank might have been damaged by water pressure.
At least four naval ships and one helicopter were involved in the search, while rescue vessels from Singapore and Malaysia were on their way.
Oil spill found
The Defence Ministry said late on Wednesday that aerial surveillance by a helicopter found an oil spill in the location where the submarine was last detected.
Singapore Defence Minister Ng Eng Hen said the country's submarine rescue vessel, MV Swift Rescue, was dispatched with a medical team on Wednesday afternoon following a request from the Indonesian navy.
"The site for search operations, near Bali, is more than 1,500 km away and waters are deep, which is why MV Swift Rescue sailed off as soon as she could," he wrote in a Facebook post.
A Malaysian rescue ship was on its way to Indonesian waters to help search for the missing submarine, the Royal Malaysian Navy said on Thursday.
The MV Bakti set sail from Kota Kinabalu on the Malaysian part of the island of Borneo at 7 am local time, the navy announced. The vessel is scheduled to reach the search area off the coast of Bali by Sunday afternoon.
Defence Minister Ismail Sabri Yaakob said he told his Indonesian counterpart Prabowo Subianto that Malaysia would give its "full commitment" to the search and rescue effort.
The military said it had also sought the help of Australia.
Australian Foreign Minister Marise Payne told Sky News her country was moving to help, but said Australia operates very different submarines from the one that is missing.
"There is no question that submarine search and rescue is very complex," Payne said.
"Whatever we are able to do we have undertaken to do," she added.
Racing against time
Retired Rear Admiral Soleman Ponto said rescuers were racing against time to save the crew members.
"We have 72 hours maximum. There is oxygen on board for only 60-70 hours. Beyond that, all the people will be dead," he said.
"To save the people, we don't have the equipment, but Singapore has," he added.
The Indonesian military has five submarines, including the missing one. Two of the submarines were out of service, the military said last year.
Prabowo said the accident underscored the need for the country to modernize its military.
"We need to renew our armament. We have not upgraded our armament because we have been focusing on improving people's welfare," he said at a news conference.
"But this now urgent and we must modernize our military's weapons and equipment faster," he added.
The Nanggala-402 was built by German company Howaldtswerke-Deutsche Werft in Kiel in the late 1970s.
Last month, South Korea's Daewoo Shipbuilding & Marine Engineering (DSME) supplied the last of three submarines ordered by the Indonesian military.
That submarine is the first to be assembled locally in Indonesia by the state-owned shipbuilding company PT PAL, the government said.
Indonesia plans to acquire eight more by 2024 for a total of 13.