Jboss Seam Interpolator: это можно использовать для выполнения команды (java.lang.Runtime.exec)? - PullRequest
3 голосов
/ 09 июля 2011

У меня было странное сообщение на моем сервере до его сбоя:

[ (org.jboss.seam.core.Interpolator)] exception interpolating string: #{(expressions.getClass().forName('java.lang.Runtime').getDeclaredMethods()[6]).invoke(expressions.getClass().forName('java.lang.Runtime')).exec('ls')}
javax.el.ELException: java.io.IOException: Cannot run program "ls": java.io.IOException: error=12, Cannot allocate memory

Мне кажется, что кто-то пытался выполнить что-то через класс Interpolator.Я нашел этот код из более ранней версии шва:

http://www.java2s.com/Open-Source/Java-Document/JBoss/jboss-seam-2.1.0.A1/org/jboss/seam/core/Interpolator.java.htm

Я нашел эти сообщения

Как решить "java.io.IOException:ошибка = 12, «Не удается выделить память», вызывая Runtime # exec ()?

Но в моем случае я не пытаюсь ее решить, я хочу ограничить ее.

Могу ли я предотвратить запуск системы через диспетчер безопасности?Есть ли у вас какие-либо предложения по предотвращению такого рода казней?

Заранее спасибо.

1 Ответ

2 голосов
/ 10 июля 2011

Вы уверены, что ваш код пытается запустить "ls" на вашем сервере? Если нет, то похоже, что кто-то пытается использовать эту проблему шва 2. В этом случае вам следует перейти на шов 2.2.2. Окончательный вариант

...