dotnet · ScribanAtenção
Scriban: array multiplication sem verificação de LoopLimit causa DoS
O operador de multiplicação de array (`array * integer`) aloca um array de tamanho `intModifier * array.
O que mudou
O operador de multiplicação de array (`array * integer`) aloca um array de tamanho `intModifier * array.Count` sem consultar `LoopLimit` ou usar aritmética segura contra overflow, permitindo que um template pequeno cause alocações de vários gigabytes e negação de serviço.
Quem isso afeta
Qualquer aplicação que renderize templates Scriban controlados por atacante, incluindo aqueles que usam `object.eval` ou `object.eval_template`.
O que fazer hoje
Aplique a correção sugerida: adicione uma verificação de `LoopLimit` ou pré-verificação segura contra overflow em `ScriptArray.cs` para o caso Multiply, e adicione um teste de regressão.
A esteira
Coletado→
Auditado→
Redigido→
Publicado