{"id":306,"date":"2026-10-17T11:03:16","date_gmt":"2026-10-17T09:03:16","guid":{"rendered":"https:\/\/helloblog.io\/pt\/rank-math-pro-3-0-123-ataque-cadeia-fornecimento-recuperacao\/"},"modified":"2026-10-17T11:03:16","modified_gmt":"2026-10-17T09:03:16","slug":"rank-math-pro-3-0-123-ataque-cadeia-fornecimento-recuperacao","status":"publish","type":"post","link":"https:\/\/helloblog.io\/pt\/rank-math-pro-3-0-123-ataque-cadeia-fornecimento-recuperacao\/","title":{"rendered":"Rank Math PRO 3.0.123: ataque \u00e0 cadeia de fornecimento e recupera\u00e7\u00e3o dos sites"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Alguns pacotes oficiais do <strong>Rank Math PRO 3.0.123<\/strong>, distribu\u00eddos atrav\u00e9s de descarga ou atualiza\u00e7\u00e3o, continham malware. Se instalaste e ativaste uma dessas c\u00f3pias, trata o site como comprometido: substituir o plugin pela vers\u00e3o limpa n\u00e3o chega para remover tudo o que o c\u00f3digo malicioso possa ter criado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O incidente abrange os pacotes obtidos entre <strong>15 de outubro de 2026, \u00e0s 20:02 UTC, e 16 de outubro de 2026, \u00e0s 07:12 UTC<\/strong>, uma janela de cerca de 11 horas. A Rank Math retirou os ficheiros afetados e disponibilizou a vers\u00e3o limpa <strong>3.0.124<\/strong>. O aviso diz respeito ao complemento PRO; n\u00e3o identifica o plugin gratuito Rank Math como afetado.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que aconteceu e porque n\u00e3o basta atualizar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Este foi um <strong>ataque \u00e0 cadeia de fornecimento<\/strong>: o c\u00f3digo malicioso chegou dentro de um pacote oficial, em vez de explorar um erro de programa\u00e7\u00e3o do plugin. A Rank Math n\u00e3o publicou como os pacotes foram adulterados, pelo que n\u00e3o h\u00e1 informa\u00e7\u00e3o para explicar a causa t\u00e9cnica da intrus\u00e3o ou atribu\u00ed-la a um atacante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O registo <strong>CVE-2026-111862<\/strong>, identificador p\u00fablico deste problema de seguran\u00e7a, tem uma classifica\u00e7\u00e3o de <strong>9,8 &#8211; cr\u00edtica<\/strong> no Common Vulnerability Scoring System (CVSS), a escala de gravidade de vulnerabilidades. Identifica o plugin pelo slug <code>seo-by-rank-math-pro<\/code> e descreve a presen\u00e7a de c\u00f3digo malicioso incorporado que permite atua\u00e7\u00e3o sem autentica\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O malware executa-se quando o plugin \u00e9 ativado, comunica com <code>rank1cdn[.]com<\/code> e pode estabelecer acesso persistente. Consegue recriar backdoors &#8211; mecanismos de acesso oculto &#8211; quando algu\u00e9m visita o site. Pode ainda expor credenciais do WordPress, credenciais da base de dados, chaves de API e outros segredos que o utilizador do servidor web consiga ler.<\/p>\n\n\n\n<div class=\"wp-block-group callout callout-warning is-style-warning is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">A vers\u00e3o limpa n\u00e3o limpa o resto do site<\/h4>\n\n\n<p class=\"wp-block-paragraph\">Atualizar para a vers\u00e3o 3.0.124 substitui o pacote do Rank Math PRO, mas n\u00e3o elimina ficheiros, contas de administrador ou tarefas cron que o malware j\u00e1 tenha criado noutros locais. Mesmo que j\u00e1 estejas a usar outra vers\u00e3o, segue os passos de recupera\u00e7\u00e3o se ativaste uma c\u00f3pia afetada.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Confirma em qual dos tr\u00eas casos est\u00e1s<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Abre a \u00e1rea de administra\u00e7\u00e3o do WordPress e consulta a vers\u00e3o instalada em <strong>Plugins<\/strong>. Cruza essa informa\u00e7\u00e3o com o momento em que descarregaste ou recebeste a atualiza\u00e7\u00e3o: <strong>ter a vers\u00e3o 3.0.123, por si s\u00f3, n\u00e3o prova que o site esteja comprometido<\/strong>, porque apenas uma parte dos pacotes dessa vers\u00e3o foi afetada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em hor\u00e1rio de ver\u00e3o da Europa Central, a janela corresponde a <strong>15 de outubro, \u00e0s 22:02 CEST, at\u00e9 16 de outubro, \u00e0s 09:12 CEST<\/strong>. A Rank Math tem registos das contas que descarregaram as c\u00f3pias afetadas e est\u00e1 a notificar os respetivos utilizadores. Se recebeste uma notifica\u00e7\u00e3o, aplica o caso correspondente abaixo, mesmo que entretanto tenhas mudado de vers\u00e3o.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>Instalaste e ativaste uma c\u00f3pia obtida durante a janela afetada:<\/strong> considera o site comprometido e segue uma das op\u00e7\u00f5es de recupera\u00e7\u00e3o. A ativa\u00e7\u00e3o da c\u00f3pia afetada \u00e9 o ponto decisivo, n\u00e3o apenas a vers\u00e3o que aparece agora no painel.<\/li>\n\n\n<li><strong>Instalaste uma c\u00f3pia afetada da vers\u00e3o 3.0.123, mas nunca a ativaste:<\/strong> elimina os ficheiros desse plugin, instala a vers\u00e3o limpa 3.0.124 a partir da conta Rank Math e executa uma an\u00e1lise de seguran\u00e7a por precau\u00e7\u00e3o.<\/li>\n\n\n<li><strong>Descarregaste a vers\u00e3o 3.0.123, mas n\u00e3o a instalaste nem a ativaste:<\/strong> este incidente, por si s\u00f3, n\u00e3o indica que o site tenha sido comprometido. Se n\u00e3o consegues confirmar se os ficheiros chegaram a ser instalados ou ativados, contacta o suporte da Rank Math.<\/li>\n\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Triagem r\u00e1pida com WP-CLI<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O WP-CLI, a ferramenta de linha de comandos do WordPress, permite consultar a vers\u00e3o, op\u00e7\u00f5es suspeitas, administradores e eventos agendados. Os comandos seguintes ajudam-te a recolher ind\u00edcios; n\u00e3o substituem a limpeza nem demonstram, pela aus\u00eancia de resultados, que o site est\u00e1 seguro.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># Executa na diretoria da instala\u00e7\u00e3o do WordPress.\nwp plugin get seo-by-rank-math-pro --field=version\n\n# Consulta as tr\u00eas op\u00e7\u00f5es associadas ao incidente.\nwp option get _uf6qdn2hmm\nwp option get t8krdk990phb\nwp option get _np5pvf754c\n\nwp user list --role=administrator --fields=ID,user_login,user_email,user_registered\nwp core verify-checksums\nwp cron event list\n\n# Procura o falso ficheiro do core e a chave observada no malware.\nls -la wp-includes\/class-wp-cache-util.php\ngrep -RIn --include='*.php' 'xmmqhn' wp-content\/\n\n# Substitui www-data pelo utilizador real do servidor web.\n# A consulta do crontab desse utilizador exige permiss\u00f5es adequadas.\ncrontab -l -u www-data | grep 'ms6v46'\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#6A737D\"># Executa na diretoria da instala\u00e7\u00e3o do WordPress.<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> plugin<\/span><span style=\"color:#9ECBFF\"> get<\/span><span style=\"color:#9ECBFF\"> seo-by-rank-math-pro<\/span><span style=\"color:#79B8FF\"> --field=version<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># Consulta as tr\u00eas op\u00e7\u00f5es associadas ao incidente.<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> option<\/span><span style=\"color:#9ECBFF\"> get<\/span><span style=\"color:#9ECBFF\"> _uf6qdn2hmm<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> option<\/span><span style=\"color:#9ECBFF\"> get<\/span><span style=\"color:#9ECBFF\"> t8krdk990phb<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> option<\/span><span style=\"color:#9ECBFF\"> get<\/span><span style=\"color:#9ECBFF\"> _np5pvf754c<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> user<\/span><span style=\"color:#9ECBFF\"> list<\/span><span style=\"color:#79B8FF\"> --role=administrator<\/span><span style=\"color:#79B8FF\"> --fields=ID,user_login,user_email,user_registered<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> core<\/span><span style=\"color:#9ECBFF\"> verify-checksums<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> cron<\/span><span style=\"color:#9ECBFF\"> event<\/span><span style=\"color:#9ECBFF\"> list<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># Procura o falso ficheiro do core e a chave observada no malware.<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">ls<\/span><span style=\"color:#79B8FF\"> -la<\/span><span style=\"color:#9ECBFF\"> wp-includes\/class-wp-cache-util.php<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">grep<\/span><span style=\"color:#79B8FF\"> -RIn<\/span><span style=\"color:#79B8FF\"> --include=<\/span><span style=\"color:#9ECBFF\">'*.php'<\/span><span style=\"color:#9ECBFF\"> 'xmmqhn'<\/span><span style=\"color:#9ECBFF\"> wp-content\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># Substitui www-data pelo utilizador real do servidor web.<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># A consulta do crontab desse utilizador exige permiss\u00f5es adequadas.<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">crontab<\/span><span style=\"color:#79B8FF\"> -l<\/span><span style=\"color:#79B8FF\"> -u<\/span><span style=\"color:#9ECBFF\"> www-data<\/span><span style=\"color:#F97583\"> |<\/span><span style=\"color:#B392F0\"> grep<\/span><span style=\"color:#9ECBFF\"> 'ms6v46'<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Op\u00e7\u00e3o 1: restaurar uma c\u00f3pia de seguran\u00e7a limpa<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Se ativaste o pacote afetado e tens uma c\u00f3pia de seguran\u00e7a anterior ao incidente, <strong>restaurar os ficheiros e a base de dados \u00e9 a op\u00e7\u00e3o recomendada<\/strong>. A c\u00f3pia tem de ser anterior a <strong>15 de outubro de 2026, \u00e0s 20:02 UTC<\/strong>: o mesmo instante corresponde \u00e0s 22:02 CEST e \u00e0s 16:02 EDT desse dia, ou a 16 de outubro, \u00e0s 01:32 IST.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>Restaura o site e a base de dados<\/strong> a partir de uma c\u00f3pia de seguran\u00e7a criada antes do in\u00edcio da janela afetada.<\/li>\n\n\n<li><strong>Executa uma an\u00e1lise de seguran\u00e7a<\/strong> com uma ferramenta reputada, como o Wordfence ou o Sucuri.<\/li>\n\n\n<li><strong>Substitui todas as palavras-passe e credenciais potencialmente expostas.<\/strong> Inclui credenciais da base de dados, chaves de API e os restantes segredos detalhados na sec\u00e7\u00e3o de rota\u00e7\u00e3o de credenciais.<\/li>\n\n\n<li><strong>Instala a vers\u00e3o limpa 3.0.124 do Rank Math PRO<\/strong>, descarregada diretamente da conta Rank Math, depois de restaurares o site.<\/li>\n\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Se n\u00e3o sabes como restaurar a c\u00f3pia de seguran\u00e7a, pede ajuda ao fornecedor de alojamento. A reposi\u00e7\u00e3o de ficheiros antigos n\u00e3o torna novamente secretos os dados que possam ter sido lidos durante o comprometimento; por isso, a troca de credenciais continua a ser obrigat\u00f3ria.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Op\u00e7\u00e3o 2: limpar o site manualmente<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sem uma c\u00f3pia de seguran\u00e7a limpa, tens de remover o malware e procurar outras altera\u00e7\u00f5es deixadas pelo atacante. Segue a ordem abaixo: primeiro interrompe o mecanismo que recria a infe\u00e7\u00e3o e s\u00f3 depois elimina os restantes elementos maliciosos.<\/p>\n\n\n\n<div class=\"wp-block-group callout callout-danger is-style-danger is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">Apagar uma backdoor n\u00e3o chega<\/h4>\n\n\n<p class=\"wp-block-paragraph\">Uma visita ao site pode voltar a criar ficheiros ocultos enquanto o mecanismo de persist\u00eancia estiver ativo. Se n\u00e3o est\u00e1s \u00e0 vontade com ficheiros, bases de dados ou defini\u00e7\u00f5es do servidor, entrega esta interven\u00e7\u00e3o ao fornecedor de alojamento ou a um profissional de seguran\u00e7a.<\/p>\n\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">1. Impede o malware de se reconstruir<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Conclui todas as a\u00e7\u00f5es desta lista antes de avan\u00e7ares para a procura das restantes altera\u00e7\u00f5es. Desativar o plugin no painel, por si s\u00f3, n\u00e3o \u00e9 suficiente.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>Elimina a pasta completa do Rank Math PRO.<\/strong> Usa o gestor de ficheiros do alojamento ou FTP para localizar e eliminar a pasta <code>rank-math-pro<\/code>.<\/li>\n\n\n<li><strong>Remove as entradas maliciosas da base de dados.<\/strong> Abre a base de dados do WordPress, por exemplo no phpMyAdmin, e procura na tabela <code>wp_options<\/code> as linhas cujo <code>option_name<\/code> corresponda a <code>_uf6qdn2hmm<\/code>, <code>t8krdk990phb<\/code> ou <code>_np5pvf754c<\/code>. Elimina as entradas correspondentes. Se a instala\u00e7\u00e3o usar outro prefixo de tabelas, consulta a tabela de op\u00e7\u00f5es equivalente.<\/li>\n\n\n<li><strong>Bloqueia as liga\u00e7\u00f5es de sa\u00edda para <code>rank1cdn.com<\/code>, se poss\u00edvel.<\/strong> Aplica o bloqueio atrav\u00e9s do fornecedor de alojamento ou da firewall, caso disponhas dessa capacidade.<\/li>\n\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">2. Procura os indicadores de comprometimento e remove as altera\u00e7\u00f5es<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Os indicadores de comprometimento s\u00e3o vest\u00edgios que ajudam a identificar atividade maliciosa, como nomes de ficheiros, padr\u00f5es de c\u00f3digo ou contas inesperadas. Neste incidente, a inspe\u00e7\u00e3o tem de abranger o WordPress e o ambiente do servidor, porque o atacante pode ter deixado altera\u00e7\u00f5es fora da instala\u00e7\u00e3o.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ficheiros PHP com backdoors ocultas<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Procura ficheiros PHP suspeitos em cada uma das localiza\u00e7\u00f5es abaixo. Os plugins de carregamento obrigat\u00f3rio, guardados em <code>mu-plugins<\/code>, merecem verifica\u00e7\u00e3o, tal como os outros plugins e os temas que n\u00e3o sejam os predefinidos do WordPress.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><code>wp-content\/mu-plugins\/<\/code>.<\/li>\n\n\n<li>Pastas de outros plugins.<\/li>\n\n\n<li>Pastas <code>inc\/<\/code>, <code>includes\/<\/code> e <code>lib\/<\/code> de temas que n\u00e3o sejam os predefinidos.<\/li>\n\n\n<li>Pasta <code>includes\/<\/code> do Rank Math.<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Entre os padr\u00f5es a investigar est\u00e3o <code>base64_decode<\/code> combinado com ciclos XOR &#8211; opera\u00e7\u00f5es de ou exclusivo usadas para transformar dados -, a chave <code>xmmqhn<\/code>, chamadas a <code>proc_open<\/code> e c\u00f3digo que utiliza sockets do PHP-FPM, o gestor de processos PHP. Um plugin de seguran\u00e7a ou o fornecedor de alojamento pode ajudar-te a localizar estes ind\u00edcios e a remover ficheiros confirmados como maliciosos.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Contas de administrador desconhecidas<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Rev\u00ea todas as contas com privil\u00e9gios de administrador e confirma se est\u00e3o autorizadas. Procura especialmente nomes que comecem por <code>wpsupport_<\/code>, seguidos de caracteres aleat\u00f3rios, e endere\u00e7os de correio eletr\u00f3nico terminados em <code>@wp-mail[.]net<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Elimina as contas que confirmares como maliciosas ou n\u00e3o autorizadas. Podes consultar a lista no painel ou usar o comando seguinte.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>wp user list --role=administrator\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> user<\/span><span style=\"color:#9ECBFF\"> list<\/span><span style=\"color:#79B8FF\"> --role=administrator<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Um ficheiro falso no core do WordPress<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">O ficheiro <code>wp-includes\/class-wp-cache-util.php<\/code> <strong>n\u00e3o faz parte do core leg\u00edtimo do WordPress<\/strong>. Se existir, elimina-o e verifica as somas de verifica\u00e7\u00e3o, valores que permitem comparar os ficheiros com as c\u00f3pias oficiais.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>wp core verify-checksums\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> core<\/span><span style=\"color:#9ECBFF\"> verify-checksums<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Reinstala tamb\u00e9m os ficheiros do core a partir de uma origem oficial. Este passo permite repor os ficheiros leg\u00edtimos e n\u00e3o apenas remover o ficheiro falso j\u00e1 identificado.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Regras em .htaccess e ficheiros .cache<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Inspeciona o ficheiro <code>.htaccess<\/code> na raiz do site e nos subdiret\u00f3rios. Procura regras que permitam executar ficheiros com extens\u00e3o <code>.cache<\/code> como c\u00f3digo PHP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pesquisa tamb\u00e9m no servidor por ficheiros <code>.cache<\/code> que contenham PHP. Investiga os resultados suspeitos em vez de assumires que essa extens\u00e3o corresponde apenas a dados de cache.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Tarefas agendadas do servidor e do WordPress<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">O cron \u00e9 o mecanismo de agendamento de tarefas do sistema; o WordPress mant\u00e9m tamb\u00e9m os seus pr\u00f3prios eventos agendados. Rev\u00ea o crontab do utilizador que executa o servidor web e procura entradas assinaladas com <code>#ms6v46<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lista os eventos do WordPress com o comando abaixo. Investiga as tarefas suspeitas e remove as que confirmares como maliciosas, tanto no sistema como no WordPress.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>wp cron event list\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> cron<\/span><span style=\"color:#9ECBFF\"> event<\/span><span style=\"color:#9ECBFF\"> list<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Outros plugins, temas e ficheiros enviados<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Reinstala os plugins e os temas a partir das origens oficiais.<\/strong> Sempre que poss\u00edvel, compara os ficheiros existentes com c\u00f3pias limpas.<\/li>\n\n\n<li><strong>Inspeciona a pasta <code>uploads\/<\/code> \u00e0 procura de ficheiros PHP.<\/strong> Em geral, estes ficheiros n\u00e3o devem estar nessa localiza\u00e7\u00e3o.<\/li>\n\n\n<li><strong>Investiga ficheiros inesperados ou alterados antes de os eliminares.<\/strong> Confirma a fun\u00e7\u00e3o e a origem dos ficheiros encontrados.<\/li>\n\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Altera\u00e7\u00f5es fora da pasta do site<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">O alcance da inspe\u00e7\u00e3o n\u00e3o termina na diretoria do WordPress. Verifica separadamente cada uma destas \u00e1reas do servidor.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Ficheiros <code>authorized_keys<\/code> do SSH, onde ficam as chaves autorizadas para acesso remoto.<\/li>\n\n\n<li>Crontabs dos outros utilizadores do sistema.<\/li>\n\n\n<li>Processos em execu\u00e7\u00e3o.<\/li>\n\n\n<li>Localiza\u00e7\u00f5es fora da diretoria do site nas quais o utilizador do servidor web tenha permiss\u00f5es de escrita.<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Se usas alojamento partilhado e n\u00e3o tens acesso a estas \u00e1reas, pede ao fornecedor que as investigue. Uma limpeza limitada aos ficheiros vis\u00edveis atrav\u00e9s do WordPress pode deixar altera\u00e7\u00f5es no servidor por detetar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Substitui as credenciais e os segredos expostos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Depois de removeres os mecanismos maliciosos, assume por precau\u00e7\u00e3o que os segredos acess\u00edveis ao site comprometido podem ter sido expostos. <strong>Este passo tamb\u00e9m \u00e9 necess\u00e1rio se recuperaste o site atrav\u00e9s de uma c\u00f3pia de seguran\u00e7a.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Todas as palavras-passe relevantes:<\/strong> altera as palavras-passe das contas WordPress e as restantes credenciais a que o site comprometido pudesse aceder.<\/li>\n\n\n<li><strong>Credenciais da base de dados:<\/strong> substitui o nome de utilizador e a palavra-passe configurados em <code>wp-config.php<\/code>.<\/li>\n\n\n<li><strong>Chaves de seguran\u00e7a e salts do WordPress:<\/strong> gera novos valores em <code>wp-config.php<\/code>. Os salts s\u00e3o valores aleat\u00f3rios usados em conjunto com as chaves nos mecanismos de autentica\u00e7\u00e3o.<\/li>\n\n\n<li><strong>Chaves de API e credenciais de servi\u00e7os:<\/strong> substitui as chaves das plataformas de pagamento, as credenciais SMTP usadas para enviar correio eletr\u00f3nico, as chaves de API e outros segredos guardados nas defini\u00e7\u00f5es ou nos ficheiros de configura\u00e7\u00e3o.<\/li>\n\n\n<li><strong>Acesso ao alojamento e ao servidor:<\/strong> altera as palavras-passe ou credenciais do painel de alojamento, de FTP\/SFTP e de SSH. Rev\u00ea tamb\u00e9m os segredos guardados em vari\u00e1veis de ambiente.<\/li>\n\n\n<li><strong>Autentica\u00e7\u00e3o de dois fatores:<\/strong> rev\u00ea a configura\u00e7\u00e3o das contas de administrador e rep\u00f5e-na quando necess\u00e1rio.<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Atualiza a configura\u00e7\u00e3o do site e dos servi\u00e7os ligados com os novos valores, em todos os locais necess\u00e1rios. Se n\u00e3o consegues identificar todas as credenciais a substituir, pede essa revis\u00e3o ao fornecedor de alojamento ou a um profissional de seguran\u00e7a.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. Verifica a limpeza e acompanha os dias seguintes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A recupera\u00e7\u00e3o precisa de valida\u00e7\u00e3o depois da limpeza. Executa cada uma destas verifica\u00e7\u00f5es e mant\u00e9m a vigil\u00e2ncia nos dias seguintes, em vez de terminares a interven\u00e7\u00e3o assim que o site voltar a funcionar.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>Executa uma an\u00e1lise de seguran\u00e7a<\/strong> com uma ferramenta reputada, como o <a href=\"https:\/\/wordpress.org\/plugins\/wordfence\/\">Wordfence<\/a> ou o <a href=\"https:\/\/wordpress.org\/plugins\/sucuri-scanner\/\">Sucuri<\/a>.<\/li>\n\n\n<li><strong>Verifica os ficheiros do core do WordPress<\/strong> com <code>wp core verify-checksums<\/code>.<\/li>\n\n\n<li><strong>Verifica os ficheiros dos plugins instalados<\/strong> com <code>wp plugin verify-checksums --all<\/code>. A verifica\u00e7\u00e3o pode n\u00e3o estar dispon\u00edvel para todos os plugins, sobretudo os comerciais. Nesses casos, compara os ficheiros com uma c\u00f3pia limpa obtida na origem oficial.<\/li>\n\n\n<li><strong>Monitoriza as liga\u00e7\u00f5es de sa\u00edda<\/strong> e procura atividade suspeita durante os dias seguintes.<\/li>\n\n\n<li><strong>Confirma se os ficheiros eliminados reaparecem.<\/strong> O regresso desses ficheiros pode indicar que continua ativo um mecanismo de persist\u00eancia.<\/li>\n\n<\/ol>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>wp core verify-checksums\nwp plugin verify-checksums --all\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> core<\/span><span style=\"color:#9ECBFF\"> verify-checksums<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> plugin<\/span><span style=\"color:#9ECBFF\"> verify-checksums<\/span><span style=\"color:#79B8FF\"> --all<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Se os ficheiros suspeitos voltarem a aparecer ou observares atividade invulgar, a limpeza pode estar incompleta. Regressa ao passo 2 da limpeza manual e pede ao fornecedor de alojamento ou a um profissional de seguran\u00e7a que aprofunde a investiga\u00e7\u00e3o.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Instala a vers\u00e3o limpa a partir da conta Rank Math<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Depois de conclu\u00edres os passos de recupera\u00e7\u00e3o aplic\u00e1veis, instala o <strong>Rank Math PRO 3.0.124<\/strong>. Escreve <code>rankmath.com<\/code> diretamente no navegador, inicia sess\u00e3o na conta, abre a \u00e1rea de descargas e obt\u00e9m o plugin atualizado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alguns utilizadores podem precisar de repor a palavra-passe da conta para conseguirem entrar. Faz esse processo a partir do site a que acedeste diretamente, n\u00e3o atrav\u00e9s de uma mensagem inesperada.<\/p>\n\n\n\n<div class=\"wp-block-group callout callout-warning is-style-warning is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">Desconfia de mensagens com liga\u00e7\u00f5es de acesso ou descarga<\/h4>\n\n\n<p class=\"wp-block-paragraph\">A Rank Math indica que nunca envia liga\u00e7\u00f5es de in\u00edcio de sess\u00e3o ou de descarga por correio eletr\u00f3nico. Trata como suspeitas as mensagens n\u00e3o solicitadas que te pe\u00e7am para abrir uma liga\u00e7\u00e3o de reposi\u00e7\u00e3o de palavra-passe ou de descarga, mesmo que pare\u00e7am vir da marca.<\/p>\n\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Evita obter o pacote atrav\u00e9s de sites de redistribui\u00e7\u00e3o n\u00e3o oficiais, incluindo os que distribuem plugins sob a designa\u00e7\u00e3o GPL: podem continuar a disponibilizar c\u00f3pias da vers\u00e3o 3.0.123. Descarrega a vers\u00e3o limpa a partir da conta do fornecedor.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que ajustar na opera\u00e7\u00e3o dos sites<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Um fornecedor comercial de confian\u00e7a tamb\u00e9m pode tornar-se um canal de distribui\u00e7\u00e3o de malware. As atualiza\u00e7\u00f5es autom\u00e1ticas t\u00eam dois lados neste contexto: s\u00e3o \u00fateis para receber corre\u00e7\u00f5es, mas tamb\u00e9m podem instalar um pacote oficial comprometido. Rev\u00ea a pol\u00edtica que aplicas aos plugins comerciais \u00e0 luz desse risco.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Mant\u00e9m c\u00f3pias de seguran\u00e7a fora do servidor, com reten\u00e7\u00e3o.<\/strong> Precisas de conseguir escolher uma c\u00f3pia anterior ao in\u00edcio de um incidente, n\u00e3o apenas a mais recente.<\/li>\n\n\n<li><strong>Monitoriza e, quando poss\u00edvel, restringe as liga\u00e7\u00f5es de sa\u00edda do servidor web.<\/strong> Inclui esta capacidade na revis\u00e3o do alojamento e da firewall.<\/li>\n\n\n<li><strong>Usa verifica\u00e7\u00f5es de somas de verifica\u00e7\u00e3o.<\/strong> Nos plugins sem esse suporte, mant\u00e9m a compara\u00e7\u00e3o com c\u00f3pias oficiais limpas como alternativa.<\/li>\n\n\n<li><strong>Define uma pol\u00edtica expl\u00edcita para atualiza\u00e7\u00f5es autom\u00e1ticas de plugins comerciais.<\/strong> Considera tanto a rapidez de corre\u00e7\u00e3o como o risco de receber um pacote adulterado.<\/li>\n\n\n<li><strong>Mant\u00e9m as descargas no canal oficial e desconfia de mensagens de recupera\u00e7\u00e3o inesperadas.<\/strong> O incidente n\u00e3o torna seguros os pacotes de redistribuidores nem as liga\u00e7\u00f5es recebidas por correio eletr\u00f3nico.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Pr\u00f3ximo passo: confirma o hist\u00f3rico e escolhe a recupera\u00e7\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Come\u00e7a por confirmar quando obtiveste a vers\u00e3o 3.0.123 e se a ativaste. Se recebeste uma c\u00f3pia afetada e a ativaste, escolhe entre restaurar uma c\u00f3pia limpa e seguir a limpeza manual pela ordem indicada; n\u00e3o encerres o incidente apenas porque o painel j\u00e1 mostra a vers\u00e3o 3.0.124.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se precisas de esclarecer o caso, abre um pedido no <a href=\"https:\/\/rankmath.com\/support\/\">suporte da Rank Math<\/a>. Inclui a vers\u00e3o do Rank Math PRO e os passos de recupera\u00e7\u00e3o que j\u00e1 conclu\u00edste, para permitir uma avalia\u00e7\u00e3o concreta da situa\u00e7\u00e3o.<\/p>\n\n\n<div class=\"references-section\">\n                <h2>Refer\u00eancias \/ Fontes<\/h2>\n                <ul class=\"references-list\"><li><a href=\"https:\/\/rankmath.com\/kb\/pro-3-0-123-security-incident\/\" target=\"_blank\" rel=\"noopener noreferrer\">Rank Math PRO 3.0.123 Security Incident: How to Secure Your Website<\/a><\/li><li><a href=\"https:\/\/www.wordfence.com\/blog\/2026\/10\/rank-math-seo-pro-3-0-123-malware\/\" target=\"_blank\" rel=\"noopener noreferrer\">Rank Math SEO PRO 3.0.123 malware<\/a><\/li><li><a href=\"https:\/\/www.wordfence.com\/threat-intel\/vulnerabilities\/id\/81cd7a2c-ad0c-4dbc-b5dc-07ec866d5c1f\" target=\"_blank\" rel=\"noopener noreferrer\">Rank Math SEO PRO 3.0.123 &#8211; Unauthenticated Embedded Malicious Code<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>Alguns pacotes oficiais do Rank Math PRO 3.0.123 continham malware. Confirma se recebeste um desses pacotes e segue a ordem de recupera\u00e7\u00e3o: atualizar o plugin n\u00e3o remove a persist\u00eancia deixada no site.<\/p>\n","protected":false},"author":29,"featured_media":305,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[128,48,140,10,7],"class_list":["post-306","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-seguranca","tag-cadeia-de-fornecimento","tag-malware","tag-rank-math","tag-wordpress","tag-wp-cli"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/pt\/wp-json\/wp\/v2\/posts\/306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/pt\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/pt\/wp-json\/wp\/v2\/comments?post=306"}],"version-history":[{"count":0,"href":"https:\/\/helloblog.io\/pt\/wp-json\/wp\/v2\/posts\/306\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/pt\/wp-json\/wp\/v2\/media\/305"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/pt\/wp-json\/wp\/v2\/media?parent=306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/pt\/wp-json\/wp\/v2\/categories?post=306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/pt\/wp-json\/wp\/v2\/tags?post=306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}