Repository navigation
CVE-2026-112404 / CVE-2026-112895 (high): require pillow 13 in e2b-desktop - #2011
Conversation
…-112895 (high) Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
🦋 Changeset detectedLatest commit: c5eb801 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
TASTE.md review: compliant. The PR only changes the dependency range (pillow>=12.0.0,<14), uv.lock, and a changeset. It touches no public SDK API, so I found no violations of T-1–T-74, and the dependency-only change raises no parity (T-1/T-2) or module-structure (T-54–T-56) concern. 0 violations.
Package ArtifactsBuilt from f9a6b86. Download artifacts from this workflow run. JS SDK ( npm install ./e2b-dockerfile-utils-0.1.2-devin-1792566467-pillow-13-desktop.0.tgz ./e2b-2.58.1-devin-1792566467-pillow-13-desktop.0.tgzCLI ( npm install ./e2b-cli-2.22.4-devin-1792566467-pillow-13-desktop.0.tgzCode Interpreter JS SDK ( npm install ./e2b-code-interpreter-2.9.1-devin-1792566467-pillow-13-desktop.0.tgzDesktop JS SDK ( npm install ./e2b-desktop-2.5.1-devin-1792566467-pillow-13-desktop.0.tgzPython SDK ( pip install ./e2b_dockerfile_utils-0.1.1+devin.1792566467.pillow.13.desktop-py3-none-any.whl ./e2b-2.58.0+devin.1792566467.pillow.13.desktop-py3-none-any.whlCode Interpreter Python SDK ( pip install ./e2b_code_interpreter-2.11.2+devin.1792566467.pillow.13.desktop-py3-none-any.whlDesktop Python SDK ( pip install ./e2b_desktop-2.7.1+devin.1792566467.pillow.13.desktop-py3-none-any.whl |
There was a problem hiding this comment.
I reviewed this PR and found no bugs. The repo's CODEOWNERS file assigns every path to a default owner, so that owner should still look at it before merge.
What was reviewed:
- The bound change in
pyproject.toml(<13to<14) and the matchingrequires-distinuv.lock. Only the pillow entry in the lock changed, and it stays atrevision = 3. - Python support: the pillow 13.0.0 lock entry has wheels for cp311–cp315 (plus free-threaded builds) and PyPy 3.11/3.12. That covers this package's
requires-python >=3.11. - API impact:
e2b_desktopnever imports PIL. Onlytests/test_controls.pyusesImage/ImageChops, and pillow 13 doesn't remove those. - The changeset name
@ e2b/desktop-pythonmatches the name in this package'spackage.json. - The lower bound is still
>=12.0.0, so a vulnerable 12.x install is still allowed. Raising it to 13 would be a separate decision.
Extended reasoning...
The change widens the pillow upper bound in packages/desktop-python/pyproject.toml, regenerates the pillow entry in uv.lock (12.3.0 to 13.0.0) and adds a patch changeset. It changes no source code and touches no security-sensitive code paths. The reason for the dependency bump is the CVE fixes. The runtime package doesn't import PIL, and the locked wheels cover every supported Python version. I'm deferring rather than approving only because a repo-wide CODEOWNERS entry assigns these paths to a default owner.
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
@cla-bot check |
|
The cla-bot has been summoned, and re-checked this pull request! |
Summary
e2b-desktopdeclaredpillow>=12.0.0,<13as a runtime dependency. Every Pillow 12.x release is affected by these high-severity advisories, and the only fix is in 13.0.0 (released 2026-10-16):TiffDecode.ctile and RGBA paths leaks heap memory into pixels (>=8.1.0, <13.0.0)The bump also clears two medium advisories: CVE-2026-112395 / GHSA-462x-pgg6-55fp and CVE-2026-112899 / GHSA-vx6w-vv9f-6gvg.
The old
<13cap stopped users from upgrading to the patched Pillow. Per review, the floor now goes up too, so a vulnerable 12.x can no longer be resolved:The lock moves from
pillow 12.3.0to13.0.0. I relocked with uv 0.10.12, so the lockfile stays atrevision = 3. There's a changeset (@e2b/desktop-pythonpatch).Pillow 13's breaking changes are: dropping Python 3.10 (we already require
>=3.11), I-mode PNG clipping, and the removal ofImage._show,get_child_imagesandImageCmsProfile.product_*. None of these affect this package:e2b_desktopdoesn't import PIL, and only the tests useImage/ImageChops.Out of scope:
code-interpreter-pythonpulls in Pillow only through its dev-groupmatplotlib, so I left that alone rather than force a major bump for a dev-only advisory.Verification
packages/desktop-python,uv run pytest -n 4 testsagainst live E2B with Pillow 13.0.0: 18 passed (this includestest_controls.py, which usesPIL.Image/ImageChops)make lintandmake typecheck(ty): passpip-auditon the exported lock: no Pillow findings left (the only remaining finding is certifi, fixed separately in GHSA-6q48-6c7w-9gw2 (critical): bump certifi to 2026.10.19 #2010)Link to Devin session: https://app.devin.ai/sessions/1fd08fc404004c31b7466969c8fdc9bb
Open in Devin Desktop: https://app.devin.ai/desktop/session/1fd08fc404004c31b7466969c8fdc9bb?variant=devin