Mega Sekurak Hacking Party w Krakowie! 26-27.10.2026 r.
100 tys. USD nagrody za błąd w funkcji „Sign in with Apple”
„Sign in with Apple” to funkcja na urządzeniach Apple, która pozwala wykorzystać konto iCloud do uwierzytelnienia w innych aplikacjach. Od strony użytkownika działa na podobnej zasadzie jak – bardziej powszechne – „Zaloguj z kontem Google” czy „Zaloguj z Facebookiem”.
Od strony technicznej, rozwiązanie opiera się o wygenerowanie tokenu JWT przez serwer uwierzytelniający Apple, który to następnie jest wysyłany do aplikacji firmy trzeciej, gdy użytkownik zażyczy sobie uwierzytelnienia z Applem. Tokeny są podpisane kluczem RSA, więc sprawdzenie ich poprawności polega na zweryfikowaniu ich względem klucza publicznego.

Sposób działania „Sign in with Apple”, źródło: https://bhavukjain.com/blog/2020/05/30/zeroday-signin-with-apple/
Bhavuk Jain zlokalizował ostatnio błąd w implementacji tejże funkcjonalności polegający najpewniej na tym, że odkrył pewien ukryty endpoint, który pozwolił wygenerować token JWT dla dowolnego użytkownika, znając tylko jego maila!
Wystarczyło wysłać zapytanie do serwera:
POST /XXXX/XXXX HTTP/1.1
Host: appleid.apple.com
{"email":"contact@bhavukjain.com"}
by otrzymać token:
{
"authorization" : {
"id_token" : "eyJraWQiOiJlWGF1bm1MIiwiYWxnIjoiUlMyNTYifQ.XXXXX.XXXXX",
"grant_code" : "XXX.0.nzr.XXXX",
"scope" : [ "name", "email" ]
},
"authorizedData" : {
"userId" : "XXX.XXXXX.XXXX"
},
"consentRequired" : false
}
Apple zdecydowało wypłacić bug bounty w wysokości stu tysięcy dolarów. Pozostaje się jedynie zastanawiać, jak to się stało, że taki błąd dostał się na produkcję…
— Michał Bentkowski

Bardziej wygląda to na furtkę zostawioną sobie przez programistę, niż na buga.
Pewnie jak w grach zrobił se debug mode i pyk do produkcji.
To wygląda raczej na jakieś narzędzie developerskie które wylądowało na produkcji. Nieładnie, wygląda to bardzo nieprofesjonalnie…