github / github/codeql

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

Đang mở
#3,710 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Java question
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

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.