Ostatnio Kolejna kwestia została ujawniona w podsystemie AF_PACKET Jądro Linux, które umożliwia lokalnemu nieuprzywilejowanemu użytkownikowi uruchamianie kodu jako root lub wychodź z izolowanych kontenerów, jeśli mają uprawnienia administratora.
Opublikowane informacje wspominają, że do utworzenia gniazda AF_PACKET i wykorzystania luki wymagane jest uprawnienie CAP_NET_RAW.
Należy jednak zauważyć, że użytkownik bez uprawnień może je uzyskać określony w kontenerach utworzonych w systemach z włączonymi przestrzeniami nazw użytkowników.
Na przykład przestrzenie nazw użytkowników są domyślnie zawarte w Ubuntu i Fedorze, ale nie są włączone w Debianie i RHEL. Podczas gdy w Androidzie proces mediaervera ma prawo do tworzenia gniazd AF_PACKET, za pomocą których można wykorzystać lukę.
O luce w AF_PACKET
Luka jest obecna w funkcji tpacket_rcv i jest to spowodowane błędem w obliczaniu zmiennej netoff.
Atakujący może stworzyć warunki pod którym zapisze wartość mniejszą niż maclen w zmiennej netoff, która spowoduje przepełnienie obliczając „macoff = netoff-maclen”, a następnie wykonując to, może nieprawidłowo ustawić wskaźnik na bufor dla przychodzących danych.
W rezultacie atakujący może zainicjować zapis od 1 do 10 bajtów w obszarze poza przydzielonym buforem.
Błąd w obliczeniach jest obecny w jądrze od lipca 2008 roku, czyli we wszystkich aktualnych jądrach, jednak znana już możliwość wykorzystania go do zapisu w obszarze poza przydzielonym buforem (podatność) została zapewne wprowadzona w lutym 2016 roku (z jądra wersje 4.6-rc1 i nowsze), wraz z rozwojem obsługi virtio_net.
Jeśli chodzi o rozwiązanie problemu, jest ono nadal dostępne jako łatka. Oprócz tego, z drugiej strony, obserwuje się, że tworzony jest exploit, który umożliwia uzyskanie praw roota w systemie.
Dla tych, którzy chcą wiedzieć, czy poprawka jest już dostępna dla ich dystrybucji, mogą śledzić wygląd aktualizacji pakietów w różnych dystrybucjach na następujących stronach: Ubuntu, Fedora, SUSE, Debian, RHEL, łuk.
Usunięto obsługę przewijania tekstu w konsoli tekstowej
Z drugiej strony, mówiąc o jądrze Linuksa, ogłoszono również, że kod przewijania tekstu został usunięty z implementacji konsoli tekstowej w jądrze Linuksa (CONFIG_VGACON_SOFT_SCROLLBACK).
Kod został usunięty z powodu obecności błędów, które nie było nikogo do poprawienia z powodu braku menedżera nadzorującego rozwój vgacon.
I kilka miesięcy temu w vgacon zidentyfikowano i naprawiono lukę (CVE-2020-14331), który może spowodować przepełnienie buforu z powodu braku odpowiednich sprawdzeń dostępności pamięci w buforze przewijania. Luka zwróciła uwagę programistów który zorganizował testy fuzzingu kodu vgacon w syzbocie.
poza tym dalsze weryfikacje ujawniły kilka innych problemów Podobnie w kodzie vgacon, a także problemy z implementacją oprogramowania do przemieszczania w kontrolerze fbcon.
Niestety, kod problemu był pozostawiony bez opieki przez długi czas, przypuszczalnie z powodu faktu, że programiści przestawili się na konsole graficzne, a konsole tekstowe przestały być używane (ludzie nadal używają konsol vgacon i fbcon, ale nie byli głównym interfejsem jądra od dziesięcioleci i rozpowszechniali zarówno funkcje takie jak wbudowane w kontroler przewijanie (Shift + PgUp / PgUp) są prawdopodobnie mało potrzebne).
W związku z tym, Linus Torvalds postanowił nie próbować zachować kodu nieodebrane, ale po prostu go usuń.
Na koniec wspomina się, że jeśli są użytkownicy, którzy potrzebują tej funkcjonalności, kod obsługujący przewijanie w konsoli zostanie zwrócony do jądra, gdy tylko opiekun będzie gotowy lub będzie chciał samodzielnie zająć się jego konserwacją ręce, czyli jedyny, który chce poświęcić temu czas.