0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CEMI(CSV Excel Macro Injection)攻撃防止のエスケープ対象には全角記号も含める必要がある

Last updated at Posted at 2025-03-31

TL;DR

  • CEMIは全角記号始まりでも起こせる
  • CSV出力処理でエスケープ処理を実装する場合、全角記号もエスケープ処理に含めるべき

本文

CEMI(CSV Excel Macro Injection)は、細工したCSVExcelへ読ませることで、任意のマクロを実行させる攻撃です。
=cmd|' /C calc'!A0で電卓を起動するサンプルなどが有名です。

ユーザーがマクロを有効にする必要があることから脆弱性扱いされないこともありますが、CSV出力処理の修正を求められることもあるでしょう。
この挙動は"で囲っても抑制できず、フィールドの先頭に'を入れることで、Excel側に生文字列で扱わせるようエスケープする必要があります。

ここで、この攻撃は全角記号からでも起こすことができる点に注意が必要です。
例えば=cmd|’ /C calc'!A0で再現できます。
1文字目が条件を満たす場合のみエスケープとする場合、対象には全角記号も含めなければなりません。

雑感

これは現時点でOWASPのページ等にも記述されておらず、罠感が強いです、、、

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?