Taint is stuck in exception variable declaration of a catch clause: `catch(Exception e)`
- Ngôn ngữ chính
- CodeQL
- Star
- 10.1k
- Fork
- 2.1k
- Merge trung bình
- 2 ngày 15 giờ
- Pull request đã merge (30 ngày)
- 141
Mô tả
**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/
Hướng dẫn đóng góp
Đánh giá
Issue này chưa được đánh giá.