Serwer uwierzytelniania trunk.cocoapods.org zawierał podatność umożliwiającą zdalne wykonanie kodu (RCE) z uprawnieniami root poprzez manipulację procesem walidacji adresu e-mail. Luka miała maksymalny wynik CVSS 10.0 i mogła prowadzić do przejęcia kontroli nad całą infrastrukturą oraz modyfikacji dowolnych pakietów (Podspec) w repozytorium CocoaPods.
▸ Pokaż oryginał (EN)
trunk.cocoapods.org is the authentication server for the CoacoaPods dependency manager. The part of trunk which verifies whether a user has a real email address on signup used a rfc-822 library which executes a shell command to validate the email domain MX records validity. It works via an DNS MX. This lookup could be manipulated to also execute a command on the trunk server, effectively giving root access to the server and the infrastructure. This issue was patched server-side with commit 001cc3a430e75a16307f5fd6cdff1363ad2f40f3 in September 2023. This RCE triggered a full user-session reset, as an attacker could have used this method to write to any Podspec in trunk.
Podczas rejestracji użytkownika serwer trunk weryfikował poprawność domeny e-mail poprzez sprawdzenie rekordów MX w DNS, korzystając z biblioteki rfc-822. Biblioteka ta wykonuje polecenie powłoki (shell command) w celu przeprowadzenia zapytania DNS. Atakujący mógł spreparować adres e-mail w taki sposób, aby wstrzyknąć dodatkowe polecenie systemowe (command injection), które zostałoby wykonane na serwerze trunk z uprawnieniami root. Atak nie wymagał uwierzytelnienia, interakcji użytkownika ani specjalnych uprawnień — wystarczające było wysłanie żądania rejestracji z odpowiednio skonstruowaną wartością pola e-mail.
Atakujący uzyskiwał pełny dostęp root do serwera i infrastruktury CocoaPods, co umożliwiało modyfikację dowolnych plików Podspec w repozytorium, a tym samym przeprowadzenie ataku na łańcuch dostaw oprogramowania (supply chain attack) wymierzonego w aplikacje iOS i macOS korzystające z CocoaPods.
Poprawka została wdrożona po stronie serwera we wrześniu 2023 roku poprzez commit 001cc3a430e75a16307f5fd6cdff1363ad2f40f3. W związku z incydentem przeprowadzono pełny reset sesji użytkowników. Administratorzy i użytkownicy powinni zapoznać się z oficjalnym komunikatem producenta pod adresem blog.cocoapods.org oraz zweryfikować integralność używanych zależności zgodnie z zaleceniami z referencji.
Serwer trunk.cocoapods.org — serwer uwierzytelniania menedżera zależności CocoaPods. Podatność dotyczyła wersji serwerowej działającej przed wdrożeniem poprawki (commit 001cc3a430e75a16307f5fd6cdff1363ad2f40f3).
Podatność została odkryta i zgłoszona przez firmę EVA Security (evasec). Poprawka serwerowa wdrożona we wrześniu 2023 roku; CVE opublikowano 1 lipca 2024 roku. W następstwie incydentu przeprowadzono pełny reset sesji wszystkich użytkowników trunk.cocoapods.org. Luka stwarzała realne ryzyko ataku na łańcuch dostaw oprogramowania, ponieważ CocoaPods jest powszechnie stosowanym menedżerem zależności dla platform Apple.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HCocoapods Trunk.cocoapods.org
APPCocoapods< 2023-09-22
Powiązane podatności
CocoaPods Trunk: nieautoryzowane przejęcie własności osieroconych pakietów
trunk.cocoapods.org is the authentication server for the CoacoaPods dependency manager. Prior to commit d4fa66...
The package cocoapods-downloader before 1.6.2 are vulnerable to Command Injection via hg argument injection. W...
The package cocoapods-downloader before 1.6.0, from 1.6.2 and before 1.6.3 are vulnerable to Command Injection...