Coordinated Disclosure Timeline

Summary

A universal XSS is present in the Edge and Firefox versions of Smartup, allowing another extension to execute arbitrary code in the context of the user’s tab.

Project

smartup

Tested Version

7.2.622.1170

Details

Universal XSS in Smartup (GHSL-2024-011)

The smartup gestures extension receives messages from external extensions without checking the identity of the sender. The external input is then sent to funOnMessage, which calls executeScript on the external message with the context of the current tab.

chrome.runtime.onMessageExternal.addListener(function(message,sender,sendResponse){
	sub.funOnMessage(message,sender,sendResponse);              <----- message is user controlled
})

...

case"apps_test":
	let _fun=function(){
		if(message.appjs){
			chrome.tabs.executeScript({code:"sue.apps['"+message.apptype+"'].initUI();",runAt:"document_start"});      <----- message is passed into executeScript
			return;
		}

A malicious extension may be able to run arbitrary javascript in the context of a user’s tab, compromising accounts that the user logins into.

This vulnerability was found with the help of CodeQL.

Impact

This issue may lead to Universal XSS

CVE

Credit

This issue was discovered and reported by GHSL team member @Kwstubbs (Kevin Stubbings).

Contact

You can contact the GHSL team at securitylab@github.com, please include a reference to GHSL-2024-011 in any communication regarding this issue.