Cookie Consent by Free Privacy Policy Generator ๐Ÿ“Œ Regular Exploitation of a Tesla Model 3 through Chromium RegExp

๐Ÿ  Team IT Security News

TSecurity.de ist eine Online-Plattform, die sich auf die Bereitstellung von Informationen,alle 15 Minuten neuste Nachrichten, Bildungsressourcen und Dienstleistungen rund um das Thema IT-Sicherheit spezialisiert hat.
Ob es sich um aktuelle Nachrichten, Fachartikel, Blogbeitrรคge, Webinare, Tutorials, oder Tipps & Tricks handelt, TSecurity.de bietet seinen Nutzern einen umfassenden รœberblick รผber die wichtigsten Aspekte der IT-Sicherheit in einer sich stรคndig verรคndernden digitalen Welt.

16.12.2023 - TIP: Wer den Cookie Consent Banner akzeptiert, kann z.B. von Englisch nach Deutsch รผbersetzen, erst Englisch auswรคhlen dann wieder Deutsch!

Google Android Playstore Download Button fรผr Team IT Security



๐Ÿ“š Regular Exploitation of a Tesla Model 3 through Chromium RegExp


๐Ÿ’ก Newskategorie: Hacking
๐Ÿ”— Quelle: thezdi.com

This is the fourth in our series of Top 5 interesting cases from 2019. Each of these bugs has some element that sets them apart from the more than 1,000 advisories released by the program this year. Today, we look at the exploit used to win a Tesla Model 3 in Vancouver at Pwn2Own this year.


One of my favorite things about vulnerabilities is when multiple implementations have the exact same bug. In a similar vein, itโ€™s amusing to me when certain components end up having a number of vulnerabilities across different implementations.

I wrote a blog back in March about a couple of vulnerabilities within Apple Safari regarding RegExp handling that the Fluoroacetate duo had brought to Pwn2Own Tokyo in 2018. I'd recommend giving it a read here.

Now, Iโ€™ll cover a RegExp vulnerability that the Fluoroacetate duo brought to Pwn2Own Vancouver this year, targeting the Tesla Model 3โ€™s infotainment unit. You may have heard about it. This vulnerability is tracked as ZDI-19-921 and CVE-2019-13698.

Let's look at the proof-of-concept first:

Picture1.png

The main thing that stands out is the second argument in the call to RegExp.prototype[@@replace]. It is an object with a custom toString method that modifies the RegExp object being operated on. Anytime you see something like this, you know thereโ€™s some sort of JavaScript reentrancy bug.

Now let's take a look at the code that is responsible for handling RegExp.prototype[@@replace]. Here is a snippet from src/runtime/runtime-regexp.cc:

Picture2.png

The function continues on from there, but in our case, weโ€™ll enter the if block and end up calling into RegExpReplace, so let's look at that implementation. It is conveniently in the same file:

Picture3.png

See the issue? In Runtime_RegExpReplaceRT there is a check, IsUnmodifiedRegExp. This determines whether the RegExp object is in a pristine, unmodified state. If so, it can take advantage of the โ€œfast pathโ€ code implemented in RegExpReplace. The trouble is, soon after entering RegExpReplace, the code calls Object::ToString to perform coercion on the value specified in the second argument to RegExp.prototype[@@replace]. This allows arbitrary JavaScript to run. The JavaScript modifies the RegExp object so that it no longer qualifies as an โ€œunmodifiedโ€ JavaScript object that can be properly handled by the fast path. In particular, it sets the lastIndex property to be a custom Object. Later within the fast path implementation, the value found in lastIndex will be coerced, resulting in a second round of unexpected JavaScript execution. That JavaScript adds a new property (x) to the regular expression object, thus modifying the regular expression objectโ€™s memory layout and breaking assumptions made by the fast path code.

