Python: `FlaskApp` instances do not reliably track subclasses
まだ誰も着手していません。
評価
調査の方向性
python/ql/lib/semmle/python/frameworks/Flask.qll の FlaskApp::instance() から始め、Issue にある最小クエリと Python サブクラスの例を再現します。Flask サブクラスが app として認識され、hello の route が検出されることを確認します。近くに該当するライブラリカバレッジテストが見つかった場合は、それを追加または更新します。
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- CodeQL
- スター
- 10.1k
- フォーク
- 2.1k
- 平均マージ
- 2日 11時間
- マージ済み PR(30日)
- 129
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
github/codeql のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
-
C#: cs/simplifiable-boolean-expression false positive on Nullable<bool> compared with a literal オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
false-positive
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
False positive オープンfalse-positive
難易度 4/5 3〜5日 初心者へのやさしさ 15/100
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
phoenixframework/phoenix#6847 ·
-
intake mcp-intake needs-ac needs-human-review priority:medium type:bug
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
Ikalus1988/MisakaNet#2019 · コメント 2 件 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
avniproject/avni-client#2135 ·
-
agent/security hive/hosted-available-lke648397-260827-5n31 security
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
api7/lua-resty-saml#63 ·