Video wird geladen...
Video konnte nicht geladen werden
I found a Remote Code Execution in MECCHA CHAMELEON! If you play a map, that map can abuse a few cool neat bugs to write arbitrary files with (semi-)arbitrary content anywhere on your system, eventually leading to RCE 🧮 🧵 Want to know how? Read this thread 👇
44,176 Aufrufe • vor 1 Monat •via X (Twitter)
29 Kommentare

A MECCHA CHAMELEON map is more than just assets. It can also contain Blueprints. These are Unreal Engine's visual programming system where you can connect nodes to program. I starting digging through all the functions that a MECCHA CHAMELEON map can call and ...

One stood out to me: Finish Recording Output It takes in some audio and saved that to a path. This means that we can easily just set the path to the Windows startup location and write files there right? %APPDATA%/Microsoft/Windows/Start Menu/Programs/Startup/

Well, it's not quite as easy. The saved file get the `.wav` extension, so it's not really useful. We're just saving a real WAV file in a folder.

That's when I remembered a neat Windows trick: If you have a NULL (\u0000) byte in a filename, everything past the NULL gets dropped. So we could save our file as POC.exe\u0000. Unreal Engine will append .wav, making it POC.exe\u0000.wav But Windows removes all that!

But in the end, we're still saving a real audio file to this file. It may have the `exe` extension but it's not a real executable

So how do we get around that? Well, I've written a blog post going into a lot more detail on this, so definitely check it out 👇

This is very cool! But please don’t call it RCE. A user has to download the map, which makes it LCE. Still a major problem, and it’s a very fun bug. Congrats!

Pretty cool escalation. Congrats!

Thanks 🔥

What are your vmware settings mine super slow

Gosh, I just gave it like all the juice for this recording 😅 Also, some parts are a bit sped up (like the restarting)

Haven't read it yet, but I hope it involves whistling in binary.

Great job!

how is it RCE if the user has to download and run something that's LCE at best

If you join a server, you're pushed to install a map almost automayically with a button press, else you can't play. The delivery vector here is so trivial and has been exploited in the past that I think it's fair to call this RCE

this is so incredibly dope, nice find!

This is dope

is this not just an ACE with a RAT?

Not really because a map is not supposed to be able to execute code. This abuses a couple of neat tricks in functions that maps expose. Take a look at the blog (end of thread) for all the technical details!

The interesting part is the delivery: a map the lobby auto-downloads. Same shape as the Unit 42 case this week. No novel zero-day required once untrusted input is already executing. Branch protection was the only control that actually held there. Signed maps the equivalent here?

Ayy this is really cool. Nice find! I always enjoy reading stuff like that.

Thanks! 🔥🤘

You are like 4 months late dude

4 months ago this game didn't exist. This was fixed due to my report on the 20th.

2 months whatever This was basically the same way the discord server got hacked. Malware was put inside the map files and the when you loaded the custom map it would run everything in the folder

Check the blog post attached to the final section of this thread. It's a totally different technique. That previous one was fixed already.

Ah, my bad. Nice find

Correction: “I used AI and I have no skill”

Sure, after a decade as ethical hacker, I indeed have no skills whatsoever
