Repository navigation
Conversation
…and black pip-audit flags 40 advisories published after main's last green run: pillow 12.3.0 (37, fixed in 13.0.0), gitpython 3.1.62 (CVE-2026-114145), certifi 2024.8.30 (PYSEC-2026-4320) and black 26.3.1 (CVE-2026-114134). - pillow 13 requires Python 3.11, and every streamlit before 1.66.1 caps pillow<13, so on Python >= 3.11 pillow moves to 13 and streamlit to 1.66.1 (which runs on Starlette/uvicorn instead of Tornado). Python 3.10 stays on pillow 12.3.0 and streamlit 1.56.0: no fixed pillow supports it. - GitPython floor raised to 3.2.1; certifi gets a floor in the transitive security constraints; the black dev floor is raised to 26.10.1. Only the affected poetry.lock entries were spliced in, since a plain `poetry lock` on main also drops about 20 unrelated older-Python entries. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HwkxN8YriHhdXBwMc4sd8h
Contributor
|
📦 Python package built successfully!
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #143 +/- ##
=======================================
Coverage 78.17% 78.17%
=======================================
Files 120 120
Lines 6837 6837
Branches 990 990
=======================================
Hits 5345 5345
Misses 1182 1182
Partials 310 310
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. |
|
🚀 Review App Deployment Started
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HwkxN8YriHhdXBwMc4sd8h
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Audit - ProductionandAudit - Allhave failed on every PR since about 2026-10-22. The cause is 40 advisories, in 4 packages, published aftermain's last green run. This PR fixes all of them on Python 3.11–3.14. On Python 3.10 the 37 pillow advisories remain, because no fixed pillow release supports 3.10 (details below).Changes
serverextra)Why each change looks the way it does
Image.open().load()reaches with default settings. pillow 13 requires Python ≥ 3.11, so the constraint is split. Ignoring the advisories wasn't a good option: they are reachable from opening an untrusted image, and a fix exists for 3.11+. This follows fix(deps): resolve pip-audit failures #133, which accepted pymongo's breaking change for the same reason.pillow<13, so pillow 13 needs streamlit ≥ 1.66.1, which itself requires Python ≥ 3.11. Its floor is declared explicitly, as dnspython's was next to the pymongo bump in fix(deps): resolve pip-audit failures #133.<4, and the locked gitdb 4.0.11 already satisfies 3.2.1'sgitdb>=4.0.1,<5. Streamlit 1.66 no longer depends on GitPython. It stays installed on all versions through our own constraint, so it doesn't disappear from user environments.use_pyproject: true), which this repo doesn't use. A fix exists and black 26.10.1 reformats nothing (217 files unchanged), so the floor is bumped rather than ignored. black also reaches theserverextra throughdeepnote-python-lsp-server(black = "*"). There, fresh installs resolve the latest black, and the advisory isn't reachable at runtime, so no runtime constraint was added.serverextra on ≥ 3.11. blinker is now needed only on 3.10.streamlit runon 1.66.1, using the flags frominstaller/module/streamlit.pyand a cross-originOriginheader:/_stcore/healthand/return 200read_streamlit_token_from_context()and_read_streamlit_app_id_from_context()still read the viewer'sstreamlit-tokencookie and the app host fromst.contextpython_version < "3.11"pin of pillow 12.3.0 reports "No known vulnerabilities found"). This is also why the 3.10 pins need noignore-vulnsentry.Lock file
Only the entries for these 12 packages changed: black, blinker, certifi, gitpython, h11, itsdangerous, pillow, python-multipart, starlette, streamlit, uvicorn, websockets.
A plain
poetry lockonmainalso drops 20 unrelated older-Python entries (pydantic 2.11.7, pyzmq 26.2.0, pyspark 4.0.1, …). So, as in #133, the new entries were spliced into the existing lock from a fresh lock of the newpyproject.toml. A comparison confirmed that the fresh lock differs from the spliced one only in that unrelated drift.Testing
poetry check --lockpasses (Poetry 2.2.0, as in CI).pip-audit with CI's flags and ignores:
mainfinds 40 known vulnerabilities in 4 packages; this branch finds none.The full export (all extras + dev) resolves on Python 3.10–3.14 with no package outside the lock, except
tomlion 3.11 (via coverage), which is already the case onmain.Unit tests, in venvs built from the exported lock with all extras:
On 3.12,
main's lock gives the same counts, skips and warnings.Not in this PR (found while auditing, already on
main)CI's audit exports only the main dependencies: no
serverextra, no dev group. An audit of everything finds these, all present onmainand unchanged here:jupyter-server2.20.0 (serverextra): PYSEC-2026-4054, fixed in 2.21.0anyio4.4.0: PYSEC-2026-4024, PYSEC-2026-4025, fixed in 4.14.2virtualenv20.36.1 (dev): 19 advisories, fixed in 21.14.9pyspark3.5.5 (dev, < 3.13): PYSEC-2026-3966, fixed in 3.5.8Making CI audit extras and other Python versions would catch these, but it is a separate change.
🤖 Generated with Claude Code
https://claude.ai/code/session_01HwkxN8YriHhdXBwMc4sd8h
Summary by CodeRabbit