Python: `FlaskApp` instances do not reliably track subclasses
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 55/100
Direção de pesquisa
Comece em python/ql/lib/semmle/python/frameworks/Flask.qll, em FlaskApp::instance(), e depois reproduza a consulta mínima e o exemplo de subclasse Python da issue. Confirme que uma subclasse de Flask é reconhecida como um app e que a rota para hello é detectada; adicione ou atualize o teste relevante de cobertura da biblioteca, caso encontre um nas proximidades.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
I was running a set of queries on the CTFd repository, and got suspiciously few results for endpoints. After some experimenting I found out that they subclass Flask, which the current query for FlaskApp::instance() does not seem to track.
Minimal example:
Query:
import python
import semmle.python.frameworks.Flask
import semmle.python.ApiGraphs
from API::Node node
where Flask::FlaskApp::instance() = node
select node
Python:
from flask import Flask
class Sub(Flask):
def __init__(self, *args, **kwargs):
Flask.__init__(self, *args, **kwargs)
app = Sub(__name__)
@app.route("/")
def hello():
return "world"
CodeQL is not able to identify Sub as a Flask app, which means the route setup for hello cannot be detected as well.
Adding .getASubclass*() to FlaskApp::instance() would probably fix this. If this can be overridden without changes to the library I am open to suggestions, my knowledge of the QL modules is not that great as of now.
- Linguagem predominante
- CodeQL
- Estrelas
- 10.1k
- Forks
- 2.1k
- Merge médio
- 2d 17h
- PRs com merge (30d)
- 145
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de github/codeql
-
agentic-workflows
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
-
false-positive javascript
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
-
C#: cs/simplifiable-boolean-expression false positive on Nullable<bool> compared with a literal Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
false-positive
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
Todas as issues de github/codeql
Issues semelhantes
-
good first issue
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 95/100
AOSSIE-Org/DebateAI#582 · 2 comentários ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
oasisprotocol/oasis-sdk#2523 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
cost:cheap severity:medium
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
fairagro/m4.2_sql_to_arc#227 ·