🇰🇷 한글 설명
Flextype CMS v1.0.0-dev 버전에서 인증된 공격자가 API 토큰을 사용하여 임의의 파일을 읽을 수 있는 표현 언어 주입(Expression Language Injection) 취약점이 발견되었습니다. 공격자는 /api/v1/query 엔드포인트를 통해 검증되지 않은 입력을 Symfony ExpressionLanguage 엔진에 전달함으로써 서버 내 파일을 탈취하거나, 추가적인 공격을 통해 원격 코드 실행(RCE)을 시도할 수 있습니다.
💡 쉬운 설명
로그인 권한이 있는 사용자가 특수한 명령어를 입력하여 서버에 저장된 중요한 파일을 몰래 읽어낼 수 있는 보안 약점입니다. 만약 공격자가 서버에 파일을 업로드할 수 있는 다른 방법까지 찾아낸다면, 서버를 완전히 장악할 수도 있습니다.
🇺🇸 원문 (English)
Flextype CMS through v1.0.0-dev contains an expression language injection vulnerability that allows authenticated attackers with a valid API token to read arbitrary files by passing unsanitized user-supplied input to the Symfony ExpressionLanguage engine via the POST /api/v1/query endpoint. Attackers can leverage exposed application objects including filesystem() and serializers() within the evaluation scope to read arbitrary server files and achieve conditional remote code execution if a PHP file can be placed on disk through a secondary vector.
📍 영향받는 시스템
Flextype CMS v1.0.0-dev 이하 버전
⚔️ 공격 벡터
인증된 사용자가 POST /api/v1/query 엔드포인트에 조작된 표현 언어 구문을 전송하여 공격
🛡️ 대응 방법
Flextype CMS를 최신 보안 패치가 적용된 버전으로 업데이트하거나, 입력값에 대한 검증 로직을 강화해야 합니다.
🔧 검증 코드
명령어 실행 결과로 /etc/passwd 파일의 내용(예: root:x:...)이 출력된다면 취약한 상태입니다.
curl -s -X POST http://<target>/api/v1/query -H 'Authorization: Bearer <token>' -d 'query=filesystem("/etc/passwd")' | grep -E 'root:x:'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
💻 영향받는 소프트웨어
IBM WebSphere Application Server