środa, 20 stycznia 2016

Naprawiamy w kernelu lukę CVE-2016-0728

Tu i ówdzie pojawiają się alarmujące informacje o odkrytej luce 0-day w kernelu linuksa, która otrzymała oznaczenie CVE-2016-0728. W istocie jest to o tyle groźne, że odkrywcy luki udostępnili również gotowego exploita zezwalającego na atak. Patch jest już jednak gotowy i udostępniony również.
W Archu kernele dystrybucyjne zostały już zaktualizowane i nałożona została odpowiednia łatka. Należy zatem dokonać aktualizacji systemu. Problem może dotyczyć osób, które korzystają z kerneli spoza dystrybucji (różne repozytoria nieoficjalne, AUR) i ich kernel jest co najmniej w wersji 3.8. W takiej sytuacji należy sprawdzić, czy udostępniona została nowa wersja kernela, nakładająca łatkę. Różnie bywa nazywana, ale w PKGBUILDzie, w opisie powinno się  znaleźć informacja, że nakładany jest patch łatający CVE-2016-0728. Jeśli tego nie znajdziecie, bądź sami budujecie kernel, to należy wykonać następujące czynności (zakładam, że wszelkie czynności dokonujemy w katalogu ze skryptami budującymi kernel); oczywiście dla porządku można też zmienić na wyższy numer pkgrel, to akurat nie jest bezwzględnie konieczne):
1. Pozyskujemy patch
wget -c https://projects.archlinux.org/svntogit/packages.git/plain/trunk/CVE-2016-0728.patch?h=packages/linux -O CVE-2016-0728.patch
2, Dowolnym edytorem edytujemy PKGBUILD i wprowadzamy następujące zmiany:
a) w sekcji source dodajemy:
"CVE-2016-0728.patch"
b) w sekcji prepare dodajemy:
# Fix for CVE-2016-0728
msg "Fix CVE-2016-0728
patch -Np1 -i "${srcdir}/CVE-2016-0728.patch" 
3. Aktualizujemy sumy kontrolne:
updpkgsums
4. Budujemy kernel (i jak chcemy od razu go instalujemy/aktualizujemy):
makepkg -sirc
Dodatkowe operatory -rc dokonają wyczyszczenia katalogu po zbudowaniu i zainstalowaniu kernela.