
Exploração e análise do CVE-2023-3460, uma escalada de privilégios crítica no plugin Ultimate Member para WordPress, com ambiente de reprodução e orientações de mitigação.
| CVE ID | Pontuação CVSS | Descoberta | Plugin Afetado | Tipo de Vulnerabilidade |
|---|---|---|---|---|
| CVE-2023-3460 | 07/04/2023 | Ultimate Member | Acesso de Administrador Não Autorizado |
Este estudo centra-se na CVE¹-2023-3460, uma vulnerabilidade crítica que afeta o plugin "Ultimate Member" do WordPress, permitindo uma escalada de privilégios não autorizada. Este plugin é amplamente utilizado para a gestão de perfis em sites WordPress. Esta vulnerabilidade apresenta um risco major porque permite a um atacante obter direitos de administrador e, portanto, o controlo total do site. É por isso que esta falha foi classificada como crítica e avaliada em 9.1 na escala CVSS pelo NIST².
A CVE-2023-3460 explora uma falha na gestão de funções e permissões pelo plugin. No WordPress, a função WP_Capabilities³ é utilizada para gerir as funções e permissões dos utilizadores. Esta função permite aos administradores definir capacidades específicas para cada função de utilizador. No entanto, uma má utilização desta função pode conduzir a vulnerabilidades de elevação de privilégios.
No caso do Ultimate Member, a vulnerabilidade permite a um atacante contornar a verificação das capacidades WP e obter um acesso de nível administrador ao site. O plugin funciona utilizando uma lista predefinida de chaves de metadados de utilizador que não deveriam ser manipuladas pelos utilizadores. No entanto, esta abordagem de segurança, baseada em listas de bloqueio, é frequentemente insuficiente, pois deixa possibilidades de contorno.
O WordPress gere as funções e permissões dos utilizadores através de uma estrutura chamada wp_capabilities. Esta estrutura é uma representação serializada das diferentes funções e permissões concedidas aos utilizadores. Por exemplo, um administrador terá um conjunto de capacidades diferente de um editor ou de um colaborador. Estas capacidades são armazenadas na base de dados do WordPress sob a forma de arrays serializados na tabela wp_usermeta.
A falha CVE-2023-3460 tem origem na implementação da gestão de funções e permissões pelo Ultimate Member. O plugin opera utilizando uma lista predefinida de chaves de metadados de utilizador que os utilizadores não deveriam manipular. Esta lista é utilizada para verificar se os utilizadores tentam registar estas chaves durante a criação de uma conta. Esta abordagem é um anti-padrão de segurança comum, onde o bloqueio de entradas conhecidas como nocivas (listas de bloqueio) pode parecer intuitivo, mas revela-se mais complexo do que o esperado e deixa frequentemente espaço para contornos de segurança.
Aqui, o Ultimate Member utiliza uma verificação insuficiente dos metadados submetidos durante o registo de utilizadores. O plugin utiliza uma função chamada is_metakey_banned para verificar se os metadados submetidos pelo utilizador são permitidos. Esta função verifica se os metadados submetidos estão presentes na lista de metadados banidos. Se estiverem, a função retorna true e o registo do utilizador é bloqueado. Caso contrário, a função retorna false e o registo do utilizador é permitido.
No entanto, o WordPress aceita alguns caracteres acentuados como caracteres por defeito. Se um utilizador submeter metadados com caracteres acentuados, a função is_metakey_banned não os detetará e o registo do utilizador será permitido.
O plugin Ultimate Member é amplamente utilizado em diversos ambientes, desde pequenos blogs pessoais a grandes sites de comércio eletrónico. Nenhuma premissa específica pode ser feita sobre as competências em segurança informática dos utilizadores finais ou dos administradores dos sites.
Os servidores que alojam os sites WordPress estão geralmente localizados em centros de dados seguros. Para sites pessoais, a segurança física depende do ambiente individual do utilizador.
Assume-se que o plugin Ultimate Member está instalado e configurado corretamente de acordo com as instruções oficiais. O site WordPress é suposto ser mantido atualizado, com medidas de segurança básicas em vigor.
| Ameaças | B1 (Confidencialidade dos dados do utilizador) | B2 (Integridade do site Web) | B3 (Integridade do plugin Ultimate Member) |
|---|---|---|---|
| M1 Acesso não autorizado | X | X | X |
| M2 Injeção de código malicioso | X | X | |
| M3 Fuga de dados | X | ||
| M4 Deterioração da reputação | X |
7.5 As funções de segurança