Open adityavardhanpadala opened 8 months ago
Mariana Trench won't resolve calls using reflection, since the name can be anything at runtime.
In this specific example, we could detect that the argument is always "setImei" and call the right method. We don't currently support that, since we haven't seen this used frequently.
If you want a work around, you could model Method.invoke
to have a propagation from Arg(2) -> Arg(1)
, so imei
taints o
.
Bug
Bug description Tainted data does not flow through a reflected class when reflectedmethod.invoke(Object, Object) is executed.
Reproduction steps The apk is from DroidBench https://github.com/secure-software-engineering/DroidBench/blob/master/apk/Reflection/Reflection3.apk
Sink Model:
Source Model:
Logs Log file with the logging for onCreate method. log.txt