■Debianでは早速更新されています。
2013/02/26現在、Redhatには、まだ修正は公開されていません。
xen-pcibackenablemsi-dos (81923)
http://xforce.iss.net/xforce/xfdb/81923
DSA-2632-1 linux-2.6 -- 特権の昇格/サービス拒否
http://www.debian.org/security/2013/dsa-2632.ja.html
CVE-2013-0231
https://access.redhat.com/security/cve/CVE-2013-0231
■Squeezeでいつものようにアップデートしたら、以下の警告が出た。
$ sudo apt-get update
$ sudo apt-get upgrade
...
linux-base (2.6.32-48squeeze1) を設定しています ...
linux-image-2.6.32-5-amd64 (2.6.32-48squeeze1) を設定しています ...
Running depmod.
Running update-initramfs.
update-initramfs: Generating /boot/initrd.img-2.6.32-5-amd64
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8105e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-1.fw for module r8169
Examining /etc/kernel/postinst.d.
...
■RTL-8169のサードパーティ製ドライバの様子。
$ sudo lspci | grep Ether
03:05.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet (rev 10)
03:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet (rev 10)
03:08.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5788 Gigabit Ethernet (rev 03)
■下記公式の通り、non-freeの扱いになっている。
http://packages.debian.org/squeeze/firmware-realtek
■r8169のモジュールは下記にある。
$ sudo find / -type f -name "r8169.ko"
/lib/modules/2.6.32-5-amd64/kernel/drivers/net/r8169.ko
■モジュールは読み込まれている。
$ sudo /sbin/lsmod | grep r81
r8169 36792 0
mii 3210 1 r8169
■エラーやドロップ、オーバーロードは無い。
$ sudo netstat -i | awk '{OFS="\t";print $1,$5,$6,$7,$9,$10,$11}'
カーネルインタフェーステーブル
Iface RX-ERR RX-DRP RX-OVR TX-ERR TX-DRP TX-OVR
bond0 0 0 0 0 0 0
eth0 0 0 0 0 0 0
eth1 0 0 0 0 0 0
eth2 0 0 0 0 0 0
lo 0 0 0 0 0 0
■「sources.list」には「non-free」を読み込む設定があるので、
最初の警告にあったファイルを含むパッケージを確認して、インストール。
$ grep non-free /etc/apt/sources.list
deb http://ftp.jp.debian.org/debian/ squeeze main non-free
$ sudo apt-file update
$ apt-file search rtl8105e-1.fw
firmware-realtek: /lib/firmware/rtl_nic/rtl8105e-1.fw
$ apt-cache search firmware-realtek
firmware-realtek - Binary firmware for Realtek wired and wireless network adapters
$ dpkg -l | grep ^ii | grep firmware-realtek | wc -l
0
$ sudo apt-get install -y firmware-realtek
$ sudo find /lib/firmware/rtl_nic -type f -print
/lib/firmware/rtl_nic/rtl8168e-3.fw
/lib/firmware/rtl_nic/rtl8168d-2.fw
/lib/firmware/rtl_nic/rtl8168e-2.fw
/lib/firmware/rtl_nic/rtl8105e-1.fw
/lib/firmware/rtl_nic/rtl8168d-1.fw
/lib/firmware/rtl_nic/rtl8168e-1.fw
■initrdをアップデートする。
「update-initramfs」はバックアップを取らない設定なので、手動でコピー。
$ grep -v "^#\|^\$" /etc/initramfs-tools/update-initramfs.conf
update_initramfs=yes
backup_initramfs=no
$ sudo cp /boot/initrd.img-2.6.32-5-amd64 /boot/initrd.img-2.6.32-5-amd64.bak
$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-2.6.32-5-amd64
$ ls /boot/initrd.img*
/boot/initrd.img-2.6.32-5-amd64
/boot/initrd.img-2.6.32-5-amd64.bak
■「initrd」のアップデート前後でファームウエアが含まれているかどうかが確認出来る。
cpioは「-t」オプションで一覧のみとしているが、操作を間違えると困るので、workディレクトリで作業する。
$ uname -a
Linux ibm-amddebian 2.6.32-5-amd64
$ lv -s /usr/share/doc/linux-image-2.6.32-5-amd64/changelog.Debian.gz | head -8
linux-2.6 (2.6.32-48squeeze1) stable-security; urgency=high
* ptrace: Fix race condition allowing kernel stack corruption (CVE-2013-0871)
* xen: pciback: rate limit error message from pciback_enable_msi()
(CVE-2013-0231)
-- dann frazier <dannf@debian.org> Sun, 24 Feb 2013 14:34:44 -0700
$ mkdir work && cd work
$ pwd | sed s%.*/%%g
work
$ gunzip -c /boot/initrd.img-2.6.32-5-amd64.bak | cpio -i -t | grep rtl
58747 blocks
$ gunzip -c /boot/initrd.img-2.6.32-5-amd64 | cpio -i -t | grep rtl
lib/firmware/rtl_nic
lib/firmware/rtl_nic/rtl8168d-2.fw
lib/firmware/rtl_nic/rtl8168e-2.fw
lib/firmware/rtl_nic/rtl8105e-1.fw
lib/firmware/rtl_nic/rtl8168d-1.fw
lib/firmware/rtl_nic/rtl8168e-1.fw
53956 blocks
$ cd ../
$ ls -d work/
work/
$ ls -d work/ | xargs rmdir
$ ls -d work/
ls: cannot access work/: そのようなファイルやディレクトリはありません