Skip to content

fix(matching-cv,#codeql): env-driven FLASK_DEBUG default False - #16183

Merged
myia-ai-01 merged 1 commit into
mainfrom
feature/codeql-flask-debug
Sep 16, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
feature/codeql-flask-debug

Conversation

@jsboige

@jsboige jsboige commented Sep 14, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/guard — lane myia-po-2027:CoursIA-2 — prev: LIGHT/guard #16182

fix(matching-cv,#codeql): env-driven FLASK_DEBUG default False

Résumé

Remplace app.run(debug=True) (ligne 286) par un flag env-driven FLASK_DEBUG (défaut False). CodeQL py/flask-debug signale : debug=True expose la console Werkzeug debugger, qui permet l'exécution de code arbitraire via le navigateur (RCE local).

Le développement local peut toujours opt-in avec FLASK_DEBUG=true. Même pattern que ENABLE_PERFORMANCE_LOGS (ligne 39 du même fichier).

Preuves vérifiables

# Critère Résultat
1 py_compile.compile(main.py, doraise=True) OK
2 os déjà importé en tête de fichier confirmé
3 Pattern os.getenv('FLAG', 'False').lower() == 'true' matche le pattern existant ligne 39
4 Diff 1 file, +2 / −1
5 Domaine cross-series (1 seul)

Acceptance

  • py_compile OK
  • Pas de debug=True hardcodé
  • Pas de breaking change (défaut False = comportement production sûr)
  • Local dev path opt-in via FLASK_DEBUG=true

Diff

 if __name__ == '__main__':
-    app.run(debug=True)
+    debug_mode = os.getenv('FLASK_DEBUG', 'False').lower() == 'true'
+    app.run(debug=debug_mode)

Note

auth_manager.py:256 (py/clear-text-storage #55) n'est pas traité par cette PR. Vérification : le code stocke COMFYUI_RAW_TOKEN dans .env (gitignored par .gitignore). C'est architecturalement conforme à secrets-hygiene rule 1 (secrets dans fichiers gitignored). À dismisser via l'UI CodeQL avec justification « .env gitignored, secrets-hygiene rule 1 ».

🤖 Generated with Claude Code

Replaces app.run(debug=True) with an env-driven flag (FLASK_DEBUG,
default False). CodeQL flagged py/flask-debug at line 286 as a security
risk: debug=True exposes the Werkzeug debugger console which allows
arbitrary code execution via the browser.

Local dev can still opt-in with FLASK_DEBUG=true. Same pattern as the
existing ENABLE_PERFORMANCE_LOGS env var (line 39).

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added the trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) label Sep 14, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre guard dans la famille META (docs/guard/ledger/readme/test) + diff de 3 lignes changees (<= 100) + aucune exception ecrite dans le body : le litmus de la trivialite (une douzaine d'instances scannees a la suite) est credible. Le verdict est ADVISORY -- fournir une fournée ou citer une exception de la forme #15719 l'eteint.
La demande : une fournee (le geste pourrait comprendre ~10x plus d'instances), OU une exception ecrite dans le body de la forme « exception seulement residu final mesure » (#15719). Editer le body re-deroule cet organe et retire le label.

@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #16183 (fix(matching-cv,#codeql): env-driven FLASK_DEBUG default False) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exact-head review of 0732213bedd5932d0f5c7ea2c7f1280178c78361 complete.

APPROVE — this is the canonical single-purpose carrier for the matching-cv CodeQL repair. The patch replaces Flask's hard-coded debug mode with an environment-controlled flag that defaults safely to false, follows the existing environment-toggle idiom in the same file, and passes the complete exact-head check set.

Verified: nits clear, no unresolved thread or closing issue reference, and no failed or pending check. The identical matching-cv/main.py commit accidentally retained in #16182 must be dropped there before either PR merges; that duplicate is a dependency of #16182, not a defect in this focused PR.

@myia-ai-01
myia-ai-01 merged commit 4d1e289 into main Sep 16, 2026
16 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants