github / github/codeql

Taint is stuck in exception variable declaration of a catch clause: `catch(Exception e)`

未關閉
#3,710 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
Java question
主要語言
CodeQL
星號
10.1k
分支
2.1k
平均合併
2 天 15 小時
30 天內合併 PR
141

描述

**Description of the issue**
Taint can not flow out of the caught exceptions in catch clauses.
E.g.
```java
try {
} catch(Exception e) {
System.out.println(e.getMessage());
}
```
Here taint will not flow to `e.getMessage()`.

```codeql
import java
import semmle.code.java.dataflow.TaintTracking

class T extends TaintTracking::Configuration {
T() { this = "T" }

override predicate isSource(DataFlow::Node source) {
exists(CatchClause c | c.getVariable() = source.asExpr())
}

override predicate isSink(DataFlow::Node sink) { any() }
}

from DataFlow::Node source, DataFlow::Node sink, T t
where t.hasFlow(source, sink)
select source, sink
```

Link to query:
https://lgtm.com/query/3909102737996232443/

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。