vulnerabilidades do libuser (CVE-2015-3245 and CVE-2015-3246)
O Red Hat Product Security reconheceu duas vulnerabilidades de segurança no utilitáriouserhelper
(parte do pacote usermode
) e na biblioteca libuser
. Usuários locais autenticados com acesso ao terminal, poderiam combinar estas vulnerabilidades para obter escalação de privilégio local para usuário root. Estas falhas receberam CVE-2015-3245 e CVE-2015-3246. Na combinação, as vulnerabilidades foram classificadas como tendo um impacto Importante. A Red Hat deseja agradecer a Qualys por relatar estes problemas.
Informações de Fundo
A biblioteca libuser
implementa uma interface padronizada para manipular e administrar as contas de usuário e grupo. O programauserhelper
, o qual foi incluído no pacoteusermode
, fornece uma interface não interativa e básica para mudar uma senha de usuário, o campo GECOS e o terminal.
Impacto
Veja as seguintes duas seções para descrição de duas vulnerabilidades relacionadas.
Condição da corrida na atulaização do arquivo de senha (CVE-2015-3246, Important)
Uma falha foi encontrada na forma que a biblioteca libuser
lidou com o arquivo /etc/passwd
file. Mesmo que os programas tradicionais como o passwd
, chfn
, e chsh
funcionem em uma cópia temporária do /etc/passwd
e eventualmente usem a função rename()
para renomear a cópia temporária, o libuser
modificava o /etc/passwd
diretamente. Infelizmente, se algo desse errado durante estas modificações, o libuser
podia deixar o /etc/passwd
em estado inconsistente.
Este comportamento podia resultar em um ataque de recusa de serviço local. Além disso, quando combinado com uma segunda vulnerabilidade (CVE-2015-3245, described below), ele poderia resultar na escalação de privilégios para o usuário root.
Veja a tabela abaixo para links de supervisões de segurança que tratam deste problema.
Falta de validação do conteúdo de campo do GECOS (CVE-2015-3245, Moderate)
Descobriu-se que a função chfn
do utilitário userhelper
não filtrava propriamente os caracteres de nova linha. A função chfn
implementada pelo utilitário userhelper
percebeu que os campos fornecidos na linha de comando eram válidos (ou seja, não continham caracteres proibidos). Infelizmente, estes caracteres proibidos (:,=
) não incluíam o caractere \n
e permitia que atacantes locais injetassem caracteres de nova linha no arquivo /etc/passwd
e alterassem este arquivo de formas inesperadas.
Um atacante local podia usar esta falha para interromper o arquivo /etc/passwd
, o qual podia resultar em um ataque de recusa de serviço no sistema.
Nota: Este problema, embora atribuído inicialmente ao pacote usermode
, está sendo reparado com uma atualização para libuser
pois o libuser
precisou mudar para lidar com a vulnerabilidade CVE-2015-3246.
Supervisões de Segurança
Todas as versões da bibliotecalibuser
incluídas no Red Hat Enterprise Linux 6 e 7 foram afetadas por estas falhas. Veja a tabela abaixo para obter links para supervisões de segurança respectivas, que reparam este problema:
Produto | Supervisão |
---|---|
Red Hat Enterprise Linux 6 | RHSA-2015:1482 |
Red Hat Enterprise Linux 7 | RHSA-2015:1483 |
Este problema afeta também a Red Hat Enterprise Linux 5, a qual está agora em Fase de Produção 3 do ciclo de vida de manutenção e suporte. Portanto, o problema não tem planos de ser tratado em atualizações futuras no Red Hat Enterprise Linux 5. Para informações adicionais, consulte o Red Hat Enterprise Linux Life Cycle.
Atomic Host & Containers
Todas as imagens de containers oficiais lançadas, incluem uma versão da vulnerabilidade da biblioteca do 'libuser'. Usuários preocupados com este fato, podem usar esta função de atualização do yum embutida dos containers para versões reparadas (veja 'Resolução' abaixo). Isto resolve a vulnerabilidade. As construções atualizadas destes containers refletindo estas atualizações serão lançadas em breve.
O Atomic Host inclui uma versão vulnerável da biblioteca do 'libuser'. É possível atualizar quaisquer containers acomodados pelo Atomic para versões reparadas destes pacotes usando sua funcão do yum embutida. Não é possível explorar o Atomic host de dentro de um container utilizando estes problemas. A próxima atualização cumulativa incluirá reparos para o Atomic Host.
Imagens e Equipamentos do Cloud
Todas as imagens de equipamento e cloud, oficiais lançadas, incluem uma versão da vulnerabilidade da biblioteca do 'libuser'. Usuários preocupados com este fato, podem usar esta função de atualização do yum embutida dos containers para versões reparadas (veja 'Resolução' abaixo). Isto resolve a vulnerabilidade. As rotações recursivas destes containers, que refletem estas atualizações serão lançadas em breve.
Serviços do Amazon Web
O Atomic Host inclui uma versão vulnerável da biblioteca do 'libuser'. É possível atualizar quaisquer sistemas para versões reparadas destes pacotes usando sua função do yum embutida (veja 'Resolução' abaixo)
Imagens do RHEV-H
As imagens de equipamento do Red Hat Enterprise Virtualization Hypervisor, incluem uma versão da vulnerabilidade da biblioteca do 'libuser'. Estas imagens devem somente ser utilizadas para máquinas virtuais de host e nunca devem possuir usuários locais não confiáveis.
Não é possível atacar os hosts doRHEV-H de dentro de uma máquina virtual, explorando estes problemas. Uma atualização futura da imagem do RHEV-H irá lidar com esta vulnerabilidade.
Resolução
Para eliminar a possibilidade de exploração, instale os pacotes atualizados do 'libuser' que foram disponibilizados através dos conselheiros listados na tabela acima.
Para instalar as atualizações, use o gerenciador de pacotes yum da seguinte forma:
yum update
Para atualizar somente o pacote 'libuser' e suas dependências, use:
yum update libuser
Mitigação
Devido à forma que o 'libuser' funciona, somente os usuários que possuem contas já listadas no /etc/passwd
podem explorar estas vulnerabilidades, e o usuário precisa prover a senha de conta como parte do ataque. Estes requerimentos significam que a exploração por contas listadas somente em LDAP (ou algumas outras fontes de dados NSS), ou por contas de sistema sem uma senha válida, não é possível.
Em sistemas onde a atualização do 'libuser' não é possível, os administradores de sistema podem adicionar as regras do 'pam_warne
pam_denynos dois arquivos,
/etc/pam.d/chfne
/etc/pam.d/chsh', para prevenir usuários não root de usarem serviços vulneráveis. Com estas edições, os arquivos devem conter:
#%PAM-1.0
auth sufficient pam_rootok.so
auth precisava do pam_warn.so
auth precisava do pam_deny.so
auth inclui system-auth
account inclui system-auth
password inclui system-auth
session inclui system-auth
Depois disso, tentativas por usuários sem privilégios a usarem o chfn
e chsh
(e a função respectiva no programa 'userhelper') irão falhar e seram autenticadas (por padrão no /var/log/secure
).
Comments