Add new state: Unicode compatibility normalization
まだ誰も着手していません。
評価
調査の方向性
python/ql/lib/semmle/python/security/dataflow/PathInjectionQuery.qll の、特に 20-28 行目から始め、既存のパス正規化および安全性チェックの状態と、報告された Unicode 互換正規化の状態を比較します。issue の図を使って必要な順序をたどります。クエリが関連する位置で互換正規化をモデル化し、ケースを漏らしていなければ完了です。
索引モデルが issue の本文から書いたものです。
説明
Hey ,
I noticed that you are considering only two states:
- One regarding the path normalization if it is done or not before the safe check
- Second concerns the safe check.
as shown next:
However, there is a third state that is a required one: Unicode normalized. If ever a Unicode normalization is performed with a compatibility algorithm (NFKC or NFKD), the query would miss some cases precisely those ones where the Unicode normalization is not performed before the path normalization and the safe check. I draw a little chart to depict my saying:
The previous chart shows that when you consider a potential Unicode compatibility normalization, it is a required step before path normalization and safe check. If ever placed between the first two steps or after the last one, that would yield a vulnerable case that got missed due to the fact that the Unicode normalization may reintroduce unexpected special characters such as .. and /.
Regards
@Sim4n6
- 主要言語
- CodeQL
- スター
- 10.1k
- フォーク
- 2.1k
- 平均マージ
- 2日 10時間
- マージ済み PR(30日)
- 134
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
github/codeql のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
-
C#: cs/simplifiable-boolean-expression false positive on Nullable<bool> compared with a literal オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
false-positive
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
false-positive
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
sipyourdrink-ltd/bernstein#6191 ·
-
security severity:low track:open-source
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
[addtool] DeepZero オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
gwen001/offsectools_www#2055 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
WalletConnect/actions#112 ·