Недавно обнаруженная уязвимость в Gerrit, системе рецензирования кода с открытым исходным кодом, используемой Google и другими компаниями, может открыть путь для несанкционированного внедрения кода в критически важные программные проекты без стандартных процессов утверждения. Исследователи безопасности из Tenable обнаружили, что недостаток связан с неправильной конфигурацией разрешений и логики меток рецензирования. В определенных конфигурациях злоумышленники могли использовать функцию, известную как "addPatchSet", для изменения уже одобренных изменений, что потенциально могло привести к внедрению вредоносного кода без повторного пересмотра.
Отдельный отчет, опубликованный на сайте CybersecurityAsia.net подтвердил, что злоумышленники могут обходить этапы ручного рецензирования и использовать автоматизированные инструменты для вставки несанкционированного кода без участия пользователя.
Уязвимыми были признаны по меньшей мере 18 известных репозиториев, включая проекты, связанные с Chromium, Dart, Bazel и другими компонентами инфраструктуры. Проблема также связана с условием гонки в процессе автоматической отправки, что позволяло злоумышленникам действовать в течение короткого промежутка времени до слияния кода.
На момент раскрытия информации подтвержденной эксплуатации уязвимости в природе не наблюдалось. Компания Tenable провела ответственное тестирование с использованием доброкачественного кода и не пыталась полностью использовать уязвимость.
С тех пор компания Google внесла изменения в конфигурацию, чтобы устранить проблему. Тем временем, компания Tenable предупредила, что другие проекты с открытым исходным кодом, использующие Gerrit, должны пересмотреть свои конфигурации, поскольку подобные настройки могут существовать и в других местах, и рекомендует всем пользователям Gerrit проверить правила разрешений и политики сохранения меток, чтобы обеспечить целостность кода. Неправильная конфигурация может повлиять и на другие организации, использующие Gerrit, особенно там, где действуют настройки разрешений по умолчанию и автоматизированные процессы отправки кода. Этот инцидент подчеркивает постоянную важность безопасных сред разработки в экосистеме открытого кода.