CVE-2022-24693
説明
QRTB 2.7.8 までのファームウェアを搭載した Baicells Nova436Q および Neutrino 430 デバイスには、簡単に発見できるハードコードされた認証情報が含まれており、リモートの攻撃者が ssh で認証するために使用できます。(認証情報はファームウェア内に保存され、crypt 関数で暗号化されています。)
CVSS スコア
CVSS 9.8
脆弱性タイプ
CWE-284: 不適切なアクセス制御
製品ベンダー
BaiCells
影響を受ける製品コードベース
- NOVA436Q - QRTB 2.7.8 (2.9.x より前の全ビルドの可能性が高い)
- NEUTRINO430 - QRTB 2.7.8 (2.9.x より前の全ビルドの可能性が高い)
影響を受けるコンポーネント
ユーザー名とパスワードはファームウェア内で固定されており、crypt() を使用して暗号化されているため、クラック可能です。
攻撃タイプ
リモート
影響: コード実行
True
影響: サービス拒否
True
影響: 権限昇格
True
影響: 情報漏えい
True
攻撃ベクトル
初期状態では、ファームウェアに固定のユーザー名とパスワードが含まれています。
参照
ベンダーはこの脆弱性を確認または認識していますか?
はい: https://community.na.baicells.com/t/important-security-notice-for-nova-436q-430-neutrino-430/1729
発見者
Luke Jenkins
タイムライン
- 2021-12-07 - 脆弱性開示ポリシーの公開を求めるメールを Baicells に送信。
- 2021-12-08 - 脆弱性開示ポリシーの草案と連絡先の PGP キーの入手先を含む、Baicells とのメールでの議論。
- 2021-12-08 - 脆弱性の詳細を記載した PGP 暗号化メールを連絡先に送信。
- 2022-02-08 - 今後の QRTB 2.9 ソフトウェアリリースで問題を修正したとの Baicells からの通知を受領。
- 2022-03-22 - Baicells がこのページに平文パスワードを含めないよう要請。
- 2022-03-23 - パスワードを含めないことは単に安全という錯覚を与えるだけだと指摘する返信メールを Baicells に送信。
- 2022-03-28 - Bailcells がこの問題を修正したソフトウェアバージョン QRTB 2.9.10 を公開。
- 2022-03-28 - 空白だったこのページを、脆弱性の詳細を含むよう修正。
- 2022-03-28 - CVE-2022-24693 の公開を求めるリクエストを Mitre に送信。
- 2022-03-28 - このページから平文パスワードを削除するよう求める Baicells からのメール。
- 2022-03-28 - 開示のタイムラインに基づき要請を辞退する返信を Baicells に送信。
- 2022-03-29 - mitre の CVE 割り当てチームから、CVE-2022-24693 の公開リクエストを受領し処理したとのメール通知。
- 2022-03-29 - Baicell の要請が尊重されるよう求める UETN 幹部からの電話。
- 2022-03-29 - メインページからパスワードを削除する要請は尊重するが、パスワードは依然として git 履歴や archive.org で入手可能であることを Baicells に通知するメールを送信。
- 2022-03-30 - この脆弱性の通知を自社ウェブサイトに掲載し、顧客への通知を開始しているという Baicells からのメール。
- 2022-03-30 - セキュリティ脆弱性を警告し、この通知と修正済みソフトウェアへのリンクを記載したメールが Baicells から顧客メールリストに送信。
詳細:
- ユーザー
admin のパスワード Baicells は、unix crypt() DES アルゴリズムを使用して保存されています。
- 非公開かつ設定不可のユーザー
anonymous のパスワード pqmz325 は、unix crypt() DES アルゴリズムを使用して保存されています。
- 非公開、設定不可 (ただし ssh には使用できないと思われる) のユーザー
root のパスワード qpa;10@) は、unix crypt() DES アルゴリズムを使用して保存されています。ベンダーはこれがデバイスごとに一意であると主張していますが、確認されていません。
再現方法
- ベンダーのウェブサイトからファームウェアをダウンロードします。ログインは不要です。顧客としては嬉しい限りですが、セキュリティの観点からは、悪意のある行為者がいかに簡単にファームウェアを入手できるかを理解することが重要です。
- ファームウェアイメージに対して binwalk を実行します。これはファームウェアに含まれるすべてのファイルを抽出するツールです。
/etc/passwd と /etc/shadow からユーザー名とパスワードハッシュを取得します。
- hashcat を使用してハッシュをクラックします。30年以上前の CPU を想定して設計されていることに加え、これらのパスワードを「保護している」unix crypt() 関数はパスワードを 8 文字に制限します。パスワードはすぐにクラックされます。
- anonymous ユーザーの認証情報を使用して、デバイスに ssh でログインできます。手順 2 のポートスキャンや設定ファイルの確認の手間を省くと、dropbear がポート 27149 で待機しています。
備考
これは私が初めて公開する CVE ですので、誤りがありましたらお許しください (またはプルリクエストをお願いします)。
この件に関する支援と後ろ盾を提供してくれた UETN の皆さんに感謝します。
また、この問題の修正に協力してくれた Baicells NA のスタッフにも感謝します。