Whoogle Search is a self-hosted metasearch engine. In versions 0.8.3 and prior, the element
method in app/routes.py
does not validate the user-controlled src_type
and element_url
variables and passes them to the send
method which sends a GET
request on lines 339-343 in requests.py
. The returned contents of the URL are then passed to and reflected back to the user in the send_file
function on line 484, together with the user-controlled src_type
, which allows the attacker to control the HTTP response content type leading to a cross-site scripting vulnerability. An attacker could craft a special URL to point to a malicious website and send the link to a victim. The fact that the link would contain a trusted domain (e.g. from one of public Whoogle instances) could be used to trick the user into clicking the link.The malicious website could, for example, be a copy of a real website, meant to steal a person’s credentials to the website, or trick that person in another way. Version 0.8.4 contains a patch for this issue.
References
Whoogle Search is a self-hosted metasearch engine. In versions 0.8.3 and prior, the
element
method inapp/routes.py
does not validate the user-controlledsrc_type
andelement_url
variables and passes them to thesend
method which sends aGET
request on lines 339-343 inrequests.py
. The returned contents of the URL are then passed to and reflected back to the user in thesend_file
function on line 484, together with the user-controlledsrc_type
, which allows the attacker to control the HTTP response content type leading to a cross-site scripting vulnerability. An attacker could craft a special URL to point to a malicious website and send the link to a victim. The fact that the link would contain a trusted domain (e.g. from one of public Whoogle instances) could be used to trick the user into clicking the link.The malicious website could, for example, be a copy of a real website, meant to steal a person’s credentials to the website, or trick that person in another way. Version 0.8.4 contains a patch for this issue.References