주요 콘텐츠로 건너뛰기

CooLWJ 검색

选择搜索范围,输入关键词后按回车。

언어

CVE-2023-28432 MinIO 정보 유출 취약점의 버전 표기 오류

최근 보안 부서에서 보낸 MinIO 취약점 경고를 받았습니다

image.png

언뜻 보기에 이 취약점은 매우 치명적이니, 반드시 제때 고쳐야 할 것 같다.

그리하여 업그레이드 작업에 착수했다.

먼저, 우리가 사용하는 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

취약점 검증 코드를 다운로드해 실행한 결과, 우리가 사용하는 버전은 영향을 받지 않는 것으로 나타났다.

image.png

이제 보고서의 버전 범위가 잘못된 것은 아닌지 의심하기 시작했고,그래서 MinIO 소스 코드를 비교했습니다

1.jpg

코드를 비교한 결과, 실제로 해당 결함이 도입된 버전은 다음부터임을 확인했다 RELEASE.2021-08-31T05-46-54Z

아직 내 추측이 맞는지 확인할 수 없어, MinIO 공식 사이트에서 해당 취약점 공지를 찾아보기 시작했다 

https://github.com/minio/minio/security/advisories/GHSA-6xvq-wj2x-3h3q

image.png

진상이 세상에 밝혀졌다. 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





댓글

보내는 중

원하는 테마를 선택하세요

선택한 테마가 사이트 전체에 적용됩니다.