-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Could you give me your email address? #2
Comments
I guess issue is okay for asking questions here (or at least it was already used once that way in this repository) |
Thank for you reply. I am interested in CVE-2017-0806, but I have no idea how to reproduce this vulnerability. Could you share POC or more details about it? |
Below is some context on why above behavior is vulnerability, which will be helpful if you're trying to reproduce this For reference for everybody else, here's commit fixing that CVE. Code diff doesn't make issue clear, commit message say a bit more, but to understand what the issue is we must step back to an old bug fixed in 2013 (not found by me) Android bug 7699048 (LaunchAnyWhere)Links (none of them by me):
Basically, above bug was that Account Authenticator could provide Intent in AccountManager.KEY_INTENT and that Intent was started. As you can see in patch above, it was fixed by adding validation of
Now, in steps above there's an assumption that this bug can violate: that result Bundle won't spuriously change it's contents while it's being sent in step 6 "Self changing" BundlesNow, to understand how we could cause Bundle to change it's contents while it's being sent, we need to understand how Bundles are sent between processes using Parcel. Relevant code fragments:
Relevant characteristics of Parcel are:
Now, that last point is what can be violated using this bug. This means, that using this bug it is possible to cause data written after What to do with arbitrary
|
Thank you so much for your help. I have reproduced this issue on pixel device and bypass android-bug-7699048. |
Sorry to dig up an old topic. I'm trying to wrap my head around the actual flow of how the combination of the gatekeeper response bug combined with launch anywhere primitive allows us to run any activity. At a high level it looks like we're able to hide intents inside of a malformed gatekeeper response. When the malformed gatekeeper response is un-seralized it ends up making the rest of the bundle look like there is an Intent? Is that high level overview correct? |
Well, The point is that I'll clean up and post tomorrow PoC. |
PoC is now posted at https://github.com/michalbednarski/ReparcelBug |
Thank you for the information! I've been studying this topic since a series of this kind of vulnerabilities acknowledged in Android Security Bulletin. Now I find this original source! From other clues, I've already written a detailed writeup on this in http://www.ms509.com/2018/07/03/bundle-mismatch/ (Chinese) |
@michalbednarski |
CVE-2018-9522 is bug in same family of Parcelable mismatch bugs as CVE-2017-0806 this thread was originally about, has same impact and similar exploitation technique. Everything in this thread (except PoC which needs minor changes to actually target this bug) applies to CVE-2018-9522 as well. |
Hello @michalbednarski , couldn't find a way to reach out so I'll use this Issue. Uhmm, is it possible to spawn an activity that would inherit the system privileges or maybe launch an app with uid 1000 using this vulnerability or even change ADB's shell process uid to 1000? |
In general by "start Activity as system" I mean having system perform In general case Parcel mismatch doesn't lead to code execution, although there were some specific cases where it did, for example on Android 12 Beta For testing impact of issues on development builds of Android you can use |
Thank you. |
Hi,
I have some other questions that need you help, but I do not have your email so I just submitted this issue. And my email is ele7enxxh@gmail.com.
Thanks!
The text was updated successfully, but these errors were encountered: