概要
Notionのpage title、comment、rich text、URL、API error等を、制御文字の除去や可視化なしでdefaultのplain/table/markdown出力へ書き込んでいます。
Severity: Low
分類: CWE-150
該当箇所
src/output/plain.rs
src/output/table.rs
src/output/markdown.rs
src/client/request.rs:130-144
影響
悪意ある、または意図せずESC/OSC sequenceを含むNotion contentをTTYへ表示すると、terminal表示偽装、clipboard書換え、window title変更、link spoof等が起きる可能性があります。具体的な影響はterminal機能に依存します。
修正案
- stdoutがTTYかつhuman-readable formatの場合、C0/C1/ESCを除去または可視化する
- JSON/CSV等のmachine formatでは構造上のescape契約を維持する
- API error bodyをstderrへ表示する場合も同じsanitizerを通す
- ANSI/OSC 8/OSC 52を含む回帰テストを追加する
完了条件
- human-readable TTY出力でterminal control sequenceが実行されない
- 改行・tab等、許可する制御文字の方針が文書化される
- pipe時のmachine-readable output契約を壊さない
概要
Notionのpage title、comment、rich text、URL、API error等を、制御文字の除去や可視化なしでdefaultのplain/table/markdown出力へ書き込んでいます。
Severity: Low
分類: CWE-150
該当箇所
src/output/plain.rssrc/output/table.rssrc/output/markdown.rssrc/client/request.rs:130-144影響
悪意ある、または意図せずESC/OSC sequenceを含むNotion contentをTTYへ表示すると、terminal表示偽装、clipboard書換え、window title変更、link spoof等が起きる可能性があります。具体的な影響はterminal機能に依存します。
修正案
完了条件