← Back to issue list

build(deps): update dependency h11 to v0.16.0 [security] (hotfix/2.4.3)

View original Github issue

Metadata

Project
craft-parts
Number
#1081
Type
pull request
State
closed
Author
renovate[bot]
Labels
Created
Updated
Closed

Current evaluation

Merged to update h11 from v0.14.0 to v0.16.0, addressing CVE-2025-43859 request smuggling vulnerability in chunked-encoding parsing.

Suggested action:

No scores available.

Issue body

This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [h11](https://redirect.github.com/python-hyper/h11) | `==0.14.0` -> `==0.16.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/h11/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/h11/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/h11/0.14.0/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/h11/0.14.0/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. ### GitHub Vulnerability Alerts #### [CVE-2025-43859](https://redirect.github.com/python-hyper/h11/security/advisories/GHSA-vqfr-h8mv-ghfj) ### Impact A leniency in h11's parsing of line terminators in chunked-coding message bodies can lead to request smuggling vulnerabilities under certain conditions. ### Details HTTP/1.1 Chunked-Encoding bodies are formatted as a sequence of "chunks", each of which consists of: - chunk length - `\r\n` - `length` bytes of content - `\r\n` In versions of h11 up to 0.14.0, h11 instead parsed them as: - chunk length - `\r\n` - `length` bytes of content - any two bytes i.e. it did not validate that the trailing `\r\n` bytes were correct, and if you put 2 bytes of garbage there it would be accepted, instead of correctly rejecting the body as malformed. By itself this is harmless. However, suppose you have a proxy or reverse-proxy that tries to analyze HTTP requests, and your proxy has a _different_ bug in parsing Chunked-Encoding, acting as if the format is: - chunk length - `\r\n` - `length` bytes of content - more bytes of content, as many as it takes until you find a `\r\n` For example, [pound](https://redirect.github.com/graygnuorg/pound/pull/43) had this bug -- it can happen if an implementer uses a generic "read until end of line" helper to consumes the trailing `\r\n`. In this case, h11 and your proxy may both accept the same stream of bytes, but interpret them differently. For example, consider the following HTTP request(s) (assume all line breaks are `\r\n`): ``` GET /one HTTP/1.1 Host: localhost Transfer-Encoding: chunked 5 AAAAAXX2 45 0 GET /two HTTP/1.1 Host: localhost Transfer-Encoding: chunked 0 ``` Here h11 will interpret it as two requests, one with body `AAAAA45` and one with an empty body, while our hypothetical buggy proxy will interpret it as a single request, with body `AAAAXX20\r\n\r\nGET /two ...`. And any time two HTTP processors both accept the same string of bytes but interpret them differently, you have the conditions for a "request smuggling" attack. For example, if `/two` is a dangerous endpoint and the job of the reverse proxy is to stop requests from getting there, then an attacker could use a bytestream like the above to circumvent this protection. Even worse, if our buggy reverse proxy receives two requests from different users: ``` GET /one HTTP/1.1 Host: localhost Transfer-Encoding: chunked 5 AAAAAXX999 0 ``` ``` GET /two HTTP/1.1 Host: localhost Cookie: SESSION_KEY=abcdef... ``` ...it will consider the first request to be complete and valid, and send both on to the h11-based web server over the same socket. The server will then see the two concatenated requests, and interpret them as _one_ request to `/one` whose body includes `/two`'s session key, potentially allowing one user to steal another's credentials. ### Patches Fixed in h11 0.15.0. ### Workarounds Since exploitation requires the combination of buggy h11 with a buggy (reverse) proxy, fixing either component is sufficient to mitigate this issue. ### Credits Reported by Jeppe Bonde Weikop on 2025-01-09. --- ### Release Notes <details> <summary>python-hyper/h11 (h11)</summary> ### [`v0.16.0`](https://redirect.github.com/python-hyper/h11/compare/v0.15.0...v0.16.0) [Compare Source](https://redirect.github.com/python-hyper/h11/compare/v0.15.0...v0.16.0) ### [`v0.15.0`](https://redirect.github.com/python-hyper/h11/compare/v0.14.0...v0.15.0) [Compare Source](https://redirect.github.com/python-hyper/h11/compare/v0.14.0...v0.15.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "" in timezone Etc/UTC, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, 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/craft-parts). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNTcuMyIsInVwZGF0ZWRJblZlciI6IjM5LjI1Ny4zIiwidGFyZ2V0QnJhbmNoIjoiaG90Zml4LzIuNC4zIiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.6-35b-a3b Merged to update h11 from v0.14.0 to v0.16.0, addressing CVE-2025-43859 request smuggling vulnerability in chunked-encoding parsing.
qwen3.6-35b-a3b-mtp-q6 Merged to hotfix/2.4.3 to upgrade h11 from 0.14.0 to 0.16.0, resolving CVE-2025-43859 request smuggling vulnerability in chunked encoding parsing.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#1083 build(deps): update dependency h11 to v0.16.0 [security] craft-parts merged Merged automated dependency update upgrading h11 from v0.14.0 to v0.16.0 to resolve CVE-2025-43859, a request smuggling vulnerability in chunked-coding parsing. Approved by two reviewers and passed all CI checks.
94%
#2268 build(deps): update dependency h11 to v0.16.0 [security] (main) charmcraft merged Merged automated dependency update raising h11 from 0.14.0 to 0.16.0 to resolve CVE-2025-43859, a chunked encoding vulnerability enabling HTTP request smuggling. Approved by reviewers and merged to main.
93%
#1080 build(deps): update dependency h11 to v0.16.0 [security] (hotfix/2.4) craft-parts closed Closed without merge. The security update for CVE-2025-43859 by upgrading h11 to v0.16.0 was abandoned after mixed CI results.
87%
#2270 build(deps): update dependency h11 to v0.16.0 [security] (hotfix/3.4) - autoclosed charmcraft closed Autoclosed and abandoned. The h11 security update to v0.16.0 addressing CVE-2025-43859 was not merged because httpcore also requires an update, necessitating a broader dependency refresh.
85%
#2269 build(deps): update dependency h11 to v0.16.0 [security] (hotfix/3.3) charmcraft closed The dependency update to h11 v0.16.0 was closed without merging. Multiple CI checks, including security scans and snap builds, failed, preventing the security patch from being applied.
84%
#1078 build(deps): update dependency h11 to v0.16.0 [security] (main) - autoclosed craft-parts closed Dependency update for h11 to v0.16.0 to fix CVE-2025-43859 was autoclosed, indicating it was superseded by a newer update or merged automatically.
84%
#1079 build(deps): update dependency h11 to v0.16.0 [security] (hotfix/2.3) craft-parts closed Abandoned without merging. The h11 v0.16.0 security update for CVE-2025-43859 was closed after 453 days due to inactivity and failing CI checks. It was superseded by a newer Renovate update, leaving the branch unpatched.
82%
#2267 build(deps-dev): bump h11 from 0.14.0 to 0.16.0 charmcraft closed Dependabot PR to bump h11 from 0.14.0 to 0.16.0 was closed as superseded. The bot confirmed the dependency is already up-to-date, making the update redundant.
74%
#5065 build(deps): update dependency requests to v2.32.2 [security] (hotfix/7.5) snapcraft merged Merged an automated security update upgrading the requests dependency from v2.28.1 to v2.32.2 to fix CVE-2024-35195. Approved by two reviewers, passed CI, and merged into the hotfix/7.5 branch.
72%
#5067 build(deps): update dependency requests to v2.32.2 [security] (hotfix/8.4) snapcraft merged Merged security hotfix updating requests from v2.31.0 to v2.32.2 to resolve CVE-2024-35195, fixing SSL verification state leakage in HTTP sessions. Approved by two reviewers and passed CI checks.
71%