Upgrade swift-nio to 2.100.0+ to fix Dependabot security alerts - #11
Merged
Conversation
Bump the swift-nio dependency requirement from "2.13.1" to "2.100.0" and regenerate the lockfiles. The root Package.resolved was pinned to swift-nio 2.10.1, which is affected by all open Dependabot alerts. Resolved version is now 2.101.0 (within ~> 2.100.0). This resolves the following swift-nio security advisories, all patched in 2.100.0: - CVE-2026-43671 (High): ByteBuffer index/length UInt32 overflow, out-of-bounds write (GHSA-r3rc-9hpw-54v9) - CVE-2026-28980 (High): NIOHTTP1 HTTPDecoder unbounded HTTP/1 header blocks, remote DoS (GHSA-rj37-6j9x-74q6) - CVE-2026-28970 (Moderate): CRLF injection in outbound HTTP request URI via NIOHTTPRequestHeadersValidator (GHSA-cq87-8r7h-962v) - CVE-2022-3215 (Moderate): HTTP response splitting / CRLF in HTTP headers (GHSA-7fj7-39wj-c64f) No source changes were required: all NIO APIs used by TelloSwift (DatagramBootstrap, ChannelOptions.socket, CircularBuffer, AddressedEnvelope<ByteBuffer>, Channel.close(mode:promise:), channel.pipeline.handler) remain compatible. Synced the Xcode project's Package.resolved to the same versions and added the new transitive swift-system dependency. Verified with Swift 6.1.2: `swift build` succeeds and `swift test` passes all 44 tests with 0 failures. Co-Authored-By: Oz <oz-agent@warp.dev>
There was a problem hiding this comment.
Pull request overview
This PR upgrades the project’s SwiftNIO dependency to a patched 2.100.0+ release line (resolved to 2.101.0) in order to address Dependabot security alerts, updating both SwiftPM and Xcode workspace lockfiles to the new resolved dependency graph.
Changes:
- Bump
swift-niorequirement inPackage.swiftfrom2.13.1to2.100.0. - Regenerate root
Package.resolved, pinningswift-nioto2.101.0and adding updated transitive pins (swift-atomics,swift-collections,swift-system). - Sync the Xcode workspace SwiftPM
Package.resolvedto the same set of pins/versions.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
Package.swift |
Updates the SwiftPM dependency requirement for swift-nio to from: "2.100.0". |
Package.resolved |
Updates SwiftPM lockfile pins to swift-nio 2.101.0 and refreshed transitives. |
TelloSwift.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved |
Aligns Xcode workspace lockfile pins with the updated dependency versions. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Upgrades the
swift-niodependency to resolve all open Dependabot security alerts on the default branch. GitHub reports 6 vulnerabilities (4 high, 2 moderate) coming from swift-nio — this PR addresses all of them with a single dependency bump.What changed
Package.swift: bumped the swift-nio requirement fromfrom: "2.13.1"tofrom: "2.100.0".Package.resolved(root): regenerated — swift-nio now pinned to 2.101.0 (was 2.10.1). Transitive deps resolved: swift-atomics 1.3.0, swift-collections 1.6.0, swift-system 1.7.2.TelloSwift.xcodeproj/.../Package.resolved: synced to the same versions (was 2.54.0) and added the new transitiveswift-systempin.Vulnerabilities resolved
All of the following swift-nio advisories are patched in 2.100.0, so the upgrade to 2.101.0 closes every open Dependabot alert:
ByteBufferindex/lengthUInt32overflow → out-of-bounds write (GHSA-r3rc-9hpw-54v9)NIOHTTP1HTTPDecoderaccepts unbounded HTTP/1 header blocks → remote DoS (GHSA-rj37-6j9x-74q6)NIOHTTPRequestHeadersValidator(GHSA-cq87-8r7h-962v)The Dependabot alert email lists these under dependency
github.com/apple/swift-nio, affected range>= 2.0.0 <= 2.99.0, upgrade target~> 2.100.0— exactly what this PR does.Source compatibility
No Swift source changes were needed. All NIO APIs used by TelloSwift remain compatible in 2.101.0:
DatagramBootstrap,MultiThreadedEventLoopGroupChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR)CircularBuffer,AddressedEnvelope<ByteBuffer>Channel.close(mode: .all, promise: nil)channel.pipeline.handler(type:)/channel.pipeline.addHandlerswift-tools-versionis left at 5.1 to keep backward compatibility with older Xcode/toolchains; the manifest itself does not require a higher version.Verification
Built and tested locally with Swift 6.1.2 on Linux (the toolchain required because swift-nio 2.100.0's own
Package.swiftdeclaresswift-tools-version:6.1):swift build— succeeds, no warnings.swift test— 44 tests, 0 failures.Conversation: https://app.warp.dev/conversation/94f5e12b-8bd5-4e83-a963-00c89b94d3ea
Run: https://oz.warp.dev/runs/019ef2b7-d35d-78a9-858c-5d8c37ee3192
This PR was generated with Oz.