Note, do not be confused by the comment that precedes the call to RegExpReplace. From the wording of the comment one might be initially led to believe that RegExpReplace is not intended for the case of unmodified RegExp objects. From examining the context however, it becomes clear that the true intent of the comment is that RegExpReplace should not be called when a callable function is provided as the replacement argument (โ€œfunctional replaceโ€), even if the RegExp is unmodified. Regardless, RegExpReplace is the fast path, and is intended exclusively for the case of unmodified RegExp objects.

Now let's take a look at how this was patched, which you can see here. Weโ€™re still interested in looking at src/runtime/runtime-regexp.cc:

Picture4.pngPicture5.png

The essential change is that the call to Object::ToString that coerces the replacement argument has been moved up one call level. Instead of the coercion being performed within RegExpReplace, it is now performed within Runtime_RegExpReplaceRT, where it can be done prior to the IsUnmodifiedRegExp check.

Exploitation of this vulnerability allows an attacker to execute arbitrary code within Chrome's renderer sandbox on the vehicle infotainment system. From there the attacker might be able to escape the sandbox and pivot to compromise other functions of the vehicle as well. Tesla rolled out updates to their vehicles as soon as the patch was made available.

Given that the Fluoroacetate duo has found vulnerabilities in RegExp handling in the past, it was no surprise to see them bring another in March. Now that youโ€™ve seen a couple examples of issues that span multiple implementations, maybe youโ€™ll find something to bring to a future contest.

You can find me on Twitter at @WanderingGlitch, and follow the team for the latest in exploit techniques and security patches. Stay tuned for the final Top 5 bug blog, which will be released tomorrow.

...



๐Ÿ“Œ Regular Exploitation of a Tesla Model 3 through Chromium RegExp


๐Ÿ“ˆ 79.12 Punkte

๐Ÿ“Œ Day 4 of ZDI's Top 5 bugs of 2019 is a Chromium regexp bug Pwn2Own that won a Tesla Model 3


๐Ÿ“ˆ 45.26 Punkte

๐Ÿ“Œ Day 4 of ZDI's Top 5 bugs of 2019 is a Chromium RegExp bug used at Pwn2Own to win a Tesla Model 3


๐Ÿ“ˆ 45.26 Punkte

๐Ÿ“Œ Artifex MuJS Regular Expression regexp.c Denial of Service


๐Ÿ“ˆ 35.88 Punkte

๐Ÿ“Œ Artifex MuJS Regular Expression regexp.c denial of service


๐Ÿ“ˆ 35.88 Punkte

๐Ÿ“Œ Artifex MuJS 1.0.5 Regular Expression regexp.c memory corruption


๐Ÿ“ˆ 35.88 Punkte

๐Ÿ“Œ CVE-2019-16772 | serialize-to-js up to 3.0.0 on npm Regular Expression RegExp.prototype.toString cross site scripting


๐Ÿ“ˆ 35.88 Punkte

๐Ÿ“Œ WebKit RegExp Exploit addrof() walk-through


๐Ÿ“ˆ 30.33 Punkte

๐Ÿ“Œ Cuphead: Wird fรผr Tesla Model 3, Model S und Model X umgesetzt


๐Ÿ“ˆ 28.77 Punkte

๐Ÿ“Œ Tesla: Model 3, Model S und Model X mit mehr Reichweite


๐Ÿ“ˆ 28.77 Punkte

๐Ÿ“Œ Tesla mit Preiserhรถhung in Europa: Neue Model S, Model X, Model 3 kรผndigen sich an


๐Ÿ“ˆ 28.77 Punkte

๐Ÿ“Œ Tesla: Preiserhรถhung fรผr Model 3, Model S und Model X in Deutschland


๐Ÿ“ˆ 28.77 Punkte

๐Ÿ“Œ Tesla Q2 2020: Elon Talks About GigaAustin, Tesla Semi, Cheaper Model Y & Tesla Insurance


๐Ÿ“ˆ 26.13 Punkte

๐Ÿ“Œ RouterSploit - Find Router Exploitation on Kali Linux 2018.2 (Router Exploitation Framework)


๐Ÿ“ˆ 23.82 Punkte

๐Ÿ“Œ Nebula - Cloud C2 Framework, Which At The Moment Offers Reconnaissance, Enumeration, Exploitation, Post Exploitation On AWS


๐Ÿ“ˆ 23.82 Punkte

๐Ÿ“Œ RouterSploit - Find Router Exploitation on Kali Linux (Router Exploitation Framework)


๐Ÿ“ˆ 23.82 Punkte

๐Ÿ“Œ Mimicry - Security Tool For Active Deception In Exploitation And Post-Exploitation


๐Ÿ“ˆ 23.82 Punkte

๐Ÿ“Œ ML model registryโ€Šโ€”โ€Šthe โ€œinterfaceโ€ that binds model experiments and model deployment


๐Ÿ“ˆ 22.56 Punkte

๐Ÿ“Œ Vuln: Artifex MuJS 'regexp.c' Integer Overflow Vulnerability


๐Ÿ“ˆ 22.13 Punkte

๐Ÿ“Œ Google Chrome RegExp Stubs Out-Of-Bounds Access


๐Ÿ“ˆ 22.13 Punkte

๐Ÿ“Œ [dos] Google Chrome - Out-of-Bounds Access in RegExp Stubs


๐Ÿ“ˆ 22.13 Punkte

๐Ÿ“Œ [dos] Internet Explorer - 'RegExp.lastMatch' Memory Disclosure


๐Ÿ“ˆ 22.13 Punkte

๐Ÿ“Œ [dos] Internet Explorer - 'RegExp.lastMatch' Memory Disclosure


๐Ÿ“ˆ 22.13 Punkte

๐Ÿ“Œ Microsoft Internet Explorer 11 RegExp.lastMatch Memory Disclosure


๐Ÿ“ˆ 22.13 Punkte

๐Ÿ“Œ #0daytoday #Internet Explorer - RegExp.lastMatch Memory Disclosure Exploit [dos #exploits #0day #Exploit]


๐Ÿ“ˆ 22.13 Punkte

๐Ÿ“Œ #0daytoday #Internet Explorer - RegExp.lastMatch Memory Disclosure Exploit [dos #exploits #0day #Exploit]


๐Ÿ“ˆ 22.13 Punkte

๐Ÿ“Œ [dos] Microsoft Windows - JScript RegExp.lastIndex Use-After-Free


๐Ÿ“ˆ 22.13 Punkte

๐Ÿ“Œ #0daytoday #Microsoft Windows - JScript RegExp.lastIndex Use-After-Free Exploit [dos #exploits #0day #Exploit]


๐Ÿ“ˆ 22.13 Punkte

๐Ÿ“Œ Microsoft Windows JScript RegExp.lastIndex Use-After-Free


๐Ÿ“ˆ 22.13 Punkte

๐Ÿ“Œ Artifex MuJS prior fa3d30fd18c348bb4b1f3858fb860f4fcd4b2045 regexp.c regemit memory corruption


๐Ÿ“ˆ 22.13 Punkte

๐Ÿ“Œ Chrome 73 Beta: Constructable stylesheets, a new RegExp function, and passive mouse events


๐Ÿ“ˆ 22.13 Punkte

๐Ÿ“Œ Artifex MuJS prior b6de34ac6d8bb7dd5461c57940acfbd3ee7fd93e Regex regexp.c js_regcomp denial of service


๐Ÿ“ˆ 22.13 Punkte

๐Ÿ“Œ YARA 3.5.0 Regexp libyara/re.c yr_re_emit Rule denial of service


๐Ÿ“ˆ 22.13 Punkte

๐Ÿ“Œ Artifex MuJS vor fa3d30fd18c348bb4b1f3858fb860f4fcd4b2045 regexp.c regemit Pufferรผberlauf


๐Ÿ“ˆ 22.13 Punkte











matomo