Race Condition в веб-приложениях: три типа уязвимости и как их находить

Для начала разберёмся, что такое Race Condition и почему эта уязвимость заслуживает внимания.
Race Condition — это класс уязвимостей, которые возникают из-за того, что сервер обрабатывает несколько запросов одновременно без должной синхронизации. Когда два или более запроса приходят на сервер в один и тот же момент и затрагивают одни и те же данные, между ними происходит коллизия.
Результаты такой коллизии могут быть разными — от незначительных багов до критических уязвимостей, которые позволяют обойти проверки безопасности, списать средства дважды, получить доступ к чужому аккаунту или превысить установленные лимиты.
Перейдём к тому, какие виды этой уязвимости вообще бывают.
Можно выделить 3 вида:


















