Wszystkie opisywane w takich zestawieniach podatności serwerowe łączy jedno założenie: napastnik musi dosięgnąć firmowego systemu. Ta jest inna, bo to firma przynosi ją sobie sama, otwierając plik przysłany mailem. Wpis wyjaśnia, na czym polega błąd CVE-2020-9715 w programach Adobe Acrobat i Adobe Reader, dlaczego wymóg kliknięcia przez człowieka nie jest zabezpieczeniem, jak sprawdzić, czy dana instalacja mieści się w zakresie podatnych wydań, i dlaczego dwie wersje tej samej metody oceny dały tu wyniki różniące się o półtora punktu w nieoczekiwaną stronę.
Dokument, którego nikt nie podejrzewa
Adobe Acrobat i Adobe Reader to programy do czytania i edycji plików PDF, obecne właściwie na każdym komputerze biurowym. Podatność dotyczy wersji na Windows i na macOS, więc wybór systemu niczego tu nie zmienia.
Do wykorzystania potrzebne jest jedno: żeby ktoś otworzył spreparowany plik. Nie trzeba przełamywać firewalla, nie trzeba znać żadnego hasła, nie trzeba nawet wiedzieć, jak nazywa się firma. Wystarczy, że plik trafi do skrzynki i zostanie kliknięty.
To dlatego zdanie "wymaga działania użytkownika" bywa mylnie odczytywane jako "trudne do wykorzystania". W dziale, którego praca polega na otwieraniu cudzych dokumentów, ten warunek jest spełniany kilkadziesiąt razy dziennie z definicji. Księgowość otwiera faktury od nieznanych kontrahentów. Dział kadr otwiera życiorysy od nieznanych kandydatów. Sekretariat otwiera pisma od nieznanych nadawców. Nikt z nich nie może odmówić otwarcia pliku, bo otwieranie plików to właśnie ich praca.
Pamięć zwolniona i użyta jeszcze raz
Sam błąd należy do kategorii nazywanej użyciem pamięci po zwolnieniu, oznaczonej jako CWE-416. Nazwa jest dosłowna, a mechanizm łatwo wyobrazić sobie na przykładzie biurowym.
Program, otwierając dokument, odkłada jego fragmenty w pamięci i zapamiętuje, gdzie co położył. Skończywszy z jakimś fragmentem, zwalnia to miejsce, żeby dało się je wykorzystać ponownie. Kłopot zaczyna się wtedy, gdy program po zwolnieniu miejsca nadal ma zapisane, że jego dane leżą właśnie tam, i sięga po nie ponownie. W międzyczasie leży już tam co innego.
Odpowiednikiem jest karteczka z numerem pokoju wręczona gościowi hotelowemu, którego wymeldowano godzinę wcześniej. Pokój został wysprzątany i wydany komuś innemu, ale karteczka nadal działa. Napastnik, który wie, kiedy pokój zostanie zwolniony, wprowadza się tam pierwszy i czeka, aż ktoś przyjdzie z tą karteczką i wykona to, co zastanie w środku. W przypadku programu oznacza to wykonanie kodu wpisanego przez autora spreparowanego pliku, z uprawnieniami osoby, która plik otworzyła.
Co się dzieje w firmie, gdy plik zostanie otwarty
Kilkuosobowe biuro rachunkowe dostaje w ciągu dnia kilkadziesiąt faktur w PDF. Jedna z nich, wyglądająca jak faktura od dostawcy materiałów biurowych, po otwarciu wykonuje kod na komputerze księgowej.
Ten komputer ma dostęp do programu księgowego, do bankowości elektronicznej i do folderu z dokumentami wszystkich obsługiwanych firm. Napastnik nie musi już nigdzie się włamywać, bo pracuje z uprawnieniami osoby, która ma dostęp do wszystkiego z racji stanowiska. Typowy scenariusz to nie efektowne zniszczenie danych, tylko cierpliwa obserwacja: przechwycenie korespondencji, podmiana numeru konta w wysyłanej fakturze, przygotowanie przelewu, który wygląda jak każdy inny.
Koszt takiego zdarzenia jest podwójny. Bezpośredni to przelew wykonany na konto napastnika, zwykle nie do odzyskania. Pośredni to obowiązek powiadomienia klientów biura, że ich dokumenty mogły zostać odczytane, oraz konieczność sprawdzenia całej korespondencji z okresu, w którym napastnik miał dostęp.
Działanie zamiast tego jest niewygodne, ale skuteczne i tanie: rozdzielić czynności. Komputer, z którego wykonuje się przelewy, nie powinien być tym samym, na którym otwiera się załączniki od nieznanych nadawców. Tam, gdzie nie da się kupić drugiego sprzętu, wystarczy drugie konto w systemie, używane wyłącznie do bankowości i pozbawione uprawnień administratora. Ten podział działa również na błędy, których nikt jeszcze nie opisał.
Dlaczego starsza skala oceniła to wyżej niż nowa
Waga tego błędu w obecnie używanej skali CVSS, mierzącej powagę podatności od zera do dziesięciu, wynosi 7.8 i nosi etykietę wysokiego. Baza NVD oraz agencja CISA podają tę samą liczbę, więc co do wagi nie ma sporu. Europejska baza prowadzona przez ENISA przejmuje tę samą ocenę.
Obok niej stoi jednak druga ocena, wystawiona przez tę samą instytucję w starszej wersji tej samej skali: 9.3, czyli o półtora punktu wyżej. To odwrotność tego, co zwykle widać przy porównywaniu obu skal, gdzie starsza zaniża wynik. Powód jest pouczający. Nowsza skala patrzy na to, gdzie napastnik musi się znaleźć, żeby zacząć, i uznaje, że skoro trzeba otworzyć plik na konkretnym komputerze, to atak jest lokalny, a lokalność obniża punktację. Starsza skala patrzyła na to, skąd plik przyszedł, i traktowała taki atak jako sieciowy.
Tomasz Kaczmarek
Mogę Ci jakoś pomóc?
Obie odpowiedzi są w swoich ramach poprawne, a różnica pokazuje, że punktacja opisuje nie tyle zagrożenie, ile przyjętą konwencję jego opisywania. Dla firmy praktyczny wniosek brzmi: przy podatnościach uruchamianych przez otwarcie pliku nie warto opierać decyzji na samej liczbie, bo ta zależy od wersji metody. Warto zamiast tego zapytać, ilu pracowników otwiera dziennie pliki od obcych nadawców. Ta liczba mówi więcej.
Cztery zakresy wersji, dwie gałęzie, mylące numery
Sprawdzenie, czy konkretna instalacja jest w zakresie, wymaga cierpliwości, bo Adobe prowadzi dwie równoległe linie produktu: gałąź ciągłą, aktualizowaną na bieżąco, i gałąź klasyczną, przeznaczoną dla firm, które chcą rzadszych zmian.
Baza NVD wymienia cztery zakresy. W gałęzi ciągłej podatne jest wszystko od 15.008.20082 do 20.009.20074 włącznie. W gałęzi klasycznej dwa zakresy: od 15.006.30060 do 15.006.30523 włącznie oraz od 17.011.30059 do 17.011.30171 włącznie, a do tego punktowo wersja 20.001.30002. Opis słowny w tym samym rekordzie podaje te same granice od strony górnej: 2020.009.20074 i wcześniejsze, 2020.001.30002, 2017.011.30171 i wcześniejsze oraz 2015.006.30523 i wcześniejsze.
Uwagi wymaga jedno: numery zaczynające się od 15 i 17 nie oznaczają starych, porzuconych instalacji sprzed dekady, tylko właśnie gałąź klasyczną, świadomie wybieraną przez firmy ceniące stabilność. Komputer z takim numerem wersji może być w firmie nowy i regularnie aktualizowany w ramach swojej linii. Wniosek "ten Acrobat jest nowszy, bo ma wyższy numer" jest więc zawodny między gałęziami.
Numer, którego szuka się w komunikacie producenta, to APSB20-48. Wskazują go zarówno baza NVD, jak i katalog CISA. Podatność zgłoszono przez program skupujący informacje o błędach, a jej techniczny opis został opublikowany, więc wiedza o mechanizmie nie była nigdy zarezerwowana dla producenta.
Czternaście dni na naprawę
Rekord opublikowano 19 sierpnia 2020 roku, a numer nadał zespół bezpieczeństwa Adobe, czyli w tym przypadku sam producent, co odróżnia tę podatność od wielu opisywanych obok.
Do katalogu CISA gromadzącego podatności o potwierdzonym wykorzystaniu w rzeczywistych atakach, w skrócie KEV, wpis trafił 13 kwietnia 2026 roku, czyli po ponad pięciu i pół roku, z terminem naprawy dla amerykańskich instytucji wyznaczonym na 27 kwietnia. Dwa tygodnie, a więc krócej niż trzy tygodnie wyznaczane przy innych podatnościach z tego samego katalogu. Krótszy termin to sygnał pilności, a nie szczegół formalny.
Ocena towarzysząca wpisowi mówi: wykorzystanie aktywne, wpływ techniczny całkowity, atak nieautomatyzowalny. To ostatnie oznacza, że nikt nie przeczesuje internetu w poszukiwaniu ofiar, bo trzeba komuś wysłać plik i poczekać, aż go otworzy. Innymi słowy, ofiara jest wybierana, a jeśli jest wybierana, to znaczy, że wiadomość z załącznikiem będzie wyglądać wiarygodnie i będzie dotyczyć czegoś, czego adresat naprawdę się spodziewa.
Wskaźnik EPSS, szacujący prawdopodobieństwo ataku w najbliższych trzydziestu dniach, wynosi 0.48441, co plasuje ten błąd w górnym półtora procenta wszystkich znanych podatności. Jak na podatność wymagającą, żeby ktoś kliknął, to wartość bardzo wysoka i najlepsze dostępne potwierdzenie tego, że klikanie nie jest przeszkodą, którą warto liczyć jako zabezpieczenie.