MLflow 추적 서버(tracking server)에서 서버 측 요청 위조(SSRF) 취약점이 CVE-2026-115886으로 등록됐다. GitHub 보안 권고 GHSA-2wqp-q3c6-ccj5의 제목이 알려주는 핵심은 명확하다. 인증 없이 노출된 MLflow 서버에서 제3자 스코어러(third-party scorer)의 kwargs 인자를 악용해 scorer invoke, register, GenAI evaluate 엔드포인트를 통해 SSRF가 가능하다는 것이다. GenAI 모델 평가에 MLflow를 사용하는 조직이라면 이 취약점은 새 CVE 번호 자체가 아니라 권고 제목이 열거한 경로가 우리 평가 구성에 열려 있는지 확인하는 점검 항목에 가깝다. 이 글은 권고 제목과 CVE 레코드가 확인하는 범위까지를 사실로 다루고, 그 밖의 내부 동작과 구성별 영향은 확인되지 않은 항목으로 분리해 다룬다.
개요

CVE-2026-115886은 MLflow의 공식 GitHub 보안 권고 GHSA-2wqp-q3c6-ccj5와 연결된 SSRF 취약점이다. CVE Project의 cvelistV5 레코드는 이 취약점의 상태를 PUBLISHED로, 할당 주체를 GitHub_M로 기록하고 있으며, 같은 레코드의 수정 이행 세부내용은 수정 버전을 3.17.0으로 명시한다.
권고 제목이 직접 서술하는 내용은 다음 요소로 정리된다.
- 취약점 유형: 서버 측 요청 위조(SSRF)
- 전제 조건: 인증 없이 접근 가능한(unauthenticated) MLflow 서버
- 악용 지점: 제3자 스코어러의 kwargs 인자
- 열거된 엔드포인트: scorer invoke, register, GenAI evaluate
이 글의 판단은 위 CVE 레코드와 보안 권고의 제목 및 요약 수준에 한정된다. 파라미터가 파싱되는 방식이나 요청이 네트워크 계층에서 처리되는 세부 경로는 제공된 근거에 없으므로 확정하지 않는다.
영향 범위
제공된 근거가 확인하는 조건은 권고 제목이 보고하는 다음 항목들이다.
- 인증 없이 접근 가능한 MLflow 서버라는 배포 조건
- 제3자 스코어러 kwargs를 받아들이는 scorer invoke, register, GenAI evaluate 엔드포인트라는 구성 조건
여기까지가 보고된 범위다. 인증 없이 접근 가능한 서버라는 전제와, 권고 제목에 열거된 엔드포인트 및 제3자 스코어러 kwargs라는 악용 지점이 함께 보고되어 있다는 사실까지는 확인된다. 다만 어떤 배포 구성에서 이 경로에 실제로 도달 가능한지는 제공된 근거로 확인되지 않으므로, 이 글은 영향 범위를 위 조건 목록으로 제시하고 구성별 도달 가능성 판단은 제외한다. 어떤 구성이 위 조건에 해당하는지는 각 조직의 배포 방식과 평가 구성 확인으로만 결정된다.
SSRF라는 취약점 유형 자체가 갖는 일반적 위험은 서버 스스로 발생시킨 요청이 외부에 공개되지 않은 대상을 향할 수 있다는 점이다. 메타데이터 서비스나 내부 API처럼 비공개 대상이 서버의 요청을 경유해 도달 가능한지에 대한 문제이며, 이 취약점에서 어떤 내부 대상이 실제로 도달 가능한지를 확인한 근거는 제공되지 않았다. GenAI 모델 평가에 MLflow를 쓰는 조직이 이 취약점을 MLOps 관점에서 다뤄야 할 이유도, 평가 관련 엔드포인트가 권고 제목에 열거되어 있다는 사실까지로 제한해서 봐야 한다.
확인되지 않은 범위도 분명히 해둔다. CVE 레코드가 기록한 수정 버전은 3.17.0이지만, 영향을 받는 정확한 MLflow 버전 범위, 즉 어느 버전부터 3.17.0 이전까지가 대상인지는 제공된 근거에서 확인할 수 없다. 벤더가 부여한 CVSS 점수와 CWE 분류 역시 제공된 근거에 포함되어 있지 않다.
기술적 분석
권고 제목이 서술하는 경로는 다음과 같다. 인증 없이 접근 가능한 MLflow 서버에 scorer invoke, register, GenAI evaluate 엔드포인트로 요청을 보내고 제3자 스코어러의 kwargs에 조작된 값을 포함시키면, 서버 측에서 공격자가 지정한 대상으로 요청이 발생하는 SSRF가 유도된다. 이 서술의 출처는 mlflow 보안 권고 제목이며, 권고 제목이 보증하는 수준 이상의 메커니즘은 이 글에서 단정하지 않는다.
권고 제목이 확인하는 지점은 scorer invoke, register, GenAI evaluate라는 엔드포인트와 제3자 스코어러 kwargs라는 인자 전달 지점이다. 이 경로가 어떤 설정에서 열리고 인자가 어떤 방식으로 처리되는지는 제목 수준을 넘어선다.
확인되지 않은 지점은 그 경로의 내부 동작이다. kwargs의 어떤 필드가 서버 측 요청 생성으로 이어지는지, 대상 URL에 대한 검증이나 허용 목록이 존재하는지, 어떤 네트워크 대상까지 도달 가능한지, 서버 응답이 요청자에게 되돌아오는지는 제공된 evidence 발췌로 확인할 수 없다.
공개 PoC·익스플로잇 분석
- 출처: 이 항목의 근거는 mlflow의 GitHub 보안 권고 GHSA-2wqp-q3c6-ccj5 페이지다. 전달된 evidence 레코드에는 같은 권고 페이지의 PoC 항목을 가리키는 기록과 Impact 항목을 가리키는 기록이 각각 등록되어 있어, 공개 권고 쪽에 익스플로잇 관련 항목이 존재한다는 사실은 문서 수준에서 확인된다.
- 전제 조건: 권고가 서술하는 경로의 성립 조건은 본문 앞부분의 조건과 동일하다. 인증 없이 접근 가능한 MLflow 서버라는 배포 조건, 그리고 제3자 스코어러 kwargs를 받아들이는 scorer invoke, register, GenAI evaluate 엔드포인트라는 구성 조건이다.
- 입증 범위: 확인된 범위는 공개 권고에 PoC 항목이 포함되어 있고 해당 권고가 SSRF를 명시한다는 사실까지다. 제공된 evidence 발췌에는 PoC의 구체 코드, 요청 형식, 조작 대상 파라미터, 재현 절차가 담겨 있지 않다. 따라서 그 절차가 실제로 재현 가능한지, 어떤 네트워크 대상까지 도달 가능한지, 서버 응답이 공격자에게 회수되는지 여부는 이 글에서 확인하지 못한다. 야생에서의 실제 악용 사례는 제공된 근거 범위에서 확인되지 않았다.
- 운영 의미: 권고 제목이 명시한 전제는 인증 없이 접근 가능한 MLflow 서버라는 배포 조건이고, CVE 레코드는 수정 버전을 3.17.0으로 기록한다. 야생 악용 사례가 확인되지 않았다는 사실과 함께 보면 확인 순서는 배포가 권고의 전제 조건에 해당하는지와 현재 배포판이 3.17.0 이전인지라는 두 지점으로 좁아진다. 이 판단은 권고 제목의 조건과 CVE 레코드의 수정 버전 기록에 근거한 것이며, PoC의 재현 가능성이나 도달 범위를 전제로 한 우선순위 판단은 아니다.
정리하면 이 취약점의 악용 상태는 야생 악용 사례가 확인되지 않았다는 사실과 공개 권고에 PoC 항목이 존재한다는 사실의 조합으로 요약된다. 후자의 세부 내용은 확인되지 않으므로, 이 글에서는 악용 가능성을 입증된 재현 절차로 다루지 않고 문서로 확인되는 배포 조건과 수정 버전 기록만 다룬다.
확인이 필요한 정보
대응 순서를 확정하기 전에 채워야 할 공백이 남아 있다.
- 영향을 받는 정확한 MLflow 버전 범위: CVE 레코드는 수정 버전을 3.17.0으로 기록하지만, 하한과 상한이 명시되지 않아 업그레이드 대상 범위를 좁히는 근거는 추가 확인이 필요하다.
- 벤더가 부여한 CVSS 점수와 CWE 분류: 각 조직이 자체 우선순위를 판단할 수 있는 공식 심각도 근거가 현재 자료에 없다.
- 야생 악용 사례 보고 여부: 긴급도와 대응 순서를 결정하는 근거가 제공되지 않았다.
이 항목들은 분석을 막는 차단적 결함은 아니지만 업그레이드 대상 범위와 확인 우선순위를 정하는 데 직접 영향을 준다. 벤더 배포 채널과 공식 권고의 후속 업데이트 확인이 필요하다.
대응 방안
지금 확인해야 할 조건
- 운영 중인 MLflow 추적 서버가 권고의 전제 조건, 즉 인증 없이 접근 가능한 상태에 해당하는지 확인한다.
- 그 조건이 성립하는 배포라면 권고가 열거한 scorer invoke, register, GenAI evaluate 엔드포인트와 제3자 스코어러 kwargs 인자가 현재 구성에서 사용되고 있는지 함께 확인한다.
패치 계획의 기준
- CVE 레코드가 수정 버전으로 기록한 3.17.0을 기준으로 현재 배포판이 그보다 이전인지 확인하고, 3.17.0 이후 버전으로의 업그레이드 경로를 점검한다.
- 영향을 받는 버전 하한이 확인되지 않았으므로 업그레이드 대상 범위는 벤더 후속 지침으로 확정한다.
벤더 후속 지침 확인
- 특정 완화 구성이나 네트워크 설정 지침은 제공된 근거에 없다. 인증 없는 서버 조건에 대한 공식 처리 지침, 영향 버전 범위, CVSS 점수와 CWE 분류는 mlflow 보안 권고와 배포 채널의 후속 업데이트로 확인해야 한다.
이 글은 확인되지 않은 탐지 규칙이나 특정 구성 지침을 제안하지 않는다. 제공된 근거가 허용하는 판단은 두 지점으로 좁아진다. 배포가 권고의 전제 조건에 해당하는지, 그리고 배포판이 CVE 레코드가 수정 버전으로 기록한 3.17.0 이전인지. 야생 악용 사례가 확인되지 않았고 PoC 세부 내용도 확인되지 않았다는 사실은 이 두 지점의 확인을 우선하게 하는 근거이지, 어떤 구성 조치를 정당화하는 근거는 아니다.
참고자료
- CVE-2026-115886 record (cvelistV5)
- SSRF on unauthenticated MLflow servers via third-party scorer kwargs in the scorer invoke, register, and GenAI evaluate endpoints
함께 읽으면 좋은 글
- MSAL Node 정보 노출 취약점(CVE-2026-109461): 기밀 클라이언트 authorization 응답 처리 경계와 v7.1.0·PR #8901
- GitHub Dependabot 악성 패키지 경보가 여덟 개 생태계로 확대됐다: 점검 범위를 다시 그린다
- OpenSSF, 개발자·취약점 연구자용 AI 취약점 발견·수정 가이드 공개
본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!