🔍 CVE-2026-34526

5.0
CVSS Score
MEDIUM
2026-04-02
2026-07-24 21:10
✅ 완료

🇰🇷 한글 설명

SillyTavern 1.17.0 미만 버전의 src/endpoints/search.js에서 호스트네임 검증 로직이 IPv4 주소 형식만 확인하도록 설계되어 있습니다. 이로 인해 localhost, IPv6 루프백, 내부 IP로 연결되는 DNS 이름 등을 차단하지 못하는 SSRF 취약점이 발생합니다. 다만 포트 번호 제한으로 인해 공격 범위는 기본 포트(80/443)로 제한됩니다.

💡 쉬운 설명

프로그램이 외부 주소만 확인해야 하는데, 'localhost' 같은 내부 주소를 제대로 걸러내지 못하는 보안 구멍이 발견되었습니다. 공격자가 이를 이용해 사용자의 내부 네트워크에 몰래 접근을 시도할 수 있습니다.

🇺🇸 원문 (English)

SillyTavern is a locally installed user interface that allows users to interact with text generation large language models, image generation engines, and text-to-speech voice models. Prior to version 1.17.0, in src/endpoints/search.js, the hostname is checked against /^\d+\.\d+\.\d+\.\d+$/. This only matches literal dotted-quad IPv4 (e.g. 127.0.0.1, 10.0.0.1). It does not catch: localhost (hostname, not dotted-quad), [::1] (IPv6 loopback), and DNS names resolving to internal addresses (e.g. localtest.me -> 127.0.0.1). A separate port check (urlObj.port !== '') limits exploitation to services on default ports (80/443), making this lower severity than a fully unrestricted SSRF. This issue has been patched in version 1.17.0.

📍 영향받는 시스템

SillyTavern version < 1.17.0

⚔️ 공격 벡터

검증되지 않은 호스트네임(localhost, IPv6, DNS)을 이용한 SSRF 공격

🛡️ 대응 방법

SillyTavern을 1.17.0 이상의 최신 버전으로 업데이트하십시오.

🔧 검증 코드

출력된 버전 번호가 1.17.0 미만이면 취약한 상태입니다.

Shell / Script
node -e "const fs = require('fs'); try { const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8')); console.log(pkg.version); } catch (e) { console.log('error'); }"

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N

💻 영향받는 소프트웨어

Cisco Identity Services Engine