Błędy w weryfikatorze BPF pozwalają na wykonanie dowolnego kodu w jądrze
Napisał: Patryk Krawaczyński
22/12/2017 w Bezpieczeństwo Możliwość komentowania Błędy w weryfikatorze BPF pozwalają na wykonanie dowolnego kodu w jądrze została wyłączona
J
ądro Linuksa zbudowane ze wsparciem wywołania systemowego bpf(2)
(CONFIG_BPF_SYSCALL
) podatne jest na uzyskanie dostępu do odczytu i zapisu przestrzeni adresowej jądra. Do błędu może dojść, gdy użytkownik systemu uruchomi szkodliwy program BPF powodujący błędy obliczeń w module weryfikatora (funkcja check_alu_op) Berkeley Packet Filter. Tym samym nieuprawniony użytkownik może wykorzystać tę lukę do eskalacji swoich uprawnień w systemie. Podatne są wersje jądra od 4.9 do 4.14.8. Ograniczenie luki jest możliwe poprzez ustawienie opcji w sysctl:
echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled
lub
sysctl -w kernel.unprivileged_bpf_disabled=1 echo kernel.unprivileged_bpf_disabled=1 | \ tee /etc/sysctl.d/90-CVE-2017-16995-CVE-2017-16996.conf
Spowoduje ona zablokowanie dostępu do wywołania bpf()
dla nieuprawnionych użytkowników (ponowne jej wyłączenie wymagać będzie restartu systemu).
Więcej informacji: Unprivileged bpf(), Debian, RedHat/CentOS, Ubuntu
Ostatni komentarz :