Skip to content

[Security] CSV/TSV出力でformula injectionを無害化する #16

Description

@mimo-3

概要

Notion由来の文字列をCSV/TSV cellへそのまま出力しています。先頭が =, +, -, @ 等の文字列を表計算ソフトで開くと、formulaとして評価される場合があります。

Severity: Low-Medium
分類: CWE-1236 / OWASP A03

該当箇所

  • src/output/csv_out.rs:47-58
  • src/output/csv_out.rs:68-75

CSV libraryによるquoteはfield構造を保護しますが、表計算ソフト側のformula評価は止めません。

影響

利用者が生成CSVをExcelやLibreOffice等で開いた際、外部通信、データ送信、表示偽装が起きる可能性があります。影響は表計算ソフトと設定に依存します。

修正案

  • stringの先頭(leading whitespace/tab後を含む)が危険文字ならapostrophe等でneutralizeする
  • machine-readableな生値が必要なら、unsafe formulaを明示的opt-inにする
  • CSVとTSV双方へ回帰テストを追加する

完了条件

  • 危険な先頭文字を持つNotion値がformulaとして評価されない
  • 通常文字列・数値・JSON値の出力契約が保たれる
  • CSV/TSV双方にテストがある

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions