Is pallets/flask OK?
Yes.
Nothing serious in what it ships.
Internal: 42 flaws in tests and tools, none reaches your users.Checked 17:01 UTCcommit d086db8advisories as of 10:05 UTC
Touches your users
1 flaw in what the project ships.
Can break or slow your service
werkzeug 3.1.81 flawfixed in 3.1.9A flaw whose effect is not spelled out. From anywhere online, no account needed.
- GHSA-g6x2-hccm-hh4mWerkzeug safe_join() allows Windows special device names
Internal only
Dev tools, tests, examples, docs and benchmarks: they do not reach your users, so they never count in the answer.
certifi 2026.7.221 flawfixed in 2026.10.19A protection is weaker than it should be. From anywhere online, no account needed.
- GHSA-6q48-6c7w-9gw2certifi bundles emSign root CAs with compromised intermediate CA keys
uv 0.12.01 flawfixed in 0.13.4A protection is weaker than it should be. From anywhere online, no account needed.
- GHSA-hq85-5cpj-mr62uv's bundled CA store trusts an emSign root whose intermediate CA keys are compromised
virtualenv 21.7.119 flawsfixed in 21.14.9Someone could run their own code where it runs. From anywhere online, no account needed.
- GHSA-94p9-xgh2-xp45virtualenv: Downloaded seed wheels (pip/setuptools) are not integrity-checked before use
- GHSA-394h-qwmc-48pfvirtualenv: Xonsh activation literals depend on the script decoding codec
- GHSA-5vjq-rrrf-7h2qvirtualenv activate runs commands from the environment name in zsh with PROMPT_SUBST
- GHSA-6w3r-xr62-4xcpvirtualenv: Bash prompt values can change meaning under older compatibility modes
- GHSA-8rjx-v5ww-45ppvirtualenv activation scripts run code from a path that contains a placeholder name
- GHSA-c947-3pg5-gm8qvirtualenv activate.fish runs commands from a path or prompt with a backslash before a quote
- GHSA-c978-59m8-c77vvirtualenv: Generated POSIX console launchers interpret destination paths as shell syntax
- GHSA-p58f-9548-mpm2virtualenv bash and fish activation scripts execute commands embedded in paths
- GHSA-vxj4-q4g9-crj7virtualenv bash activate runs commands from an environment name with a backslash before $
- GHSA-x78j-v8h9-3j2qvirtualenv: Command injection via --prompt in activate.bat (batch activator)
- GHSA-hhxq-47xx-j5xxvirtualenv: Seed replacement does not contain metadata deletion paths
- GHSA-9h9j-4vrj-gf7gvirtualenv writes prompt values into pyvenv.cfg without sanitizing line boundaries, allowing configuration injection
- GHSA-fc2g-4w5p-6whmvirtualenv: Seeded files retain permissions from an older cache
- GHSA-43mp-35q3-x3fqvirtualenv: Deletion recovery can change a symlink target's mode
- GHSA-558c-9hv2-4prjvirtualenv: Generated files can follow existing destination links
- GHSA-cw65-gx24-rc82virtualenv: Builtin creation follows linked environment directories
- GHSA-494p-63j8-28p3virtualenv: Downloaded wheel selection and caching precede verification
- GHSA-cx28-75q4-x26qvirtualenv: Pip seeding with download omits wheel digest verification
- GHSA-qmx5-4p3x-wvqfvirtualenv: Venv configuration readback can reinterpret path boundaries
jinja2 3.1.25 flawsfixed in 3.1.6Someone could run their own code where it runs. Only with access to the machine.
- GHSA-cpwx-vrp4-4pq7Jinja2 vulnerable to sandbox breakout through attr filter selecting format method
- GHSA-gmj6-6f8f-6699Jinja has a sandbox breakout through malicious filenames
- GHSA-q2x7-8rv6-6q7hJinja has a sandbox breakout through indirect reference to format method
- GHSA-h5c8-rqwp-cp95Jinja vulnerable to HTML attribute injection when passing user input as keys to xmlattr filter
- GHSA-h75v-3vvj-5mfjJinja vulnerable to HTML attribute injection when passing user input as keys to xmlattr filter
cryptography 49.0.01 flawfixed in 50.0.0Someone could read data they should not see. From anywhere online, no account needed.
- GHSA-g6cj-pr64-35w5cryptography: PKCS#7 EnvelopedData decryption exposes a Bleichenbacher oracle through distinguishable errors and timing
werkzeug 2.3.38 flawsfixed in 3.1.9Someone could read data they should not see. From anywhere online, no account needed.
- GHSA-f9vj-2wh5-fj8jWerkzeug safe_join not safe on Windows
- GHSA-2g68-c3qc-8985Werkzeug debugger vulnerable to remote execution when interacting with attacker controlled domain
- GHSA-q34m-jh98-gwm2Werkzeug possible resource exhaustion when parsing file data in forms
- GHSA-hrfv-mqp8-q5rwWerkzeug DoS: High resource usage when parsing multipart/form-data containing a large part with CR/LF character at the beginning
- GHSA-29vq-49wr-vm6x Werkzeug safe_join() allows Windows special device names
- GHSA-87hc-h4r5-73f7 Werkzeug safe_join() allows Windows special device names with compound extensions
- GHSA-g6x2-hccm-hh4mWerkzeug safe_join() allows Windows special device names
- GHSA-hgf8-39gv-g3f2Werkzeug safe_join() allows Windows special device names
filelock 3.32.23 flawsfixed in 4.2.1Someone could change data or files. Only with access to the machine.
- GHSA-v4x8-3wr5-3wq8filelock ReadWriteLock: SQLite reopens the lock database by name, so a planted symlink or journal file makes the lock user's process overwrite or unlink its own files
- GHSA-567q-5qvw-pf92filelock: On Windows an oplock on a soft lock's marker holds SoftFileLock.acquire() past its timeout and blocks the stale break
- GHSA-9vhv-jxww-xfm5filelock: ReadWriteLock on Windows acts on SQLite side files another local user places beside its database
urllib3 2.7.03 flawsfixed in 2.8.0Someone could make it crash or freeze. From anywhere online, no account needed.
- GHSA-vxq7-64xx-v4gwurllib3: HTTPResponse.stream()/read_chunked() buffers an unbounded chunk-size line into memory
- GHSA-gh4c-6fx4-qh6gurllib3: Chunked Deflate streaming can enter an infinite loop
- GHSA-8988-9cw3-xx77urllib3: HTTPS proxy TLS configuration may be ignored or overridden
flask 2.3.21 flawfixed in 3.1.3A flaw whose effect is not spelled out. From anywhere online, no account needed.
- GHSA-68rp-wp8r-4726Flask session does not add `Vary: Cookie` header when accessed in some ways
Email me when this changes
One email to confirm, then one only when the answer gets worse or a new serious flaw appears: at most one a day, at once if attackers use it. One click to unsubscribe.
Put the badge in your README
It shows this answer and changes with it.
[](https://istheinternetok.com/r/pallets/flask/)Read from examples/celery/requirements.txt, uv.lock.