CVE-2023-38490
Kirby XML 데이터 핸들러의 XML 외부 엔티티(XXE) 취약점
- 게시됨
- 2023. 7. 27.
- 업데이트됨
- 2024. 10. 16.
- CNA 할당 중
- GitHub_M
- 증거 관찰됨
- 2026. 8. 7.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N낮음 · 다음 30일
- 백분위수
- 75.8%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
Kirby는 콘텐츠 관리 시스템입니다. 3.5.8.3, 3.6.6.3, 3.7.5.2, 3.8.4.1 및 3.9.6 이전 버전의 취약점은 사이트 또는 플러그인 코드에서 `Xml` 데이터 핸들러(예: `Data::decode($string, 'xml')`) 또는 `Xml::parse()` 메서드를 사용하는 Kirby 사이트에만 영향을 미칩니다. Kirby 코어는 영향을 받는 메서드를 사용하지 않습니다. XML 외부 엔티티(XXE)는 XML 마크업 언어에서 거의 사용되지 않는 기능으로, XML 구조에 외부 파일의 데이터를 포함할 수 있게 해줍니다. 외부 파일의 이름을 공격자가 제어할 수 있는 경우, 이는 서버에 저장된 내부 또는 기밀 데이터의 노출(임의 파일 노출) 또는 서버를 대신한 네트워크 요청 수행(서버 측 요청 위조, SSRF)과 같은 다양한 시스템 영향에 악용될 수 있는 취약점이 됩니다. Kirby의 `Xml::parse()` 메서드는 PHP의 `LIBXML_NOENT` 상수를 사용했는데, 이 상수는 파싱 작업 중 XML 외부 엔티티의 처리를 활성화했습니다. `Xml::parse()` 메서드는 `Xml` 데이터 핸들러(예: `Data::decode($string, 'xml')`)에서 사용됩니다. 취약한 메서드와 데이터 핸들러 모두 Kirby 코어에서는 사용되지 않습니다. 그러나 RSS 피드 또는 기타 XML 파일을 파싱하기 위해 사이트 또는 플러그인 코드에서 사용될 수 있습니다. 해당 파일이 외부 출처(예: 사용자가 업로드하거나 외부 URL에서 검색)인 경우, 공격자는 XML 파일에 외부 엔티티를 포함시킬 수 있으며, 이는 파싱 과정에서 처리됩니다. 사이트 또는 플러그인 코드에서 XML 파싱을 사용하지 않는 Kirby 사이트는 *영향을 받지 않습니다*. 이 문제는 Kirby 3.5.8.3, 3.6.6.3, 3.7.5.2, 3.8.4.1 및 3.9.6에서 패치되었습니다. 언급된 모든 릴리스에서 유지관리자들은 외부 엔티티 처리가 파싱 로직의 범위를 벗어나므로 `LIBXML_NOENT` 상수를 제거했습니다. 이로써 해당 메서드의 모든 사용이 설명된 취약점으로부터 보호됩니다.
소스
1Kirby < 3.9.6 XML 외부 엔터티 익스플로잇
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.