Skip to content

chore: bump swift-nio stack to clear Dependabot advisories - #244

Merged
solderzzc merged 1 commit into
mainfrom
chore/bump-nio-advisories
Oct 25, 2026
Merged

solderzzc merged 1 commit into
mainfrom
chore/bump-nio-advisories

Conversation

@solderzzc

Copy link
Copy Markdown
Member

Summary

Bumps three transitive pins in Package.resolved to their first patched versions, clearing five open Dependabot alerts (2 high, 3 medium). Package.swift is unchanged.

Package From To Advisories
swift-nio 2.99.0 2.100.0 GHSA-rj37-6j9x-74q6 (high), GHSA-r3rc-9hpw-54v9 (high), GHSA-cq87-8r7h-962v (medium)
swift-nio-http2 1.43.0 1.44.0 GHSA-4px2-pw77-vc85 (medium)
swift-nio-extras 1.34.0 1.34.1 GHSA-6ph5-fww6-vfwv (medium)

Reachability in SwiftLM

  • GHSA-rj37-6j9x-74q6 (swift-nio, unbounded HTTP/1 header count): reachable. The default listener is HTTP/1. The fix is the reason this PR exists. Behavior change: swift-nio 2.100.0 applies default limits to header count and total header size, so requests above them are rejected.
  • GHSA-r3rc-9hpw-54v9 (ByteBuffer UInt32 truncation): likely not reachable. Request bodies are capped well below the 4 GiB limit.
  • GHSA-cq87-8r7h-962v (outbound CRLF): not reachable. SwiftLM does not use NIO for outbound HTTP; outbound traffic goes through URLSession.
  • GHSA-4px2-pw77-vc85 (swift-nio-http2) and GHSA-6ph5-fww6-vfwv (swift-nio-extras): not linked. Bumped for lockfile hygiene only.

Verification

  • swift package resolve accepts the pinned revisions and changes no other entries in Package.resolved.
  • SwiftLM's direct NIOCore use is limited to ByteBuffer(string:), ByteBuffer(data:) and IOError.
  • Not built locally. CI is the compile check.

Test plan

  • CI build_and_unit_test passes
  • Integration matrix passes
  • Manual check with a client that sends many headers, to confirm the new default limits are acceptable

🤖 Generated with Claude Code

Bump three transitive pins in Package.resolved to their first patched
versions. Package.swift is unchanged; swift-nio is pulled in through
Hummingbird, so only the lockfile moves.

- swift-nio 2.99.0 -> 2.100.0
  GHSA-rj37-6j9x-74q6 (high, unbounded HTTP/1 header count)
  GHSA-r3rc-9hpw-54v9 (high, ByteBuffer UInt32 truncation)
  GHSA-cq87-8r7h-962v (medium, CRLF in outbound headers)
- swift-nio-http2 1.43.0 -> 1.44.0
  GHSA-4px2-pw77-vc85 (medium)
- swift-nio-extras 1.34.0 -> 1.34.1
  GHSA-6ph5-fww6-vfwv (medium)

The HTTP/1 header-count advisory is reachable on the default listener.
The others are not reached by SwiftLM's code paths; they are bumped
here so the lockfile is clean.

`swift package resolve` accepts the pins and changes no other entries.
Compilation is verified by CI, not locally.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@solderzzc
solderzzc merged commit 80e4872 into main Oct 25, 2026
15 checks passed
@solderzzc
solderzzc deleted the chore/bump-nio-advisories branch October 25, 2026 03:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant