Twórcy oprogramowania często polegają na kodzie napisanym przez inne firmy lub programistów, aby przyspieszyć rozwój swoich produktów.
Aby ułatwić zarządzanie kodem z innych źródeł, zwanych zależnościami, programiści używają narzędzia zwanego menedżerem zależności. To samo dotyczy programowania na platformy Apple, a najpopularniejszym menedżerem zależności dla aplikacji na iOS jest CocoaPods.
W ubiegły poniedziałek autorzy projektu wydali oświadczenie wyjaśniające, że odkryto problem bezpieczeństwa. Problem wynika z faktu, że złośliwy pakiet opublikowany w repozytorium CocoaPods mógł wykonać dowolny kod na zarządzających nim serwerach. Ten pakiet może zostać użyty do zastąpienia istniejących złośliwymi wersjami kodu, a te mogą trafić do aplikacj iOS i Mac używanych przez miliony ludzi na całym świecie.
Przykładem popularnej aplikacji korzystającej z CocoaPods jest Signal, aplikacja do przesyłania wiadomości skupiona na prywatności. Starannie zaplanowany atak na jedną z zależności używanych przez Signal może potencjalnie ujawnić dane użytkownika. Jest to mało prawdopodobny scenariusz, ponieważ zależności używane przez Signal są sprawdzane przez zespół programistów aplikacji, zapewniając, że żadna z nich nie zawiera złośliwego kodu ani problemów z bezpieczeństwem. Jednak nie wszyscy programiści stosują tę praktykę podczas pracy z zależnościami.
Nie ma dowodów na to, że luka została wykorzystana. Jedynymi deweloperami, których dotyczy ta poprawka, będą ci, którzy publikują swoje pakiety na CocoaPods.