🔥 この記事の詳細
2026-05-08 更新
B
今週中

LuaJIT 2.1.xのForeign Function Interface (FFI) を利用して、任意のコード実行(ACE)が可能な脆弱性

脆弱性🌐 英語ソース📰 2記事🌐 1 country
🇺🇸 US (2)
📅 2026-05-08📰 exploit_db
📌 一言でいうと
LuaJIT 2.1.xのForeign Function Interface (FFI) を利用して、任意のコード実行(ACE)が可能な脆弱性が報告されました。FFIが有効な状態で信頼できないLuaスクリプトを実行させると、攻撃者はmmapやmprotectなどのシステムコールを介してシェルコードを実行し、プロセス権限を完全に奪取できます。OpenResty、Redis、ゲームエンジン、IoTデバイスなど、LuaJITを組み込んでいるアプリケーションが影響を受けます。
🔍該当判定
  • OpenResty(高性能Webサーバー)を自社で運用している
  • Redisの拡張機能としてLuaスクリプトを利用している
  • LuaJITを組み込んだゲームエンジンやIoTデバイスを自社開発・運用している
  • 外部から入力されたLuaスクリプトをサーバー上で実行させる仕組みがある
上記いずれにも該当しない → 静観でOK
該当時の対応
1. 信頼できないスクリプトを実行する環境では、コンパイル時に-DLUAJIT_DISABLE_FFIフラグを使用してFFIを無効化すること。2. サンドボックス環境からFFIライブラリを完全に除去すること。3. 外部入力がLuaスクリプトとして評価される箇所がないかコードレビューを実施すること。
📧 メール案を見る (管理者向け)
⚠️ これは AI が生成した参考例です。配信前に必ず内容をご確認のうえ、貴社の状況に合わせて編集してご利用ください。実際の被害状況や自社の利用環境を踏まえた判断は、貴社のセキュリティ責任者にご確認ください。
件名: 【共有】LuaJIT 2.1.x FFIによる任意コード実行の脆弱性について

お疲れさまです。LuaJITのFFI(Foreign Function Interface)を悪用した任意コード実行に関する情報共有です。

■ 概要
LuaJITのFFI機能により、ネイティブC関数(syscall, mmap, mprotect等)への制限のないアクセスが可能です。信頼できないLuaコードが実行可能な環境では、攻撃者がメモリ領域を操作し、シェルコードを実行してプロセス権限を完全に奪取できる可能性があります。

■ 影響範囲
- LuaJIT 2.1.x (最新版 2.1.1774638290 を含む)
- LuaJITを組み込んでいるアプリケーション(OpenResty, Redis, ゲームエンジン, IoTデバイス等)

■ 対応手順
1. 信頼できないスクリプトを実行する環境において、コンパイルオプション -DLUAJIT_DISABLE_FFI を適用してFFIを無効化してください。
2. サンドボックス環境からFFIへのアクセス権限を削除してください。
3. 外部からの入力がLuaインタープリタに渡る実装がないか確認してください。

■ 参考情報
- Exploit-DB EDB-ID: 52554
- Vendor: https://luajit.org/

対応優先度: 高
対応期限: 速やかに確認し、必要に応じて対策を適用してください。
Subject: [Security Advisory] Arbitrary Code Execution in LuaJIT 2.1.x via FFI

Dear team,

This is a technical alert regarding a vulnerability in LuaJIT's Foreign Function Interface (FFI) that allows Arbitrary Code Execution (ACE).

■ Overview
LuaJIT's FFI provides unrestricted access to native C functions, including syscall(), mmap(), and mprotect(). In scenarios where untrusted Lua code is executed (e.g., in embedded environments), an attacker can leverage these functions to execute shellcode and gain full process privileges.

■ Scope
- LuaJIT 2.1.x (including latest version 2.1.1774638290)
- Applications embedding LuaJIT (e.g., OpenResty, Redis, game engines, IoT devices)

■ Mitigation Steps
1. Disable FFI by using the -DLUAJIT_DISABLE_FFI flag during compilation for environments executing untrusted scripts.
2. Ensure FFI is removed from the sandbox environment before executing external scripts.
3. Audit code to ensure untrusted user input is not passed directly to the Lua interpreter.

■ Reference
- Exploit-DB EDB-ID: 52554
- Vendor: https://luajit.org/

Priority: High
Deadline: Immediate review and mitigation recommended.