File tree Expand file tree Collapse file tree 3 files changed +24
-6
lines changed
lib/semmle/code/java/security
test/query-tests/security/CWE-532 Expand file tree Collapse file tree 3 files changed +24
-6
lines changed Original file line number Diff line number Diff line change @@ -4,14 +4,15 @@ import java
4
4
private import semmle.code.java.dataflow.ExternalFlow
5
5
import semmle.code.java.dataflow.TaintTracking
6
6
import semmle.code.java.security.SensitiveActions
7
+ import semmle.code.java.frameworks.android.Compose
7
8
import DataFlow
8
9
9
- /** A variable that may hold sensitive information, judging by its name. * * /
10
+ /** A variable that may hold sensitive information, judging by its name. */
10
11
class CredentialExpr extends Expr {
11
12
CredentialExpr ( ) {
12
13
exists ( Variable v | this = v .getAnAccess ( ) |
13
- v .getName ( ) .regexpMatch ( [ getCommonSensitiveInfoRegex ( ) , "(?i).*(username).*" ] ) and
14
- not v . isFinal ( )
14
+ v .getName ( ) .regexpMatch ( getCommonSensitiveInfoRegex ( ) ) and
15
+ not this instanceof CompileTimeConstantExpr
15
16
)
16
17
}
17
18
}
@@ -23,4 +24,8 @@ class SensitiveLoggerConfiguration extends TaintTracking::Configuration {
23
24
override predicate isSource ( DataFlow:: Node source ) { source .asExpr ( ) instanceof CredentialExpr }
24
25
25
26
override predicate isSink ( DataFlow:: Node sink ) { sinkNode ( sink , "logging" ) }
27
+
28
+ override predicate isSanitizer ( DataFlow:: Node sanitizer ) {
29
+ sanitizer .asExpr ( ) instanceof LiveLiteral
30
+ }
26
31
}
Original file line number Diff line number Diff line change
1
+ ---
2
+ category : minorAnalysis
3
+ ---
4
+ * Query ` java/sensitive-log ` has received several improvements.
5
+ * It no longer considers usernames as sensitive information.
6
+ * The conditions to consider a variable a constant (and therefore exclude it as user-provided sensitive information) have been tightened.
7
+ * A sanitizer has been added to handle certain elements introduced by a Kotlin compiler plugin that have deceptive names.
Original file line number Diff line number Diff line change @@ -5,12 +5,18 @@ void test(String password) {
5
5
Logger logger = null ;
6
6
7
7
logger .info ("User's password is: " + password ); // $ hasTaintFlow
8
- }
8
+ }
9
9
10
10
void test2 (String authToken ) {
11
11
Logger logger = null ;
12
12
13
- logger .error ("Auth failed for: " + authToken ); // $ hasTaintFlow
13
+ logger .error ("Auth failed for: " + authToken ); // $ hasTaintFlow
14
+ }
15
+
16
+ void test3 (String username ) {
17
+ Logger logger = null ;
18
+
19
+ logger .error ("Auth failed for: " + username ); // Safe
14
20
}
15
21
16
- }
22
+ }
You can’t perform that action at this time.
0 commit comments