requirements.txt (no pyproject.toml) is recognised as its own
root, so run the command from the directory that holds the app.
What the static pass understands
Data flow follows calls into this project’s own functions and methods, across modules.
A route that passes a query value to a helper in another file is reported at the line
where the value reaches the sink, attributed to that route.
Findings use the same categories, reports, SARIF export and compliance mapping as
JavaScript findings. Python rule ids start with
py-:
- Injection and unsafe input: SQL injection, command injection, path traversal,
server-side request forgery, template injection, unsafe deserialisation (
pickle,yaml.load), open redirect, reflected cross-site scripting. - Configuration: hardcoded secrets, debug mode switched on unconditionally, session
cookies without
HttpOnly,SecureorSameSite. - Access control: a route with no identity check beside authenticated siblings, and a record fetched by a caller-chosen id with no ownership check.
Starting the app so findings can be verified
Static candidates stay needs review until your agent exercises them against the running application. Myrqen detects how to start a Node app frompackage.json. For a
Python app it usually cannot, so the agent starts it, following the project’s own
instructions first. Without instructions:
- FastAPI
- Flask
127.0.0.1, and do not switch on Flask’s
debug mode. Save the command so the next run starts the same way (uvicorn binds to
127.0.0.1:8000 by default):