Pypi · Thin-Vec · CVE-2026-6654
**Name of the Vulnerable Software and Affected Versions**
thin vec versão 0.2.14
**Description**
Um problema de Double-Free e Use-After-Free (UAF) existe nas funções `IntoIter::drop` e `ThinVec::clear`. O problema ocorre quando um panic é disparado durante a desalocação sequencial de elementos através da função `ptr::drop in place()`, o que impede a execução do código subsequente de limpeza de comprimento (`set len(0)`). Durante o desenrolar da pilha (stack unwinding), o contêiner é descartado novamente, levando à liberação repetida de memória já liberada. Isso pode ser disparado usando código Rust seguro. Quando combinado com tipos `Box<dyn Trait>`, isso pode permitir a Execução Arbitrária de Código (ACE) por meio de heap spray e sequestro de vtable, onde uma vtable falsa controlada por um invasor substitui um slot de ponteiro gordo liberado para redirecionar a execução.
**Recommendations**
Para a versão 0.2.14, implemente um padrão DropGuard inserindo um guarda RAII antes de `ptr::drop in place()` para garantir que `set len(0)` seja chamado independentemente de um panic, ou adote uma abordagem de pré-zeramento, definindo o comprimento como 0 antes de chamar `ptr::drop in place()`.
Como solução temporária, evite usar a função `ThinVec::clear` ou descartar `IntoIter` antes que ele seja totalmente consumido ao armazenar tipos cuja implementação de `Drop` possa causar panic.