← Back to issue list

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

View original Github issue

Metadata

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

Current evaluation

Closed unmerged; the equivalent h11 0.16.0 security update was carried forward by #1081 and merged through #1083 (commit 0ef423df).

Resolution: closed superseded

Reason: #1080 was replaced by #1081 for the hotfix/2.4.3 branch. The h11 update was ultimately merged through #1083 in commit 0ef423df.

Evaluated by: mr-cal-bot

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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNTcuMyIsInVwZGF0ZWRJblZlciI6IjM5LjI1Ny4zIiwidGFyZ2V0QnJhbmNoIjoiaG90Zml4LzIuNCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed superseded Closed unmerged; the equivalent h11 0.16.0 security update was carried forward by #1081 and merged through #1083 (commit 0ef423df).
stealth/space-bunny-alpha — closed superseded Closed unmerged as superseded by #1081; the equivalent h11 0.16.0 security update ultimately merged through #1083 as 0ef423df.
stealth/space-bunny-alpha — closed superseded Closed unmerged; the equivalent h11 0.16.0 security update was merged in canonical/craft-parts#1081 for hotfix/2.4.3.
qwen/qwen3.6-35b-a3b — — Closed without merge. The security update for CVE-2025-43859 by upgrading h11 to v0.16.0 was abandoned after mixed CI results.
qwen3.6-35b-a3b-mtp-q6 — — Merged to update h11 to v0.16.0, addressing CVE-2025-43859 request smuggling vulnerability on the hotfix/2.4 branch.

Update history

No update history recorded yet.

Related work

  • Likely Fixed By: canonical/craft-parts#1083 (confidence 100%)

    Merged PR #1083 in commit 0ef423df, updating h11 from 0.14.0 to 0.16.0.

  • Superseded By: canonical/craft-parts#1081 (confidence 98%)

    Replacement PR targeting hotfix/2.4.3 for the same h11 0.16.0 security update.

Related issues

Issue Project State Summary Similarity
#2269 build(deps): update dependency h11 to v0.16.0 [security] (hotfix/3.3) charmcraft closed Closed unmerged after CI failures; the identical h11 0.16.0 security update merged to main via #2268 (35e8fbe0), superseding this hotfix/3.3 PR.
93%
#1079 build(deps): update dependency h11 to v0.16.0 [security] (hotfix/2.3) craft-parts closed Closed unmerged; the h11 0.16.0 security update was superseded by canonical/craft-parts#1083 and merged in commit 0ef423df to address CVE-2025-43859.
92%
#2270 build(deps): update dependency h11 to v0.16.0 [security] (hotfix/3.4) - autoclosed charmcraft closed Autoclosed unmerged; the hotfix h11 0.16.0 update was replaced by commit 0c9e5348, which updated both httpcore and h11.
91%
#1078 build(deps): update dependency h11 to v0.16.0 [security] (main) - autoclosed craft-parts closed Renovate PR #1078 updating h11 0.14.0 -> 0.16.0 (CVE-2025-43859) was autoclosed; the identical change landed via merged PR #1083 in commit 0ef423df.
89%
#1081 build(deps): update dependency h11 to v0.16.0 [security] (hotfix/2.4.3) craft-parts closed Superseded by canonical/craft-parts#1083, which merged the same h11 0.16.0 security update in commit 0ef423df.
88%
#2267 build(deps-dev): bump h11 from 0.14.0 to 0.16.0 charmcraft closed Dependabot's h11 0.14.0→0.16.0 bump was closed unmerged as redundant; h11 v0.16.0 was already present. The equivalent security update merged via PR #2268 (commit 35e8fbe0).
88%
#1083 build(deps): update dependency h11 to v0.16.0 [security] craft-parts merged Merged PR #1083 in commit 0ef423df, updating h11 from 0.14.0 to 0.16.0 to remediate CVE-2025-43859 and HTTP request-smuggling risk.
88%
#2268 build(deps): update dependency h11 to v0.16.0 [security] (main) charmcraft merged Merged PR #2268 via commit 35e8fbe0, upgrading h11 from 0.14.0 to 0.16.0 to address CVE-2025-43859 and HTTP request-smuggling risk.
87%
#1519 build(deps): update dependency requests to v2.33.0 [security] (hotfix/2.7) craft-parts closed Closed unmerged after failing checks; the equivalent requests 2.33.0 security update was merged into main by #1516 at commit 3d099307.
78%
#5066 build(deps): update dependency requests to v2.32.2 [security] (hotfix/8.3) snapcraft closed Renovate security bump of requests 2.31.0->2.32.2 for hotfix/8.3 (CVE-2024-35195) was closed unmerged after ~724 days of inactivity; same update merged for main (#5064), hotfix/7.5 (#5065) and hotfix/8.4 (#5067).
75%