
Introdução
Em 7 de maio de 2024, a WP-Firewall, uma organização líder em consultoria de segurança, publicou um relatório detalhado sobre vulnerabilidades críticas descobertas no plugin Uncode Core. Se você é um usuário Uncode, é crucial atualizar seu plugin core para pelo menos a versão 2.8.9 para proteger seu site WordPress de ataques potenciais. Esta postagem se aprofundará nas especificidades dessas vulnerabilidades, suas implicações e as etapas tomadas para mitigá-las.
Sobre o plugin Uncode Core
O plugin Uncode Core, desenvolvido pela Undsgn, é um componente essencial do tema Uncode — um tema premium altamente popular para sites WooCommerce, com mais de 110.000 vendas no ThemeForest. O tema Uncode é conhecido por seu design pixel-perfect, tornando-o ideal para vários sites, incluindo portfólios, agências, freelancers, blogs e lojas online.
As Vulnerabilidades de Segurança
Os pesquisadores de segurança do WP-Firewall identificaram duas vulnerabilidades significativas no plugin Uncode Core:
1. Exclusão de arquivo e diretório arbitrário autenticado
Descrição: Esta vulnerabilidade permite que qualquer usuário autenticado com pelo menos uma função de Assinante exclua diretórios arbitrários no servidor. O problema está na função `delete_download`, que não tem as devidas verificações de permissão e nonce. Esta função é anexada à ação `wp_ajax_uncodefont_delete_download`, possibilitando que usuários autenticados a explorem.
Detalhes técnicos:
função delete_download() {
	se (isset($_REQUEST['font_family'])) {
		$font_family = $_REQUEST['font_family'];
		$font_dir = trailingslashit($this->diretório_de_fontes).$font_family;
		$fontkit_zip = $font_dir.'.zip';
		se (@file_existe($fontkit_zip)) {
			se (!@unlink($fontkit_zip)) {
				eco json_encode(matriz(
					'error' => sprintf( esc_html__( 'Falha ao excluir o zip do kit @fontface %1$s.', 'uncode-core' ), $fontkit_zip )
				));
				morrer();
			}
		}
		// Não é possível excluir o diretório, porque unzip_file, que o criou, usa WP_Filesystem. Então usamos WP_Filesystem para excluí-lo.
		$this->setup_wp_filesystem();
		sistema de arquivos global $wp;
		se (isset($wp_filesystem)) {
			$delete_dir = $wp_filesystem->delete($font_dir, verdadeiro);
			se (!$delete_dir) {
				echo json_encode(array('erro' => $delete_dir['erro']));
				morrer();
			}
		}
		echo json_encode(array('success' => "Download excluído"));
	}
	morrer();
}inclui/sistema-de-fontes/sistema-de-fontes.php, função delete_download()A função constrói a variável `$font_dir` a partir da entrada do usuário (`$_REQUEST['font_family']`) sem higienização, permitindo a travessia de diretório e a exclusão arbitrária.
2. Escalonamento de privilégios autenticado
Descrição: Esta vulnerabilidade permite que qualquer usuário autenticado com um mínimo de função de Assinante eleve seus privilégios para qualquer função no site WordPress. Isso ocorre devido a uma atualização insegura da Opção WP na função `save_option`, que não possui verificações de permissão adequadas.
Detalhes técnicos:
função pública save_option() {
	se ( isset( $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'uncode-core-settings-nonce' ) ) {
		se ( isset( $_POST['valor'] ) && $_POST['valor'] && isset( $_POST['id_opção'] ) && $_POST['id_opção'] ) {
			$autoload = isset( $_POST['autoload'] ) && $_POST['autoload'] === 'verdadeiro' ? verdadeiro : falso;
			update_option( $_POST['id_opção'], $_POST['valor'], $autoload );
---------- CORTE AQUI ----------inclui/core-settings/class-core-settings.php, função save_option()O nonce usado nesta função pode ser recuperado por qualquer usuário autenticado com acesso à área wp-admin, permitindo atualizações não autorizadas de opções e escalonamento de privilégios.
O Patch
Para resolver essas vulnerabilidades, os desenvolvedores do plugin Uncode Core lançaram a versão 2.8.9, que inclui as seguintes correções:
– Exclusão de arquivo e diretório arbitrário autenticado: Implementadas verificações de permissão e nonce na função `delete_download`.
– Escalonamento de privilégios autenticado: Aplicou verificações de permissão e nonce na função `save_option` e adicionou uma verificação de lista de permissões para chaves de opção.
Conclusão
Garantir a segurança do seu site WordPress envolve manter-se atualizado com os últimos patches e avisos de segurança. As vulnerabilidades no plugin Uncode Core ressaltam a importância de implementar permissões adequadas e verificações nonce para quaisquer ações sensíveis. Sempre higienize as entradas do usuário e limite o escopo do que pode ser atualizado ou excluído por meio de ações do usuário.
Para obter informações mais detalhadas, você pode ler o aviso de segurança completo no site do WP-Firewall aqui.
Fique seguro
O WP-Firewall oferece várias soluções para segurança do WordPress, incluindo auditoria de plugins, monitoramento e resposta de vulnerabilidades e serviços gerenciados de segurança do WordPress. Se você é um desenvolvedor de plugins ou pesquisador de segurança, considere se juntar ao WP-Firewall.
 
					 
					
 Português
 Português		 English
 English         简体中文
 简体中文         香港中文
 香港中文         繁體中文
 繁體中文         日本語
 日本語         Español
 Español         Français
 Français         العربية
 العربية         हिन्दी
 हिन्दी         বাংলা
 বাংলা         한국어
 한국어         Italiano
 Italiano         Nederlands
 Nederlands         Tiếng Việt
 Tiếng Việt         Русский
 Русский         Polski
 Polski         Deutsch
 Deutsch         Dansk
 Dansk