---
title: "Rust の SSH ライブラリ russh に 4 件（CVE-2026-116794 ほか）: ssh-add -c の確認が無視される不具合など。0.65 で修正"
url: https://n-t-p.io/worldsecurity/articles/russh-agent-confirm-bypass-ssh-dos-2026-116794
lang: ja
kind: 速報
category: 脆弱性・CVE
author: World Security 編集部
published: 2026年11月7日
updated: 2026年11月7日
severity: 高
cve: CVE-2026-116794, CVE-2026-116774, CVE-2026-116773, CVE-2026-116696
---

# Rust の SSH ライブラリ russh に 4 件（CVE-2026-116794 ほか）: ssh-add -c の確認が無視される不具合など。0.65 で修正

> **TL;DR:** Rust の SSH ライブラリ russh に 4 件の脆弱性。最も重い CVE-2026-116794（High）は、エージェントが ssh-add -c の確認を無視して署名する。ほかに書き込み停止（Medium）・メモリ増加（Medium・Low）。0.50.0-beta.12〜0.64.1 が対象で、0.65 で修正。KEV 掲載なし、EPSS は 0.3% 以下。

**要点**
- russh のエージェントサーバーが、確認つきで登録した鍵を確認なしで署名に使う（CVE-2026-116794、High、CWE-862）。秘密鍵は漏れないが、鍵を使わせてしまう
- `Agent::confirm` を実装している製品が対象。エージェントに接続できる相手（`ssh -A` の転送先を含む）が確認なしで鍵を使える
- ほか 3 件は、チャネル書き込みの停止（116774）、EXT_INFO によるメモリ増加（116773）、確認指定の大量送信によるメモリ増加（116696）
- 0.65 に更新。0.65.0 は破壊的変更を含み、`confirm` 未実装の製品は更新後に止まる可能性がある
- KEV 掲載なし。EPSS は 0.11〜0.26%（10/30）。NVD は未確認

Rust 製の SSH ライブラリ russh に、2026 年 10 月 30 日（UTC）に 4 件の脆弱性が公開されました。いずれも 0.65 で修正されています（0.65.0 は 10/25 公開）。最も重いのは、SSH エージェントが `ssh-add -c` で付けた「署名のたびに確認する」設定を守らない CVE-2026-116794 で、GitHub Advisory の重大度は High です。CISA の KEV には載っていません。EPSS は 4 件とも 0.3% 以下です（10/30 時点）。

## 4 件の内容

| CVE | 重大度（GitHub） | 内容 | 影響する版 |
|---|---|---|---|
| CVE-2026-116794 | High（CVSS v4 8.3、v3 は未設定） | エージェントサーバーが、確認つきで登録された鍵を確認なしで署名に使う（CWE-862） | 0.50.0-beta.12 〜 0.64.1 |
| CVE-2026-116774 | Medium（CVSS 4.3） | 相手が最大パケットサイズを 0 と申告すると、チャネルへの書き込みが止まったままになる | 0.60.0 〜 0.64.1 |
| CVE-2026-116773 | Medium（CVSS 4.3） | クライアントが EXT_INFO パケットを数の制限なく保存し、サーバー側から送り続けられるとメモリが増え続ける | 0.65 未満 |
| CVE-2026-116696 | Low（CVSS 3.3） | エージェントサーバーが、確認の指定（CONSTRAIN_CONFIRM）を何件でも受け付け、メモリが解放されない | 0.65.0 未満 |

## CVE-2026-116794: 確認の設定が無視される

