Recentemente, recebi do departamento de segurança um alerta sobre uma vulnerabilidade no MinIO

À primeira vista, essa vulnerabilidade parece gravíssima. É preciso corrigi-la logo.
Assim, comecei o trabalho de atualização.
Primeiro, confirme que a versão do MinIO que estamos usando é 2021-03-26T00:00:41Z
A escolha dessa versão se deve ao fato de sua licença ser a Apache License 2.0 , sendo a última versão do MinIO que pode ser usada comercialmente de graça sem a necessidade de divulgar o código-fonte.
Nas versões posteriores a esta, o MinIO mudou sua licença para AGPL V3.
Segundo o relatório, essa vulnerabilidade
Confirmar as versões afetadas: RELEASE.2019-12-17T23-16-33Z <= MinIO < RELEASE.2023-03-20T20-16-18Z
Versão corrigida:RELEASE.2023-03-20T20-16-18Z
A versão que usamos atualmente está entre as versões afetadas.
Como a versão que usamos é antiga demais, não nos atrevemos a atualizar para uma nova versão principal.
Então pensei em baixar o código-fonte e aplicar um patch por conta própria, com base nos trechos de código-fonte divulgados no relatório.
// 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 { // ignorar determinadas variáveis de ambiente como parte // da lista de permissões e poderia ser configurado // de forma diferente em cada nó, atualize skipEnvs() // mapear se houver esses valores de ambiente if _, ok := skipEnvs[envK]; ok { continue } envValues[envK] = env.Get(envK, "") } return ServerSystemConfig{ MinioEndpoints: globalEndpoints, MinioEnv: envValues, } }
Porém, quando baixei o código-fonte e mudei para a ramificação da versão que usamos, descobri que essa versão não continha o código mencionado no relatório
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,
}
}Ai, o que aconteceu? O que aconteceu?O que aconteceu?
Segundo o relatório, existe uma ferramenta de verificação que pode ser usada para verificar essa vulnerabilidade.https://github.com/MzzdToT/CVE-2023-28432
Baixamos o código de verificação da vulnerabilidade, e o resultado de sua execução mostrou que a versão que usamos não é afetada.

Nesse momento, comecei a suspeitar que o intervalo de versões indicado no relatório estava errado, então comparei o código-fonte do MinIO

Após comparar o código, constatou-se que a versão que efetivamente introduziu essa falha começa em RELEASE.2021-08-31T05-46-54Z
Ainda não consigo confirmar se minha hipótese está correta; começo a procurar o comunicado sobre essa vulnerabilidade nos canais oficiais do MinIO
https://github.com/minio/minio/security/advisories/GHSA-6xvq-wj2x-3h3q

A verdade veio à tona, e a equipe oficial do MinIO informou corretamente quais versões foram afetadas
Versões afetadas
RELEASE.2021-08-31T05-46-54Z
Versões corrigidas
RELEASE.2023-03-20T20-16-18Z
A versão que usamos não está entre as versões afetadas.
Depois desse incidente, procurei muitos artigos.
Ah, entre esses fornecedores de segurança daqui também é assim:você copia de mim, eu copio de você.
Este artigo
https://cloud.tencent.com/developer/article/2315008
Plágio
https://www.h3c.com/cn/d_202304/1830808_30003_0.htm
este artigo
https://www.h3c.com/cn/d_202304/1830808_30003_0.htm
Plágio de novo
https://github.com/minio/minio/security/advisories/GHSA-6xvq-wj2x-3h3q
No fim, ainda copiou a versão errada. Que sacanagem!
A seguir vou divulgar os links dos artigos que encontrei na busca. São todos uma cambada de picaretas, e vou expor esses textos sem dó
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