<div dir="ltr">I think that the solution is not to use it at all. The scenarios where this API can be used safely and very small, and even then, that application's security would be entirety dependent on the integrity of the XML files used<div>
<br></div><div>What we really need now is Static Analysis rules to quickly identify the uses of this API and help the developers understand its risk (and ideally to replaced it with a safer API).</div><div><br></div><div>
I would be good if we also could find a way to fingerprint this issue from a BlackBox point of view, so that PenTesters could look for it.</div></div><div class="gmail_extra"><br clear="all"><div><br>Dinis Cruz<br><br>Blog: <a href="http://diniscruz.blogspot.com">http://diniscruz.blogspot.com</a><br>
Twitter: <a href="http://twitter.com/DinisCruz">http://twitter.com/DinisCruz</a><br>Web: <a href="http://www.owasp.org/index.php/O2">http://www.owasp.org/index.php/O2</a></div>
<br><br><div class="gmail_quote">On 6 August 2013 20:31, Jim Manico <span dir="ltr"><<a href="mailto:jim.manico@owasp.org" target="_blank">jim.manico@owasp.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The Java security manager runtime permissions have no management<br>
software available and often break functionality that these libraries<br>
depend on to run. I still think schema validation is in order. I'll dig<br>
a little deeper into this (from a defense perspective) and get back to<br>
you on this.<br>
<br>
Cheers,<br>
Jim<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
> Policy file runtime permissions may help in restricting execution of rogue code. Most containers have them.<br>
> Nice work btw<br>
><br>
> Eoin Keary<br>
> Owasp Global Board<br>
> <a href="tel:%2B353%2087%20977%202988" value="+353879772988">+353 87 977 2988</a><br>
><br>
><br>
> On 6 Aug 2013, at 19:39, Jim Manico <<a href="mailto:jim.manico@owasp.org">jim.manico@owasp.org</a>> wrote:<br>
><br>
>> You normally want to do structural validation of untrusted XML before<br>
>> you accept it (using XML schema or the like). Such defenses if<br>
>> implemented right should protect you from this kind of vulnerability.<br>
>><br>
>> But wow, very interesting work.<br>
>><br>
>> Cheers,<br>
>> Jim<br>
>><br>
>><br>
>>> I wasn't aware that this was possible. Nice work!<br>
>>><br>
>>> I'd be very interested in seeing how a Security Manager can be used to<br>
>>> sandbox a class like this.<br>
>>><br>
>>> If you restrict it to elementary Objects such as String, Integer,<br>
>>> Boolean, Float, etc, and Collection classes such as Map and List, I<br>
>>> suspect that you should not be able to do too much damage. How would you<br>
>>> get a reference to the application code, anyway, to attack the<br>
>>> application assets?<br>
>>><br>
>>> Rogan<br>
>>><br>
>>><br>
>>> On 06/08/2013 14:38, Dinis Cruz wrote:<br>
>>>> Hi, where you aware that XmlDecoder could be used this way:<br>
>>>> <a href="http://blog.diniscruz.com/2013/08/using-xmldecoder-to-execute-server-side.html" target="_blank">http://blog.diniscruz.com/2013/08/using-xmldecoder-to-execute-server-side.html</a><br>
>>>> (see<br>
>>>> examples at the end)<br>
>>>><br>
>>>> Me and Abe presented that last week at DefCon and the awareness was very<br>
>>>> low.<br>
>>>><br>
>>>> I'm also sure that there are other dangerous/exploitable uses of<br>
>>>> XmlDecoder on other REST or web apis.<br>
>>>><br>
>>>> Finally what about fixing/mitigating this? It looks like Java Sandboxing<br>
>>>> using the Security manager is one option, but even that will not be<br>
>>>> safe, since the attacker will be able to attack the application assets.<br>
>>>><br>
>>>> Any other ideas?<br>
>>>><br>
>>>> Dinis Cruz<br>
>>>><br>
>>>><br>
>>>> _______________________________________________<br>
>>>> OWASP-Leaders mailing list<br>
>>>> <a href="mailto:OWASP-Leaders@lists.owasp.org">OWASP-Leaders@lists.owasp.org</a><br>
>>>> <a href="https://lists.owasp.org/mailman/listinfo/owasp-leaders" target="_blank">https://lists.owasp.org/mailman/listinfo/owasp-leaders</a><br>
>>><br>
>>> _______________________________________________<br>
>>> OWASP-Leaders mailing list<br>
>>> <a href="mailto:OWASP-Leaders@lists.owasp.org">OWASP-Leaders@lists.owasp.org</a><br>
>>> <a href="https://lists.owasp.org/mailman/listinfo/owasp-leaders" target="_blank">https://lists.owasp.org/mailman/listinfo/owasp-leaders</a><br>
>><br>
>> _______________________________________________<br>
>> OWASP-Leaders mailing list<br>
>> <a href="mailto:OWASP-Leaders@lists.owasp.org">OWASP-Leaders@lists.owasp.org</a><br>
>> <a href="https://lists.owasp.org/mailman/listinfo/owasp-leaders" target="_blank">https://lists.owasp.org/mailman/listinfo/owasp-leaders</a><br>
<br>
_______________________________________________<br>
</div></div><div class="HOEnZb"><div class="h5">Java-project mailing list<br>
<a href="mailto:Java-project@lists.owasp.org">Java-project@lists.owasp.org</a><br>
<a href="https://lists.owasp.org/mailman/listinfo/java-project" target="_blank">https://lists.owasp.org/mailman/listinfo/java-project</a><br>
</div></div></blockquote></div><br></div>