-
Notifications
You must be signed in to change notification settings - Fork 300
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
Test Aliasing4 is failing #761
Comments
I have been continuing checking and I found that there are others tests failing for the same reason:
Also, I found an interesting thing; test for factories3 https://github.com/secure-software-engineering/FlowDroid/blob/develop/soot-infoflow/securiBench/securibench/micro/factories/Factories3.java calls to a native method and their tainted is not lost
while Test for factories2 https://github.com/secure-software-engineering/FlowDroid/blob/develop/soot-infoflow/securiBench/securibench/micro/factories/Factories2.java calls to a native method and their tainted is lost.
In conclusion: Flowdroid loses tainted flow calling native method like "toString()" when the variable is an "string" but if it is an "object" the tainted flow is not lost. @StevenArzt Do you think that I am missing some configurations to enable this behaviour? |
That's strange. I had to update quite a few things to get the SecuriBench test cases running again because they were originally based on a highly outdated version of the servlet API, but once I migrated that to Jakarta, the tests ran fine. For
For
For
For
FlowDroid uses summaries to cover methods from the Java standard library. It therefore makes no difference whether these methods are implemented in native code or not. How did you run the tests? Did you use the offical JUnit test cases for SecuriBench or something else? Maybe you are missing the library summary configuration if you have your own runner instead of the official test cases. |
Hi @StevenArzt, I set up to work with Jakarta and now the tests that I mentioned run smoothly. |
I am checking the tests from securibench in the
soot-infoflow/
folder and I have noticed that test Aliasing4 (https://github.com/secure-software-engineering/FlowDroid/blob/develop/soot-infoflow/securiBench/securibench/micro/aliasing/Aliasing4.java) is failing.This test has two 2 sinks
but the solution is reporting just one.
so analysing the code I found that Flowdroid is not recognizing
Object o2
as tainted when the next line is performedObject o2 = name.concat("abc");
My question is: Does Flowdroid support calls to native method like
toUpperCase()
orconcat()
without losing the tainted for the variable?The text was updated successfully, but these errors were encountered: