再現の手順
It’s possible in versions of Angular starting from 1.4.9 to conduct a Regular Expression Denial of Service (ReDoS) attack via the <input type="url"> element. If a malicious actor carefully composes an insecure regular expression that is used by the input[url] function, catastrophic backtracking and monopolization of system resources can occur. A proof of concept demonstrating this exploit is available on StackBlitz.
問題への対処
この脆弱性に対する修正は、AngularJS XLTS/NESのバージョン1.9.1および1.5.17で利用可能です。
学習と予防
ReDoS攻撃は、ターゲットとなるシステムが、長い時間がかかる正規表現パターンマッチを解決しようとします(それによって、システムの正当なユーザーへのサービスを拒否します)。これはサービス拒否(DDoS)攻撃の一種です。
この攻撃では、正規表現エンジンがマッチを見つけようとする一連のステップを実行する。これらのステップの中には、すぐに実行できるものもあれば、特に失敗するステップにはかなり時間がかかるものもある。この場合、ブラウザが攻撃者によって注意深く作られた正規表現を解決しようとすると、ブラウザは代替のマッチを試すために後戻りするため、結果を返すのに非常に長い時間を費やす可能性があります。
結論
この脆弱性で説明されている修正は1.9.1に含まれており、Angular 1.5を使用しているHeroDevs AngularJSネバーエンディングサポートのクライアントもすぐに利用可能です。HeroDevsのネバーエンディングサポートをご希望の方は、今すぐ営業チームまでご連絡ください。
リソース
NIST 2023-26118エントリー
弊社がサポートするオープンソースソフトウェアに新たな脆弱性が修正された場合、いつでもアラートを受け取ることができます。