{"id":10106,"date":"2026-05-23T02:09:43","date_gmt":"2026-05-23T05:09:43","guid":{"rendered":"https:\/\/tecmania.com.br\/blog\/nova-onda-de-ataques-mais-de-5-mil-repositorios-do-github-comprometidos-por-hackers\/"},"modified":"2026-05-23T02:09:43","modified_gmt":"2026-05-23T05:09:43","slug":"nova-onda-de-ataques-mais-de-5-mil-repositorios-do-github-comprometidos-por-hackers","status":"publish","type":"post","link":"https:\/\/tecmania.com.br\/blog\/nova-onda-de-ataques-mais-de-5-mil-repositorios-do-github-comprometidos-por-hackers\/","title":{"rendered":"Nova Onda de Ataques: Mais de 5 Mil Reposit\u00f3rios do GitHub Comprometidos por Hackers"},"content":{"rendered":"<p class=\"text-lg\/[1.3] md:text-2xl\/[1.4] font-semibold my-3 article-call-text__IjJpLw\">Grupo utilizou contas descart\u00e1veis e identidades falsas para implantar backdoors em pipelines de automa\u00e7\u00e3o, roubando credenciais de nuvem, chaves SSH e tokens de acesso.<\/p>\n<p><\/p>\n<div id=\"main-content\" class=\"article-main-text__nAfyuo main_text\">\n<p>Uma campanha automatizada chamada Megalodon comprometeu 5.561 reposit\u00f3rios no GitHub em apenas seis horas, no dia 18 de maio de 2026. A descoberta foi feita pela empresa de seguran\u00e7a SafeDep, que conseguiu recuperar todo o conte\u00fado malicioso e mapear a infraestrutura dos atacantes.<\/p>\n<p>Os criminosos utilizaram contas descart\u00e1veis, criadas com nomes aleat\u00f3rios de oito caracteres, e forjaram identidades de bots de Integra\u00e7\u00e3o Cont\u00ednua (CI), os quais s\u00e3o usados para testar o c\u00f3digo sempre que uma altera\u00e7\u00e3o \u00e9 realizada pelo programador. Entre os bots forjados estavam o build-bot e ci-bot, que mascararam os commits maliciosos como se fossem manuten\u00e7\u00e3o regular.<\/p>\n<p>No total, 5.718 commits foram enviados entre 11h36 e 17h48 UTC, todos direcionando para um servidor de comando e controle localizado em &#8220;216.126.225.129:8443&#8221;.<\/p>\n<figure class=\"image\"><figcaption>Busca pelo in\u00edcio do payload em base64 retornou 3,5 mil arquivos YAML com configura\u00e7\u00f5es id\u00eanticas no GitHub, incluindo reposit\u00f3rios do Tiledesk e do CyberWizard Institute, confirmando a extens\u00e3o da campanha. Imagem: Ox Security.<\/figcaption><\/figure>\n<h2>Ataque substitui arquivos de configura\u00e7\u00e3o por backdoor dormente<\/h2>\n<p>A t\u00e9cnica central da campanha explora o GitHub Actions, sistema nativo do GitHub para automatizar tarefas como testes e publica\u00e7\u00f5es de software. Cada reposit\u00f3rio comprometido recebeu um commit que substitu\u00eda ou adicionava um arquivo YAML de workflow.<\/p>\n<div class=\"read-also read-also__QjE5G1 flex flex-col w-full gap-1.5 px-6 py-4 border-l-4\" data-vertical=\"TecMania\">\n<div class=\"kicker__XdAcKL tag__UFEURu !text-sm uppercase font-bold w-fit h-fit\">Leia Mais<\/div>\n<p>Anatel lan\u00e7a ferramenta para rastrear bloqueios de TV Box no Brasil<\/p><\/div>\n<p>Nesse arquivo, havia uma \u00fanica linha de c\u00f3digo que baixava e executava um arquivo de texto contendo comandos. Esses comandos seriam executados em terminais Linux ou macOS para automatizar tarefas de 111 linhas \u2013 tudo oculto em codifica\u00e7\u00e3o base64.<\/p>\n<p>O script opera em cinco fases, sendo acionado assim que o fluxo de trabalho de CI \u00e9 ativado. Primeiro, captura todas as vari\u00e1veis de ambiente do servidor, incluindo o GITHUB_TOKEN e quaisquer segredos configurados no reposit\u00f3rio.<\/p>\n<div class=\"container_ads_placeholder__wIS2Bt hmeio\" data-label=\"Publicidade\">\n<div><\/div>\n<\/div>\n<figure class=\"image\"><figcaption>A campanha come\u00e7a quando o atacante envia uma pull request falsa com o arquivo ci.yaml. Quando aprovada, executa o workflow malicioso e exfiltra credenciais de nuvem, tokens de CI e chaves de acesso para um servidor remoto. Imagem: Ox Security.<\/figcaption><\/figure>\n<p>Em seguida, l\u00ea 27 arquivos de credenciais no sistema de arquivos, incluindo chaves SSH, que funcionam como senhas. Al\u00e9m disso, examina configura\u00e7\u00f5es do servi\u00e7o de nuvem da AWS, tokens do Docker Hub e hist\u00f3rico do shell, que lista e recupera comandos digitados anteriormente no terminal.<\/p>\n<p>Na sequ\u00eancia, consulta dispositivos internos de metadados da AWS, Google Cloud e Azure para extrair credenciais tempor\u00e1rias do ambiente de nuvem. Por fim, varre o c\u00f3digo-fonte em busca de mais de 30 padr\u00f5es de segredos.<\/p>\n<div class=\"read-also read-also__QjE5G1 flex flex-col w-full gap-1.5 px-6 py-4 border-l-4\" data-vertical=\"TecMania\">\n<div class=\"kicker__XdAcKL tag__UFEURu !text-sm uppercase font-bold w-fit h-fit\">Leia Mais<\/div>\n<p>Jap\u00e3o cria drones de guerra feitos de papel\u00e3o que voam a mais de 100 km\/h<\/p><\/div>\n<p>A etapa mais cr\u00edtica \u00e9 o roubo de tokens OpenID Connect (OIDC). Este mecanismo moderno permite que o fluxo de trabalho prove sua identidade para servi\u00e7os de nuvem sem usar credenciais fixas. Com esses tokens, o atacante pode se passar pelo pipeline leg\u00edtimo perante AWS, Google Cloud ou Azure.<\/p>\n<figure class=\"image\"><figcaption>O script itera sobre todos os perfis AWS configurados no runner e extrai access key, secret key, session token e regi\u00e3o de cada um, antes de enviar os dados ao servidor dos atacantes. Imagem: Ox Security.<\/figcaption><\/figure>\n<h2>Variante cria backdoor invis\u00edvel no hist\u00f3rico de CI<\/h2>\n<p>A campanha utilizou duas variantes do conte\u00fado malicioso. A primeira, chamada SysDiag, adiciona um workflow que dispara automaticamente em todos os recursos colaborativos do GitHub, como push e pull request, maximizando a execu\u00e7\u00e3o. A segunda, Optimize-Build, substitui um fluxo existente e usa o gatilho workflow_dispatch, que s\u00f3 roda quando acionado manualmente via interface ou API do GitHub.<\/p>\n<div class=\"container_ads_placeholder__wIS2Bt hmeio\" data-label=\"Publicidade\">\n<div><\/div>\n<\/div>\n<p>O workflow_dispatch n\u00e3o aparece no hist\u00f3rico autom\u00e1tico de execu\u00e7\u00f5es do Actions e n\u00e3o gera falhas na constru\u00e7\u00e3o do c\u00f3digo. O malware que permite acesso remoto dos criminosos, o backdoor, permanece dormente at\u00e9 ser ativado remotamente pelo atacante. Isso pode ser feito ao enviar uma requisi\u00e7\u00e3o \u00e0 API do GitHub com um token roubado de qualquer outro reposit\u00f3rio comprometido.<\/p>\n<h2>Pacote leg\u00edtimo carregou o backdoor sem que mantenedor percebesse<\/h2>\n<p>Um caso documentado de contamina\u00e7\u00e3o envolve o @tiledesk\/tiledesk-server, pacote de c\u00f3digo aberto de uma plataforma brasileira de chat ao vivo publicada no npm desde 2019.<\/p>\n<div class=\"read-also read-also__QjE5G1 flex flex-col w-full gap-1.5 px-6 py-4 border-l-4\" data-vertical=\"TecMania\">\n<div class=\"kicker__XdAcKL tag__UFEURu !text-sm uppercase font-bold w-fit h-fit\">Leia Mais<\/div>\n<p>Homem filma mulher com \u00f3culos e exige dinheiro para apagar v\u00eddeo das redes<\/p><\/div>\n<p>O reposit\u00f3rio oficial no GitHub foi comprometido pela variante Optimize-Build no dia 18 de maio. O desenvolvedor leg\u00edtimo continuou publicando vers\u00f5es normalmente nos dias seguintes, sem perceber que o arquivo de workflow dentro do reposit\u00f3rio estava envenenado.<\/p>\n<figure class=\"image\"><figcaption>Trecho do script bash revela o identificador da campanha, a plataforma-alvo e a express\u00e3o regular em base64 utilizada para varredura de segredos nos reposit\u00f3rios comprometidos. Imagem: Ox Security.<\/figcaption><\/figure>\n<p>O resultado foi que as vers\u00f5es 2.18.6 a 2.18.12 do pacote chegaram ao npm com o backdoor embutido. A SafeDep identificou a contamina\u00e7\u00e3o ao comparar a vers\u00e3o 2.18.12 com a vers\u00e3o limpa 2.18.5 e encontrar uma diferen\u00e7a em um \u00fanico arquivo.<\/p>\n<div class=\"container_ads_placeholder__wIS2Bt hmeio\" data-label=\"Publicidade\">\n<div><\/div>\n<\/div>\n<h2>Campanha \u00e9 atribu\u00edda ao grupo TeamPCP<\/h2>\n<p>O Megalodon \u00e9 parte de uma s\u00e9rie de ataques atribu\u00eddos ao grupo TeamPCP, que j\u00e1 comprometeu projetos como TanStack, Grafana Labs, OpenAI e Mistral AI, utilizando a cadeia de suprimentos de software como vetor. O grupo possui motiva\u00e7\u00f5es financeiras confirmadas e parcerias com f\u00f3runs de extors\u00e3o como BreachForums e grupos como LAPSUS$.<\/p>\n<p>Como resposta \u00e0 atividade do TeamPCP, o npm invalidou tokens de acesso granular, uma medida de seguran\u00e7a que tenta controlar acessos com permiss\u00e3o de escrita, contornando a autentica\u00e7\u00e3o de dois fatores. Contudo, essa a\u00e7\u00e3o n\u00e3o resolve o problema estrutural, uma vez que os tokens j\u00e1 coletados pelo malware Mini Shai-Hulud, vinculado ao grupo, permanecem v\u00e1lidos at\u00e9 serem restaurados pelos mantenedores.<\/p>\n<div class=\"read-also read-also__QjE5G1 flex flex-col w-full gap-1.5 px-6 py-4 border-l-4\" data-vertical=\"TecMania\">\n<div class=\"kicker__XdAcKL tag__UFEURu !text-sm uppercase font-bold w-fit h-fit\">Leia Mais<\/div>\n<p>Cibercriminosos roubam dados de 275 milh\u00f5es de usu\u00e1rios do Canvas<\/p><\/div>\n<figure class=\"image\"><figcaption>A express\u00e3o regular decodificada do payload do Megalodon lista os tipos de credenciais monitoradas pelo malware, incluindo chaves da AWS, tokens do GitHub e GitLab, strings de conex\u00e3o de bancos de dados e chaves PEM privadas. Imagem: Ox Security.<\/figcaption><\/figure>\n<p>Reposit\u00f3rios que receberam commits de build-system@noreply.dev ou ci-bot@automated.dev no dia 18 de maio devem reverter as altera\u00e7\u00f5es, auditar os arquivos de workflow e restaurar todas as credenciais acess\u00edveis pelos runners do GitHub Actions.<\/p>\n<p>Acompanhe o TecMania nas redes sociais. Inscreva-se na nossa newsletter e canal do YouTube.<\/p>\n<div class=\"container_ads_placeholder__wIS2Bt hmeio hidden-desktop\" data-label=\"Publicidade\">\n<div><\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Grupo utilizou contas descart\u00e1veis e identidades falsas para implantar backdoors em pipelines de automa\u00e7\u00e3o, roubando credenciais de nuvem, chaves SSH [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[12],"tags":[],"class_list":["post-10106","post","type-post","status-publish","format-standard","hentry","category-seguranca"],"_links":{"self":[{"href":"https:\/\/tecmania.com.br\/blog\/wp-json\/wp\/v2\/posts\/10106","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tecmania.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tecmania.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tecmania.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tecmania.com.br\/blog\/wp-json\/wp\/v2\/comments?post=10106"}],"version-history":[{"count":0,"href":"https:\/\/tecmania.com.br\/blog\/wp-json\/wp\/v2\/posts\/10106\/revisions"}],"wp:attachment":[{"href":"https:\/\/tecmania.com.br\/blog\/wp-json\/wp\/v2\/media?parent=10106"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tecmania.com.br\/blog\/wp-json\/wp\/v2\/categories?post=10106"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tecmania.com.br\/blog\/wp-json\/wp\/v2\/tags?post=10106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}