Jitesh J Vidhani created SOLR-15330:
---------------------------------------

             Summary: Solr 7.5 memory leak and crash with sql injection type 
queries
                 Key: SOLR-15330
                 URL: https://issues.apache.org/jira/browse/SOLR-15330
             Project: Solr
          Issue Type: Bug
      Security Level: Public (Default Security Level. Issues are Public)
          Components: query, Server
    Affects Versions: 7.5
         Environment: Java 8 on CentOS 7.
            Reporter: Jitesh J Vidhani


We have a set of standalone solr nodes running on Solr 7.5. We recently had a 
few episodes where the entire cluster crashed and died all together. Digging in 
a little, we found the culprits were some SQL injection attacks happening on 
our site where the search term had SQL injection in it and that was fed into 
the q param in solr. I was able to take a stable solr and isolate it and just 
run 1 query and make it crash. Every time I would run a regular query and see 
it work and then just change the q= parameter and that would time out and 
eventually crash the solr instance. Here is the q param for the query I ran:

q=-6792)))+UNION+ALL+SELECT+NULL,NULL,NULL,NULL,CHR(113)||CHR(98)||CHR(118)||CHR(113)||CHR(113)||CHR(104)||CHR(68)||CHR(86)||CHR(114)||CHR(109)||CHR(97)||CHR(89)||CHR(89)||CHR(112)||CHR(76)||CHR(90)||CHR(105)||CHR(113)||CHR(86)||CHR(102)||CHR(97)||CHR(108)||CHR(89)||CHR(83)||CHR(81)||CHR(107)||CHR(69)||CHR(111)||CHR(97)||CHR(75)||CHR(87)||CHR(68)||CHR(108)||CHR(73)||CHR(68)||CHR(86)||CHR(118)||CHR(101)||CHR(71)||CHR(78)||CHR(106)||CHR(106)||CHR(76)||CHR(65)||CHR(82)||CHR(113)||CHR(106)||CHR(98)||CHR(98)||CHR(113)+FROM+DUAL--+gKiW

I even stripped out the "||" characters and replaced them with "," and it still 
crashes. Please note these were SQL injection attacks and not real good 
queries. The Solr GC log exposes the problem and shows the memory footprint 
ballooning (from 2GB to 18GB within a minute) to the point where full garbage 
collection fails and the Solr instance is unresponsive. So 1 query is able to 
push it to the tipping point and consume 18GB of memory.

I have tried searching for long description texts but that works fine. So 
something with these characters is probably causing this. Does anyone know 
how/why this might be happening?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to