🇰🇷 한글 설명
Scriban 6.6.0 미만 버전의 재귀 하강 파서에서 제어되지 않는 재귀 취약점이 발견되었습니다. 공격자가 조작된 템플릿을 입력할 경우 스택 공간을 고갈시켜 StackOverflowException을 유발하며, 이는 호스팅 프로세스의 즉각적인 종료로 이어져 서비스 거부(DoS) 상태를 초래합니다.
💡 쉬운 설명
템플릿 안에 괄호나 구조를 끝없이 중첩시켜 컴퓨터의 메모리 공간을 한꺼번에 써버리게 만드는 공격입니다. 이로 인해 프로그램이 갑자기 꺼져버려 서비스를 이용할 수 없게 됩니다.
🇺🇸 원문 (English)
Scriban before 6.6.0 contains an uncontrolled recursion vulnerability in its recursive-descent parser. The parser does not enforce a default expression depth limit (the ExpressionDepthLimit property in ParserOptions defaults to null/disabled), so an attacker who controls template input can supply a deeply nested template (e.g., thousands of nested parentheses or blocks) that exhausts thread stack space and raises a StackOverflowException. Because a StackOverflowException cannot be caught in .NET, this causes immediate, unrecoverable termination of the hosting process, resulting in a denial of service. Applications that process untrusted or user-supplied templates can be exploited remotely without authentication.
📍 영향받는 시스템
Scriban versions before 6.6.0
⚔️ 공격 벡터
인증 없이 원격에서 조작된 깊은 중첩 구조의 템플릿 입력을 전송
🛡️ 대응 방법
Scriban을 6.6.0 버전 이상으로 업데이트하거나 ParserOptions에서 ExpressionDepthLimit를 설정
🔧 검증 코드
출력된 Scriban의 버전이 6.6.0 미만인지 확인합니다.
dotnet list package | grep Scriban