TCLインタープリターが組み込まれているシステムでセキュリティテストを行っています。システムはインターネット(HTTP)から入力を受け取り、それを解析して、カスタマイズ可能なTCLスクリプトに渡します。ファジングテスト(HTTPヘッダーでバイナリガベージを送信する)中に、ログに次のエラーが表示されることに気付きました。
TCLエラー:「foreachheader [XXXXX] {}」の実行中に、要素を引用符で囲み、スペースではなく「{}x」を続けてください
また
TCLエラー:「foreachheader [XXXXX] {}」の実行中に、リスト内のオープンクォートが一致しません
ここで、XXXXXは、システムによって解析されたHTTPヘッダーの配列を返すコマンドです。実際のコマンドをわかりにくくして申し訳ありませんが、ベンダーに問題について通知する前に、あまり多くの詳細を公開したくないことをご理解いただければ幸いです(問題であることが判明した場合)。
エラーを生成するTCLコードは非常に単純です。
foreachヘッダー[XXXXX]{}
私の知る限り、HTTP解析はTCLの外部で行われ、解析された値はカスタムコマンド(おそらくTCL拡張機能として実装されている)を介してTCLにアクセスできるようになります。
だから私の質問は:
これらのエラーは、不十分なユーザー入力検証など、システムのセキュリティ問題の明らかな兆候ですか?
はいの場合、この条件を悪用して、システムに特別に細工された要求、一種のコードインジェクション攻撃を送信することにより、任意のTCLステートメントを実行できますか?
「安全なTCLコーディング慣行」文書はありますか?何も見つかりませんでした。