Swiftの脆弱性対応では、ビルドに使うツールチェーン、Package.resolvedやPodfile.lockの依存、配ったアプリやサーバーのバイナリを分けて確かめます。ここでは2026年に公表された主な脆弱性と、自分の環境が対象かを確かめる方法をまとめます。
- SwiftNIOは2.100.0で範囲外の書き込みなど3件が修正されました。HTTPのサーバーで使っていれば上げます。
- CocoaPodsは2026年12月2日に新しい版の受け付けを止めます。修正版を受け取るにはSwift Package Managerへ移ります。
- パッケージはアプリに組み込まれるため、版を上げたあと、ビルドし直して配るまでが対応です。
01Swiftで今確かめたい脆弱性
2026年に公表されたもののうち、Swiftのサーバー開発とiOS・macOSのアプリでよく使われるパッケージで確かめておきたいものです。米CISAのKEV(悪用が確認された脆弱性の一覧、10月30日版)には、Swift本体・Swiftのパッケージの項目は見当たりませんでした。[1]
| 脆弱性・問題 | 主な対象・条件 | 修正・対応 |
|---|---|---|
| SwiftNIO CVE-2026-43671 ほか | 2.99.0以下。ByteBufferの位置と長さの計算があふれて範囲外に書き込むおそれ(CVSS 4.0の8.3)、HTTP/1のヘッダーに上限がなくサービスを止められるおそれ(8.7)など3件 | 2.100.0以上(6月13日)[2] |
| swift-nio-http2 CVE-2026-28898・CVE-2026-64785 | HTTP/2からHTTP/1への変換でのリクエストスマグリング、ヘッダーの値の改行・NULの検査漏れ。深刻度は中 | 1.45.0以上[3] |
| swift-crypto CVE-2026-28815 | 4.0.0〜4.3.0。X-WingのHPKEで、長さの不正な暗号文を受け入れる。CVSS 4.0の8.8 | 4.3.1以上[4] |
| jose-swift GHSA-88q6-jcjg-hvmw | 6.0.1以下。署名のアルゴリズムにnoneを指定したJWTを検証で通してしまう。CVSS 4.0の8.8 | 6.0.2以上[5] |
| Capacitor(capacitor-swift-pm) CVE-2026-103922 | 6.0.0以降の6〜8系の一部。外部のコンテンツをアプリのオリジンで読み込まれるおそれ。CVSS 3.1の9.3(緊急) | 6.2.2・7.6.9・8.4.3・8.5.1。8.0.0〜8.3.4の系列には記載なし[6] |
| Wire(Swiftのランタイム) CVE-2026-61695 | 6.4.0以下。負の長さを含むProtocol Buffersのデータで、復号する処理が落ちる。CVSS 3.1の7.5 | 6.4.1以上[7] |
11月2日時点で上の集計に出ているSwiftの記録は、すべてPyTorchのExecuTorchの5件(2025年公表、10月27日に情報が更新)です。Swiftのパッケージも、Python・Javaと同じ0.7.0で修正されています。[8]
02Swift本体の版と更新先
swift.orgのセキュリティのページは、報告の受け付けと、アドバイザリをGitHubのセキュリティアドバイザリで公表することを説明していますが、どの版に修正を出すかの方針は書いていません。[9] 修正を受け取るには、最新の版を使うのが確実です。11月2日時点の最新は、10月30日に出た6.4.2です。[10]
| 系列 | 最後の版 | 今上げる先 |
|---|---|---|
| 6.4系 | 6.4.2(10月30日) | 6.4.2 |
| 6.3系 | 6.3.3(6月30日) | 6.4.2 |
| 6.2系以前 | 6.2.4(2月28日) | 6.4.2 |
AppleのOSでは、Swiftの実行環境と標準ライブラリはOSの一部です(iOS 12.2・macOS 10.14.4以降)。それより前のOSに配るアプリだけが、実行環境の写しを含みます。[11] 標準ライブラリの修正は、利用者の端末ではOSの更新で入ります。
App Store Connectに上げるアプリは、4月28日からXcode 26以降とiOS 26などのSDKでビルドする必要があります。[12] 古いXcodeを固定したビルド環境は、提出できないだけでなく、Swiftのツールチェーンの修正も受けられません。
03Swiftの依存関係の脆弱性を確かめる方法
GitHub Advisory DatabaseはSwift Package Managerのパッケージを扱いますが、CocoaPodsは対象の一覧にありません。[13] DependabotもSwiftのセキュリティ更新に対応していますが、gitで取得するパッケージが対象で、Swiftのレジストリと宣言的でないマニフェストは扱いません。[14]
実際に使われる版はPackage.resolvedで決まります。Xcodeのプロジェクトでは<プロジェクト>.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolvedにあります。依存の木を出し、上の表の版と比べます。
swift package show-dependencies
swift package update swift-nio
git diff Package.resolvedCocoaPodsはPodfile.lockの版を見て、各ライブラリのGitHubのアドバイザリやリリースノートで確かめます。
pod outdated
pod update AlamofireCocoaPodsの公式の配布元(trunk)は、2026年12月2日に新しいPodspecの受け付けを止めます。既存のビルドは動き続けますが、trunkからの依存の更新は届かなくなります。[15] 脆弱性の修正版をtrunkで受け取れなくなるため、Swift Package Managerへの移行を計画します。
OSV-Scannerは、Package.resolvedとPodfile.lockに対応していません。[16]
04Swiftの脆弱性の確認の進め方
- アプリは作り直して配る:パッケージはアプリのバイナリに組み込まれるため、
Package.resolvedを直しても、ビルドし直して配るまで利用者の端末は変わりません。iOSのアプリでは、審査を経て利用者が更新するまで時間がかかるため、早めに提出します。 - サーバーのSwiftはビルド環境の版を見る:Linuxでは、Foundationなどはツールチェーンに含まれます。CIやDockerのイメージで
swift --versionを記録し、6.4.2になっているかを確かめます。--static-swift-stdlibで作ったバイナリは標準ライブラリを含むため、ツールチェーンを上げたあとビルドし直します。 - 使っている機能で対象を絞る:SwiftNIOのHTTP/1の件はHTTPを受けるサーバー、swift-nio-http2の件はHTTP/2からHTTP/1への変換、swift-cryptoの件はX-WingのHPKEを使う場合が対象です。使っていなくても、表の版へ上げておきます。
- 間接的な依存:VaporやHummingbirdなどのフレームワークはSwiftNIOを引き込みます。
Package.resolvedでswift-nioの版を直接確かめます。
よくある質問
CocoaPodsは12月2日以降、使えなくなりますか?
CocoaPodsの案内では、既存のビルドは動き続けます。止まるのはtrunkへの新しいPodspecの登録で、ライブラリの修正版がtrunkから届かなくなります。Swift Package Managerでの配布があるライブラリから移行します。
Dependabotのアラートが出なければ、対応は不要ですか?
不要とは言えません。GitHub Advisory DatabaseはCocoaPodsを対象にしておらず、DependabotのSwiftの対応もgitで取得するパッケージに限られます。Podfile.lockのライブラリは、提供元のアドバイザリやリリースノートで確かめます。
Swiftを6.4.2に上げれば、SwiftNIOの脆弱性も直りますか?
直りません。SwiftNIOは独立したパッケージです。swift package update swift-nioでPackage.resolvedの版を2.100.0以上にし、ビルドし直して配ります。
出典・参考資料
- CISA:Known Exploited Vulnerabilities Catalog2026-10-30版 / KEVにSwift本体・パッケージの項目がないこと
- SwiftNIO:Security advisories(GHSA-r3rc-9hpw-54v9・GHSA-rj37-6j9x-74q6・GHSA-cq87-8r7h-962v)2026-06-13 / SwiftNIOの3件の対象・修正版・CVSS
- swift-nio-http2:Security advisories(GHSA-4px2-pw77-vc85・GHSA-q3g2-m552-3r9c)2026-06-13・07-25 / swift-nio-http2の2件と修正版
- GitHub Advisory Database:GHSA-9m44-rr2w-ppp7(swift-crypto)2026-04-03 / swift-cryptoの対象・修正版・CVSS
- GitHub Advisory Database:GHSA-88q6-jcjg-hvmw(jose-swift)2026-01-10 / jose-swiftの対象・修正版・CVSS
- GitHub Advisory Database:GHSA-rvm3-566m-v7fv(Capacitor)2026-10-06 / capacitor-swift-pmの系列ごとの対象と修正版、CVSS
- GitHub Advisory Database:GHSA-86wm-r4c5-2rc9(Wire)2026-09-24 / WireのSwiftのランタイムの対象・修正版・CVSS
- GitHub Advisory Database:GHSA-f9hx-c6jf-3qxm(ExecuTorch)2025-08-08 / ExecuTorchのSwiftのパッケージを含む対象と修正版0.7.0
- Swift.org:Securityアドバイザリの公表の仕方、版ごとの方針の記載がないこと
- swiftlang/swift:Releases2026-10-30確認 / 6.4.2・6.3.3・6.2.4の公開日
- Swift.org:Swift ABI Stability and More2019-03-25 / AppleのOSに実行環境が含まれること、古いOS向けのアプリは写しを含むこと
- Apple Developer:SDK minimum requirements2026-04-28適用 / Xcode 26以降とiOS 26などのSDKでのビルドが必要なこと
- GitHub Docs:About the GitHub Advisory database対象のエコシステムにSwiftがあり、CocoaPodsがないこと
- GitHub Docs:Dependabot supported ecosystems and repositoriesDependabotのSwiftの対応範囲
- CocoaPods:CocoaPods Specs Repo(trunkの読み取り専用化)2024-11-30(2025年5月更新) / 2026年12月2日の受け付け停止と、既存のビルドへの影響
- OSV-Scanner:Supported languages and lockfiles2026-11-02確認 / Package.resolvedとPodfile.lockが一覧に無いこと
