[ https://issues.apache.org/jira/browse/SOLR-11482?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16209486#comment-16209486 ]
Uwe Schindler commented on SOLR-11482: -------------------------------------- [~ysee...@gmail.com], yes that indeed true. This issue has the same CVE, as the combination of issues makes the whole thing exploitable. The other problem that makes this a problem is the existence of "stream.body" parameter, which was another brick to exploit the issue. "stream.body" is now also disabled in latest versions: - user may use XXE to trigger a GET request another endproint of the solr server. But they was also possible with other secruity issues we have seen before. So XXE was just another way to send a GET request. - A GET request should not be able to do do any changes in config, unfortunately there is also "stream.body"! This allows to convert a GET request to something that may change config. It may also delete indexes or insert new documents! - Finally the last step was the RunExecuteableListener, which allows to actually do the bad stuff (like opening a shell): It is disabled by default / deleted (7.1+) now, so any of the above (or other hacks we have seen before cannot be used to launch processes). About stream.body: I am not sure about 6.6 and 5.x and if we should handle that there! But as this was not explicitely mentioned as a "bad thing" in the security report, so it's not so urgent, but it is still one step towards an exploit: SOLR-10748 > CVE-2017-12629: Remove RunExecutableListener from Solr > ------------------------------------------------------ > > Key: SOLR-11482 > URL: https://issues.apache.org/jira/browse/SOLR-11482 > Project: Solr > Issue Type: Task > Security Level: Public(Default Security Level. Issues are Public) > Components: security, Server > Reporter: Uwe Schindler > Assignee: Uwe Schindler > Priority: Blocker > Fix For: 5.5.5, 7.1, 7.2, master (8.0), 6.6.2 > > Attachments: SOLR-11482-6.6.patch, > SOLR-11482-branch_5_5-restore-logged-warning.patch, SOLR-11482.patch > > > This class should no longer be needed, as replication can be done through > Solr Cloud or via ReplicationHandler. The current listener is a security > risk, as it can be configured through the Config API. See the report: > Solr "RunExecutableListener" class can be used to execute arbitrary commands > on specific events, for example after each update query. The problem is that > such listener can be enabled with any parameters just by using Config API > with add-listener command. > {noformat} > POST /solr/newcollection/config HTTP/1.1 > Host: localhost:8983 > Connection: close > Content-Type: application/json > Content-Length: 198 > { > "add-listener" : { > "event":"postCommit", > "name":"newlistener", > "class":"solr.RunExecutableListener", > "exe":"ANYCOMMAND", > "dir":"/usr/bin/", > "args":["ANYARGS"] > } > } > {noformat} > Parameters "exe", "args" and "dir" can be crafted throught the HTTP request > during modification of the collection's config. This means that anybody who > can send a HTTP request to Solr API is able to execute arbitrary shell > commands when "postCommit" event is fired. It leads to execution of arbitrary > remote code for a remote attacker. -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org