Voltar ao catalogoSEC2-07
CotarOfertaAsync executa operacao financeira com permissao apenas de leitura
HighAchado ConfirmadoSegurancaRodada 2
Evidencia
`OfertasAppService.Extended.cs` linhas 31-97: metodo `CotarOfertaAsync` sem `[Authorize(...)]` proprio. `OfertaCotarDto`: campos `Valor` e `PrecoAdicional` sem `[Range]`.
Impacto Tecnico
Usuario com permissao de leitura pode submeter valores negativos ou absurdos. API Galileu aceita o valor informado.
Impacto de Negocio
Fraude financeira direta. Usuario mal-intencionado aceita cargas com valores indevidos.
Recomendacao
Criar permissao cargo_fleet.Ofertas.Cotar. Adicionar [Range(0.01, double.MaxValue)] ao campo Valor.
Arquivos Afetados
aspnet-core/src/cargo_fleet.Application/Ofertas/OfertasAppService.Extended.cs
Acoes Relacionadas
{
"id": "SEC2-07",
"title": "CotarOfertaAsync executa operacao financeira com permissao apenas de leitura",
"severity": "High",
"type": "achado confirmado",
"category": "security",
"description": "`POST /api/app/ofertas/cotar` aceita oferta com valor monetario definido pelo usuario, protegido apenas por permissao generica de leitura. `OfertaCotarDto` sem validacao de range.",
"evidence": "`OfertasAppService.Extended.cs` linhas 31-97: metodo `CotarOfertaAsync` sem `[Authorize(...)]` proprio. `OfertaCotarDto`: campos `Valor` e `PrecoAdicional` sem `[Range]`.",
"technicalImpact": "Usuario com permissao de leitura pode submeter valores negativos ou absurdos. API Galileu aceita o valor informado.",
"businessImpact": "Fraude financeira direta. Usuario mal-intencionado aceita cargas com valores indevidos.",
"recommendation": "Criar permissao `cargo_fleet.Ofertas.Cotar`. Adicionar `[Range(0.01, double.MaxValue)]` ao campo `Valor`.",
"files": [
"aspnet-core/src/cargo_fleet.Application/Ofertas/OfertasAppService.Extended.cs"
],
"pass": 2,
"relatedActions": [
"ACT-5.2.3"
]
}
Descricao
POST /api/app/ofertas/cotaraceita oferta com valor monetario definido pelo usuario, protegido apenas por permissao generica de leitura.OfertaCotarDtosem validacao de range.