Получается, что на практике подделать запись (или случайно закараптить модуль) довольно сложно, тк проверка идет из нескольких мест. Однако потенциальная атака существует:
• Атакующий может переписать модуль, его архив и
ziphash файлы.• Затем атакующий переписывает хеш внутри
go.sum ваших проектов.• Тогда, даже если вы перед сборкой делаете
go mod download и go mod verify, то компилятор не заподозрит подмену.Проблема этой атаки заключается в том, что стоит вам вычистить
ziphash файлы из кеша и вся эта схема разваливается. Одна сложность — отдельной команды я под это не нашел, но в качестве замены можно взять следующую команду
find $GOPATH/pkg/mod/cache/ -type f -name "*.ziphash" | xargs -rn1 rm