[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [FD] Mozilla extensions: a security nightmare



"Mario Vilas" <mvilas@xxxxxxxxx> wrote:

> %APPDATA% is within the user's home directory - by default it should
> not be writeable by other users.

Did I mention OTHER users?
Clearly not, so your "argument" is moot.

> If this is the case then the problem is one of bad file permissions,
> not the location.
>
> Incidentally, many other browsers and tons of software also store
> executable code in %APPDATA%.

Cf. <http://seclists.org/fulldisclosure/2013/Aug/198>

EVERY program which stores executable code in user-writable locations
is CRAPWARE and EVIL since it undermines the security boundary created
by privilege separation and installation of executables in write-protected
locations.
Both are BASIC principles of computer security.

> I think "security nightmare" may be a bit of an overstatement here.

No, it's just the right wording since it violates two basic principles.

> I'll refrain from panicking about this "issue" for the time being.

JFTR: top posting is a bad habit too!

On Tue, Aug 4, 2015 at 3:22 PM, Stefan Kanthak <stefan.kanthak@xxxxxxxx>
wrote:

> Hi @ll,
>
> Mozilla Thunderbird 38 and newer installs and activates per default
> the 'Lightning' extension.
>
> Since extensions live in the (Firefox and) Thunderbird profiles
> (which are stored beneath %APPDATA% in Windows) and 'Lightning' comes
> (at least for Windows) with a DLL and some Javascript, Thunderbird
> with 'Lightning' violates one of the mandatory and basic requirements
> of the now 20 year old "Designed for Windows" guidelines and breaks a
> security boundary: applications must be installed in %ProgramFiles%
> where they are protected against tampering by unprivileged users (and
> of course malware running in their user accounts too) since only
> privileged users can write there.
>
> Code installed in %APPDATA% (or any other user-writable location) is
> but not protected against tampering.
> This is a fundamental flaw of (not only) Mozilla's extensions, and a
> security nightmare.
>
> Separation of code from (user) data also allows to use whitelisting
> (see <https://technet.microsoft.com/en-us/library/bb457006.aspx> for
> example) to secure Windows desktops and servers: users (and of course
> Windows too) don't need to run code stored in their user profiles,
> they only need to run the installed programs/applications, so unwanted
> software including malware can easily be blocked from running.
>
> JFTR: current software separates code from data in virtual memory and
>       uses "write xor execute" or "data execution prevention" to
>       prevent both tampering of code and execution of data.
>       The same separation and protection can and of course needs to be
>       applied to code and data stored in the file system too!
>
> The Lightning extension for Windows but defeats the tamper protection
> and code/data separation provided by Windows:
>
> 1. its calbasecomps.dll can be replaced or overwritten with an
>    arbitrary DLL which DllMain() is executed every time this DLL is
>    loaded;
>
> 2. its (XUL/chrome) Javascripts can be replaced or overwritten and
>    used to load and call arbitrary DLLs via js-ctypes.
>
>    Only non-XUL/chrome Javascript is less critical since its execution
>    is confined by (Firefox and) Thunderbird and subject to the
>    restrictions imposed by these programs for non-XUL/chrome Javascript.
>
>
> Mitigation(s):
> ~~~~~~~~~~~~~~
>
> Disable profile local installation of extensions in Mozilla products,
> enable ONLY application global installation of extensions.
>
> stay tuned
> Stefan Kanthak
>
> _______________________________________________
> Sent through the Full Disclosure mailing list
> https://nmap.org/mailman/listinfo/fulldisclosure
> Web Archives & RSS: http://seclists.org/fulldisclosure/
>