Techsy
Contacto
Começar
Voltar ao blog
cybersecurity

GitHub foi invadido por uma extensão do VS Code (maio de 2026): O plano de emergência de 60 minutos que todos os programadores devem executar hoje

Escrito por Mert Batur Gürbüz
Atualizado May 20, 2026
19 min de leitura
Índice
GitHub foi invadido por uma extensão do VS Code (maio de 2026): O plano de emergência de 60 minutos que todos os programadores devem executar hoje

GitHub foi invadido por uma extensão do VS Code (maio de 2026): O plano de emergência de 60 minutos que todos os programadores devem executar hoje

Em 20 de maio de 2026, a GitHub confirmou que aproximadamente 3.800 dos seus repositórios internos de código-fonte foram exfiltrados através de uma extensão maliciosa do VS Code instalada na estação de trabalho de um funcionário. Se utilizou um PAT da GitHub ou um token npm dentro do VS Code nos últimos 14 dias, os próximos 60 minutos são cruciais. Este é o plano: o que realmente aconteceu, se é afetado e o que deve renovar primeiro.

Pontos-chave

  • O que aconteceu: A produção do GitHub.com não foi violada; a estação de trabalho de um funcionário instalou uma extensão envenenada do VS Code (altamente provável ser a Nx Console v18.95.0) que exfiltrou PATs e despejou cerca de 3.800 repositórios internos.
  • Dados dos clientes: Não afetados. Os dados comprometidos são o código-fonte interno da GitHub, não o código ou as contas dos clientes.
  • Quem está em risco: Qualquer programador que tenha instalado uma extensão do VS Code entre aproximadamente 18 de maio, 12:36 UTC e 18 de maio, 12:47 UTC (a janela de 11 minutos), ou qualquer pessoa que utilize PATs da GitHub de longa duração a partir do VS Code.
  • O que fazer agora: Renove primeiro os PATs da GitHub, depois os tokens npm, em terceiro lugar as chaves AWS/cloud; veja o plano completo na secção "O que os programadores devem fazer" abaixo.

TL;DR: As 6 coisas a fazer na próxima hora

A forma mais rápida de conter o raio de explosão da história da extensão vscode hackeada da github é renovar as credenciais a que uma extensão envenenada pode aceder, auditar o que está instalado no seu portátil e verificar o registo da sua organização GitHub para a janela UTC de 18-20 de maio. Seis ações, classificadas por impacto, por ordem.

  1. Revogue todos os Personal Access Tokens (PAT) da GitHub criados ou utilizados no VS Code nos últimos 30 dias.
  2. Renove os tokens npm através de npm token revoke e reemita com autenticação de dois fatores (2FA) + publicação fidedigna.
  3. Analise o seu portátil em busca de Indicadores de Compromisso (IoC) do GHSA-c9j4-9m59-847w (caminhos de ficheiros, processos; comandos abaixo).
  4. Audite code --list-extensions --show-versions e desinstale tudo o que não conseguir justificar.
  5. Fixe as versões das extensões em devcontainer.json e imponha uma lista de permissões ao nível da organização.
  6. Verifique o registo de auditoria da sua organização GitHub para pushes de repositórios desconhecidos entre 18-20 de maio UTC.

Se só tiver tempo para duas, faça a #1 e a #3. O resto pode esperar uma hora.

A GitHub foi realmente hackeada? Vamos esclarecer a manchete

Não, a infraestrutura de produção do GitHub.com não foi violada em 20 de maio de 2026. A estação de trabalho de um único funcionário da GitHub foi comprometida após este ter instalado uma extensão do VS Code maliciosa (altamente provável ser a Nx Console v18.95.0). O atacante, que se faz chamar TeamPCP (rastreado como UNC6780), exfiltrou aproximadamente 3.800 dos repositórios internos de código-fonte da GitHub. O código dos clientes, as contas dos clientes e os serviços de produção da GitHub não são afetados.

Eis a versão mais clara do que aconteceu e do que não aconteceu.

