Struts 2の脆弱性情報(Important: CVE-2019-0230, Moderate: CVE-2019-0233)

こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。

08/13/2020にStruts 2の脆弱性情報(Important: CVE-2019-0230, Moderate: CVE-2019-0233)が公開されています。今回はこれらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。

2020/08/19 11:30更新:Red Hat, SUSEの情報を更新しました。



Priority

CVE番号影響するバージョンPriorityCVSS Score / CVSS Vector
CVE-2019-0230Struts 2.0.0 – Struts 2.5.20

Vendor: Important

CVE-2019-0233Struts 2.0.0 – Struts 2.5.20

Vendor: Moderate

修正方法

各ディストリビューションの情報を確認してください。

CVE概要(詳細はCVEのサイトをご確認ください)

  • https://cwiki.apache.org/confluence/display/ww/s2-059 (CVE-2019-0230)
    • RCE(リモートコード実行)の可能性
    • Apache Strutsフレームワークでは、特定のタグ属性、例えばid等の属性値の検査が二重に実行されるため、タグの属性がレンダリングされる場合再び検査される値を渡すことが可能です。これにより、注意深くリクエストを細工するのことでリモートコード実行を行うことが可能です。

      この問題はStrutsタグ属性の検査でOGNL検査を実行させる時のみに発生し、リファレンスのローデータを検査する式で、攻撃者は対応するリクエストにより未検証の入力値を直接細工することが可能になります。

      例えば:

      
      < s:url var="url" namespace="/employee" action="list"/> < s:a id="%{skillName}" href="%{url}" > List available Employees < /s:a >
      

      で、攻撃者がリクエストのskillName属性を変更できる場合、生のOGNL式はskillNameプロパティを検証なしにパスしてしまい、skillName属性に含まれている与えられたOGNL式はタグがリクエストの結果としてレンダリングされた際に評価されます。

      二重の検査はStruts 2.0.0からのデザインで使用されており、正しく実行された場合に役立つツールです。ただし、式で未検証のユーザ入力を参照することで、悪意のあるコードが挿入される可能性があります。2.5.22より前のStrutsではこのレポートで取り上げられている攻撃ベクタがオープンなままとなっています。

    • 解決方法:2019年11月にリリースされているStruts 2.5.22にアップグレードして下さい
  • https://cwiki.apache.org/confluence/display/ww/s2-060 (CVE-2019-0233)
    • DoSの可能性
    • getterを使用してファイルがアップロードされている際に、攻撃者はリクエストを操作することでアップロードされたファイルの作業コピーがRead-onlyになるようにすることができます。その結果、ファイルに対する後続のアクションはエラーで失敗します。
    • 解決方法:2019年11月にリリースされているStruts 2.5.22にアップグレードして下さい


対処方法

各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat SatelliteKatello、Spacewalk等を使うと管理が便利でしょう。


セキュリティ系連載案内

セミナー情報1

コンピュータセキュリティシンポジウム(CSS)2020併設のワークショップ、 OSSセキュリティ技術ワークショップ(OWS) 2020の企画講演セッション及び、 一般論文セッションの発表募集をさせていただきます。

今年度はオンラインでの開催となります。奮ってのご投稿、お待ちしております。

https://www.iwsec.org/ows/2020/


タイトルとURLをコピーしました