先日の Copy Fail に引き続き、新たな Linux の脆弱性である Dirty Frag が公開されました。Copy Fail のときは Linux にパッチが比較的早く降ってきたので Linux の最新版を当てることで対応していましたが、今回の Dirty Frag はまだパッチが無いらしいです[1]。幸い緩和策は公式に公開されているので、NixOS でこれを適用してみます。
公式の手順は次のとおりです(適当に見やすく編集):
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf;
rmmod esp4 esp6 rxrpc 2>/dev/null;
echo 3 > /proc/sys/vm/drop_caches
esp4・esp6・rxrpc は手元ではロードされていなかった[2]ので rmmod やページキャッシュの削除は不要で、/etc/modprobe.d を編集するだけで良さそうです。ということで NixOS Options の boot.extraModprobeConfig を編集します:
boot.extraModprobeConfig = ''
# cf. https://www.walbrix.co.jp/article/dirtyfrag-linux-lpe.html
install esp4 /bin/false
install esp6 /bin/false
install rxrpc /bin/false
'';
nixos-rebuild switch すると次の通り無事 /etc/modprobe.d/nixos.conf が書き換わりました:
$ cat /etc/modprobe.d/nixos.conf | grep install -B1
# cf. https://www.walbrix.co.jp/article/dirtyfrag-linux-lpe.html
install esp4 /bin/false
install esp6 /bin/false
install rxrpc /bin/false
注釈
-
GitHub のサイトを見ると “Detailed information and the exploit for this vulnerability were published publicly by an unrelated third party, breaking the embargo.” とか書いてあって不穏な空気を感じます。 ↩
-
lsmod | grep '^esp4$'のように確認しました。 ↩