Re-sending the references since the formatting and links seemed to have gotten 
a bit messed up.

Further references:

Beanutils gadget chain: 
https://gist.github.com/frohoff/9eb8811761ff989b3ac0 
 
AppSecCali Marshalling Pickles Talk: 
http://www.slideshare.net/frohoff1/appseccali-2015-marshalling-pickles 

ysoserial payload generator: 
https://github.com/frohoff/ysoserial 

JRE 7u21 Advisory: 
https://gist.github.com/frohoff/24af7913611f8406eaf3 

Apache Commons statement: 
https://blogs.apache.org/foundation/entry/apache_commons_statement_to_widespread


On Monday, February 22, 2016 1:59 PM, Chris Frohoff <froh...@yahoo.com> wrote:



All,

I already sent something similar to the private security list 
(secur...@apache.org) earlier this month and it was suggested that I post it to 
the dev list for discussion.

There is a Java deserialization "gadget" in the commons-beanutils library that 
can be used along with others in the JRE to achieve code/command execution in 
applications deserializing untrusted data, similar to the ones recently 
discussed in the commons-collections library. Specifically, an instance of the 
commons-beanutils class `BeanComparator` can be used during deserialization of 
a containing collection to invoke the `getOutputProperties()` getter method on 
a TemplatesImpl instance, defining arbitrary and potentially malicious classes 
(very similar to the CommonsCollections2 gadget chain). A proof-of-concept 
payload generator is available in this gist: https://gist.github.com/ 
frohoff/9eb8811761ff989b3ac0 

To be clear, I don't believe that this should necessarily be a concern of 
library developers and that protections should really be implemented by code 
doing the unsafe deserialization. This is in line with the previous Apache 
Commons statement regarding the vunlerabilities discourse from last year 
(https://blogs.apache.org/ foundation/entry/apache_ commons_statement_to_ 
widespread). That being said, some people seem to disagree, and there seems to 
be a desire for libraries to provide mitigations, so a new release with a patch 
may be warranted.

I discovered this last year, but for better or worse, wanted to wait until I 
could publicly disclose a similar issue with only JRE (<7u21) classes 
(https://gist.github.com/ frohoff/24af7913611f8406eaf3) to further emphasize 
that this is a more pervasive problem that should be addressed in a more robust 
way than playing "whack-a-mole" with gadget classes 
(seehttps://gist.github.com/ frohoff/24af7913611f8406eaf3# mitigation for 
recommendations).

I'm happy answer questions, review code/patches, and otherwise help in any way 
I can.

Regards,

-Chris Frohoff


Further references:

Beanutils gadget chain: https://gist.github. com/frohoff/ 9eb8811761ff989b3ac0 
AppSecCali Marshalling Pickles Talk: http://www.slideshare.net/ 
frohoff1/appseccali-2015- marshalling-pickles
ysoserial payload generator: https://github.com/ frohoff/ysoserial
JRE 7u21 Advisory: https://gist.github.com/ frohoff/24af7913611f8406eaf3
Apache Commons statement: https://blogs. apache.org/foundation/entry/ 
apache_commons_statement_to_ widespread

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to