Skip to content

Security: Flask debug mode enabled by default, exposed on 0.0.0.0#445

Open
chinhkrb113 wants to merge 1 commit into666ghj:mainfrom
chinhkrb113:contribai/fix/security/flask-debug-mode-enabled-by-default-expo
Open

Security: Flask debug mode enabled by default, exposed on 0.0.0.0#445
chinhkrb113 wants to merge 1 commit into666ghj:mainfrom
chinhkrb113:contribai/fix/security/flask-debug-mode-enabled-by-default-expo

Conversation

@chinhkrb113
Copy link
Copy Markdown

Description

DEBUG defaults to True (FLASK_DEBUG env var is 'True' unless overridden) and the server binds to 0.0.0.0. When debug mode is active, Flask enables the Werkzeug interactive debugger, which allows arbitrary Python code execution via the browser-accessible debugger console if an exception is triggered. Combined with the public bind address this creates a remote code execution vector on any deployment that forgets to set FLASK_DEBUG=False.

Changes

  • backend/app/config.py (modified)

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

Testing

  • Code follows the style guidelines of this project
  • Self-review of code completed
  • Changes generate no new warnings
  • Corresponding changes to documentation made (if applicable)

Severity: high

DEBUG defaults to True (FLASK_DEBUG env var is 'True' unless overridden) and the server binds to 0.0.0.0. When debug mode is active, Flask enables the Werkzeug interactive debugger, which allows arbitrary Python code execution via the browser-accessible debugger console if an exception is triggered. Combined with the public bind address this creates a remote code execution vector on any deployment that forgets to set FLASK_DEBUG=False.

Affected files: config.py

Signed-off-by: ChinhLee <76194645+chinhkrb113@users.noreply.github.com>
@dosubot dosubot bot added the size:S This PR changes 10-29 lines, ignoring generated files. label Apr 2, 2026
koyouko added a commit to koyouko/MiroFish that referenced this pull request Apr 6, 2026
- fix(runner): prevent action data loss from partial line reads (666ghj#460)
  Track safe_position; only advance past newline-terminated lines to
  avoid permanent data loss when the writer is mid-flush.

- fix(build): restrict Python to <3.13 to avoid tiktoken failure (666ghj#453)
  tiktoken wheels are not available for Python 3.13+.

- fix(security): default FLASK_DEBUG to False (666ghj#445)
  Debug mode was on by default, exposing the Werkzeug debugger in
  production deployments on 0.0.0.0.

- fix(polling): stop frontend polling when backend fails (666ghj#448)
  Step2 and Step3 now detect failed status and error-count limits,
  stopping the polling interval instead of looping indefinitely.

- fix(simulation): stop Step2 hanging after prepare failures (666ghj#336)
  Reset state flags on each prepare run; raise ValueError instead of
  returning silently so the task manager marks the task as failed.

Co-Authored-By: koyouko <koyouko@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S This PR changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant