BP stands to receive "blood money" through its investments in Russia, a leading adviser to Ukraine's president has warned.
Oleg Ustenko said BP is entitled to hundreds of millions of pounds from its stake in Russian energy giant Rosneft.
BP said it was no longer receiving any profits from Rosneft.
It still planned to sell its shareholding in Rosneft, a move it announced immediately after Russia's invasion of Ukraine, it added.
Russian energy firms have made bumper profits this year, despite sanctions against the country, because the invasion of Ukraine, and subsequent sanctions, have pushed up the price of oil and gas on the global market.
Rosneft is one of the country's largest energy producers. Its chairman, billionaire industrialist Igor Sechin, is considered by the UK government to be a "particularly close and influential ally" of Russian President Vladimir Putin.
BP to offload stake in Russian oil firm Rosneft
BP chief listed as COP27 delegate for Mauritania
Mining tycoon launches $25bn fund to rebuild Ukraine
Mr Ustenko, who advises President Zelensky on economic affairs, has written to BP's chief executive, Bernard Looney, urging him to set out a plan to ensure his business does not profit from the war.
In his letter he wrote: "This is blood money, pure and simple, inflated profits made from the murder of Ukrainian civilians."
Prior to Russia's invasion of Ukraine, BP had a 19.75% shareholding in Rosneft.
In the early days of the conflict BP announced plans to get rid of that stake, gave up its two seats on the Rosneft board, and wrote off the value of the investment in its accounts.
However, BP remains a shareholder in Rosneft. Insiders argue that the divestment process is ongoing, but has been far from simple due to the political situation.
Last month, Rosneft announced plans to pay a dividend of 216bn roubles (£2.9bn) to investors, covering the first nine months of the year.
The campaign group Global Witness said that meant BP should be entitled to £580m - a sum it claims is equivalent to more than a third of the direct financial assistance so far provided by the UK to Ukraine.
In his letter to the BP chief executive, seen by the BBC, Mr Ustenko cited this figure and pointed out that because BP is still a Rosneft shareholder, it is owed the money.
"BP will receive this money into a restricted Russian bank account, a clear indication of the historic mistake your company has made - but all the same, BP will receive the dividend," he wrote.
Mr Ustenko said BP's strategy appeared to be to "wait out the storm, returning to business as usual when the war is over".
He calls on BP, if it does receive those profits, to establish a fund dedicated to Ukrainian victims of the war.
In a statement, BP said it still planned to leave Russia, and had no intention of returning to "business as usual".
It stressed that it had already written off investments worth more than $24bn (£20bn), and no longer reported any income from Rosneft, reducing its stated earnings by some $2bn a year.
"Since our decision, BP has not received any dividends from the Rosneft shares," BP added.
"It is our understanding that, under Russian regulations, any payments to a company in an 'unfriendly state' such as the UK would go into a highly restricted Russian bank account, from which money could not be transferred without Russian government approval."