PT-2021-17196 · Xcb · Xcb
Publicado
2021-02-04
·
Atualizado
2021-08-25
·
CVE-2021-26955
CVSS v3.1
9.8
Crítica
| Vetor | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
**Nome do software vulnerável e versões afetadas:
Versões do crate xcb até 04/02/2021
Descrição:
O problema diz respeito a uma violação de segurança no crate xcb para Rust, em que várias funções processam dados de um servidor X sem a devida validação ou restrições de tipo. Especificamente,
xcb::xproto::GetAtomNameReply::name() chama std::str::from utf8 unchecked() em bytes não validados, e xcb::xproto::GetPropertyReply::value() retorna uma fatia de um parâmetro de tipo sem restrições, interpretando bytes brutos como o tipo solicitado. Além disso, xcb::xproto::change property() apresenta uma leitura fora dos limites quando os argumentos de formato e tipo não correspondem aos casos de uso pretendidos. A função xcb::base::cast event() também usa std::mem::transmute() sem restringir o tipo de retorno, o que pode levar à transmutação para um tipo incorreto. Recomenda-se que os usuários utilizem essas funções com cautela e apenas com os tipos pretendidos para minimizar os riscos.Recomendações:
Para versões até 04/02/2021, considere o seguinte:
-
Ao usar
xcb::xproto::GetAtomNameReply::name(), certifique-se de que os bytes recebidos do servidor X sejam validados antes de chamarstd::str::from utf8 unchecked(). -
Ao usar
xcb::xproto::GetPropertyReply::value(), chame essa função apenas com os tipos pretendidos, que sãou8,u16eu32. -
Ao usar
xcb::xproto::change property(), certifique-se de que os argumentos de formato e tipo correspondam aos casos de uso pretendidos para evitar leituras fora dos limites. -
Ao usar `xcb
Exploit
Out of bounds Read
Unchecked Return Value
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Xcb