Hoverfly — это инструмент моделирования API с открытым исходным кодом. До версии 1.12.8, когда Hoverfly работает в режиме Diff, функция AddDiff() записывает в общую картуresponsesDiff без какой-либо синхронизации (без мьютекса). Когда несколько запросов прокси обрабатываются одновременно (обычный случай для любого прокси), одновременная запись карты запускает встроенный детектор гонки Go, который вызывает «фатальную ошибку: одновременное чтение и запись карты», немедленно убивая весь процесс Hoverfly.
Это тривиально можно использовать, отправляя несколько одновременных запросов. Версия 1.12.8 исправляет проблему.
Показать оригинальное описание (EN)
Hoverfly is an open source API simulation tool. Prior to version 1.12.8, when Hoverfly is running in Diff mode, the `AddDiff()` function writes to the shared `responsesDiff` map without any synchronization (no mutex). When multiple proxy requests are processed concurrently (the normal case for any proxy), the concurrent map writes trigger Go's built-in race detector which causes a `fatal error: concurrent map read and map write`, immediately killing the entire Hoverfly process. This is trivially exploitable by sending multiple simultaneous requests. Version 1.12.8 patches the issue.
Характеристики атаки
Последствия
Строка CVSS v3.1