Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Python: `FlaskApp` instances do not reliably track subclasses

Open
#21,854 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
55/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
python
Domain
security

Research direction

Start in python/ql/lib/semmle/python/frameworks/Flask.qll at FlaskApp::instance(), then reproduce the minimal query and Python subclass example from the issue. Confirm that a Flask subclass is recognized as an app and that the route for hello is detected; add or update the relevant library coverage test if one is found nearby.

Written by the indexing model from the issue text.

Description

Python question

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.

Dominant language
CodeQL
Stars
10.1k
Forks
2.1k
Avg merge
2d 10h
Merged PRs (30d)
134

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from github/codeql

All issues in github/codeql

Similar issues

More Security issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.