公開日:2021/11/10 最終更新日:2021/11/10

JVNVU#98850865
Unicodeを採用するコンパイラに双方向テキスト制御文字およびホモグリフ文字の意図しない制御を可能にする脆弱性

概要

Unicodeを採用するコンパイラには双方向テキスト制御文字およびホモグリフ文字による意図しない制御を可能にする脆弱性が存在します。

影響を受けるシステム

  • 14.0までのUnicode仕様を採用するコンパイラ、インタプリタ、およびその他の開発ツール等

詳細情報

14.0までのUnicode仕様を採用するコンパイラ等には双方向テキスト制御文字およびホモグリフ文字の意図しない制御を可能にする脆弱性(CWE-20、CVE-2021-42574、CVE-2021-42694)が存在します。

想定される影響

攻撃者によって、ソースコード内にレビューアーやコーディンクツールが視覚的に確認できないコードを挿入され、コンパイラやインタプリタ等がこれを解釈することで意図しない制御をさせられる可能性があります。

対策方法

ワークアラウンドを実施する
本脆弱性の発見者は、コンパイラ等の開発者に対して次の対策の実施を提示しています。

  • 言語仕様では双方向テキスト制御文字を禁止する
  • コンパイラ、インタプリタ、およびビルドパイプラインでは双方向テキスト制御文字やホモグリフ文字についてエラーもしくは警告を表示する
  • コードエディタとリポジトリフロントエンドで双方向テキスト制御文字やホモグリフ文字について視覚的な記号や警告を表示する

ベンダ情報

参考情報

  1. Vulnerability Note VU#999008
    Compilers permit Unicode control and homoglyph characters
  2. Trojan Source
    Invisible Source Code Vulnerabilities

JPCERT/CCからの補足情報

JPCERT/CCによる脆弱性分析結果

謝辞

関連文書

JPCERT 緊急報告
JPCERT REPORT
CERT Advisory
CPNI Advisory
TRnotes
CVE
JVN iPedia