Znalazłem błąd w jądrze AF_PACKET i usunąłem przewijający się tekst w konsoli

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.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.