Прокси-серверный модуль может использовать недостаток в проверке команды go проверки контрольных сумов модулей для обхода проверки проверки…
Прокси-серверный модуль может использовать недостаток в проверке команды go проверки контрольных сумов модулей для обхода проверки проверки базы данных. Эта уязвимость затрагивает любого пользователя, использующего ненадежный прокси-сервер-модуль (GOMODPROXY) или базу данных checksum (GOSUMDB). Прокси-сервер вредоносного модуля может обслуживать измененные версии цепочки инструментов Go. При выборе другой версии цепочки инструментов Go, чем установленная в настоящее время цепочка инструментов (из-за переменной среды GOTOOLCHAIN или go.work или go.mod с линией цепочки инструментов), команда go загрузит и выполнит цепочку инструментов, предоставленную прокси модулем. Прокси-серверный модуль может обойти проверку базы данных checksum для этой загруженной цепочки инструментов. Поскольку эта уязвимость влияет на безопасность загрузки цепей инструментов, настройка GOTOOLCHAIN на фиксированную версию не является достаточной. Вы должны обновить свою базовую цепь инструментов Go. Инструмент Go всегда проверяет хэш цепочки инструментов перед его выполнением, поэтому фиксированные версии будут отказывать в выполнении любых кэшированных, измененных версий цепочки инструментов. Инструмент go доверяет файлам go.sum, чтобы содержать точные хэши зависимости текущего модуля. Вредоносный прокси, использующий эту уязвимость для обслуживания измененного модуля, приведет к тому, что в go.sum будет записан неправильный хеш. Пользователи, которые настроили ненадежный GOPROXY, могут определить, были ли они затронуты запуском «rm go.sum ; go mod tidy ; go modect check», который повторно подтвердит все зависимости от текущего модуля. Конкретный недостаток более подробно: команда go консультируется с базой данных checksum для проверки загруженных модулей, когда модуль не указан в файле go.sum. Он проверяет, что хэш модуля, сообщаемый в базе данных контрольной емкостью, соответствует хэшу загруженного модуля. Однако, если база данных Checksum возвращает успешный ответ, который не содержит записи для модуля, команда go неправильно позволила валидировать, чтобы добиться успеха. Прокси-сервер модуля может зеркально отображать или прокси базу данных контрольной сумму, и в этом случае команда Go не будет подключаться к базе данных контрольной емкостью напрямую. Проверки, сообщаемое в базе данных Checksum, криптографически подписаны, поэтому вредоносный прокси не может изменить отчетную учетную сумму для модуля. Однако прокси, который возвращает пустой ответ на контрольную сумму или ответ на проверку для несвязанного модуля, может привести к тому, что команда запуска будет действовать так, как если бы загруженный модуль был проверен.
Продукт не проверяет или некорректно проверяет криптографическую подпись данных.
https://cwe.mitre.org/data/definitions/347.html →Открыть в коллекции CWE →Злоумышленник способен эффективно расшифровывать данные, не зная ключа дешифрования, если целевая система раскрывает информацию о том, возникла ли ошибка дополнения при расшифровке зашифртекста. Целевая система, утечку такой информации, становится оракулом дополнения, а злоумышленник может использовать этот оракул для эффективной расшифровки данных без знания ключа дешифрования, выполнив в среднем 128*b обращений к оракулу дополнения (где b — количество байт в блоке зашифртекста). Помимо расшифровки, злоумышленник способен также формировать корректные зашифртексты (то есть выполнять шифрование) с использованием оракула дополнения, не зная ключа шифрования.
https://capec.mitre.org/data/definitions/463.html →Открыть в коллекции CAPEC →Злоумышленник эксплуатирует криптографическую слабость в реализации алгоритма проверки подписи для генерации действительной подписи без знания ключа.
https://capec.mitre.org/data/definitions/475.html →Открыть в коллекции CAPEC →| Продукт | Вендор | Статус |
|---|---|---|
| Отслеживается | ||
| golang-1.15 | Отслеживается | |
| golang-1.15 | Отслеживается | |
| golang-1.19 | Отслеживается | |
| golang-1.19 | Отслеживается | |
| golang-1.24 | Отслеживается | |
| golang-1.24 | Отслеживается | |
| golang-1.25 | Отслеживается | |
| golang-1.26 | Отслеживается | |
| go | * | Отслеживается |