Merge pull request #9319 from atorralba/atorralba/add-editable-valueof-step

Kotlin: Add taint step for String.valueOf(Editable)
This commit is contained in:
Tony Torralba
2022-06-22 13:50:30 +02:00
committed by GitHub
7 changed files with 47 additions and 10 deletions

View File

@@ -0,0 +1,4 @@
---
category: minorAnalysis
---
Added a flow step for `String.valueOf` calls on tainted `android.text.Editable` objects.

View File

@@ -18,12 +18,20 @@ private class DefaultAndroidWidgetSources extends RemoteFlowSource {
private class EditableToStringStep extends AdditionalTaintStep {
override predicate step(DataFlow::Node n1, DataFlow::Node n2) {
exists(MethodAccess toString |
toString.getMethod().hasName("toString") and
toString.getReceiverType().hasQualifiedName("android.text", "Editable")
|
n1.asExpr() = toString.getQualifier() and
n2.asExpr() = toString
exists(MethodAccess ma |
ma.getMethod().hasName("toString") and
ma.getReceiverType().getASourceSupertype*().hasQualifiedName("android.text", "Editable") and
n1.asExpr() = ma.getQualifier() and
n2.asExpr() = ma
or
ma.getMethod().hasQualifiedName("java.lang", "String", "valueOf") and
ma.getArgument(0)
.getType()
.(RefType)
.getASourceSupertype*()
.hasQualifiedName("android.text", "Editable") and
n1.asExpr() = ma.getArgument(0) and
n2.asExpr() = ma
)
}
}