Sudo の脆弱性 CVE-2026-96512 が FIX:TZ 環境変数の悪用による権限昇格の恐れ

Sudo Vulnerability Lets Attackers Bypass Time-Based Authorization Controls

2026/09/25 gbhackers — 先日公表された Sudo の高深刻度の脆弱性 CVE-2026-96512 を悪用することで、ローカル環境で権限を持たない Linux ユーザーが、sudoers ポリシーにおける時間ベースの認可制限を操作できる可能性がある。この脆弱性は、Sudo が NOTBEFORE/NOTAFTER の制約を評価する際に、攻撃者が制御可能な TZ 環境変数を処理する方法に起因し、Sudo 1.8.20~1.9.17p2 に影響する。

Red Hat は、この脆弱性を Bug 2539327 として追跡しており、現時点では深刻度 High/優先度 High に分類している。上流では修正がコミットされているが、情報公開時点では修正を含む Sudo のリリースは公開されていなかった。

脆弱性の原因と影響

sudoers ポリシーでは、NOTBEFORE/NOTAFTER タグを使用して、昇格した権限でユーザーがコマンドを実行できる時間を制限しており、組織では一時的な管理者アクセス/メンテナンス時間帯/緊急アクセスの手順/スケジュールに基づく権限付与などに利用されている場合がある。

この脆弱性は、Sudo の parse_gentime() 関数が、UTC を示す末尾の「Z」や数値による UTC オフセットなどの明示的なタイムゾーンの接尾辞を持たない時刻値を処理する際に発生する。影響を受けるコードは、これらのタイムスタンプの解釈に mktime() 関数を使用するが、同関数はタイムゾーンの決定時にプロセス環境の TZ 変数を参照する。

さらに、Sudo は setuid-root プログラムとして呼び出したユーザーの環境の一部を継承するため、ローカルの攻撃者は細工した TZ 値を指定し、Sudo による認可の有効期間の解釈に影響を与える可能性がある。

アドバイザリによると、攻撃者は TZ=XXX24 などの極端な POSIX タイムゾーンオフセットを使用して、ポリシーの認可判定に用いる実効時刻を最大で約 25時間ずらせる。それにより、期限切れの NOTAFTER ルールを有効であるように見せたり、NOTBEFORE の制限を有効であるかのように扱わせたりすることが可能である。ただし、この脆弱性によって、すべてのローカルユーザーが任意に root 権限を取得できるわけではなく、攻撃者はすでに時間制限付きの Sudo ルールの適用対象であり、そのルールに設定された他の要件も満たしている必要がある。

なお、この問題では PAM 認証をバイパスできず、Sudo ポリシーでパスワード認証/多要素認証などの PAM による認証が要求される場合、ユーザーは引き続き認証を完了する必要がある。

この脆弱性は時間に基づく認可の判定に影響し、一時的な Sudo 権限をセキュリティ制御として利用している環境では、重大な影響を及ぼす可能性がある。たとえば、管理者に定められた有効期限内で特権メンテナンスコマンドの実行を許可する場合、TZ 環境変数の操作によって、有効期限が切れたユーザーであっても、Sudo にルールが有効であると誤認させる可能性がある。

上流の Sudo では、Todd Miller が 2026年8月29日に作成したコミット 1820a349687522f51023d1ae5925125f59679a8c により、この問題が修正されている。今回のパッチは、Sudo の実行環境から TZ 変数を削除してからタイムゾーンを設定することで、ユーザーが指定したタイムゾーンによる mktime() などの時刻処理への影響を防止する。

管理者は、各ディストリビューションのセキュリティアドバイザリを監視し、ベンダーから Sudo のアップデートが提供され次第、適用する必要がある。適用までの間は、NOTBEFORE/NOTAFTER を使用する sudoers エントリを特定し、特に機密性の高いコマンドの実行を許可するものや、自動的な失効を前提とするものを確認することが求められる。

また、高リスクな権限制御を時間制限付きの sudoers ルールだけに依存させず、一時的な認可/一元的な ID 制御/有効期間の短い認証情報/ログ記録/sudoers ポリシーの定期的な見直しを組み合わせることで、ローカルでのポリシー評価に脆弱性が存在する場合のリスクを軽減できる。