github / github/codeql

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

Abierto
#3,710 1 comentario 0 reacciones 0 asignados Ver en GitHub
Java question
Lenguaje dominante
CodeQL
Estrellas
10.1k
Forks
2.1k
Merge medio
2 d 15 h
PR fusionados (30 d)
141

Descripción

**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/

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.