github / github/codeql

Missing data flow

Đang mở
#10,980 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
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ả

I use the following rule of TaintTracking to query the data flow from CONTEXT_THREAD_LOCAL to if(user), but it doesn't work.

It seems that there is no data flow from CONTEXT_THREAD_LOCAL to User user variable?

```
override predicate isSource(DataFlow::Node source) {
exists(FieldRead f | source.asExpr() = f |
not source.asExpr().getEnclosingStmt() instanceof IfStmt and
f.getField().isStatic()
)
}

override predicate isSink(DataFlow::Node sink) {
exists(IfStmt ret |
sink.asExpr() = ret.getCondition().getAChildExpr*()
)
}
```

```
@SuppressWarnings("resource")
public static User getCurrentUser() {
return CONTEXT_THREAD_LOCAL.get().user;
}

public static User getRequiredCurrentUser() {
User user = getCurrentUser();
if (user == null) {
throw new ApiException(ApiError.AUTH_SIGNIN_REQUIRED, null, "Need signin first.");
}
return user;
}
```

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.