Legimi i luka IDOR: jak jeden brak sprawdzenia uprawnień ujawnił umowy autorów
Nie zawsze do wycieku danych potrzebne jest wyrafinowane włamanie. Czasem wystarczy, że aplikacja nie sprawdza, czy osoba pobierająca plik ma do niego prawo. Tak właśnie wyglądał incydent w Legimi, polskiej platformie z e-bookami i audiobookami. Sprawa dotyczy niewielkiej grupy osób, ale dobrze pokazuje typ błędu, który może się kryć w wielu firmowych panelach i sklepach.
Co się stało w Legimi
Jak opisał Sekurak, 22 września 2026 r. osoba nieuprawniona wykorzystała błąd w aplikacji webowej panelu wydawcy. Panel nie kontrolował wystarczająco uprawnień przy pobieraniu dokumentów. Dzięki temu napastnik pobrał pliki umów zawartych z wydawcami i autorami.
Zdarzenie dotyczyło 183 osób. Firma stwierdziła naruszenie 2 października 2026 r. Według inspektora ochrony danych Legimi nie doszło do przejęcia kont pracowników ani do naruszenia bazy danych. Atak wykryto podczas przeglądu anomalii w ruchu w systemie.
Legimi zablokowało źródło ataku, usunęło błąd w panelu, przeanalizowało pozostałe systemy pod kątem podobnych luk (i według firmy ich nie znalazło), zgłosiło naruszenie Prezesowi UODO oraz poinformowało osoby, których dane dotyczyły. Firma przekazała też, że nie ma informacji, by dane zostały opublikowane lub wykorzystane.
Jakie dane wyciekły
Pobrane umowy zawierały imię i nazwisko oraz adres zamieszkania. W zależności od konkretnej umowy mogły tam być także:
- numer PESEL,
- seria i numer dowodu osobistego,
- imiona rodziców lub pseudonim,
- treść umowy razem z warunkami wynagrodzenia.
To zestaw, który przydaje się oszustom podszywającym się pod inne osoby, dlatego Legimi zaleciło poszkodowanym konkretne kroki ochronne.
Czym jest IDOR, po ludzku
IDOR to skrót od angielskiego Insecure Direct Object Reference, czyli niebezpiecznego bezpośredniego odwołania do obiektu. Brzmi technicznie, ale mechanizm jest prosty.
Wyobraź sobie, że po zalogowaniu pobierasz swoją umowę pod adresem, który kończy się numerem dokumentu, np. „…/umowa/1052”. Jeśli serwer sprawdza tylko, czy jesteś zalogowany, ale nie sprawdza, czy dokument 1052 należy do Ciebie, to wystarczy zmienić numer na 1053, żeby pobrać cudzą umowę. Potem 1054 i tak dalej.
Taki błąd łatwo przeoczyć, bo w zwykłym użytkowaniu nikt nie zmienia numerów w adresie i wszystko działa poprawnie. Ujawnia się dopiero wtedy, gdy ktoś celowo zacznie próbować.
Numer w adresie to tylko najprostszy przykład. Ten sam problem może dotyczyć identyfikatora ukrytego w formularzu, w zapytaniu wysyłanym przez aplikację mobilną albo w adresie pliku PDF z fakturą. Zasada jest zawsze ta sama: aplikacja ufa temu, co przysłał użytkownik, zamiast samodzielnie sprawdzić, czy dany zasób do niego należy. Dlatego testy bezpieczeństwa paneli klienta i partnera często zaczynają się właśnie od prób podmiany identyfikatorów. To prosty test, który wiele firm mogłoby wykonać we własnym zakresie, zanim zrobi to ktoś z nieuczciwymi zamiarami.
Samo logowanie nie chroni danych. Przy każdym pobraniu pliku czy wyświetleniu rekordu serwer musi sprawdzić, czy ten konkretny użytkownik ma prawo do tego konkretnego zasobu.
Co zrobić, jeśli Twoje dane były w umowie
Legimi przekazało poszkodowanym listę zaleceń. Warto je znać, bo sprawdzają się po każdym wycieku danych z PESEL-em czy numerem dowodu:
- Zastrzeż PESEL - w aplikacji mObywatel, na gov.pl albo w urzędzie gminy. To bezpłatne i można to w każdej chwili cofnąć.
- Zastrzeż dowód osobisty w swoim banku (system Dokumenty Zastrzeżone) i rozważ jego wymianę.
- Włącz alerty w BIK i sprawdzaj historię wizyt oraz recept na Internetowym Koncie Pacjenta.
- Uważaj na wiadomości i telefony, w których ktoś powołuje się na Legimi albo na Twoją umowę. Firma zaznacza, że nie prosi o hasła, dane kart ani o zmianę numeru konta mailem.
- Zgłoś próbę wyłudzenia w banku i na Policji, jeśli do niej dojdzie.
Lekcja dla właścicieli serwisów i sklepów
Jeśli Twoja strona ma panel klienta, strefę partnera, historię zamówień do pobrania albo faktury w PDF, ten typ błędu może dotyczyć także Ciebie. Kilka rzeczy, które warto sprawdzić razem z programistą lub dostawcą oprogramowania:
- Kontrola dostępu po stronie serwera. Każde zapytanie o dokument, zamówienie czy profil musi weryfikować właściciela zasobu, a nie tylko to, czy ktoś jest zalogowany.
- Trudne do odgadnięcia identyfikatory. Losowe identyfikatory zamiast kolejnych numerów utrudniają masowe pobieranie, choć nie zastępują sprawdzania uprawnień.
- Monitorowanie ruchu. W Legimi atak wykryto właśnie dzięki przeglądowi anomalii. Nagły wzrost pobrań z jednego konta czy adresu to sygnał ostrzegawczy.
- Ograniczanie danych. Im mniej danych osobowych trzymasz w plikach dostępnych z panelu, tym mniejsze skutki ewentualnego wycieku.
- Gotowa procedura na naruszenie. RODO wymaga zgłoszenia naruszenia do UODO w ciągu 72 godzin od jego stwierdzenia, gdy istnieje ryzyko dla osób. Lepiej wiedzieć wcześniej, kto to robi i jak.
Bezpieczeństwo aplikacji i zgody na pliki cookie to różne tematy, ale łączy je jedno: odpowiedzialność za dane użytkowników spoczywa na właścicielu serwisu, nawet jeśli kod napisał ktoś inny. Regularny przegląd tego, co dzieje się na stronie i w panelu, to najtańszy sposób, by nie stać się bohaterem kolejnego artykułu o wycieku.
Źródło: Sekurak
wyciek danychIDORLegimibezpieczeństwo aplikacjinaruszenie RODO