Skip to content

Commit f2db9ce

Browse files
authored
Merge pull request #16028 from owen-mc/java/sensitive-log-whitelist-tokenimage
Java: whitelist variable name `tokenImage` for `java/sensitive-log` as it's used in code generated by JavaCC
2 parents d6374f6 + ac6c4ad commit f2db9ce

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ class VariableWithSensitiveName extends Variable {
1212
VariableWithSensitiveName() {
1313
exists(string name | name = this.getName() |
1414
name.regexpMatch(getCommonSensitiveInfoRegex()) and
15-
not name.regexpMatch("(?i).*null.*")
15+
not name.regexpMatch("(?i).*null.*") and
16+
name != "tokenImage" // appears in parser code generated by JavaCC
1617
)
1718
}
1819
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
category: minorAnalysis
3+
---
4+
* Variables named `tokenImage` are no longer sources for the `java/sensitive-log` query. This is because this variable name is used in parsing code generated by JavaCC, so it causes a large number of false positive alerts.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import org.apache.logging.log4j.Logger;
2+
3+
interface TokenSequenceParserConstants {
4+
/** Literal token values. */
5+
String[] tokenImage = {
6+
"<EOF>",
7+
};
8+
}
9+
10+
public class TokenSequenceParserTest implements TokenSequenceParserConstants {
11+
void test(String password) {
12+
Logger logger = null;
13+
14+
logger.info("When parsing found this: " + tokenImage[0]); // Safe
15+
}
16+
17+
}
18+
19+
class ParseExceptionTest extends Exception {
20+
String[] tokenImage;
21+
22+
void test() {
23+
Logger logger = null;
24+
25+
logger.info("When parsing found this: " + tokenImage[0]); // Safe
26+
}
27+
}

0 commit comments

Comments
 (0)