Linuxカーネルのptraceサブシステムにおいて、ローカル特権昇格の脆弱性(ssh-keysign-pwn、CVE-2026-46333)が発見されました。本脆弱性は、非特権のローカルユーザーがroot権限でオープンされているファイル(SSHホスト鍵や/etc/shadow等)を読み取れる極めて深刻な問題です。2026年5月15日に公開された本脆弱性について、弊社サーバ製品の対応状況と対処方法をご案内いたします。
詳細については以下URLをご確認ください。
Linuxカーネルの__ptrace_may_access()において、ターゲットプロセスのmm(メモリ管理構造体)がNULLの場合にdumpableチェックがスキップされる設計不備が存在します。プロセス終了時、カーネルはexit_mm()をexit_files()より先に実行するため、特権プロセスがファイルディスクリプタを開いたままmmを解放する時間窓が発生します。この時間窓において、同一UIDの非特権プロセスがpidfd_getfd(2)システムコールを呼び出すことで、特権プロセスが開いているファイルディスクリプタを取得可能です。
開されているPoC(Proof of Concept)では、ssh-keysignプロセスから/etc/ssh/ssh_host_rsa_keyを、chageプロセスから/etc/shadowを読み取るエクスプロイトが実証されています。
なお、本脆弱性はSSHのバグではありません。「ssh-keysign-pwn」という名称は、PoCの攻撃対象がssh-keysignプロセスであることに由来します。根本原因はLinuxカーネルのptraceアクセス制御の不備です。
2020年10月以降にリリースされたカーネルで、本脆弱性の修正コミットが含まれていないバージョンが対象となります。
| バージョン | 対象カーネル | パッチ済みカーネル | 暫定対処 | パッチ提供状況 |
|---|---|---|---|---|
| 24.04 LTS | 6.x系 | 未リリース | あり(sysctl設定) | Vulnerable(パッチ未リリース) |
| 22.04 LTS | 5.15.x系 | 未リリース | あり(sysctl設定) | Vulnerable(パッチ未リリース) |
| 20.04 LTS | 5.4.x系 | 未リリース | あり(sysctl設定) | Needs evaluation(評価中) |
Ubuntuの全バージョンにおいて、2026年5月18日時点でパッチ済みカーネルは未リリースです。暫定対処の適用を強く推奨いたします。
| バージョン | パッチ済みカーネル | パッチ提供状況 |
|---|---|---|
| Red Hat Enterprise Linux 9 | 未リリース | Vulnerable(パッチ未リリース) |
| Red Hat Enterprise Linux 8 | 未リリース | Vulnerable(パッチ未リリース) |
| バージョン | パッチ済みカーネル | パッチ提供状況 |
|---|---|---|
| AlmaLinux 9 | kernel-5.14.0-611.54.6.el9_7 |
ディストリビューターからリリース済み |
| AlmaLinux 8 | kernel-4.18.0-553.124.4.el8_10 |
ディストリビューターからリリース済み |
AlmaLinuxではパッチ済みカーネルが本番リポジトリにリリースされていますが、カーネルアップデートにより弊社出荷時にセットアップしたアプリケーションやライブラリの動作に影響を及ぼす可能性がございます。弊社にて動作検証を実施し、正常に動作することを確認した上で、パッチ適用方法を本ページにてご案内いたします。検証完了までは、暫定対処の適用を推奨いたします。
暫定対処として、以下の手順で脆弱性の悪用を防止できます。kernel.yama.ptrace_scopeパラメータを2(管理者のみアタッチ許可)または3(アタッチ禁止)に設定することで、既知のPoCの実行をブロックします。
rootで計算機にログインし、以下のコマンドを実行してください。
# sysctl -w kernel.yama.ptrace_scope=3
kernel.yama.ptrace_scope = 3
または、管理者のみptraceを許可する設定(2)を選ぶことも可能です。
# sysctl -w kernel.yama.ptrace_scope=2
kernel.yama.ptrace_scope = 2
再起動後も設定が有効になるよう、/etc/sysctl.d/に設定ファイルを作成します。
# cat > /etc/sysctl.d/99-ssh-keysign-pwn.conf << 'EOF'
kernel.yama.ptrace_scope = 3
EOF
以下のコマンドを実行し、設定が正しく反映されていることを確認してください。
# sysctl kernel.yama.ptrace_scope
kernel.yama.ptrace_scope = 3
再起動後にも設定が永続化されていることを確認します。
# sysctl kernel.yama.ptrace_scope
kernel.yama.ptrace_scope = 3
kernel.yama.ptrace_scopeを2または3に設定した場合、以下の機能に影響があります。
| ptrace_scopeの値 | 影響 |
|---|---|
| 2(管理者のみアタッチ許可) | root以外のユーザーによるgdb、strace -p等のデバッグツールの使用が制限される |
| 3(アタッチ禁止) | すべてのユーザー(root含む)によるgdb、strace -p等のデバッグツールの使用が不可となる |
平日9:30~17:30(土曜日、日曜日、祝祭日、年末年始、夏期休暇は、休日とさせていただきます。)