PT-2022-4311 · Rust+10 · Rust+10

Florian Weimer

+1

·

Publicado

2022-01-20

·

Atualizado

2025-03-24

·

CVE-2022-21658

CVSS v2.0

10

Alta

VetorAV:N/AC:L/Au:N/C:C/I:C/A:C
Nome do software vulnerável e versões afetadas
Versões do Rust 1.0.0 a 1.58.0
Descrição
A função da biblioteca padrão std::fs::remove dir all no Rust está vulnerável a uma condição de corrida que permite o rastreamento de links simbólicos. Essa vulnerabilidade permite que um invasor induza um programa com privilégios a excluir arquivos e diretórios aos quais o invasor não teria acesso ou não poderia excluir de outra forma. A vulnerabilidade é particularmente perigosa quando o aplicativo afetado é executado com privilégios elevados, pois pode levar à exclusão de arquivos importantes do sistema.
Recomendações
Para resolver o problema, atualize para o Rust 1.58.1 o mais rápido possível, especialmente se você estiver desenvolvendo programas que devem ser executados em contextos privilegiados, incluindo daemons do sistema e binários setuid. Para alvos de compilação que não possuem APIs utilizáveis para mitigar adequadamente o ataque, como o macOS anterior à versão 10.10 (Yosemite) e o REDOX, considere estratégias alternativas de mitigação, mas observe que, mesmo com uma cadeia de ferramentas corrigida, esses alvos ainda estão vulneráveis. Como solução temporária, considere evitar o uso da função std::fs::remove dir all em contextos privilegiados até que o problema seja totalmente resolvido.

Exploit

Correção

Race Condition

Time Of Check To Time Of Use

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

ALSA-2022:1894
ALSA-2022_1894
ALT-PU-2022-1106
ALT-PU-2022-2927
ALT-PU-2023-1135
ALT-PU-2023-4337
AZL-8337
BDU:2022-05167
CESA-2022_1894
CVE-2022-21658
ELSA-2022-1894
GHSA-R9CC-F5PR-P3J2
MGASA-2022-0044
OPENSUSE-SU-2022:0149-1
OPENSUSE-SU-2022:0171-1
OPENSUSE-SU-2022:0175-1
OPENSUSE-SU-2022:0491-1
OPENSUSE-SU-2022:0843-1
OPENSUSE-SU-2022_0149-1
OPENSUSE-SU-2022_0171-1
OPENSUSE-SU-2022_0175-1
OPENSUSE-SU-2022_0491-1
OPENSUSE-SU-2022_0843-1
OPENSUSE-SU-2024:11767-1
OPENSUSE-SU-2024:11768-1
OPENSUSE-SU-2024:11769-1
RHSA-2022:1894
RHSA-2022_1894
RLSA-2022:1894
RLSA-2022_1894
SUSE-SU-2022:0149-1
SUSE-SU-2022:0171-1
SUSE-SU-2022:0175-1
SUSE-SU-2022:0200-1
SUSE-SU-2022:0491-1
SUSE-SU-2022:0843-1
SUSE-SU-2022_0149-1
SUSE-SU-2022_0171-1
SUSE-SU-2022_0175-1
SUSE-SU-2022_0200-1
SUSE-SU-2022_0491-1
SUSE-SU-2022_0843-1

Produtos afetados

Alt Linux
Almalinux
Astra Linux
Centos
Debian
Apple Macos
Red Hat
Red Os
Rocky Linux
Rust
Suse