sslh の脆弱性 CVE-2025-46807/46806 が FIX:SSH/HTTPS/OpenVPN に大きな影響?

Critical sslh Vulnerabilities Allow Remote Denial-of-Service Attacks

2025/06/17 gbhackers — SSH/HTTPS/OpenVPN などの複数サービスで、単一のネットワーク・ポートを共有するために、広く利用されるプロトコル・マルチプレクサである sslh に存在する2件の深刻な脆弱性が、セキュリティ研究者たちにより明らかにされた。この脆弱性 CVE-2025-46807/CVE-2025-46806 を悪用するリモートの攻撃者は、sslh をクラッシュさせ、その利用を停止することで、結果として正規ユーザーに対するサービス拒否 (DoS) 攻撃うを引き起こす可能性を手にする。

CVE-2025-46807:ファイル記述子の枯渇によるセグメンテーション違反

1つ目の深刻な脆弱性 CVE-2025-46807 は、sslh-select/sslh-ev の亜種に影響するものだ。これらのモードにおける sslh は、受信 UDP セッションごとに新しいファイル記述子を割り当てることで、セッションを追跡する。

しかし、ネットワーク・アクティビティの発生が止まっても、それらの記述子を適切に閉じることができないという問題がある。したがって攻撃者は、ファイル記述子のデフォルト制限である1024に達するまで、多数の UDP セッション (各セッションは 1 Byteのみを送信) を作成することで、この脆弱性を悪用できる。

この閾値を超えると、sslh は新しい接続を処理しようと試みるが、NULL ポインタ参照が発生してしまい、セグメンテーション違反によるサービスの完全なクラッシュへと至る。つまり、リモートの攻撃者は sslh を簡単にオフラインにし、すべての正当な接続を阻止できる。

この脆弱性は、リソース枯渇の問題 (CWE-770) に分類され、CVSS 4.0 のベース・スコアは 8.7 と評価されている。

なお、sslh-fork バリアントは、TCP 接続ごとに新しいプロセスを生成し、5秒間のタイムアウトを強制するため、この影響を受け難いとされる。

ただし、数千のプロセスが生成されると、システム・リソースへの負荷が増大するため、管理者に対して推奨されるのは、Linux cgroups や ulimit 制約などの、システム・レベルでの保護の実装である。

CVE-2025-46806:OpenVPN プローブにおける不整列メモリ・アクセス

2つ目の脆弱性 CVE-2025-46806 は、OpenVPN プロトコル・プローブにおける安全が確保されないメモリ処理に起因する。

具体的には、sslh はヒープに割り当てられたネットワーク・バッファ上の、整列されていない uint32_t ポインタへのダイレクトな参照が発生する。

ARM のような厳密なアライメント・アーキテクチャでは、この動作により SIGBUS エラーが発生し、プロセスが即座にクラッシュする可能性がある。x86_64 システムでは動作が未定義であり、診断が困難な微妙な障害につながる可能性がある。

特別に細工された UDP パケットシーケンスの送信により、この脆弱性はリモートから悪用され、不整列アクセスを引き起こし、サービス拒否状態にいたる可能性を生じる。

この脆弱性は、範囲外のポインタ・オフセット使用の問題として分類され、sslh のバージョン 2.2.4 未満に影響を及ぼす。

CVE IDVulnerability TitleAffected VersionsDescription
CVE-2025-46807File Descriptor Exhaustion Triggers Segmentation Faultsslh-select, sslh-ev (≤2.2.1)Failure to close UDP session file descriptors allows remote attackers to exhaust available descriptors, causing a NULL pointer dereference and segmentation fault (DoS).
CVE-2025-46806Misaligned Memory Accesses in OpenVPN Protocol ProbeAll variants (≤2.2.1)Unsafe dereferencing of unaligned uint32_t pointers in OpenVPN probe allows remote attackers to trigger SIGBUS or undefined behavior, causing process crash (DoS).

すでに、これらの脆弱性は、sslhバージョン 2.2.4 で修正されている。 sslh-select/sslh-ev のセグメンテーション違反は、コミット ff8206f7c で修正され、メモリ・アクセスの不整合はコミット 204305a88fb で解決されている。

ユーザーに対して強く推奨されるのは、sslh v2.2.4 以降への速やかなアップグレードにより、これらのリスクを軽減することだ。

さらに、セキュリティ専門家たちが推奨するのは、特に高リスク環境において、DoS 攻撃のリスクを低減するために、システム・レベルのリソース制限を設定することだ。

sslh はネットワーク・サービスの多重化に役立つツールであるが、これらの脆弱性が浮き彫りにするのは、厳格なコード監査とタイムリーなパッチ適用の重要性である。

この v2.2.4 のリリースにより、sslh ユーザーは、リモートからのサービス拒否攻撃に対する、ツールの耐性への信頼を取り戻せる。