LIFF SDKのセキュリティ更新:2026年11月の旧版利用制限に備える
LIFFアプリまたはLINEミニアプリで LIFF SDK v2.20.0〜v2.31.0 を使用している場合は、v2.31.1以降へ直ちに更新してください。LINEはXSSの脆弱性を公表し、影響を受ける旧版の利用を 2026年11月24日頃 に制限する予定です。依存関係の宣言だけでなく、公開中のアプリが実際に読み込むSDKを確認しましょう。この日付は制限の予定であり、修正を先延ばしにできる期限ではありません。
要点
- 対象バージョンと修正済みの最低バージョンは、LINEのセキュリティ告知に基づきます。
- CDNのエッジパス、固定バージョンのCDNパス、npmでは確認箇所が異なります。
- 通常のLIFF URLだけでなく、外部ブラウザーからの入口も検証します。
- 切り戻しで脆弱なSDKを再導入してはいけません。メッセージのWebhookは別の接続経路です。
LIFF SDKの告知が対象とする範囲
LINEの10月20日の告知によると、特定の条件下で、悪意のあるURLから外部ブラウザーでLIFFアプリやLINEミニアプリを開くと、アプリのドメイン上で任意のJavaScriptが実行される可能性があります。アクセストークンなどの認証情報や画面上の情報が取得されるおそれがあります。
入口の違いにも注意が必要です。LINEのアプリ内ブラウザーで LIFF URLではなくエンドポイントURL を開く場合は、外部ブラウザーとして扱われ、影響の対象になります。いつものLIFF URLだけを試しても、公開環境全体の確認にはなりません。
LINEの2026年のお知らせでは、制限開始予定を11月24日頃としています。セキュリティ告知では、制限開始後、対象バージョンを使うアプリを外部ブラウザーで開くと正常に動作しない可能性があると説明しています。確定した停止時刻や共通のエラーコード、すべてのLINE連携の停止を意味するものではありません。
package.jsonではなく配信中のSDKを確認する
LINEのLIFFアプリ開発ガイドには、CDNとnpmによる組み込み方法が記載されています。公開アプリごとに、次の棚卸しを行うことを推奨します。
| 組み込み方法 | 確認対象 | 更新と確認のポイント |
|---|---|---|
| CDNのエッジパス | 本番ページが読み込むスクリプト | 公式リリースノートは自動更新を説明しているが、実際の読込バージョンも確認する |
| 固定バージョンのCDNパス | 配信済みスクリプトURLのバージョン | 対象の固定バージョンを修正済みリリースへ変更し、本番で確認する |
| npmパッケージ | @line/liffの解決済みバージョン、ロックファイル、配信バンドル | 依存関係を更新し、再ビルド・再デプロイ後に実行時バージョンを確認する |
リリースノートは、これらの更新方法を区別しています。v2.31.1は修正済みの最低バージョンであり、最新版という意味ではありません。より新しい版を選ぶ場合も、そのリリースノートを確認してください。
担当者、本番URL、組み込み方法、解決済みバージョン、ビルド識別子、確認日時を記録すると便利です。これはアプリ側の管理項目であり、LINE APIの追加フィールドではありません。利用頻度の低い入口ページや共通フロントエンドパッケージも対象にします。
SDK読込後は、公式の環境確認メソッドで簡単に診断できます。
console.log(liff.getVersion());
console.log(liff.isInClient());
管理された診断環境で実行し、アクセストークン、IDトークン、ログインURL全体は記録しないでください。読込バージョンの確認は証拠の一つですが、包括的な安全性評価ではありません。
デプロイ確認と切り戻しを別々に準備する
以下は推奨チェックリストであり、実施済みのテスト結果ではありません。
- 実際の依存元を変更する。 固定スクリプト参照、またはnpmパッケージとロックファイルを更新します。宣言だけを書き換えても、既存の本番バンドルは変わりません。
- 公開済み成果物を確認する。 キャッシュやservice workerを使っている場合は、再訪ユーザーにも修正版が届くことを確認します。ローカル開発ページだけで判断しないでください。
- 正規の入口を試す。 LIFF URL、対応する外部ブラウザー経路、LINEのアプリ内ブラウザーで公開しているエンドポイントURLを確認します。通常のテストリンクを使い、攻撃用の入力は使いません。
- ユーザー操作を検証する。 初期化、ログインからの復帰、画面遷移、使用中のLIFF機能を確認します。共有機能はカスタムアクションボタンのチェックリストも参照し、画面表示だけで正常と判断しないでください。
- 設定変更を別途確認する。 LINEミニアプリのコンソール設定も変更する場合は、再審査と公開管理ガイドを確認します。JavaScriptの配信と設定の承認は別の証拠です。
- 修正を含む切り戻し先を用意する。 安全更新を含む検証済み成果物を保持します。機能を戻すために対象SDKへ戻すのではなく、必要なら機能を縮小するか、管理されたメンテナンス画面を表示します。
情報露出が疑われる場合は、機密情報を除いた証拠を保存し、セキュリティ担当者に相談してください。SDK更新は依存関係の問題への対処であり、過去のセッションやデータが影響を受けたかどうかを証明するものではありません。
LINEの問い合わせ受信は独立して確認する
UnifyPortの非公式インターフェースは、LINE認証フローを通じて通常のLINEメッセージアカウントを接続します。文書ではQR URLとPINがWebhookで非同期に届くと説明しています。これはLIFFのWeb初期化ではなく、アプリのSDKも更新しません。
既存の連携では、対応するmessage.receivedの受信をLINEミニアプリのフロントエンドと別にテストしてください。受信箱が動くことは修正完了の証明ではなく、LIFF画面の失敗だけでWebhook障害とも判断できません。UnifyPortはLINEのSDK制限を解除したり、脆弱なバンドルを修復したりするものではありません。
よくある質問
11月24日まで更新を待てますか?
LINEは直ちに更新するよう求めています。11月24日頃は制限開始の予定であり、安全な待機期間でも正確な締切の保証でもありません。
npmのバージョン変更だけで十分ですか?
いいえ。解決済みの依存関係を確認し、再ビルド・デプロイしたうえで、本番ページの読込バージョンを確認します。
LINE内で開けば対象外ですか?
いいえ。LINEはアプリ内ブラウザーでエンドポイントURLを開く場合も外部ブラウザー経路として明記しています。入口URLと実行環境の両方を確認してください。
Messaging APIのWebhookにも新しいSDKが必要ですか?
この告知はLIFFアプリとLINEミニアプリのLIFF SDKが対象です。該当するフロントエンド依存関係を調べるべきであり、別のWebhook移行要件まで推測してはいけません。
次の作業と参照資料
LINEのセキュリティ告知を起点に、本番のLIFF入口を棚卸しし、リリース確認に実際の読込バージョンを添付してください。
公式資料の確認日:2026-11-08。
メッセージ連携を安定したプロダクトパイプラインへ。
まずは 1 つの API で送信を始め、標準イベントですべての inbound メッセージを業務システムへ戻しましょう。