- russh でエージェントを作ると、`Agent::confirm` で「この鍵で署名してよいか」を利用者に尋ねる処理を書けます。ところが 0.50.0-beta.12 以降は、その処理が呼ばれず、常に「許可」として扱われます。勧告は、52 版すべて（0.64.1 まで）で同じ状態だったと書いています。
- `ssh-add -c` は成功と表示されるので、利用者は守られていると思い込みます。実際には、エージェントに接続できる相手（同じ利用者の他のプロセス、`ssh -A` で転送した先のホスト）が、確認なしで鍵を使えます。
- 秘密鍵そのものは取り出されません。影響は、他のホストへのログインや git コミットの署名など、鍵を使わせてしまうことです。
- 影響を受けるのは、russh でエージェントを作り、`Agent::confirm` を実装している製品です。既定の `confirm`（常に許可）のままなら、挙動は変わりません。勧告は、下流の例として Proton Pass のデスクトップ版（russh 0.62.7 を使用）を挙げています。ただし、勧告は「公開されているコードからの判断で、動作は試していない」としています。
- 修正（0.65）で `confirm` が再び呼ばれます。`confirm` を未実装のまま置いている製品は、更新後にそこで止まる可能性があります。

## 他の 3 件

- **CVE-2026-116774:** 通信相手がチャネルを開くときに最大パケットサイズ 0 を申告すると、`AsyncWrite` 経由の書き込み（`Channel::data()`、`make_writer()`、`into_stream()`）が完了もエラーもせず止まります。その書き込みを待つタスクが止まる問題で、サーバーを攻撃する場合もクライアントを攻撃する場合もあります。認証後の接続（権限 低）が前提の評価です。
- **CVE-2026-116773:** 認証前の段階で、サーバーが EXT_INFO パケットを送り続けると、クライアントの記憶領域が増え続けます。勧告の計測では、約 26 KB のパケット 400 個で 49.1 MiB が残りました。利用者がサーバーに接続する操作が必要です。
- **CVE-2026-116696:** エージェントのソケットに接続できる相手が、確認の指定を大量に含む鍵の追加を繰り返すと、メモリが増え続けます。勧告の計測では、256 KiB の要求 6 回で 72.4 MiB が残りました。ローカルで接続できる相手が前提です。

## 対応

- russh を 0.65 以降に更新してください（`cargo update -p russh`、または `Cargo.toml` で `russh = "0.65"` 以上）。`cargo tree -i russh` で、依存の中にある古い版も探せます。
- CVE-2026-116794 は、更新までの間、確認つき登録（`ssh-add -c`）に頼らず、エージェントの転送（`ssh -A`）を必要なときだけにするなどで、鍵を使える相手を減らします。
- 0.65.0 は破壊的変更を含みます（`Handler::auth_publickey_offered`・`auth_publickey` の引数が変わり、`async-trait` 依存が削除されました）。更新時に自分のコードの修正が必要です。

## 確認できていない点

- 勧告に、実際の攻撃が確認された記載はありません。KEV にも載っていません。
- CVE-2026-116794 の CVSS v3 は勧告に設定がなく、上の 8.3 は v4 の値です。
- 4 件とも NVD の評価は、この記事の時点で未確認です。数値は GitHub Advisory の値です。
- Proton Pass が実際に影響を受けるか、修正版が出ているかは確認していません。


## 出典
- [GitHub Advisory GHSA-vp5q-ff62-jwqv](https://github.com/advisories/GHSA-vp5q-ff62-jwqv) — GitHub
- [GitHub Advisory GHSA-fw5c-8223-6h42](https://github.com/advisories/GHSA-fw5c-8223-6h42) — GitHub
- [GitHub Advisory GHSA-4p9f-7p9m-5vfg](https://github.com/advisories/GHSA-4p9f-7p9m-5vfg) — GitHub
- [GitHub Advisory GHSA-9wfm-jcj8-jfv9](https://github.com/advisories/GHSA-9wfm-jcj8-jfv9) — GitHub
- [russh 0.65.0 リリース](https://github.com/Eugeny/russh/releases/tag/v0.65.0) — russh
- [NVD CVE-2026-116794](https://nvd.nist.gov/vuln/detail/CVE-2026-116794) — NIST NVD
- [FIRST EPSS API](https://api.first.org/data/v1/epss?cve=CVE-2026-116794,CVE-2026-116774,CVE-2026-116773,CVE-2026-116696) — FIRST
- [CISA Known Exploited Vulnerabilities Catalog（JSON）](https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json) — CISA

---
出典: World Security（株式会社NTP） https://n-t-p.io/worldsecurity/articles/russh-agent-confirm-bypass-ssh-dos-2026-116794