Exploiting CVE-2024-37148
Intro When it comes to input sanitisation, who is responsible, the function or the caller ? Or both ? And if no one does, hoping that the other one will do t...
In 2020, I wrote a master thesis named Attacking mobile browsers with extensions, diving for the first time into the fascinating world of web browsers security. The printed version probably sleeps under thick a layer of dust somewhere on a shelf, but Professor Ramin SADRE, who supervised this work, advised me to make it live longer than a year, by making the content available for everyone. As I think that knowledge is not meant to die, I agreed, and here it is …
Web browsing on mobile devices is nowadays a common practice. Since browsers can be viewed as pieces of software allowing a remote agent to execute code on someone else’s machine, security measures such as Same Origin Policy or Cross-Origin Resource Sharing are enforced. However, this minimal security level might be affected by third-party software, also known as browsers extensions. The latter are generally meant to improve the browsing experience or to offer customisation, but they can also be a powerful attack vector because of the privileges they are given. At the time of writing, mobile browsers do not all support extensions, hence a lack of research about this specific subject. While extensions security has been broadly studied, mobile devices were often put out of the scope because of this lack of support. The purpose of this thesis is to show that supporting extensions on mobile devices can also be really dangerous, because some weaknesses are inherent to this kind of devices. We present a set of attacks with proofs of concept, and discuss the likelihood as well as the efficiency.
First and foremost, I would like to thank my supervisor, Professor Ramin Sadre, for his advice, guidance and patience. Bringing fresh ideas and taking an outsider’s eye view, all of this was a considerable added value. Without his support, this thesis would probably not have been a reality. Counting from the first time I came in his office to explain my idea until now, I knew that someone constantly trusted and supported me. During this last year of studies, despite of all difficulties I had to face, working on this thesis was not an easy task. Working from home, far away from my family and friends, and living under the phantom threat of the COVID-19, combining my academic work and my personal life in a sustainable way was always a challenge.
I feel really thankful to all people who offered me their support and inspiration. Many times, I was close to give up, but my family, hundreds of kilometres away, proved me that love was strong enough to overcome all the issues I was facing. To all my close friends, I would like to say my gratitude for what they did, and for have been there for me. I’m also really thankful to Laura D. and Laura M. for their patience, kindness, hope and listening. And finally, I would like to thank Salomé, without whom I would maybe never have written these words.An erste Stelle möchte ich meinem Vorgesetzten Professor Ramin Sadre für seinen Rat, seine Anleitung und seine Geduld bedanken. Sowohl Ihre neuen Ideen als auch Ihre Aussensicht waren ein beträchtlicher Mehrwert. Ohne seine Unterstützung wäre diese These wahrscheinlich nicht zustande gekommen. Vom ersten Mal, als ich in sein Büro kam um ihm meine Idee zu erklären, bis heute wusste ich, dass mir immer jemand vertraute und mich unterstützte. In diesem letzten Studienjahr, trotz aller Schwierigkeiten mit denen ich konfrontiert war, war die Realisierung dieser These keine leichte Aufgabe. Von zu Hause auszuarbeiten, weit weg von meiner Familie und meinen Freunden, und unter der Phantombedrohung des COVID-19 zu leben, war immer eine Herausforderung meine akademische Arbeit und mein Privatleben auf nachhaltige Weise zu verbinden.
Ich bin wirklich dankbar an alle Menschen, die mir ihre Betreuung und Inspiration angeboten haben. Viele Male war ich kurz vor dem Aufgeben, aber meine Familie, Hunderte von Kilometern entfernt, bewies mir, dass die Liebe stark genug war, um alle Probleme zu bewältigen. Ich möchte allen meinen engen Freunden meinen Dank aussprechen für was sie getan haben, und dafür, dass sie für mich da waren. Ich bin auch Laura D. und Laura M. sehr dankbar für ihre Geduld, Freundlichkeit, Hoffnung und ihr Zuhören. Und schliesslich möchte ich Salomé danken, ohne den ich diese Worte vielleicht nie geschrieben hätte
Please feel free to download the full content here. This article summarises my work, but doesn’t get to deep into the details.
Right from the beginning, I wanted to work on web browsers security. The major reference that gave me the first incentive was the Browser Hacker’s Handbook by Wade Alcorn. I quickly realised how powerful and dangerous extensions could be, and started to go deeper by reading more and more about extensions security. I found a plethora of articles, but most of them mentioned the obsolete Add-on SDK and XUL/XPCOM technology.
The second thing that caught my attention was that mobile devices were often forgotten, mainly because of the lack of support in the mobile version of Google Chrome. In the meantime, Firefox did, and browsers such as Kiwi Browser did support extensions originally developed for desktop Chrome.
But why Chrome doesn’t support extensions ? What could happen if a browser supports them, while they were not meant to run on mobile devices ? Do mobile devices suffer from a larger attack surface ? All of these questions guided my research, and I tried to answer them in my thesis. I learned a lot, had a lot of fun, and will never forget such exciting experience !
Practical attacks against mobile browsers using extensions
The code of the proofs of concepts is freely available on my Github repository: https://github.com/BorelEnzo/Extensions-against-mobile-browsers
Happy reading, and stay safe
Intro When it comes to input sanitisation, who is responsible, the function or the caller ? Or both ? And if no one does, hoping that the other one will do t...
Intro After being tasked with auditing GLPI 10.0.12, for which I uncovered two unknown vulnerabilities (CVE-2024-27930 and CVE-2024-27937), I became really i...
Intro A few weeks ago, I discovered during an intrusion test two vulnerabilities affecting GLPI 10.0.12, that was the latest public version at this time. The...
I was recently tasked with auditing the application GLPI, a few days after its latest release (10.0.12 at the time of writing). The latter stands for Gestion...
I won’t insult you by explaining once again what JSON Web Tokens (JWTs) are, and how to attack them. A plethora of awesome articles exists on the Web, descri...
A few days ago, I published a blog post about PHP webshells, ending with a discussion about filters evasion by getting rid of the pattern $_. The latter is c...
A few thoughts about PHP webshells …
I remember this carpet, at the entrance of the Computer Science faculty, with this message There’s no place like 127.0.0.1/8. A joke that would create two ca...
TL;DR A few experiments about mixed managed/unmanaged assemblies. To begin with, we start by presenting a C# programme that hides a part of its payload in an...
It was a sunny and warm summer afternoon, and while normal people would rush to the beach, I decided to devote myself to one of my favourite activities: suff...
The reader should first take a look at the articles related to CVE-2023-3032 and CVE-2023-3033 that I published a few days ago to get more context.
This walkthrough presents another vulnerability discovered on the Mobatime web application (see CVE-2023-3032, same version 06.7.2022 affected). This vulnera...
Mobatime offers various time-related products, such as check-in solutions. In versions up to 06.7.2022, an arbitrary file upload allowed an authenticated use...
King-Avis is a Prestashop module developed by Webbax. In versions older than 17.3.15, the latter suffers from an authenticated path traversal, leading to loc...
Let’s render unto Caesar the things that are Caesar’s, the exploit FuckFastCGI is not mine and is a brilliant one, bypassing open_basedir and disable_functio...
I have to admit, PHP is not my favourite, but such powerful language sometimes really amazes me. Two days ago, I found a bypass of the directive open_basedir...
PHP is a really powerful language, and as a wise man once said, with great power comes great responsibilities. There is nothing more frustrating than obtaini...
A few weeks ago, a good friend of mine asked me if it was possible to create such a program, as it could modify itself. After some thoughts, I answered that ...
In the previous article, I described how I wrote a simple polymorphic program. “Polymorphic” means that the program (the binary) changes its appearance every...
The malware presented in this blog post appeared on Google Play in 2016. I heard about it thanks to this article published on checkpoint.com. The malicious a...
Ransomwares are really interesting malwares because of their very specific purpose. Indeed, a ransomware will not necessarily try to be stealth or persistent...
A few days ago, I found this article about a malware targeting Sberbank, a big Russian bank. The app disguises itself as a web application, stealing in backg...
RuMMS is a malware targetting Russian users, distributed via websites as a file named mms.apk [1]. This article is inspired by this analysis made by FireEye ...
Could a 5-classes Android app be so harmful ? dsencrypt says “yes”…
~$ cat How_an_Android_app_could_escalate_its_privileges_Part4.txt
~$ cat How_an_Android_app_could_escalate_its_privileges_Part3.txt
~$ cat How_an_Android_app_could_escalate_its_privileges_Part2.txt
~$ cat How_an_Android_app_could_escalate_its_privileges.txt
Even if the thesis introduces the extensions internals, and analyses the difference between mobile and desktop browsers in terms of likelihood, efficiency an...