1

アプレットがユーザーのマシンで信頼できないコードを実行できる Java7 の最新のセキュリティ侵害。詳細については、http://www.h-online.com/security/features/The-new-Java-0day-examined-1677789.htmlを参照してください。

しかし、私が持っている質問は次のとおりです。Expression クラスに導入された execute() メソッドにより、これらすべてが可能であると言われています。しかし、以前のバージョンでは不可能だった特別なことは何もありません。ソースは次のとおりです。

 @Override
public void execute() throws Exception {
    setValue(invoke());
}

java1.4 以降に存在する getValue() の場合:

 public Object getValue() throws Exception {
    if (value == unbound) {
        setValue(invoke());
    }
    return value;
}

getValue() は、execute() が行うすべてのことを行います。では、なぜ execute メソッドについてそんなに大騒ぎするのでしょうか??

4

2 に答える 2

1

よく見ると、エクスプロイト コードは.getValue(). 明らかに、脆弱性は 内にありますinvokeexecute基本的に、 private を呼び出すパブリック インターフェイスinvokeです。

于 2012-08-31T13:58:29.760 に答える
0

数年前に、Expressionのアクセスチェックがコンパイラのアクセスチェックと同じではないバグを報告しました。おそらくこれは別の例です。

于 2012-09-01T01:24:05.497 に答える