Na ferramenta smb4k, utilizada no KDE para detectar e montar partições SMB, foram identificadas vulnerabilidades que permitem obter acesso root ao sistema. Os problemas foram corrigidos na versão Smb4K 4.0.5. Para verificar a situação da nova versão do pacote ou a preparação de correções nas distribuições, acesse as seguintes páginas: Debian, Ubuntu, Fedora, SUSE/openSUSE, Gentoo, Arch e FreeBSD.
Para executar ações privilegiadas no smb4k, são utilizados manipuladores KAuth, que são executados com privilégios de root. As vulnerabilidades estão presentes no manipulador Smb4KMountHelper e foram causadas pelo fato de que as funções de montagem (CVE-2025-66003) e desmontagem (CVE-2025-66002) do sistema de arquivos de rede não filtravam adequadamente as opções passadas aos comandos mount.cifs e unmount.cifs, permitindo que um usuário não privilegiado passasse a essas comandos quaisquer opções através do parâmetro mh_options.
Por exemplo, usando as opções "filemode=04777,uid=0", todos os arquivos na partição montada teriam a flag suid root definida. O usuário pode iniciar um servidor SMB e montar uma partição dele com os arquivos executáveis necessários, que, ao se definir as opções "filemode=04777,uid=0", seriam executados com privilégios de root.
No manipulador Smb4KMountHelper, os diretórios de destino também não eram verificados adequadamente, permitindo, por exemplo, montar sua própria partição SMB em vez do diretório /bin e substituir por uma versão modificada de /bin/bash. Além disso, através do parâmetro mh_krb5ticket, é possível alterar o caminho do arquivo com as credenciais do Kerberos e obter a saída do conteúdo de qualquer arquivo, como /etc/shadow, no stderr ou em um log acessível publicamente.
A vulnerabilidade na função Smb4KMountHelper::unmount() pode ser explorada para causar uma negação de serviço através da desmontagem de partições do sistema, manipulando o conteúdo do parâmetro mh_mountpoint. Curiosamente, no código, havia uma verificação do tipo de partição que apenas permitia partições cifs, smbfs e smb3, mas no bloco if que causava o erro, a instrução "return" foi omitida, e a execução não foi interrompida.
Fonte: opennet.ru
