Недавно мы получили от отдела безопасности предупреждение об уязвимости MinIO

На первый взгляд эта уязвимость выглядит очень опасной — её нужно срочно исправить.
Итак, я приступил к обновлению.
Сначала убедимся, что используемая нами версия MinIO — 2021-03-26T00:00:41Z
Эта версия выбрана потому, что она распространяется по лицензии Apache License 2.0 , это последняя версия MinIO, которую можно бесплатно использовать в коммерческих целях без раскрытия исходного кода.
В версиях после этой MinIO изменил лицензию на AGPL V3。
Согласно отчёту, эта уязвимость
Подтверждённые уязвимые версии:RELEASE.2019-12-17T23-16-33Z <= MinIO < RELEASE.2023-03-20T20-16-18Z
Версия с исправлением:RELEASE.2023-03-20T20-16-18Z
Используемая нами версия входит в число затронутых версий。
Мы использовали слишком старую версию и не решались обновиться до новой основной версии.
Поэтому я решил самостоятельно скачать исходный код и внести исправления, опираясь на фрагменты кода, раскрытые в отчёте.
// minio/cmd/bootstrap-peer-server.go
func (b *bootstrapRESTServer) VerifyHandler(w http.ResponseWriter, r *http.Request) { ctx := newContext(r, w, "VerifyHandler") cfg := getServerSystemCfg() logger.LogIf(ctx, json.NewEncoder(w).Encode(&cfg)) }
// minio/cmd/bootstrap-peer-server.go
func getServerSystemCfg() ServerSystemConfig { envs := env.List("MINIO_") envValues := make(map[string]string, len(envs)) for _, envK := range envs { // пропустить определённые переменные окружения в рамках // белого списка и может быть настроен // по-разному на каждом узле, обновить skipEnvs() // отображение, если такие значения переменных окружения существуют if _, ok := skipEnvs[envK]; ok { continue } envValues[envK] = env.Get(envK, "") } return ServerSystemConfig{ MinioEndpoints: globalEndpoints, MinioEnv: envValues, } }
Но когда я скачал исходный код и переключился на ветку используемой нами версии, оказалось, что кода, указанного в отчёте, в этой версии нет
func (b *bootstrapRESTServer) VerifyHandler(w http.ResponseWriter, r *http.Request) {
ctx := newContext(r, w, "VerifyHandler")
cfg := getServerSystemCfg()
logger.LogIf(ctx, json.NewEncoder(w).Encode(&cfg))
w.(http.Flusher).Flush()
}func getServerSystemCfg() ServerSystemConfig {
return ServerSystemConfig{
MinioPlatform: fmt.Sprintf("OS: %s | Arch: %s", runtime.GOOS, runtime.GOARCH),
MinioEndpoints: globalEndpoints,
}
}Ой, что происходит? Что происходит?Что происходит?
Согласно отчёту, существует инструмент проверки, с помощью которого можно проверить эту уязвимость.https://github.com/MzzdToT/CVE-2023-28432
Скачали код для проверки уязвимости; результат его выполнения показал, что используемая нами версия не затронута.

Теперь я начал подозревать, что в отчёте неверно указан диапазон версий, и поэтому сравнил исходный код MinIO

Сравнение кода показало, что версия, в которой фактически появился этот дефект, начинается с RELEASE.2021-08-31T05-46-54Z
Пока я всё ещё не могу подтвердить правильность своей догадки и начинаю искать официальное уведомление MinIO об этой уязвимости
https://github.com/minio/minio/security/advisories/GHSA-6xvq-wj2x-3h3q

Теперь истина открылась всем: разработчики MinIO указали правильные затронутые версии
Затронутые версии
RELEASE.2021-08-31T05-46-54Z
Версии с исправлением
RELEASE.2023-03-20T20-16-18Z
Используемая нами версия не входит в число затронутых версий.
После этого случая я нашёл множество статей.
Эх, у нас в стране производители решений для информационной безопасности тоже только и делают, что копируют друг друга.
Эта статья
https://cloud.tencent.com/developer/article/2315008
Плагиат
https://www.h3c.com/cn/d_202304/1830808_30003_0.htm
эта статья
https://www.h3c.com/cn/d_202304/1830808_30003_0.htm
Снова плагиат
https://github.com/minio/minio/security/advisories/GHSA-6xvq-wj2x-3h3q
В итоге он ещё и версию переписал неправильно — вот подстава!
Далее я опубликую ссылки на найденные статьи — сплошные вредные советы, я собираюсь как следует разнести их даже задним числом
https://stack.chaitin.com/techblog/detail/62
https://mp.weixin.qq.com/s/JgskenAZ6Cpecoe2k2AEjQ
https://blog.nsfocus.net/miniocve-2023-28432/
https://www.freebuf.com/vuls/363647.html
https://cloud.tencent.com/developer/article/2315008
https://www.h3c.com/cn/d_202304/1830808_30003_0.htm
https://zone.huoxian.cn/d/2708-cve-2023-28432-minio/17
https://www.cve.org/CVERecord?id=CVE-2023-28432