Lucene search
K

Shopify - (Comments) Cross Site Scripting Vulnerability

Shopify vulnerability - Cross Site Scripting in (Comments) sectio

Code
Document Title:
===============
Shopify - (Comments) Cross Site Scripting Vulnerability


References (Source):
====================
http://www.vulnerability-lab.com/get_content.php?id=1551


Release Date:
=============
2018-06-14


Vulnerability Laboratory ID (VL-ID):
====================================
1551


Common Vulnerability Scoring System:
====================================
3.3


Vulnerability Class:
====================
Cross Site Scripting - Non Persistent


Current Estimated Price:
========================
500€ - 1.000€


Product & Service Introduction:
===============================
Shopify is a Canadian commerce company headquartered in Ottawa, Ontario that develops computer software for online stores and retail 
point-of-sale systems. Shopify was founded in 2004, and was initially based on earlier software written by its founders for their online 
snowboard store. The company reports that it has 150,000 merchants using its platform, with total gross merchandise volume exceeding $8 billion.

(Copy of the Homepage:  https://en.wikipedia.org/wiki/Shopify )


Abstract Advisory Information:
==============================
The vulnerability laboratory core research Team discovered a script code inject web vulnerability in the official Shopify online service web-application.


Vulnerability Disclosure Timeline:
==================================
2018-06-14: Public Disclosure (Vulnerability Laboratory)


Discovery Status:
=================
Published


Affected Product(s):
====================
Shopify Inc.
Product: Shopify - Online Service (Web-Application) 2015 Q3


Exploitation Technique:
=======================
Remote


Severity Level:
===============
Low


Authentication Type:
====================
No authentication (guest)


User Interaction:
=================
Low User Interaction


Disclosure Type:
================
Bug Bounty Program


Technical Details & Description:
================================
A client-side script code inject web vulnerability has been discovered in the official Shopify online-service web-application.
The vulnerability allows remote attackers to manipulate client-side application to browser request by injection of malicious scripts.

The vulnerability is located in the write comment function of the shopify ecommerce service. The vulnerability allows remote attackers 
to bypass the secure jquery validation to inject malicious script codes. The request method to inject is GET and the attack vector is 
client-side. The injection point is the vulnerable write-comment section and the execution point of the issue is the syntax error 
exception handling.

The security risk of the cross site web vulnerability is estimated as medium with a cvss (common vulnerability scoring system) count of 3.3. 
Exploitation of the cross site scripting web vulnerability requires no privilege web application user account and low user interaction. 
Successful exploitation results in client-side account theft by hijacking, client-side phishing, client-side external redirects and 
non-persistent manipulation of affected or connected service modules.

Request Method(s):
[+] GET
							
Vulnerable Module(s):
[+] write-comment

Vulnerable Parameter(s):
[+] jQuery(`*[name=`` `+anchor.substring(1)+``], #`+anchor.substring(1)).


Proof of Concept (PoC):
=======================
The remote vulnerability can be exploited by remote attackers without privilege application user account or user interaction.
For security demonstration or to reproduce the vulnerability follow the provided information and steps below to continue.

Manual steps to reproduce the vulnerability ...
1. Open the following service page https://ecommerce.shopify.com/c/bab-general/t/test-259807#write-comment
2. Change the #write-comment to #" testing value
3. Now, you will see the following error in the console 
Uncaught Error: Syntax error, unrecognized expression: name=""testing"] 
application-44859ae4680efba882d40511c1f24836.js:3h.error 
application-44859ae4680efba882d40511c1f24836.js:3h.filter 
application-44859ae4680efba882d40511c1f24836.js:3h 
application-44859ae4680efba882d40511c1f24836.js:3_.querySelectorAll.h 
application-44859ae4680efba882d40511c1f24836.js:3H.fn.extend.find 
application-44859ae4680efba882d40511c1f24836.js:3r.fn.r.init 
application-44859ae4680efba882d40511c1f24836.js:2r 
application-44859ae4680efba882d40511c1f24836.js:2(anonymous function) 
application-44859ae4680efba882d40511c1f24836.js:9H.event.dispatch 
application-44859ae4680efba882d40511c1f24836.js:3o.handle.u 
application-44859ae4680efba882d40511c1f24836.js:3
-
jQuery v1.7.3
-
jQuery('*[name="'+anchor.substring(1)+'"], #'+anchor.substring(1)).
-
4. Inject the value +anchor.substring(1)+
5. When adding just use " (double quote)  
Note: Then will +anchor.substring(1)+ = " be the name ="""]
6. Error: Syntax error, unrecognized expression: name="""]
7. Successful reproduce of the security vulnerability!


Reference(s):
https://ecommerce.shopify.com/
https://ecommerce.shopify.com/c/bab-general/t/test-31337


Solution - Fix & Patch:
=======================
The full impact of the issue was finally resolved in 2017 Q3-Q4. The disclosure process took about 8 months after the patch was established.


Security Risk:
==============
The security risk of the script code inject web vulnerability in the shopify online service web-application is estimated as medium (CVSS 3.3)


Credits & Authors:
==================
Vulnerability Laboratory [Core Research Team] - ([email protected]) [www.vulnerability-lab.com]


Disclaimer & Information:
=========================
The information provided in this advisory is provided as it is without any warranty. Vulnerability Lab disclaims all warranties, either expressed or 
implied, including the warranties of merchantability and capability for a particular purpose. Vulnerability-Lab or its suppliers are not liable in any 
case of damage, including direct, indirect, incidental, consequential loss of business profits or special damages, even if Vulnerability Labs or its 
suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability mainly for incidental
or consequential damages so the foregoing limitation may not apply. We do not approve or encourage anybody to break any licenses, policies, deface 
websites, hack into databases or trade with stolen data. We have no need for criminal activities or membership requests. We do not publish advisories 
or vulnerabilities of religious-, militant- and racist- hacker/analyst/researcher groups or individuals. We do not publish trade researcher mails, 
phone numbers, conversations or anything else to journalists, investigative authorities or private individuals. 

Domains:    www.vulnerability-lab.com		- www.vulnerability-db.com					- www.evolution-sec.com
Programs:   vulnerability-lab.com/submit.php 	- vulnerability-lab.com/list-of-bug-bounty-programs.php 	- vulnerability-lab.com/register.php
Feeds:	    vulnerability-lab.com/rss/rss.php 	- vulnerability-lab.com/rss/rss_upcoming.php 			- vulnerability-lab.com/rss/rss_news.php
Social:	    twitter.com/vuln_lab		- facebook.com/VulnerabilityLab 				- youtube.com/user/vulnerability0lab

Any modified copy or reproduction, including partially usages, of this file, resources or information requires authorization from Vulnerability Laboratory. 
Permission to electronically redistribute this alert in its unmodified form is granted. All other rights, including the use of other media, are reserved by 
Vulnerability Lab Research Team or its suppliers. All pictures, texts, advisories, source code, videos and other information on this website is trademark 
of vulnerability-lab team & the specific authors or managers. To record, list, modify, use or edit our material contact (admin@) to get an ask permission.

				    Copyright © 2018 | Vulnerability Laboratory - [Evolution Security GmbH]™



Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation