Closed Bug 1549020 Opened 5 years ago Closed 5 years ago

Extension Block Request: SConnect

Categories

(Toolkit :: Blocklist Policy Requests, task)

task
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: c.vanbruggen, Assigned: Fallen)

References

Details

Extension name SConnect
Extension versions affected <all versions>
Platforms affected <all platforms>
Block severity soft

Reason

I noticed that this application may violate the add-on policies, specifically the requirement that "Add-ons must be self-contained and not load remote code for execution".

To give some context, this application interfaces with a native binary on the host system. Using native messages it is able to communicate back and forth using JSON objects as a serialization method. One of the things that the binary can send to the extension is a 'SConnect-JS' type object to create a new javascript block within the page. In addition, the extension has permission to access all websites ("*"). I believe that this dynamic loading of javascript files from the host binary is a form of remote code execution within the context of all website or at least obfuscates the behaviour of the extension. (Due to some library issues and not having access to a smartcard that the binary interfaces with, I am unable to see this in action.)

The following code snippet shows the function where this is possible, the function is called when it receives a new message from the binary (via 'eventpage-ff.js' using the 'runtime​.connect​Native()' functionality).

function receiveFromEventPage(b) {
if (b.rtype == "SConnect-JS") {
var a = document.createElement("script");
a.type = "text/javascript";
a.appendChild(document.createTextNode(b.js));
document.body.appendChild(a);
document.body.removeChild(a)
} else {
if (b.rtype == "SConnect-CSS") {
var c = document.createElement("style");
c.type = "text/css";
c.appendChild(document.createTextNode(b.css));
document.head.appendChild(c)
} else { window.postMessage(b, "*") }
}
}

Given that the extension is quite small it looks to me that this functionality was explicitly implemented by the authors.

Extension IDs

jid1-HfFCNbAsKx6Aow@jetpack

Additional Information

A copy can be downloaded from hxxp://www.sconnect.com/extensions/ , I downloaded version 2.9.1.0 but suspect other versions to have the same issue.

Assignee: nobody → philipp
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true

I've confirmed this add-on injects remote scripts from a native messaging host.

The block has been staged. Andreas, can you review and push?

Flags: needinfo?(awagner)

Done

Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Flags: needinfo?(awagner)
Resolution: --- → FIXED
Type: defect → task
Group: blocklist-requests

Hi Arnaud,

This add-on allows injecting arbitrary remote content into any web page, which is against our policies. Please note we cannot discuss further issues related to the add-on in this bug. If you are the owner of the add-on you are welcome to contact us using the email address associated with the account.

(In reply to Philipp Kewisch [:Fallen] [:📆] from comment #5)

Hi Arnaud,

This add-on allows injecting arbitrary remote content into any web page, which is against our policies. Please note we cannot discuss further issues related to the add-on in this bug. If you are the owner of the add-on you are welcome to contact us using the email address associated with the account.

Hi Philipp,

I am the owner of SConnect extension (along with SConnect team).

I sent an email using our add-on account.

I cannot stress the urgency of this.
Not only that we were not notified via email (!!!) that our extension was blocked, but it happened just after the bug that blocked all the addons ! That's a very long downtime for out users.

The extension is owned by a company that manages security, the last thing we will do is inject malicious code.

Please reply to my email ASAP.
As for now we recommend all of our users to use a different browser.

Thanks,
Sharona, Gemalto.

(In reply to Sharona from comment #8)

Not only that we were not notified via email (!!!) that our extension was blocked, but it happened just after the bug that blocked all the addons ! That's a very long downtime for out users.

As the bug reporter, I would like to note that I also looked for a security contact at the Gemalto website but was unable to find one. If you want people to report these kinds of things, you probably need to make this more prominent on the website. As it seemed a clear violation of the extensions policy, a policy you must be aware of, I reported the extension here. I don't know if Mozilla send you an email after it was blocked.

The extension is owned by a company that manages security, the last thing we will do is inject malicious code.

There is absolutely no way that anyone is able to verify this when you dynamically inject code. As far as my understanding of the host binary goes, even that does not appear to contain the injected javascript code (more likely is it contained in a compiled library downloaded from the internet).

As for now we recommend all of our users to use a different browser.

Obfuscating the behaviour of the extension is not just against Mozilla's policy, but also against the policy of other browsers. I would recommend your team to fix the issue by supplying (all) the code within the extension.

See Also: → 1550773

We've reviewed the situation and are going to change the block to be partial covering 0 - 2.9.1.0, the extension author will be uploading a new version for distribution that does not inject scripts into the pages.

Status: RESOLVED → REOPENED
Resolution: FIXED → ---

The block updates have been staged. Andreas, can you review and push?

Flags: needinfo?(awagner)

Done.

Status: REOPENED → RESOLVED
Closed: 5 years ago5 years ago
Flags: needinfo?(awagner)
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.