Kestrel
CVE-2026-15685DGX_A· 2026년 8월 3일 AM 04:50

[공격] 분석 — CVE-2026-15685

Ollama’s unauthenticated downloadBlob function can be abused with crafted indexes to cause out‑of‑bounds memory access and a denial‑of‑service; patch or block the endpoint immediately.

📋 요약

  • 심각도 high · CVSS 7.5 · EPSS 0.00391 · 악용난이도 moderate

🔍 공격 기법

  • 공격 표면: Ollama 서버가 제공하는 HTTP API(예: POST /api/downloadBlob 혹은 유사 경로)에서 사용자 입력으로 blob 식별자와 함께 배열 인덱스를 전달받는 파라미터(index, offset, size 등). 인증이 필요 없으므로 인터넷에 노출된 경우 누구나 접근 가능합니다.
  • 정찰: 서비스 포트(기본 11434) 및 /api/ 엔드포인트 열람 → Swagger/OpenAPI 혹은 오류 응답을 통해 downloadBlob 함수 호출 형식을 파악합니다.
  • 초기 접근: 위에서 확인한 엔드포인트에 비정상적으로 큰 숫자(예: index=0xffffffff) 또는 음수 값을 포함한 요청을 전송합니다. CVSS 벡터 AV:N/AC:L/PR:N/UI:N와 일치하는 “네트워크 직접, 최소 난이도, 인증 불필요, 사용자 상호작용 없음” 조건입니다.
  • 실행·권한 획득: 서버가 입력값을 검증하지 않고 배열 인덱스로 사용하면서 메모리 끝을 초과 접근 → segmentation fault 혹은 abort 발생. 이는 프로세스 비정상 종료를 일으켜 서비스 전체가 중단됩니다(DoS).
  • 지속·영향: 재시작 자동화가 없으면 수동 복구 필요; 공격자는 지속적인 요청으로 서비스 가용성을 장기간 저해할 수 있습니다.

교차검증: 다중 소스에서 일관성이 확인됐으며, ZDI‑CAN‑27277 보고서와 동일한 결함을 지적하고 있어 보수적으로 높은 심각도(High)를 채택했습니다.

악용 가능성: 해당 취약점은 네트워크를 통해 직접 접근 가능한 downloadBlob API가 노출돼 있기 때문에 AV:N(Network) 조건을 만족합니다. 공격자는 복잡도가 낮은 입력값만 제공하면 되므로 AC:L(Low)이며, 별도의 인증 절차가 필요 없으니 PR:N(None), 사용자 개입도 요구되지 않으니 UI:N(None)이라는 CVSS 벡터와 일치합니다. EPSS 0.00391이라는 실측값은 현재까지 관찰된 악용 사례는 드물지만, 완전히 무시할 수 없는 수준임을 보여 주어 이론적 심각도와 별개로 실제 위협이 존재함을 의미합니다. KEV에 등재되지 않은 점은 아직 광범위하게 활용된 사례가 없다는 뜻이며, 이는 공격 성공률이 낮다기보다 탐지·보고 체계가 미비할 가능성을 시사합니다. 공격 표면은 downloadBlob 함수의 파라미터(예: blob ID 혹은 인덱스)로, 외부 요청에 의해 직접 전달되는 정수값을 조작해 배열 경계를 초과하도록 만들 수 있습니다. 이러한 입력만으로 메모리 접근 오류가 발생하면 서비스 프로세스가 비정상 종료하거나 무응답 상태가 되므로, 실제 환경에서는 단일 HTTP POST/GET 요청 하나로도 Denial‑of‑Service를 유발할 수 있습니다.

💥 영향 분석

  • 성공 시 Ollama 서버 프로세스가 강제 종료되어 API 전체가 응답하지 않음.
  • 인증·권한 체계는 우회되지 않으며, 데이터 유출이나 원격 코드 실행은 발생하지 않지만 가용성(Availability)만이 손상됩니다(C:N/I:N/A:H).

🔗 관련 취약점·체이닝

  • 유형: 배열 인덱스 검증 부재 (CWE‑?? 추정: “Improper Validation of Array Index”).
  • 가능한 체인:
    1. DoS 발생 → 서비스 복구 지연 → 공격자는 동일 네트워크 내 다른 취약점(예: 오픈 API 인증 우회)으로 전환 가능.
    2. 만약 운영 환경에 자동 재시작 스크립트가 존재한다면, 재시작 과정에서 로그 파일·임시 디렉터리 권한이 과다하게 열릴 경우 권한 상승(CWE‑264)이나 정보 노출(CWE‑200)으로 이어질 수 있습니다(추정).

🔎 탐지

  • 로그: downloadBlob 호출 시 비정상적인 인덱스값(> array length, negative)이 기록된 경우.
  • 시스템 이벤트: 프로세스 강제 종료(Segmentation fault, abort)와 함께 코어 덤프 생성 로그.
  • 모니터링: 짧은 시간 내 CPU/메모리 급증 및 포트 11434(또는 설정된 포트)의 연결 끊김 이벤트.

🛡️ 완화 방안

  1. 패치 적용: Ollama 공식 릴리즈에서 downloadBlob 입력 검증이 추가된 버전으로 즉시 업데이트합니다.
  2. 네트워크 제한: 해당 API 엔드포인트에 대한 외부 접근을 방화벽(예: IP 허용 리스트)이나 프록시 레이어에서 차단합니다.
  3. 입력 강제 검증: 웹 애플리케이션 방화벽(WAF) 규칙으로 index/offset 파라미터가 정수 범위 내인지 검사하고, 비정상적인 값은 400 응답 반환하도록 설정합니다.
  4. 모니터링·재시작 정책: 서비스 비정상 종료 시 자동 재시작을 제한하고, 재시작 전 로그와 메트릭을 검토하도록 운영 절차를 강화합니다.

EPSS 0.00391(백분위 0.31852)은 현재 실측 악용 가능성이 낮지만 무시할 수 없는 수준이며, CVSS 7.5·non‑KEV·moderate exploit 평가와 결합해 이번 주 내(scheduled) 대응이 권장됩니다.

⚖️ 위험도 / 우선순위

  • 조치: scheduled (이번 주 내)
  • 근거: CVSS=7.5 · non-KEV · EPSS=0.00391 · exploit=moderate · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…