Autor mitmproxy, narzędzia do analizy ruchu HTTP/HTTPS, zwrócił uwagę na pojawienie się w katalogu pakietów Pythona PyPI (Python Package Index) forka swojego projektu. Fork był rozpowszechniany pod podobną nazwą mitmproxy2 i nieistniejącą wersją 8.0.1 (aktualne wydanie mitmproxy 7.0.4), licząc na to, że nieuważni użytkownicy przyjmą pakiet jako nową edycję głównego projektu (typosquatting) i zechcą przetestować nową wersję.
Pod względem składu mitmproxy2 był analogiczny do mitmproxy, z wyjątkiem zmian polegających na wprowadzeniu złośliwej funkcjonalności. Zmiany obejmowały zaprzestanie wysyłania nagłówka HTTP „X-Frame-Options: DENY”, który zabrania przetwarzania treści wewnątrz iframe, wyłączenie ochrony przed atakami XSRF oraz wysyłanie nagłówków „Access-Control-Allow-Origin: *”, „Access-Control-Allow-Headers: *” i „Access-Control-Allow-Methods: POST, GET, DELETE, OPTIONS”.
Wskazane zmiany usuwały ograniczenia dostępu do HTTP API, stosowanego do zarządzania mitmproxy przez interfejs internetowy, co pozwalało każdemu napastnikowi w tej samej sieci lokalnej, poprzez wysłanie żądania HTTP, zorganizować wykonanie swojego kodu na systemie użytkownika.
Administracja katalogu zgodziła się, że wprowadzone zmiany można interpretować jako złośliwe, a sam pakiet jako próbę promowania innego produktu pod pozorem głównego projektu (w opisie pakietu twierdzono, że to nowa wersja mitmproxy, a nie fork). Po usunięciu pakietu z katalogu, następnego dnia w PyPI umieszczono nowy pakiet mitmproxy-iframe, którego opis również całkowicie zgadzał się z oficjalnym pakietem. Obecnie pakiet mitmproxy-iframe został również usunięty z katalogu PyPI.
Źródło: opennet.ru
