Hi Felix, Can we fix it without breaking existing plugins ? Let's start fixing it if you have time and idea.
Thanks Regards On Sun, Jul 23, 2017 at 4:50 PM, Felix Schumacher < felix.schumac...@internetallee.de> wrote: > Am 23.07.2017 um 16:24 schrieb pmoua...@apache.org: > >> Author: pmouawad >> Date: Sun Jul 23 14:24:36 2017 >> New Revision: 1802731 >> >> URL: http://svn.apache.org/viewvc?rev=1802731&view=rev >> Log: >> Bug 61329 - Warning on console "Security framework of XStream not >> initialized, XStream is probably vulnerable." >> Bugzilla Id: 61329 >> >> Modified: >> jmeter/trunk/src/core/org/apache/jmeter/gui/action/template >> /TemplateManager.java >> jmeter/trunk/src/core/org/apache/jmeter/save/SaveService.java >> jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java >> jmeter/trunk/src/protocol/jms/org/apache/jmeter/ >> protocol/jms/sampler/render/ObjectMessageRenderer.java >> >> Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/template/ >> TemplateManager.java >> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apach >> e/jmeter/gui/action/template/TemplateManager.java?rev= >> 1802731&r1=1802730&r2=1802731&view=diff >> ============================================================ >> ================== >> --- >> jmeter/trunk/src/core/org/apache/jmeter/gui/action/template/TemplateManager.java >> (original) >> +++ >> jmeter/trunk/src/core/org/apache/jmeter/gui/action/template/TemplateManager.java >> Sun Jul 23 14:24:36 2017 >> @@ -87,6 +87,7 @@ public class TemplateManager { >> return factory; >> } >> }); >> + JMeterUtils.setupXStreamSecurityPolicy(xstream); >> xstream.alias("template", Template.class); >> xstream.alias("templates", Templates.class); >> xstream.useAttributeFor(Template.class, "isTestPlan"); >> >> Modified: jmeter/trunk/src/core/org/apache/jmeter/save/SaveService.java >> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apach >> e/jmeter/save/SaveService.java?rev=1802731&r1=1802730& >> r2=1802731&view=diff >> ============================================================ >> ================== >> --- jmeter/trunk/src/core/org/apache/jmeter/save/SaveService.java >> (original) >> +++ jmeter/trunk/src/core/org/apache/jmeter/save/SaveService.java Sun >> Jul 23 14:24:36 2017 >> @@ -114,6 +114,8 @@ public class SaveService { >> private static final XStream JTLSAVER = new XStreamWrapper(new >> PureJavaReflectionProvider()); >> static { >> JTLSAVER.setMode(XStream.NO_REFERENCES); // This is needed to >> stop XStream keeping copies of each class >> + JMeterUtils.setupXStreamSecurityPolicy(JMXSAVER); >> + JMeterUtils.setupXStreamSecurityPolicy(JTLSAVER); >> } >> // The XML header, with placeholder for encoding, since that is >> controlled by property >> >> Modified: jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java >> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apach >> e/jmeter/util/JMeterUtils.java?rev=1802731&r1=1802730& >> r2=1802731&view=diff >> ============================================================ >> ================== >> --- jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java >> (original) >> +++ jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java Sun >> Jul 23 14:24:36 2017 >> @@ -69,6 +69,10 @@ import org.apache.oro.text.regex.Perl5Ma >> import org.slf4j.Logger; >> import org.slf4j.LoggerFactory; >> +import com.thoughtworks.xstream.XStream; >> +import com.thoughtworks.xstream.security.AnyTypePermission; >> +import com.thoughtworks.xstream.security.NoTypePermission; >> + >> /** >> * This class contains the static utility methods used by JMeter. >> * >> @@ -1250,4 +1254,17 @@ public class JMeterUtils implements Unit >> } >> } >> } >> + >> + /** >> + * Setup default security policy >> + * @param xstream {@link XStream} >> + */ >> + public static void setupXStreamSecurityPolicy(XStream xstream) { >> + // This will lift the insecure warning >> + xstream.addPermission(NoTypePermission.NONE); >> + // We reapply very permissive policy >> + // See https://groups.google.com/foru >> m/#!topic/xstream-user/wiKfdJPL8aY >> + // TODO : How much are we concerned by CVE-2013-7285 >> > Instead of adding another TODO, maybe we should address it right now. The > demos to exploit the framework are easily found and are a threat for users > downloading sample jmx files. Another vector of attack would be a someone > modifying/producing bad content in the networked client setup. > > I think we should go for a relatively strict setup with a regex > white-list, that users can adapt. > > Felix > > > + xstream.addPermission(AnyTypePermission.ANY); >> + } >> } >> >> Modified: jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms >> /sampler/render/ObjectMessageRenderer.java >> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/jms/o >> rg/apache/jmeter/protocol/jms/sampler/render/ObjectMessageRe >> nderer.java?rev=1802731&r1=1802730&r2=1802731&view=diff >> ============================================================ >> ================== >> --- jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms >> /sampler/render/ObjectMessageRenderer.java (original) >> +++ jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms >> /sampler/render/ObjectMessageRenderer.java Sun Jul 23 14:24:36 2017 >> @@ -29,6 +29,7 @@ import javax.xml.stream.XMLStreamExcepti >> import javax.xml.stream.XMLStreamReader; >> import org.apache.jmeter.protocol.jms.sampler.PublisherSampler; >> +import org.apache.jmeter.util.JMeterUtils; >> import com.github.benmanes.caffeine.cache.Cache; >> import com.thoughtworks.xstream.XStream; >> @@ -66,6 +67,7 @@ class ObjectMessageRenderer implements M >> Serializable readObject = null; >> try { >> XStream xstream = new XStream(); >> + JMeterUtils.setupXStreamSecurityPolicy(xstream); >> readObject = (Serializable) xstream.fromXML(xmlMessage, >> readObject); >> } catch (Exception e) { >> throw new IllegalStateException("Unable to load object >> instance from text", e); >> >> >> > -- Cordialement. Philippe Mouawad.