
cve-2018-8108
セキュリティテスト中に偶然この問題を発見しました buiはフロントエンドフレームワークであり、多くの企業がこのフレームワークを使用して自社のフロントエンドを構築しています
通常、xssを防ぐ方法は、ユーザー入力を不信任の原則に従って統一的に扱い、出力時にエスケープして、フロントエンドページに渡して表示することです しかし、buiのselectコンポーネントはこの出力を表示する際に、すでにエスケープされたユーザー入力を再びエスケープしてしまい、xssペイロードが元のセキュリティメカニズムを回避して実行され続ける原因となっています
添付の例は実際のケースに基づいています
idが「workGroupList」のinputタグ内のデータがすでにエスケープされていることがわかります 以下のBUI.useはselectコンポーネントを使用する際に「workGroupList」のデータを取得し、入力したxssペイロードの実行を直接トリガーしました
実行してみて確認できます