Ah ja, richtig.
Der Fix ist ziemlich einfach. Ich würde ihn in die 3.8.4 einbauen.
Mit einem vernünftigen Editor, der UTF-8 kann:
administrator/components/com_virtuemart/models/product.php öffnen.
Zeile 177:
$filter_order_Dir = strtoupper (vRequest::getCmd ('dir', VmConfig::get('prd_brws_orderby_dir', 'ASC')));
Zeile 178 ist sowieso leer, einfach dieses in Zeile 178 hineinkopieren:
$filter_order_Dir = $this->checkFilterDir($filter_order_Dir);
Nachher sieht es dann so aus:
$filter_order_Dir = strtoupper (vRequest::getCmd ('dir', VmConfig::get('prd_brws_orderby_dir', 'ASC')));
$filter_order_Dir = $this->checkFilterDir($filter_order_Dir);
Damit wird die Eingabe gefiltert und die XSS-Lücke ist geschlossen.
Man kann es überprüfen, indem man die Zeichenkette:
/component/virtuemart/?keyword=&dir=%2522%253e%253cscript%253ealert%2528%25%32%37%25%33%34%25%34%65%25%35%66%25%34%33%25%35%35%25%35%32%25%35%61%25%34%35%25%32%37%2529%253c%252fscript%253e
an die Seiten-URL hängt.
https: // www.eineseite .de/component/virtuemart/?keyword=&dir=%2522%253e%253cscript%253ealert%2528%25%32%37%25%33%34%25%34%65%25%35%66%25%34%33%25%35%35%25%35%32%25%35%61%25%34%35%25%32%37%2529%253c%252fscript%253e
Wenn kein Popup kommt, ist die Lücke geschlossen.
Grüße
Stefan