Python: `FlaskApp` instances do not reliably track subclasses
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 55/100
Piste de recherche
Commencez dans python/ql/lib/semmle/python/frameworks/Flask.qll, au niveau de FlaskApp::instance(), puis reproduisez la requête minimale et l’exemple de sous-classe Python de l’issue. Vérifiez qu’une sous-classe de Flask est reconnue comme une app et que la route pour hello est détectée ; ajoutez ou mettez à jour le test de couverture de bibliothèque correspondant s’il y en a un à proximité.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- CodeQL
- Étoiles
- 10.1k
- Forks
- 2.1k
- Merge moyen
- 2 j 11 h
- PR mergées (30 j)
- 129
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de github/codeql
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
-
C#: cs/simplifiable-boolean-expression false positive on Nullable<bool> compared with a literal Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
false-positive
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
-
False positive Ouvertefalse-positive
Difficulté 4/5 3-5 jours Accessibilité débutants 15/100
Toutes les issues de github/codeql
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
avniproject/avni-client#2135 ·
-
agent/security hive/hosted-available-lke648397-260827-5n31 security
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
api7/lua-resty-saml#63 ·
-
area/auth bug comp/agent P3 platform/discord type/security
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
NousResearch/hermes-agent#117848 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
decentraland/auth#515 ·