Atsign NoPortsの脆弱性、任意のatSignにSSHアクセスを許してしまう問題

ポートを開放しないリモートアクセスシステムは、攻撃対象領域を縮小することを目的としています。しかし、認可チェックにおけるたった一つの不備が、リスクをアプリケーション層に押し戻してしまうことがあります。UltraViolet Cyberの研究者は、Atsign NoPortsプラットフォームのsshnpd Cデーモンに存在する2件の脆弱性を発見しました。この2つを組み合わせることで、有効なatSign識別子を持つ者なら誰でも、不正なSSHアクセスを取得できる可能性がありました。

NoPortsの本来の仕組み

NoPortsはネットワーク上にSSHサービスを公開しません。代わりに、送信者を暗号学的に検証した上で、リレーインフラを介して暗号化セッションを構築します。sshnpdの脆弱なC実装では、メッセージの真正性そのものは確かに検証されていました。しかし、このデーモンはセッション要求・SSH要求・トンネル要求を処理する前に、送信者を信頼済み管理者リストと照合することを怠っていました。

第二の欠陥:逆転した鍵検証

2つ目のバグは、SSH公開鍵の転送を許可する-sフラグを付けてデーモンを実行した際に表面化しました。本来この関数は、有効な鍵プレフィックスを検証するはずでした。しかし複数のミスが重なった結果、比較ロジックが逆に機能してしまい、不適切なデータが正しいものとして扱われていました。その結果、攻撃者が送信したデータが、authorized_keysへの鍵書き込みを行うコードにまで到達し得る状態になっていました。

2つのエラーの連鎖

この2つの欠陥を組み合わせると、技術的に成立する攻撃チェーンが生まれます。有効なatSign識別子を持つ者であれば、管理者権限なしにセッションを要求し、自分自身のSSH鍵を送信して、それをauthorized_keysに確実に登録させ、その後追加した鍵を使ってNoPortsリレー経由でlocalhost:22に接続することが可能でした。注目すべきは、パスワードの窃取もメモリ破壊もプロトコルの改ざんも一切必要としない点です。

誰が特にリスクにさらされていたか

この問題は、まさに受信方向のSSH接続やVPN、公開された管理インターフェースを廃止する目的でNoPortsを導入していたシステムに、特に大きな影響を及ぼしました。弱点はメッセージ処理ロジックにあったため、通常のネットワークスキャンではこの脆弱性を発見できなかったはずです。なお、UltraViolet Cyberはあくまで技術的な攻撃チェーンを説明しているのみで、実環境における攻撃の確認は報告されていません。

開示、パッチ、および推奨事項

Atsignは8月21日にこの報告を受け取り、2026年8月25日に修正版をリリースしました。CVE番号の割り当て申請については現在審査中です。UltraViolet Cyberは、Cデーモンを緊急にアップデートすること、インストール済みのバージョンを確認すること、authorized_keys内に見覚えのない鍵がないか確認すること、そして–managerリストをチェックすることを推奨しています。また、同様のシステムについては、必要な権限を持たないユーザーが確実に拒否される設定になっているかを確認することも勧めています。

翻訳元: https://meterpreter.org/atsign-noports-vulnerabilities/

本記事は meterpreter.org の記事を翻訳・要約したものです。