🔍 CVE-2026-92932

5.1
CVSS Score
MEDIUM
2026-09-17
2026-09-18 17:49
✅ 완료

🇰🇷 한글 설명

MISP sachertortephp 라이브러리의 Xml::build() 메서드에서 연산자 우선순위 오류로 인해 발생하는 SSRF 취약점입니다. readFile 옵션을 false로 설정하더라도 https://로 시작하는 입력값이 들어오면 네트워크 요청을 강제로 수행하게 됩니다. 이를 통해 공격자는 내부 서비스에 대한 정보 유출을 시도할 수 있습니다.

💡 쉬운 설명

프로그램이 외부 인터넷 연결을 차단하도록 설정되어 있음에도 불구하고, 특정 주소(https)를 입력하면 보안 설정을 무시하고 몰래 외부와 통신하는 문제입니다. 공격자는 이를 이용해 서버 내부의 비밀 정보를 빼낼 수 있습니다.

🇺🇸 원문 (English)

In the MISP sachertortephp library, the Xml::build() static method in lib/Cake/Utility/Xml.php contains a logic error in the conditional that gates network-based XML fetching. The original condition was written as: $options['readFile'] && strpos($input, 'http://') === 0 || strpos($input, 'https://') === 0. Because PHP's && operator has higher precedence than ||, the expression is evaluated as ($options['readFile'] && strpos($input, 'http://') === 0) || strpos($input, 'https://') === 0. As a result, when a caller explicitly sets the readFile option to false to disable file and URL reading, an input string beginning with https:// still satisfies the condition and triggers a network fetch via HttpSocket (configured to follow up to 10 redirects). The http:// branch is correctly gated by the readFile flag, but the https:// branch is not. An attacker who can influence the $input parameter passed to Xml::build() can therefore force the application to issue an outbound HTTPS request to an attacker-controlled or internal URL, even though the caller intended to suppress all remote reads. The fetched response is parsed as XML and may be returned to the caller, enabling information disclosure from internal services or external targets. This constitutes a Server-Side Request Forgery (SSRF) weakness with an information-disclosure impact. The vulnerability requires that the code path in Xml::build() be reachable with attacker-controlled input and that the readFile option be set to false (or the caller expects it to be false).

📍 영향받는 시스템

MISP sachertortephp library (Xml::build() 메서드 사용 환경)

⚔️ 공격 벡터

Xml::build() 메서드의 $input 파라미터에 공격자가 제어하는 https:// 주소를 전달하여 SSRF 유도

🛡️ 대응 방법

Xml::build() 내의 조건문 연산자 우선순위를 수정하여 https:// 조건에도 readFile 옵션이 적용되도록 코드 패치

🔧 검증 코드

명령어 결과에서 https:// 조건문이 $options['readFile'] 조건과 괄호로 묶여 있지 않고 독립적으로 존재하면 취약한 상태입니다.

Shell / Script
grep -r "strpos(\$input, 'https://') === 0" /path/to/lib/Cake/Utility/Xml.php

📊 CVSS Vector String

CVSS Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N