ASA-2019-00266 – Samba: AD DC S4U2Self/S4U2Proxy unkeyed checksum

S4U2Self é uma extensão do Kerberos usado no Active Directory para permitir que um serviço solicite um ticket do kerberos para ele mesmo a partir do Kerberos Key Distribution Center (KDC) para um usuário autenticado não-Kerberos (principal na linguagem Kerberos). Isso é útil para permitir que caminhos de código internos sejam padronizados em torno do Kerberos. S4U2Proxy (delegação restrita) é uma extensão desse mecanismo, permitindo essa representação a um segundo serviço pela rede. Ele permite que um servidor privilegiado que obteve um ticket S4U2Self para si mesmo, em seguida, declare a identidade desse principal para um segundo serviço e se apresente como esse principal para obter serviços do segundo serviço. Há uma falha no AD DC da Samba no KDC de Heimdal. Quando o KDC Heimdal verifica o checksum que é colocado no pacote S4U2Self pelo servidor para proteger o principal solicitado contra modificação, ele não confirma que o algoritmo de checksum que protege o nome de usuário (principal) na solicitação é codificado. Isso permite que um ataque man-in-the-middle intercepte a solicitação ao KDC para modificar o pacote, substituindo o nome de usuário (principal) na solicitação por qualquer nome de usuário (principal) desejado existente no KDC e substitua o checksum protegendo esse nome com uma soma de verificação CRC32 (que não requer conhecimento prévio para computar). Isso permitiria que um ticket S4U2Self solicitado em nome do nome de usuário (principal) user@EXAMPLE.COM para qualquer serviço fosse alterado para um ticket S4U2Self com um nome de usuário (principal) de Administrator@EXAMPLE.COM. Este ticket conteria então o PAC de o nome de usuário modificado (principal).

ASA-2019-00231 – Samba: Salvar o arquivo de registro fora do compartilhamento como usuário não privilegiado

O Samba contém um RPC endpoint emulando a API do serviço de registro do Windows. Uma das solicitações, "winreg_SaveKey", é suscetível a uma vulnerabilidade de path/symlink traversal. Usuários não privilegiados podem usá-lo para criar um novo arquivo de seção de registro em qualquer lugar onde tenham permissões unix para criar um novo arquivo em um compartilhamento do Samba. Se eles são capazes de criar links simbólicos no compartilhamento Samba, eles podem criar um novo registro em qualquer lugar que tenham acesso de gravação, mesmo fora da definição de compartilhamento do Samba. Observação - restrições de compartilhamento existentes, como "somente leitura" ou ACLs compartilhadas, *não* impedem que novos arquivos de seção de registro sejam gravados no sistema de arquivos. Um arquivo pode ser escrito em qualquer definição de compartilhamento, sempre que o usuário tiver permissões unix para criar um arquivo. Os arquivos existentes não podem ser sobrescritos usando esta vulnerabilidade, somente novos arquivos de registro podem ser criados, no entanto, a presença de arquivos existentes com um nome específico pode ser detectada. O Samba escreve ou detecta o arquivo como o usuário autenticado, não como root.

ASA-2019-00230 – Samba: Arquivos graváveis para todo mundo no diretório do Samba AD DC private/

Durante a criação de um novo Samba AD DC, os arquivos são criados no subdiretório private/ de nosso local de instalação. Este diretório é tipicamente o modo 0700, que é o acesso somente do proprietário (root). No entanto, em algumas instalações atualizadas, ele terá outras permissões, como 0755, porque esse era o padrão antes do Samba 4.8. Nesse diretório, os arquivos são criados com o modo 0666, que é gravável por todos, incluindo um exemplo de krb5.conf e a lista de nomes DNS e valores de servicePrincipalName a serem atualizados.

ASA-2019-00119 – Samba: Out-of-bounds read em ldb_wildcard_compare()

Um usuário com permissão de leitura no servidor LDAP pode travar o processo do servidor LDAP compartilhado do DC do Samba AD. Usando uma expressão de pesquisa como (cn=test*multi*test*multi) um usuário autenticado pode travar o processo LDAP compartilhado do AD DC. Note que no Samba 4.7 e posterior, o padrão é não ter um processo LDAP compartilhado, a menos que -M prefork ou -M single seja especificado na linha de comando para 'samba'.

ASA-2018-00061 – Samba: Contagem de senha incorreta no AD DC nem sempre é eficaz

Por padrão, Samba irá lembrar senha incorreta por 30 min: Exemplo: $ samba-tool domain passwordsettings show ... Reset account lockout after (mins): 30 Isto é também conhecido como "janela de observação de senha incorreta" e é configurado no atributo lockOutObservationWindow do domínio DN ou em uma diretiva de senha refinada (também conhecida como Password Settings Object - PSO). Se este valor é atribuído para mais que três minutos, bloqueio de senha incorreta pode ser ineficaz. Se a configuração fosse de 8 a 10 minutos ou 15 a 16 minutos, o Samba ainda ofereceria alguma proteção de bloqueio de senha incorreta, mas usaria uma janela de observação menor do que a configurada (entre 41 e 170 segundos, dependendo da configuração real). Para todas as outras janelas de observação configuradas ao longo de 3 minutos (incluindo o padrão), a contagem incorreta de senhas não funcionará. Isso significará que o atributo badPwdCount (que armazena repetidas tentativas de senhas incorretas) nunca excederá 1. O "limite de bloqueio da conta" não será atingido e o usuário nunca será bloqueado.