O que aconteceuO que NÃO aconteceu
O portátil de um funcionário foi comprometido através de uma extensão do VS Code envenenadaA produção do GitHub.com foi violada
Cerca de 3.800 repositórios internos de código-fonte foram exfiltradosRepositórios ou contas de clientes foram tocados
As credenciais do funcionário da GitHub nesse terminal foram roubadasPATs de clientes, tokens npm ou concessões OAuth foram roubados dos sistemas da GitHub
A TeamPCP exigiu um resgate (segundo Tom's Hardware)A GitHub pagou (não há evidências de pagamento)

Porque é que esta estrutura importa? Porque a conclusão não é "github hackeada". A conclusão é que os terminais dos programadores são agora o calcanhar de Aquiles de todas as organizações de engenharia. Cada segredo que a sua equipa possui (PATs da GitHub, tokens npm, chaves AWS, sessões de vault, chaves de fornecedores de IA) reside num portátil com pouca ou nenhuma cobertura EDR. Uma única extensão envenenada em execução no seu IDE herda tudo isso.

O próprio porta-voz da GitHub, citado no Bleeping Computer, confirmou a estrutura do terminal do funcionário e a linha de "nenhum dado de cliente". A Help Net Security adicionou a atribuição à TeamPCP. A cadeia de custódia técnica da extensão encontra-se no aviso de segurança GHSA-c9j4-9m59-847w.

O GitHub.com não foi violado. Um funcionário da GitHub foi. Mantenha essa perspetiva em mente enquanto lê o restante.

O que realmente aconteceu: Cronologia da violação de maio de 2026

A história da violação da github 2026 desenrolou-se em quatro etapas ao longo de aproximadamente 48 horas. Uma extensão envenenada foi publicada em 18 de maio às 12:36 UTC, removida 11 minutos depois, detetada pela GitHub no dia seguinte e divulgada publicamente em 20 de maio. A cronologia compacta, com fontes:

Hora (UTC)EventoFonte
18 de maio, 12:36Nx Console v18.95.0 publicada no OpenVSX / Visual Studio Marketplace (altamente provável)StepSecurity / GHSA-c9j4-9m59-847w
18 de maio, 12:47Versão maliciosa removida, janela de 11 minutosStepSecurity
19 de maioA GitHub deteta o comprometimento do terminal do funcionário; contém o incidentePorta-voz da GitHub via Bleeping Computer
20 de maioDivulgação pública; TeamPCP / UNC6780 reivindica publicamente a autoriaHelp Net Security, Hackread

Essa janela de 11 minutos é o detalhe mais estranho. Sugere que o atacante rodou as extensões para evadir a deteção do marketplace, o mesmo padrão que a Koi Security documentou no worm GlassWorm do OpenVSX em outubro de 2025. A TeamPCP / UNC6780 reivindicou anteriormente compromissos em 2026 contra Trivy, KICS, LiteLLM, TanStack e MistralAI. Mesmo grupo, mesmo plano, alvos diferentes.

No mês passado foram as variáveis de ambiente da Vercel. Hoje são os repositórios da GitHub. O padrão que temos observado desenvolver-se ao longo de 9 meses continua a deslocar o raio de explosão para fora. Veja a nossa análise da resposta à violação da Vercel para o incidente irmão.

A extensão provavelmente culpada: Nx Console v18.95.0 (e porque a GitHub não confirma)

A GitHub não nomeou formalmente a extensão envolvida no comprometimento do terminal do funcionário. As provas forenses alinham-se fortemente com a Nx Console v18.95.0, mas isto permanece altamente provável, não confirmado. Atualizaremos este artigo se a GitHub nomear publicamente uma extensão diferente. Trate o restante desta secção como a melhor atribuição disponível, não como facto declarado.

Quatro peças de evidência circunstancial alinham a Nx Console com a divulgação da GitHub:

  1. Correspondência temporal: A janela do aviso GHSA-c9j4-9m59-847w (18 de maio, 12:36-12:47 UTC) situa-se dentro da janela de comprometimento do terminal do funcionário da GitHub na própria divulgação da GitHub.
  2. Sobreposição de IoC forense: A análise da carga útil da Nx Console publicada pela StepSecurity (caminhos de ficheiros, processos como __DAEMONIZED, pontos de extremidade de rede) corresponde aos artefactos vistos no terminal comprometido, segundo o relatório da Wiz.
  3. Padrão de atribuição da TeamPCP: A TeamPCP / UNC6780 tem estado ativa no espaço da cadeia de abastecimento do VS Code (Trivy, KICS, LiteLLM, TanStack, MistralAI em 2026) com uma estrutura de carga útil consistente.
  4. A janela de remoção de 11 minutos: Característica de ataques à cadeia de abastecimento onde o atacante controla o momento da publicação, mas o marketplace deteta-o rapidamente.

Se não instalou a Nx Console, ainda não está totalmente seguro. O padrão de ataque mais amplo (processos __DAEMONIZED, abuso de IMDS, exfiltração de ~/.claude/settings.json) generaliza-se a qualquer extensão envenenada. A triagem na próxima secção aplica-se independentemente da extensão que suspeite.

Uma única extensão do VS Code expande setas para dez alvos de credenciais rotulados, incluindo PAT da GitHub, token npm, AWS IMDS, CLI 1Password, Vault e definições do Claude Code, ilustrando o raio de explosão total que uma extensão maliciosa pode atingir|médio
Fonte: editorial techsy.io, alcance das credenciais acessíveis a partir de um único processo de extensão do VS Code

Está afetado? A triagem de 5 minutos

Existem três testes rápidos. (1) Instalou ou atualizou automaticamente uma extensão do VS Code entre 18 de maio, 12:36 e 12:47 UTC? (2) Algum dos ficheiros IoC do GHSA-c9j4-9m59-847w está no seu portátil agora? (3) Utilizou um PAT da GitHub dentro do VS Code nos últimos 14 dias? Execute os três em menos de cinco minutos.

Teste 1, Auditoria de extensões

bash
# List all installed extensions with versions
code --list-extensions --show-versions

# Specifically check for Nx Console v18.95.0
code --list-extensions --show-versions | grep -i "nrwl.angular-console\|nx-console"

Tudo o que foi atualizado automaticamente entre 17 e 18 de maio merece uma segunda olhada. Se vir a Nx Console exatamente na versão 18.95.0, é uma correspondência provável. A versão corrigida é a 18.100.0. Desinstale ou passe diretamente para o plano abaixo.

Teste 2, Análise de IoC

bash
# Check for the daemonized credential-harvest process artifacts (GHSA-c9j4-9m59-847w)
ps aux | grep -i "__DAEMONIZED" | grep -v grep
ls -la ~/.local/share/kitty/ 2>/dev/null
find ~ -name "*.daemonized*" 2>/dev/null

# IMDS abuse indicator (AWS credential harvest)
# Check shell history for unexpected curl to 169.254.169.254
grep -E "169\.254\.169\.254|metadata\.google\.internal" ~/.zsh_history ~/.bash_history 2>/dev/null

Uma máquina limpa não deve devolver nada para o grep __DAEMONIZED, nenhum ficheiro .daemonized e nenhum hit IMDS no seu histórico de shell. Se algum destes ocorrer, assuma que o portátil está comprometido e trate todas as credenciais que ele tocou nos últimos 30 dias como queimadas.

Teste 3, Exposição de PAT

Se utilizou um PAT da GitHub (clássico ou granular) em qualquer terminal do VS Code, git integrado ou qualquer extensão que chame a API da GitHub nos últimos 14 dias, assuma que está comprometido e prossiga para o plano de rotação abaixo. Esta é a predefinição conservadora; não pode auditar "estava o token na memória enquanto a extensão estava ativa?". Renove-o.

Se utiliza o Claude Code, a lista de IoC inclui especificamente ~/.claude/settings.json. Consulte o nosso guia de hooks do Claude Code para saber o que está armazenado nesse ficheiro e quais chaves renovar primeiro.

Veredicto. Se algum destes três testes for positivo, pare de ler a narrativa. Passe diretamente para o plano na próxima secção. Os próximos 55 minutos importam mais do que a autópsia.

O que os programadores devem fazer: O plano de emergência de 60 minutos

Renove as credenciais por ordem de prioridade. Nível 0 (próximos 30 min): PATs da GitHub e tokens npm. Nível 1 (hoje): Chaves AWS/cloud, 1Password/Vault, segredos do GitHub Actions. Nível 2 (esta semana): SaaS de terceiros, concessões OAuth, chaves SSH. Nível 3 (quando conveniente): Chaves de leitura apenas e chaves públicas. Cada nível mapeia para uma redução específica do raio de explosão.

Pirâmide de rotação de credenciais de quatro níveis mostrando Nível 0 PATs da GitHub e tokens npm a vermelho, Nível 1 tokens AWS e vault a âmbar, Nível 2 SSH e OAuth a amarelo, Nível 3 chaves de leitura apenas a cinzento, cada nível rotulado com orçamento de tempo|médio
Fonte: editorial techsy.io, prioridade de rotação em camadas para o plano de 60 minutos

AGORA MESMO: Se acha que foi atingido

Se a sua triagem foi positiva, faça estas três coisas por ordem antes de qualquer outra coisa.

  1. Mate o daemon e desinstale a extensão suspeita:
bash
# Kill the malicious payload (GHSA-c9j4-9m59-847w)
pkill -f __DAEMONIZED
pkill -f "nx-console.*18.95.0"

# Uninstall the suspect extension immediately
code --uninstall-extension nrwl.angular-console
  1. Desligue o cabo de rede do seu portátil se tiver alguma evidência de exfiltração ativa. Parece extremo. É. Faça-o na mesma. Pode reinvestigar offline.
  2. Chame a sua equipa de segurança ou publique no Slack #security antes de executar qualquer outra coisa. Se estiver sozinho, salte para o Nível 0 abaixo.

Nível 0 (Próximos 30 Minutos): GitHub + npm

Revogação de PAT da GitHub via CLI gh e interface web de definições:

bash
# Confirm what you're authenticated as
gh auth status

# List app installations the token has access to (helps inventory blast radius)
gh api -H "Accept: application/vnd.github+json" /user/installations

# The gh CLI cannot revoke classic PATs directly — use the web UI:
#   https://github.com/settings/tokens
# Click "Revoke" on EVERY token. Do not selectively keep "the one that's probably fine."

# Re-issue with fine-grained PATs + ≤90-day expiration:
#   https://github.com/settings/personal-access-tokens/new
# Scope one repo at a time, never the whole account.

# For org-owned PATs and installations:
gh api /orgs/{ORG}/installations

Rotação de token npm:

bash
# List and revoke every npm token
npm token list
npm token revoke <token-id-1>
npm token revoke <token-id-2>

# Force 2FA on auth and writes
npm profile enable-2fa auth-and-writes

# For CI: migrate to OIDC trusted publishing — no more long-lived tokens
# Docs: https://docs.npmjs.com/trusted-publishers

Se mantém pacotes publicados, o seu token npm é a credencial mais perigosa que possui. Renove-o antes da AWS.

Nível 1 (Hoje): Cloud + Vaults + Segredos de CI

As chaves de acesso AWS vêm a seguir. Os IoCs mostram abuso de IMDS, por isso qualquer utilizador IAM que tenha tocado no terminal comprometido é suspeito:

bash
# List access keys for the current IAM user
aws iam list-access-keys --user-name $(aws sts get-caller-identity --query 'Arn' --output text | cut -d/ -f2)

# Deactivate the old key (don't delete yet — let workloads fail loudly first)
aws iam update-access-key --access-key-id AKIA... --status Inactive --user-name <user>

# Create a new key
aws iam create-access-key --user-name <user>

# Once deployed and verified, delete the old key
aws iam delete-access-key --access-key-id AKIA... --user-name <user>

# If any EC2 instance was using IMDSv1, force IMDSv2 immediately
aws ec2 modify-instance-metadata-options --instance-id i-... --http-tokens required

CLI 1Password: termine sessão em todos os dispositivos (op signout --all), regenere tokens de sessão e audite o acesso recente ao vault através do registo de auditoria web do 1Password para qualquer coisa executada a partir do terminal comprometido.

HashiCorp Vault: revogue o seu token de utilizador (vault token revoke -self) e peça a um administrador para emitir um novo com um TTL mais curto.

Segredos do GitHub Actions: se alguma credencial renovada também estiver no Actions, atualize-a. Use gh secret set GITHUB_PAT --body <new-pat> por repositório, ou a interface ao nível da organização para segredos da org.

Chaves de API Anthropic e OpenAI: a lista de IoC GHSA-c9j4-9m59-847w menciona especificamente ~/.claude/settings.json como alvo de colheita. Revogue e reemita a sua chave de API da consola Anthropic e qualquer chave OpenAI que tenha armazenado nesse ficheiro.

Nível 2 (Esta Semana): SSH + OAuth + Gestores de Palavras-passe

As chaves SSH movem-se mais lentamente, mas ainda estão no âmbito. A extensão tinha leitura do sistema de ficheiros em ~/.ssh/:

bash
# Audit existing SSH keys (when were they generated?)
for key in ~/.ssh/id_*; do
  if [ -f "$key" ]; then
    echo "Key: $key"
    stat -c '%y' "$key" 2>/dev/null || stat -f '%Sm' "$key"
  fi
done

# Generate a new Ed25519 key
ssh-keygen -t ed25519 -C "rotated-$(date +%Y%m%d)" -f ~/.ssh/id_ed25519_new

# Upload public key to GitHub
gh ssh-key add ~/.ssh/id_ed25519_new.pub --title "rotated-$(date +%Y%m%d)"

# Delete the old key from GitHub via web UI, then verify SSH still works
ssh -T [email protected]

Gestor de palavras-passe do navegador e keychain do SO: renove qualquer palavra-passe que a extensão possa plausivelmente ter visto através da área de transferência. A exposição realista são as palavras-passe que copiou para a área de transferência enquanto a extensão estava ativa.

Nível 3 (Quando Conveniente): Auditar + Verificar

Audite o registo da sua organização GitHub para a janela de comprometimento. Isto requer administração da org:

bash
# Pull push events for the May 18-20 window
gh api -X GET /orgs/{ORG}/audit-log \
  --paginate \
  -f phrase='action:repo.push created:2026-05-18..2026-05-20' | jq '.[] | {actor, created_at, repo}'

# Spot-check suspicious commits (unexpected authors, large diffs)
gh api -X GET /repos/{ORG}/{REPO}/commits \
  -f since=2026-05-18T00:00:00Z \
  -f until=2026-05-20T23:59:59Z | jq '.[] | {sha, author: .commit.author, message: .commit.message}'

# Refresh OAuth grants
gh auth refresh -s admin:org -s admin:public_key

Se o registo de auditoria mostrar pushes da janela de comprometimento que não fez, escalone para a sua equipa de segurança e preserve o JSON do registo de auditoria. Não tente "desfazer" nada no repositório. Preserve as provas primeiro.

Abordámos a mesma lógica de rotação em camadas para a violação de variáveis de ambiente da Vercel em abril: mesma forma, camada diferente.

A estrutura de auditoria de extensões de 5 perguntas (Use isto para sempre)

Antes de instalar ou confiar em qualquer extensão do VS Code, submeta-a a cinco testes: idade do domínio do editor, velocidade de versões, eventos de ativação do package.json, âmbito de permissões vs comportamento esperado e auditoria do repositório open-source. A Nx Console v18.95.0 teria falhado o Teste #2: um salto súbito de versão após um cadência de lançamento estável é o indicador clássico da cadeia de abastecimento.

  1. Idade do domínio do editor. O domínio do editor tem mais de um ano? Editores novos em domínios recém-registados acarretam mais risco. Verifique através da página do editor no Visual Studio Marketplace ou whois no domínio do email do editor.
  2. Velocidade de versões. O histórico de versões mostra uma cadência normal (um lançamento a cada 1-4 semanas) ou um pico súbito (três lançamentos em 24 horas)? Velocidade súbita é um sinal. A Nx Console v18.95.0 foi uma anomalia de velocidade.
  3. Eventos de ativação do package.json. Abra o ficheiro .vsix (é um zip) e leia activationEvents. Extensões que ativam em * (sempre ativas) têm a maior superfície de ataque. Prefira extensões que ativam numa linguagem ou nome de ficheiro específico.
  4. Permissões necessárias vs comportamento esperado. Uma extensão de "tema" pede acesso à rede? Uma extensão de "snippet" precisa de escrita no sistema de ficheiros? Discrepâncias são bandeiras vermelhas. Cruze com a documentação de segurança em tempo de execução de extensões da Microsoft.
  5. Auditoria do repositório open-source. O código-fonte está no GitHub? Leia os últimos cinco commits em busca de alterações suspeitas: hooks pós-instalação, blobs codificados em base64, chamadas de rede para domínios desconhecidos.

Uma extensão que ativa em * e pede acesso à rede é funcionalmente um shell remoto com o VS Code anexado.

A mesma estrutura de auditoria aplica-se aos servidores MCP, a próxima superfície da cadeia de abastecimento de classe de extensão. Veja a nossa análise dos melhores servidores MCP 2026 para saber em quais confiamos e porquê.

Porque é que isto continua a acontecer: A onda da cadeia de abastecimento 2025-2026

A violação da GitHub de 20 de maio é um nó num arco de 9 meses: worm npm Shai-Hulud (setembro de 2025), worm OpenVSX GlassWorm (outubro-novembro de 2025), Shai-Hulud 2.0 (novembro de 2025, mais de 25.000 repositórios afetados), Mini Shai-Hulud (início de 2026), Nx Console (18 de maio de 2026), comprometimento do terminal da GitHub (20 de maio de 2026). Os terminais dos programadores tornaram-se o novo calcanhar de Aquiles.

  • Setembro de 2025, worm npm Shai-Hulud. Malware auto-propagável em pacotes npm populares. A CISA emitiu um alerta sobre o compromisso generalizado.
  • Outubro-Novembro de 2025, GlassWorm. O primeiro worm auto-propagável direcionado a extensões do VS Code no OpenVSX. Divulgação da Koi Security.
  • Novembro de 2025, Shai-Hulud 2.0. Mais de 25.000 repositórios exfiltrados. O Microsoft Security Blog publicou orientações de contenção.
  • Início de 2026, Mini Shai-Hulud. Variante da TeamPCP. Repetições em menor escala contra Trivy, KICS, LiteLLM, TanStack e MistralAI.
  • 18 de maio de 2026, Nx Console v18.95.0. Vetor altamente provável para o comprometimento do terminal da GitHub.
  • 20 de maio de 2026, a GitHub divulga. Cerca de 3.800 repositórios internos exfiltrados. Segundo a série forense Shai-Hulud da Wiz, o padrão de abuso de IMDS é uma evolução direta.

O padrão é claro: os portáteis dos programadores contêm todos os segredos da organização (PATs da GitHub, chaves AWS, tokens de vault, chaves de fornecedores de IA) e têm quase zero cobertura EDR. Até que esse desequilíbrio se inverta, esta onda continua.

A IA defensiva é uma parte da resposta. Abordámos este ângulo na nossa análise de como a IA previne violações de dados no início deste ano.

A resposta mais ampla da GitHub: Publicação fidedigna, FIDO 2FA, Tokens de 90 dias

A GitHub já estava a implementar quatro controlos da cadeia de abastecimento antes de 20 de maio: 2FA obrigatória para editores npm, limite de 90 dias para tokens de escrita granulares, descontinuação do TOTP em favor do FIDO e passkeys, e publicação fidedigna OIDC para GitHub Actions e GitLab CI. A violação de maio acelera uma migração já em curso; não introduz uma nova política.

ControloEstadoAção para si
2FA npm obrigatóriaAtivoAtive agora: npm profile enable-2fa auth-and-writes
Limite de token de escrita granular de 90 diasEm implementação (tokens existentes forçados a expirar)Migre para PATs granulares com TTL ≤90 dias
Descontinuação do TOTP, FIDO / passkeysImplementação faseada 2026Registe uma passkey em cada conta GitHub hoje
Publicação fidedigna OIDCAtivo para GitHub Actions + GitLab CIMigre CI de tokens npm de longa duração para OIDC

O plano mais amplo da GitHub para uma cadeia de abastecimento npm mais segura antecede este incidente em meses. Quanto mais rápido se alinhar com ele, menor será o seu raio de explosão na próxima vez.

Reforço: Como sobreviver ao próximo

Seis movimentos prospetivos: fixe as versões das extensões em devcontainer.json, imponha uma lista de permissões de extensões ao nível da organização, execute EDR com visibilidade do processo de extensão, analise segredos em cada push, limite os PATs a um repositório e adote publicação fidedigna OIDC em vez de tokens de longa duração. Nenhum destes teria prevenido todos os incidentes, em conjunto reduzem o raio de explosão de "tudo no portátil" para "um repositório".

json
{
  "name": "secure-dev",
  "extensions": [
    "[email protected]",
    "[email protected]",
    "[email protected]"
  ],
  "settings": {
    "extensions.autoUpdate": false,
    "extensions.autoCheckUpdates": false
  },
  "containerEnv": {
    "VSCODE_GALLERY_SERVICE_URL": "https://your-internal-allow-list.example.com"
  }
}

Em suma:

  • Fixe cada versão de extensão em devcontainer.json para eliminar a atualização automática.
  • Lista de permissões ao nível da organização apontando VSCODE_GALLERY_SERVICE_URL para um espelho interno.
  • EDR com visibilidade de processos IDE: Crowdstrike, SentinelOne ou Microsoft Defender for Endpoint com VS Code no âmbito.
  • Análise de segredos em cada push: pré-commit e no momento do push, lado do servidor.
  • Limite cada PAT a um repositório: sem âmbitos *, nunca.
  • Publicação fidedigna OIDC: sem tokens npm ou de registo de longa duração no CI.

A CVE copy_file_range do Linux da semana passada é uma história irmã: camada diferente, mesma lição. O limite de confiança que esqueceu é o que morde.

Se está a considerar agentes de codificação IA a seguir, aplique a mesma estrutura de auditoria. Eles têm o mesmo perfil de confiança que as extensões. A nossa análise dos melhores agentes de codificação IA 2026 explica quais agentes merecem essa confiança.

Perguntas frequentes

A GitHub foi hackeada?

Não, não no sentido que a maioria das manchetes implica. A produção do GitHub.com não foi violada. Um funcionário da GitHub instalou uma extensão maliciosa do VS Code na sua estação de trabalho, que exfiltrou aproximadamente 3.800 dos repositórios internos de código-fonte da GitHub. O código dos clientes, as contas dos clientes e os serviços de produção da GitHub não são afetados.

Qual extensão do VS Code esteve realmente envolvida?

A GitHub não confirmou formalmente o nome da extensão. As provas forenses da StepSecurity, Wiz e GHSA-c9j4-9m59-847w apontam altamente provável para a Nx Console v18.95.0, publicada em 18 de maio às 12:36 UTC e removida 11 minutos depois. Tratamos isto como "altamente provável, não confirmado" até que a GitHub a nomeie.

A Nx Console é segura de usar agora?

A versão corrigida é a 18.100.0. Se tiver uma v18.95.0 mais antiga instalada, desinstale imediatamente, execute a análise de IoC na nossa secção de triagem e reinstale apenas a partir do editor oficial Nrwl na versão 18.100.0 ou superior. Verifique o domínio do editor antes de reinstalar e fixe a versão em devcontainer.json.

Os dados dos clientes foram afetados pela violação da GitHub?

Não. Segundo a declaração oficial da GitHub via Bleeping Computer, o código-fonte dos clientes, contas de clientes, tokens OAuth e dados de produção alojados na GitHub não foram acedidos. Os dados comprometidos são o código-fonte interno da GitHub a partir do terminal do funcionário. Trate isto como um incidente de portátil de funcionário, não como uma violação da plataforma.

Como sei se o meu PAT da GitHub foi roubado?

Não sabe, com certeza. A suposição conservadora: se utilizou qualquer PAT da GitHub dentro do VS Code nos últimos 14 dias, trate-o como comprometido e renove-o. Verifique o seu registo de auditoria da GitHub via gh api /orgs/{ORG}/audit-log para eventos de push desconhecidos entre 18-20 de maio UTC, depois revogue e reemita o token.

O que é a TeamPCP e a UNC6780?

A TeamPCP é um grupo de atores de ameaças; UNC6780 é o ID de rastreio atribuído por fornecedores de resposta a incidentes. Reivindicaram publicamente a autoria da violação da GitHub. O mesmo grupo reivindicou compromissos em 2026 contra Trivy, KICS, LiteLLM, TanStack e MistralAI, um padrão consistente de targeting da cadeia de abastecimento do VS Code e npm.

As extensões do VS Code são sandboxed?

Não, significativamente. As extensões do VS Code executam-se no processo Node.js do IDE com privilégios completos de sistema de ficheiros e rede do utilizador. Podem ler todos os ficheiros no seu diretório home, incluindo chaves SSH, ~/.aws/credentials, ~/.claude/settings.json e memória de processos via /proc/*/mem no Linux. A Microsoft documenta o modelo de segurança em tempo de execução e os seus limites na documentação oficial de extensões.

Isto afetou o GitHub Codespaces ou os runners de CI?

Sem evidências até agora. O comprometimento foi uma estação de trabalho de um funcionário, não infraestrutura alojada pela GitHub. Codespaces, runners do GitHub Actions e infraestrutura de CI面向客户 não são relatados como afetados. Atualizaremos este artigo se novos IoCs alterarem esse cenário.

Conclusão

Três coisas para levar consigo:

  1. O GitHub.com não foi hackeado. A estação de trabalho VS Code de um funcionário foi. A lição generaliza-se a todos os programadores.
  2. Renove agora, estrutura de auditoria para sempre. O plano de 60 minutos é o patch; a estrutura de auditoria de 5 perguntas é o sistema imunitário.
  3. Isto não é um caso isolado. É o nó #6 numa onda da cadeia de abastecimento de 9 meses que não está a abrandar.

Última atualização: 20 de maio de 2026. Faremos uma varredura neste artigo em 27 de maio de 2026 com novos IoCs, avisos de fornecedores e qualquer atribuição de extensão confirmada pela GitHub.

Se a sua equipa precisar de ajuda para auditar a superfície de extensões do VS Code, a higiene de PATs e tokens, ou construir uma política de lista de permissões ao nível da organização, obtenha uma consulta gratuita. Temos estado focados na segurança de terminais de programadores desde a violação da Vercel em abril, e o plano acima é o que executamos com clientes no primeiro dia.

Etiquetas

cibersegurançaataque à cadeia de abastecimentovscodegithubsegurança para programadoresresposta a incidentesGHSA-c9j4-9m59-847w

Partilhar este artigo

Artigos relacionados

Mais em cybersecurity

cybersecurity
Jul 23, 2026

Checklist de Segurança SaaS Antes do Lançamento: 40 Verificações que Fazemos Primeiro (2026)

A maioria das checklists de lançamento diz-lhe o que proteger, mas nunca mostra como. Esta inclui o código: 40 verificações pré-lançamento sobre segredos, autenticação, isolamento de inquilinos, dependências, cabeçalhos e monitorização, além da falha que detetamos em quase todas as revisões.

12 min read min de leitura
Ler
cybersecurity
May 8, 2026

Como a IA Previne Violações de Dados: 7 Defesas Que Travaram Ataques Reais (2026)

A 30 de abril de 2026, cerca de 275 milhões de alunos descobriram que o seu LMS tinha sido comprometido. Poderia a IA tê-lo evitado? Eis 7 defesas que já o fazem, e como integrá-las na sua app esta semana.

13 min read min de leitura
Ler
cybersecurity
May 5, 2026

Copy Fail (CVE-2026-31431): O Guia de Emergência de 60 Minutos para Linux, Kubernetes e Infraestrutura de IA

A Microsoft divulgou a CVE-2026-31431 ('Copy Fail') em 1 de maio de 2026 — uma escalada de privilégios no kernel Linux que contorna o seccomp RuntimeDefault do Kubernetes, colocando em risco todos os clusters de inferência multi-inquilino, runtimes de agentes e executores de CI. Eis o guia de correção de 60 minutos, com comandos por distribuição, um perfil seccomp para copiar e colar e a análise de exposição da infraestrutura de IA que mais ninguém está a publicar.

12 min read min de leitura
Ler
Ver todos os artigos
Inicia o Teu Projeto

Pronto para criar algo extraordinário?

Vamos transformar a sua visão em realidade. A nossa equipa está pronta para o ajudar a criar software que faz a diferença.

Marca uma chamada de scope 30 minVer o Nosso Trabalho

Destaque da biblioteca

Skills do Claude

Ver tudo
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

Automações AI

Ver tudo
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Destaque da biblioteca

Skills do Claude

Ver tudo
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

Automações AI

Ver tudo
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Serviços

  • Soluções Empresariais
  • Aplicações Móveis
  • Aplicações Web

Soluções

  • Sistemas CRM
  • Integração de IA
  • Soluções ERP
  • Agentes de Voz
  • Automação de Processos
  • Cibersegurança

Biblioteca

  • Blogue
  • Portfólio

Comunidade

  • Automações AI
  • Skills do Claude

Ferramentas

  • Calculadora de Custo de App Móvel
  • Calculadora de Custo de API OpenAI / LLM
  • Calculadora de Custo de MVP
  • Calculadora de Custo de Agente de Voz AI

Empresa

  • Sobre
  • Parceiros
  • Contacto

Legal

  • Política de Privacidade
  • Termos de Serviço
  • Política de Cookies

Serviços

  • Soluções Empresariais
  • Aplicações Móveis
  • Aplicações Web

Soluções

  • Sistemas CRM
  • Integração de IA
  • Soluções ERP
  • Agentes de Voz
  • Automação de Processos
  • Cibersegurança

Biblioteca

  • Blogue
  • Portfólio

Comunidade

  • Automações AI
  • Skills do Claude

Ferramentas

  • Calculadora de Custo de App Móvel
  • Calculadora de Custo de API OpenAI / LLM
  • Calculadora de Custo de MVP
  • Calculadora de Custo de Agente de Voz AI

Empresa

  • Sobre
  • Parceiros
  • Contacto
LegalPolítica de PrivacidadeTermos de ServiçoPolítica de Cookies
TECHSY
© 2026 Techsy. Todos os direitos reservados.