Skip to content

Bump mint to 1.10.0 to clear two advisories - #5117

Merged
elias-ba merged 1 commit into
mainfrom
fix/mint-advisories
Sep 5, 2026
Merged

Bump mint to 1.10.0 to clear two advisories#5117
elias-ba merged 1 commit into
mainfrom
fix/mint-advisories

Conversation

@elias-ba

@elias-ba elias-ba commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Description

This PR bumps mint to 1.10.0. 1.9.3 is affected by EEF-CVE-2026-82728 (high) and EEF-CVE-2026-82729 (medium), both denial of service in Mint's HTTP/1 parser. mix hex.audit is red on main's head, so lint fails on every branch.

Lock file only. It does move PinnedAdapter's dialyzer warnings, because 1.10.0 widens Mint.Core.Util.hostname/2 and the pinned connect no longer looks impossible, so the three filters that file carried are replaced by one for :call_with_opaque plus a @dialyzer attribute on exchange/4.

Validation steps

  1. grep '"mint"' mix.lock shows 1.10.0.
  2. mix dialyzer passes. With .dialyzer_ignore.exs emptied, PinnedAdapter emits exactly the four warnings covered here.
  3. mix test test/lightning/auth_providers/. 34 tests, no failures.

Additional notes for the reviewer

  1. :no_return is scoped to exchange/4 rather than filtered file-wide, so it still reports for transport_opts/3, which is what forces verify: :verify_peer.
  2. mix deps.audit passes either way; its mirror does not carry these yet. Only hex.audit catches them.

AI Usage

  • I have used Claude Code
  • I have used another model
  • I have not used AI

Pre-submission checklist

  • I have performed an AI review of my code (we recommend using /review
    with Claude Code)
  • I have implemented and tested all related authorization policies.
    (e.g., :owner, :admin, :editor, :viewer)
  • I have updated the changelog.
  • I have ticked a box in "AI usage" in this PR

@github-project-automation github-project-automation Bot moved this to New Issues in Core Sep 4, 2026
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

Security Review ✅

  • S0 (project scoping): N/A — lock-file-only mint bump (mix.lock) plus CHANGELOG.md; no queries or entrypoints touched.
  • S1 (authorization): N/A — no web-layer actions, policies, or role checks changed.
  • S2 (audit trail): N/A — no config-resource writes; no Ecto.Multi or persistence code introduced.

@codecov

codecov Bot commented Sep 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.7%. Comparing base (ccb09e6) to head (6d87c8b).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##            main   #5117     +/-   ##
=======================================
- Coverage   90.7%   90.7%   -0.0%     
=======================================
  Files        417     417             
  Lines      20347   20347             
=======================================
- Hits       18459   18453      -6     
- Misses      1888    1894      +6     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

mint 1.9.3 is affected by EEF-CVE-2026-82728 (high), unbounded HTTP/1
status-line and chunk-extension buffering, and EEF-CVE-2026-82729 (medium),
quadratic chunk-size parsing. Both are denial of service, both fixed in 1.10.0.
Mint is our HTTP client, so both are reachable from a response rather than from
a request into Lightning; the exposure is the outbound calls Lightning makes.

`mix hex.audit` raises these and is currently red on main, so lint fails on
every branch. `mix deps.audit` does not: its advisory mirror has not picked them
up yet.

Lock file only. mix.exs already requires `~> 1.0` and nothing else moved.

The bump also moves PinnedAdapter's dialyzer warnings. mint 1.10.0 widens
`Mint.Core.Util.hostname/2` from `String.t()` to `Types.address()`, so the
IP-pinned connect no longer looks impossible and the `:call` plus its
`:pattern_match` and `:unused_fun` cascade stop firing. What surfaces instead is
an opacity complaint that was always there: `Mint.HTTP.t()` is a plain union of
types that are opaque in their own modules. So those three filters are replaced
by one for `:call_with_opaque`, and the `:no_return` that follows is scoped to
`exchange/4` with a `@dialyzer` attribute rather than filtered file-wide, so the
category keeps reporting for the rest of that module.
@elias-ba
elias-ba force-pushed the fix/mint-advisories branch from 7579515 to 6d87c8b Compare September 4, 2026 23:32
@elias-ba
elias-ba merged commit 7dc3a18 into main Sep 5, 2026
7 checks passed
@elias-ba
elias-ba deleted the fix/mint-advisories branch September 5, 2026 00:50
@github-project-automation github-project-automation Bot moved this from New Issues to Done in Core Sep 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant