
Mediawiki Score에서의 원격 코드 실행
CVEID: CVE-2020-29007
영향을 받는 제품 및 버전: Mediawiki Score (0.3.0까지의 모든 버전)
문제 유형: CWE-96: 정적으로 저장된 코드의 지시문에 대한 부적절한 중화(‘정적 코드 주입’)
요약
Score는 사용자가 제공한 Lilypond 또는 ABC 마크업을 기반으로 악보를 생성하는 Mediawiki 확장 기능입니다. 테스트 중, 이 확장 기능이 Lilypond 마크업에 포함된 Scheme 코드를 통한 원격 코드 실행에 취약하다는 것을 확인했습니다.
Score의 모든 버전(0.3.0 포함)은 웹서버 프로세스의 컨텍스트 내에서 사용자가 제어하는 임의의 코드 실행을 허용합니다.
설명
Score 확장 기능은 사용자가 제어하는 Lilypond 또는 ABC 마크업을 GNU Lilypond 바이너리에 전달하여 악보를 생성합니다. 바이너리가 -dsafe 옵션 없이 실행되므로 Lilypond 마크업에 포함된 임의의 Guile Scheme 코드가 실행되며, 여기에는 운영 체제 셸과 상호 작용하는 코드도 포함됩니다.
이 취약점을 악용하려면 공격자는 취약한 위키의 문서를 편집할 수 있어야 합니다. 대부분의 구성에서는 인증되지 않은 공격자에게도 가능합니다.
재현
위키에서 아무 문서나 편집을 시작합니다.
문서의 내용을 다음 코드로 교체합니다:
{{Image frame|content=\new Staff <<{g^#
(number->string(system "/usr/bin/false"))
}>>}}
‘show preview’를 클릭합니다.
출력에 다음과 같은 이미지가 포함되어 있다면 해당 위키는 취약한 것입니다:

완화 조치
Score 확장 기능을 비활성화합니다.