
CVE-2018-16987の詳細 - Squash TMにおけるTAサーバーのパスワードの平文保存
これは、ペネトレーションテスト中にSquash TMで発見した、機密情報の平文保存および機密情報漏洩の脆弱性です。
Squash TMは、テストケースを管理するためのWebインターフェースです。プロジェクトへのリンク
Squash TM(少なくともバージョン1.18.0まで)は、管理パネルで外部サービスのパスワードを平文で表示します。これは、HTMLソースコード内のta-server-passwordフィールドによって示されています。
SquashTMの管理パネルでは、外部サービス(別名自動化サーバー)のページに、そのサービスのアカウントのパスワードが平文で表示されます。これらの外部サービスは何でもあり得ますが、一般的な例としてJenkinsサーバーが挙げられます。
以下はURLの例です: http://localhost:8080/squash/administration/test-automation-servers/1
以下はページのソースコードの抜粋です:
<label for="ta-server-password">Password</label>
<div id="ta-server-password" class="display-table-cell" style="font-weight: bold;">cleartext_password</div>
これが発生するということは、外部サービスのパスワードが平文で保存されていることも意味しており、私はデータベース(H2およびPostgreSQL)からパスワードをgrepして確認しました。
また、この脆弱性は、アプリケーションのデフォルト設定が以下の通りであることから、さらに深刻です:
推奨スコア: 4.1 (CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N)
将来の研究者への参考として、実際のユーザーのパスワードはSHA1で保存されています。理想的ではありません。 コードベースを簡単に監査しましたが、すべてのSQLリクエストは正しく構築されている(プリペアドステートメント)ようです。 フィルタリングされていないユーザー入力(GETパラメータ)からの逆シリアル化(レポート生成および検索機能)がいくつかあり、脆弱なバージョンのJacksonコンポーネントを使用していますが、ポリモーフィック型処理がないため、悪用は不可能と思われます。