Canonical выпустила обновления безопасности ядра для Ubuntu 22.04 LTS и 20.04 LTS, закрывающие восемь уязвимостей в ядре 5.15 LTS. Новая версия пакета — linux-image 5.15.0.46.46. Это второе обновление для систем, использующих HWE-ядро из Jammy.
Разберём, какие уязвимости исправлены, как обновиться и что проверить.
HWE-ядро
Ubuntu 20.04 LTS изначально поставлялась с ядром 5.4. Позже Canonical добавила HWE (Hardware Enablement) — ядро 5.15 из 22.04 для поддержки нового оборудования. Пользователи могут выбрать его, но тогда обновления приходят из ветки 22.04.
Проверьте, какое ядро у вас: это определяет, какой пакет обновлять.
uname -r
dpkg -l | grep -E "linux-image|linux-generic|linux-hwe" | tail -10
apt-cache policy linux-image-generic | head -20
Что исправлено
Среди уязвимостей — проблема в подсистеме netfilter и ошибка CVE-2022-2588 в реализации планировщика пакетов. Обе могут приводить к повышению привилегий или отказу в обслуживании при локальном доступе.
Точный список смотрите в USN-объявлении. Важно не название, а то, что патч закрывает пути эксплуатации.
# статус уязвимостей
for f in /sys/devices/system/cpu/vulnerabilities/*; do
echo "$(basename $f): $(cat $f)"
done
# проверить журнал обновлений
grep -i "linux" /var/log/apt/history.log | tail -20
Как обновиться
Стандартный путь: обновить список пакетов, установить обновления и перезагрузиться. Для серверов выберите окно обслуживания.
sudo apt update
sudo apt full-upgrade
# проверить, что установлено новое ядро
dpkg -l | grep linux-image | tail
sudo reboot
После перезагрузки проверьте версию и состояние сервисов.
uname -r
systemctl --failed
journalctl -b -p err | tail -30
ip -br a
Livepatch
Если вы используете Ubuntu Pro/Advantage, livepatch может применить исправление без перезагрузки. Проверьте статус, но помните: не все патчи поддерживают live-применение.
canonical-livepatch status 2>/dev/null | head -20
systemctl status canonical-livepatch --no-pager 2>/dev/null | head
Планируйте перезагрузку в ближайшее окно, даже если livepatch активен.
Приоритет
Если сервер доступен из интернета или на нём работают многопользовательские сервисы, обновляйтесь быстро. Локальные уязвимости требуют доступа, но в контейнерах и на shared-хостах риск выше.
- Определите вектор атаки: локальный или удалённый.
- Проверьте, доступен ли сервис извне.
- Оцените наличие публичного эксплойта.
- Выберите срок: часы, дни или плановое окно.
- Задокументируйте решение.
# проверить внешние сервисы
ss -tulpn
sudo ufw status verbose
# список контейнеров
docker ps 2>/dev/null | head
Проверка после обновления
Убедитесь, что загрузилось новое ядро и что сторонние модули собрались. Если NVIDIA или VirtualBox не работают, проверьте DKMS.
uname -r
dkms status
lsmod | grep -E "nvidia|vbox|zfs"
journalctl -k -b | grep -iE "error|fail|firmware" | head -30
Если что-то сломалось, вернитесь на предыдущее ядро через GRUB и сохраните логи.
journalctl -k -b -1 | tail -100
ls /boot/vmlinuz-*
Автоматизация
Для парка машин используйте unattended-upgrades или систему управления конфигурацией. Настройте канареечный узел и проверяйте здоровье после обновления.
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
cat /etc/apt/apt.conf.d/50unattended-upgrades | head -40
Не откладывайте перезагрузки на месяцы: накопленные патчи сложнее применять, а уязвимости остаются открытыми.
Что делать, если обновление недоступно
Если вы используете ядро вне поддержки, обновитесь до поддерживаемой ветки. Для старых систем рассмотрите Ubuntu Pro с расширенной поддержкой или миграцию.
ubuntu-support-status 2>/dev/null | head -20
# проверить доступные версии
apt-cache search linux-image | grep generic | tail -10
Сетевые правила после обновления
Исправления в netfilter могут изменить поведение существующих правил. После перезагрузки проверьте, что файрвол загрузился и нужные порты открыты. Не оставляйте систему с пустым набором правил.
sudo iptables -S | head -30
sudo nft list ruleset 2>/dev/null | head -40
sudo ufw status verbose
sudo firewall-cmd --list-all 2>/dev/null
Если вы используете Docker или Kubernetes, проверьте, что цепочки NAT восстановились и контейнеры видят сеть.
docker network ls 2>/dev/null
docker run --rm alpine ping -c 1 1.1.1.1 2>/dev/null
kubectl get nodes 2>/dev/null
Для серверов с сложными правилами храните конфигурацию в репозитории и применяйте её автоматически. Ручные правки после перезагрузки забываются.
# пример сохранения правил (зависит от дистрибутива)
sudo iptables-save | sudo tee /etc/iptables/rules.v4
sudo ip6tables-save | sudo tee /etc/iptables/rules.v6
Проверка целостности после перезагрузки
После обновления ядра полезно убедиться, что файловая система и загрузчик в порядке. Не игнорируйте предупреждения: повреждённый initramfs может проявиться позже.
sudo update-initramfs -u -k all
sudo update-grub
sudo fsck -f /dev/sda1 2>/dev/null
ls -la /boot/
На сервере с несколькими дисками проверьте SMART и состояние RAID. Обновление ядра — хороший повод для плановой проверки.
sudo smartctl -H /dev/sda
cat /proc/mdstat
zpool status 2>/dev/null
Сроки и коммуникация
Предупредите пользователей о перезагрузке заранее. Если сервис критичен, подготовьте резервный узел и проверьте, что переключение работает до окна обслуживания.
systemctl list-dependencies --reverse multi-user.target | head
Итоговая проверка
Убедитесь, что новая версия ядра загружается по умолчанию и что в GRUB остался запасной пункт. Это занимает минуту, но спасает при регрессии.
sudo grep -E "^menuentry|^submenu" /boot/grub/grub.cfg | head -10
Итог
Ubuntu 22.04 и 20.04 получили обновление ядра 5.15.0.46.46 с исправлением восьми уязвимостей, включая netfilter и CVE-2022-2588. Обновитесь, перезагрузитесь и проверьте сервисы и модули. Используйте livepatch, но планируйте перезагрузку. Для парка машин автоматизируйте процесс и тестируйте на канареечном узле.