IA Squad
BuscarEN
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.

27 Jun 2026Leitura 1 minSeveridade: agende este mês

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