8

脆弱性のあるオープンソースライブラリの記事に出くわしました。

この記事では、「Spring Expression Language(SpEL)は、攻撃者が機密性の高いシステムデータ、アプリケーション、およびユーザーCookieを取得できるようにするHTTPパラメーターの送信を通じて悪用される可能性がある」と述べています。

誰かがこれにもっと光を当てることができますか?

4

2 に答える 2

27

Aspect Securityによる発見は2013年1月に発見されましたが、SpringSourceが公開した修正は、これが最初に発見された2011年に利用可能になりました。AspectSecurityのDanAmodioは、リモートでコードが実行される可能性についてSpringSourceに通知しました。

SpringSourceは、Aspect Securityの調査結果でセキュリティレポート12-06-2012を更新しましたが、元のアドバイザリに記載されている修正/緩和策は引き続き適用可能です:http ://support.springsource.com/security/cve-2011-2730

この脆弱性は、SpringFrameworkのバージョンにのみ影響します。

•3.0.0から3.0.5-ここで3.0.6にアップグレードすると、問題が解決します。•2.5.0から2.5.6.SEC02(コミュニティリリース)-2.5.6.SEC03にアップグレードすると、問題が解決します。•2.5.0から2.5.7.SR01(サブスクリプションのお客様)-2.5.7.SR02にアップグレードすると、問題が解決します。

これは、今後すべてのバージョンで修正されています。SpringFrameworkの現在のリリースは3.2で、2012年12月にリリースされました。

ありがとう、

-Pieter(SpringSource)

于 2013-03-19T21:32:48.760 に答える
3

リンク先の記事がおそらく参照しているSpELのこのアスペクトセキュリティ/マインドセキュリティ評価google docs link )をチェックしてください(SpELの特定のケースについて)。

これらは、特定のSpringJSPタグがEL式を二重に評価する方法を説明しています。このような場合、ユーザーはSpELの形式でサーバーにデータを送信できる可能性があります。たとえば、値${bean.val}(URLエンコード)を含む要求パラメーターとして送信できます。

http://...?exp=$%7Bbean.val%7D

JSPページ内では、式はそれ自体が安全な${param.exp}テキストに解決されます。${bean.val}ただし、その式がSpring JSTLタグの属性内にある場合、その解決された値は、たとえばspring:messageタグで再度評価される可能性があります。

<spring:message message="${param.exp}" />

その結果、メソッドを評価するタグに値${bean.val}が渡されます。したがって、クライアントによって送信され、サーバー上で実行されているコードがあります。spring:messagebean.getVal()

于 2012-04-25T05:03:48.900 に答える