Scriban ExpressionDepthLimit não interrompe recursão — risco de StackOverflowException
O guarda ExpressionDepthLimit no parser do Scriban não interrompe a recursão; apenas registra um erro não fatal.
O que mudou
O guarda ExpressionDepthLimit no parser do Scriban não interrompe a recursão; apenas registra um erro não fatal. Isso permite que expressões profundamente aninhadas causem uma StackOverflowException não capturável, levando ao encerramento do processo. Todas as versões 6.6.0 a 7.2.0 são afetadas.
Quem isso afeta
Qualquer aplicação que analise templates influenciados por atacantes ou passe strings controladas por atacantes para object.eval/object.eval_template.
O que fazer hoje
Aplique a correção sugerida: faça o limite realmente interromper a descida lançando uma exceção de análise ou registrando com isFatal:true e desenrolando. Como defesa em profundidade, chame RuntimeHelpers.EnsureSufficientExecutionStack() na entrada de ParseExpression.