Репост из: .unsec
Google Cloud RCE: $148 000 за одну уязвимость (CVE-2026-2031)
Исследователь из BruteCat обнаружил критическую цепочку уязвимостей в Google Cloud Application Integration, которая позволила выполнить произвольный код в продакшен-среде Google.
Всё началось с безобидного на первый взгляд эндпоинта отладки:
Он возвращал protobuf-схемы любых сервисов в монолите google3 — от YouTube до внутренних систем. Это дало возможность «видеть» структуру запросов/ответов любых внутренних API.
Дальше — интереснее:
• Утечка очереди задач: через параметр ?alt=proto + X-Goog-Encode-Response-If-Executable: base64 удалось получить доступ к внутренней очереди рабочих процессов, включая данные из Spanner → Salesforce.
• GenericStubbyTypedTaskV2: в конфигурации воркфлоу нашлась задача, позволяющая выполнять произвольные Stubby-вызовы (внутренний RPC-фреймворк Google) от имени продакшен-сервиса.
• Обход проверок: с помощью двух аккаунтов и манипуляций с ACL удалось опубликовать и запустить вредоносный воркфлоу.
Результат: выполнение /ServerStatus.GetServices на gslb:alkali-base вернуло список внутренних сервисов с полными proto-дескрипторами.
Раунд 2: через 3 месяца
После фикса первой уязвимости исследователь обнаружил IDOR в публичном API Application Integration - можно было читать чужие интеграции, подставляя чужой UUID в свой project ID.
Через endpoint ListTestCases без фильтра утекали тест-кейсы всех проектов в регионе. С помощью бинарного поиска по фильтру удалось восстановить 128-битный UUID жертвы за ~128 запросов.
Цепочка привела к полному доступу к чужим интеграциям и потенциально — к повторному RCE через внутренние задачи (PythonTask, GenericStubbyTypedTaskV2).
Первая цепочка (RCE) P0/S0 $60 000; вторая цепочка (IDOR + RCE) P0/S0 $75 000; доп. находка (остаточный IDOR) P1/S1 $13 337 - итого ~$148 000.
Исследователь из BruteCat обнаружил критическую цепочку уязвимостей в Google Cloud Application Integration, которая позволила выполнить произвольный код в продакшен-среде Google.
Всё началось с безобидного на первый взгляд эндпоинта отладки:
GET /v1/integrationPlatform:getProtoDefinition
Он возвращал protobuf-схемы любых сервисов в монолите google3 — от YouTube до внутренних систем. Это дало возможность «видеть» структуру запросов/ответов любых внутренних API.
Дальше — интереснее:
• Утечка очереди задач: через параметр ?alt=proto + X-Goog-Encode-Response-If-Executable: base64 удалось получить доступ к внутренней очереди рабочих процессов, включая данные из Spanner → Salesforce.
• GenericStubbyTypedTaskV2: в конфигурации воркфлоу нашлась задача, позволяющая выполнять произвольные Stubby-вызовы (внутренний RPC-фреймворк Google) от имени продакшен-сервиса.
• Обход проверок: с помощью двух аккаунтов и манипуляций с ACL удалось опубликовать и запустить вредоносный воркфлоу.
Результат: выполнение /ServerStatus.GetServices на gslb:alkali-base вернуло список внутренних сервисов с полными proto-дескрипторами.
Раунд 2: через 3 месяца
После фикса первой уязвимости исследователь обнаружил IDOR в публичном API Application Integration - можно было читать чужие интеграции, подставляя чужой UUID в свой project ID.
Через endpoint ListTestCases без фильтра утекали тест-кейсы всех проектов в регионе. С помощью бинарного поиска по фильтру удалось восстановить 128-битный UUID жертвы за ~128 запросов.
Цепочка привела к полному доступу к чужим интеграциям и потенциально — к повторному RCE через внутренние задачи (PythonTask, GenericStubbyTypedTaskV2).
Первая цепочка (RCE) P0/S0 $60 000; вторая цепочка (IDOR + RCE) P0/S0 $75 000; доп. находка (остаточный IDOR) P1/S1 $13 337 - итого ~$148 000.