Voltar ao catalogoCRIT-04
CORS AllowAnyOrigin() em producao
CriticalAchado ConfirmadoSegurancaRodada 1
Evidencia
`aspnet-core/src/cargo_fleet.HttpApi.Host/cargo_fleetHttpApiHostModule.cs` linhas 241-254: `builder.AllowAnyOrigin().WithAbpExposedHeaders().SetIsOriginAllowedToAllowWildcardSubdomains().AllowAnyHeader().AllowAnyMethod();`.
Impacto Tecnico
Qualquer site externo pode fazer requisicoes autenticadas (com token JWT Bearer) a API. Combinacao com JWT em localStorage permite ataques CSRF/XSS.
Impacto de Negocio
Superficie de ataque ampliada para requisicoes cross-origin nao autorizadas.
Recomendacao
Substituir por WithOrigins("https://acesso.cargofleet.app.br") em producao. Usar variaveis de ambiente para diferenciar origens por ambiente.
Arquivos Afetados
aspnet-core/src/cargo_fleet.HttpApi.Host/cargo_fleetHttpApiHostModule.cs
Acoes Relacionadas
{
"id": "CRIT-04",
"title": "CORS AllowAnyOrigin() em producao",
"severity": "Critical",
"type": "achado confirmado",
"category": "security",
"description": "A configuracao CORS da API usa `AllowAnyOrigin()` como politica default, sem diferenciar por ambiente. Permite que qualquer site externo faca requisicoes a API.",
"evidence": "`aspnet-core/src/cargo_fleet.HttpApi.Host/cargo_fleetHttpApiHostModule.cs` linhas 241-254: `builder.AllowAnyOrigin().WithAbpExposedHeaders().SetIsOriginAllowedToAllowWildcardSubdomains().AllowAnyHeader().AllowAnyMethod();`.",
"technicalImpact": "Qualquer site externo pode fazer requisicoes autenticadas (com token JWT Bearer) a API. Combinacao com JWT em localStorage permite ataques CSRF/XSS.",
"businessImpact": "Superficie de ataque ampliada para requisicoes cross-origin nao autorizadas.",
"recommendation": "Substituir por `WithOrigins(\"https://acesso.cargofleet.app.br\")` em producao. Usar variaveis de ambiente para diferenciar origens por ambiente.",
"files": [
"aspnet-core/src/cargo_fleet.HttpApi.Host/cargo_fleetHttpApiHostModule.cs"
],
"pass": 1,
"relatedActions": [
"ACT-1.3"
]
}
Descricao
A configuracao CORS da API usa
AllowAnyOrigin()como politica default, sem diferenciar por ambiente. Permite que qualquer site externo faca requisicoes a API.