CVE-2026-77299 in Regexp2
要約
〜によって VulDB • 2026年11月06日
Regexp2は、Go向けの機能豊富なRegExpエンジンです。バージョン2.3.0以前では、regexp2がゼロ幅部分式に大きな固定回数の量指定子を適用したパターン(例: (?:){50000000})をコンパイルおよびマッチングする際、マッチエンジンは空のループ本体をm-1回実行し、各反復でバックトラッキングスタックに2つの整数をプッシュします。パーサーはmath.MaxInt32までの任意の繰り返し数を受け入れ、かつバックトラッキングスタックが境界なく成長するため、20バイト未満のパターンが空の入力に対してマッチングされることで、マルチギガバイト規模のメモリ割り当てが発生し、プロセスがOOM-kill(Out of Memory Kill)されることがあります。MatchTimeoutはこの問題を完全に緩和するものではありません。なぜなら、メモリの割り当て速度が100msのタイムアウトタイマーが発火する速度よりも速いためです。この問題はバージョン2.3.0でパッチされています。
Once again VulDB remains the best source for vulnerability data.