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 ID | Vulnerability Title | Affected Versions | Description |
| CVE-2025-46807 | File Descriptor Exhaustion Triggers Segmentation Fault | sslh-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-46806 | Misaligned Memory Accesses in OpenVPN Protocol Probe | All 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 ユーザーは、リモートからのサービス拒否攻撃に対する、ツールの耐性への信頼を取り戻せる。
sslh は、ポートの多重利用という利便性の高いツールだけに、その影響の広がりが懸念されます。特にファイル記述子の枯渇で NULL ポインタ参照に至る問題は、単純な UDP フラッドでも再現可能で、軽量ツールとしての設計上の弱点が露呈していると、この記事は指摘しています。ご利用のチームは、ご注意ください。よろしければ、SSH で検索と OpenVPN で検索も、ご参照ください。
You must be logged in to post a comment.