Skip to content

Commit ceae5ee

Browse files
committed
Revert "Decouple from github#10177"
This reverts commit 7b34b10.
1 parent 21a0c44 commit ceae5ee

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

java/ql/lib/semmle/code/java/security/UnsafeContentUriResolution.qll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java
44
private import semmle.code.java.dataflow.TaintTracking
55
private import semmle.code.java.frameworks.android.Android
6+
private import semmle.code.java.security.PathSanitizer
67

78
/** A URI that gets resolved by a `ContentResolver`. */
89
abstract class ContentUriResolutionSink extends DataFlow::Node { }
@@ -49,6 +50,9 @@ private class UninterestingTypeSanitizer extends ContentUriResolutionSanitizer {
4950
}
5051
}
5152

53+
private class PathSanitizer extends ContentUriResolutionSanitizer instanceof PathInjectionSanitizer {
54+
}
55+
5256
private class FilenameOnlySanitizer extends ContentUriResolutionSanitizer {
5357
FilenameOnlySanitizer() {
5458
exists(Method m | this.asExpr().(MethodAccess).getMethod() = m |

java/ql/test/query-tests/security/CWE-441/Test.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,13 @@ public void onCreate() {
5353
Uri uri = (Uri) getIntent().getParcelableExtra("URI_EXTRA");
5454
if (!uri.equals(Uri.parse("content://safe/uri")))
5555
throw new SecurityException();
56-
contentResolver.openInputStream(uri); // $ SPURIOUS: hasTaintFlow
56+
contentResolver.openInputStream(uri); // Safe
5757
}
5858
{
5959
ContentResolver contentResolver = getContentResolver();
6060
Uri uri = (Uri) getIntent().getParcelableExtra("URI_EXTRA");
6161
validateWithEquals(uri);
62-
contentResolver.openInputStream(uri); // $ SPURIOUS: hasTaintFlow
62+
contentResolver.openInputStream(uri); // Safe
6363
}
6464
// Allow list checks
6565
{
@@ -78,13 +78,13 @@ public void onCreate() {
7878
java.nio.file.FileSystems.getDefault().getPath(path).normalize();
7979
if (!normalized.startsWith("/safe/path"))
8080
throw new SecurityException();
81-
contentResolver.openInputStream(uri); // $ SPURIOUS: hasTaintFlow
81+
contentResolver.openInputStream(uri); // Safe
8282
}
8383
{
8484
ContentResolver contentResolver = getContentResolver();
8585
Uri uri = (Uri) getIntent().getParcelableExtra("URI_EXTRA");
8686
validateWithAllowList(uri);
87-
contentResolver.openInputStream(uri);// $ SPURIOUS: hasTaintFlow
87+
contentResolver.openInputStream(uri); // Safe
8888
}
8989
// Block list checks
9090
{
@@ -103,13 +103,13 @@ public void onCreate() {
103103
java.nio.file.FileSystems.getDefault().getPath(path).normalize();
104104
if (normalized.startsWith("/data"))
105105
throw new SecurityException();
106-
contentResolver.openInputStream(uri); // $ SPURIOUS: hasTaintFlow
106+
contentResolver.openInputStream(uri); // Safe
107107
}
108108
{
109109
ContentResolver contentResolver = getContentResolver();
110110
Uri uri = (Uri) getIntent().getParcelableExtra("URI_EXTRA");
111111
validateWithBlockList(uri);
112-
contentResolver.openInputStream(uri); // $ SPURIOUS: hasTaintFlow
112+
contentResolver.openInputStream(uri); // Safe
113113
}
114114
}
115115
}

0 commit comments

Comments
 (0)