Techsy
Контакти
Розпочати
Назад до блогу
cybersecurity

GitHub зламали через розширення VS Code (травень 2026): 60-хвилинний план дій для кожного розробника

Автор Mert Batur Gürbüz
Оновлено May 20, 2026
16 хв на читання
Зміст
GitHub зламали через розширення VS Code (травень 2026): 60-хвилинний план дій для кожного розробника

GitHub зламали через розширення VS Code (травень 2026): 60-хвилинний план дій для кожного розробника

20 травня 2026 року GitHub підтвердив, що приблизно 3800 його внутрішніх репозиторіїв із вихідним кодом були викрадені через шкідливе розширення VS Code, встановлене на робочій станції співробітника. Якщо ви використовували GitHub PAT або токен npm у VS Code протягом останніх 14 днів, наступні 60 хвилин мають вирішальне значення. Це ваш план дій: що саме сталося, чи зачіпає це вас і які облікові дані потрібно ротаціювати першими.

Ключові висновки

  • Що сталося: Продакшн-інфраструктура GitHub.com не була зламана. Співробітник встановив отруєне розширення у VS Code (найімовірніше Nx Console v18.95.0), яке викрало PAT та експортувало ~3800 внутрішніх репозиторіїв.
  • Дані клієнтів: Не постраждали. Викрадені дані — це внутрішній вихідний код GitHub, а не код або облікові записи клієнтів.
  • Хто в зоні ризику: Будь-який розробник, який встановлював розширення VS Code приблизно між 18 травня, 12:36 UTC та 18 травня, 12:47 UTC (11-хвилинне вікно), або будь-хто, хто використовував довгострокові GitHub PAT зсередини VS Code.
  • Що робити зараз: Спочатку ротаціюйте GitHub PAT, потім токени npm, далі — ключі AWS/хмари. Повний план дій наведено в розділі «Що мають зробити розробники» нижче.

TL;DR: 6 кроків, які потрібно зробити за наступну годину

Найшвидший спосіб обмежити масштаб шкоди від історії про злом github через розширення vscode — це ротаціювати облікові дані, до яких може дістатися отруєне розширення, перевірити встановлене на вашому ноутбуці та переглянути журнал аудиту організації GitHub за період 18–20 травня (UTC). Шість дій, відсортованих за важливістю.

  1. Скасуйте кожен персональний токен доступу GitHub (PAT), створений або використаний у VS Code за останні 30 днів.
  2. Ротаціюйте токени npm через npm token revoke та перевипустіть їх із двофакторною автентифікацією + довірчою публікацією.
  3. Проскануйте свій ноутбук на наявність індикаторів компрометації (IoC) з GHSA-c9j4-9m59-847w (шляхи до файлів, процеси; команди нижче).
  4. Перевірте список розширень командою code --list-extensions --show-versions та видаліть усе, чого не можете обґрунтувати.
  5. Зафіксуйте версії розширень у devcontainer.json та запровадьте список дозволених розширень на рівні організації.
  6. Перевірте журнал аудиту вашої організації GitHub на наявність незвичних пушів у репозиторії між 18 та 20 травня (UTC).

Якщо у вас є час лише на два кроки, виконайте №1 та №3. Решта може зачекати годину.

Чи справді зламали GitHub? Розвіюємо міфи з заголовків

Ні, продакшн-інфраструктура GitHub.com не була зламана 20 травня 2026 року. Робоча станція одного співробітника GitHub була компрометована після того, як він встановив шкідливе розширення VS Code (найімовірніше Nx Console v18.95.0). Зловмисник, який називає себе TeamPCP (відстежується як UNC6780), викрав приблизно 3800 внутрішніх репозиторіїв із вихідним кодом GitHub. Код клієнтів, облікові записи клієнтів та продакшн-сервіси GitHub не постраждали.

Ось чітке пояснення того, що сталося, а що ні.

Що сталосяЩо НЕ сталося
Ноутбук співробітника було компрометовано через отруєне розширення VS CodeПродакшн GitHub.com було зламано
Було викрадено ~3800 внутрішніх репозиторіїв із вихідним кодомРепозиторії або облікові записи клієнтів були торкнуті
Облікові дані співробітника GitHub на цьому пристрої було викраденоPAT клієнтів, токени npm або OAuth-гранти було викрадено з систем GitHub
TeamPCP вимагав викуп (за даними Tom's Hardware)GitHub заплатив (немає доказів оплати)

Чому це формулювання важливе? Тому що головний висновок не в тому, що «github зламали». Висновок у тому, що кінцеві точки розробників тепер є вразливим місцем кожної інженерної організації. Усі секрети, якими володіє ваша команда (GitHub PAT, токени npm, ключі AWS, сесії Vault, ключі провайдерів ШІ), зберігаються на ноутбуках із мінімальним покриттям EDR або взагалі без нього. Одне отруєне розширення, запущене у вашому IDE, успадковує доступ до всього цього.

Представник GitHub, цитований у Bleeping Computer, підтвердив факт компрометації кінцевої точки співробітника та тезу про «відсутність даних клієнтів». Help Net Security додав атрибуцію групі TeamPCP. Технічний ланцюжок доказів щодо розширення міститься в advisory GHSA-c9j4-9m59-847w.

GitHub.com не було зламано. Був зламаний співробітник GitHub. Тримайте цей контекст у голові, читаючи далі.

Що насправді сталося: Хронологія злому травня 2026 року

Історія про злом github 2026 розгорталася в чотири етапи протягом приблизно 48 годин. Отруєне розширення було опубліковано 18 травня о 12:36 UTC, видалено через 11 хвилин, виявлено GitHub наступного дня та публічно оголошено 20 травня. Стисла хронологія з джерелами:

Час (UTC)ПодіяДжерело
18 травня, 12:36Nx Console v18.95.0 опубліковано в OpenVSX / Visual Studio Marketplace (найімовірніше)StepSecurity / GHSA-c9j4-9m59-847w
18 травня, 12:47Шкідлива версія видалена, 11-хвилинне вікноStepSecurity
19 травняGitHub виявляє компрометацію кінцевої точки співробітника; локалізує інцидентПредставник GitHub через Bleeping Computer
20 травняПублічне розголошення; TeamPCP / UNC6780 публічно бере на себе відповідальністьHelp Net Security, Hackread

Це 11-хвилинне вікно — найдивніша деталь. Це свідчить про те, що зловмисник ротаціював розширення, щоб уникнути виявлення маркетплейсом, за тією ж схемою, яку Koi Security задокументувала у черві GlassWorm для OpenVSX у жовтні 2025 року. TeamPCP / UNC6780 раніше брали на себе відповідальність за компрометації 2026 року проти Trivy, KICS, LiteLLM, TanStack та MistralAI. Та сама група, та сама схема, інші цілі.

Минулого місяця це були змінні середовища Vercel. Сьогодні — репозиторії GitHub. Патерн, який ми спостерігаємо вже 9 місяців, постійно зміщує масштаб шкоди назовні. Дивіться наш розбір реакції на злом Vercel щодо схожого інциденту.

Ймовірний винуватець: Nx Console v18.95.0 (і чому GitHub не підтверджує офіційно)

GitHub офіційно не назвав розширення, залучене до компрометації кінцевої точки співробітника. Судово-технічні дані сильно вказують на Nx Console v18.95.0, але це залишається високою ймовірністю, а не підтвердженим фактом. Ми оновимо цю статтю, якщо GitHub публічно назве інше розширення. Ставьтеся до решти цього розділу як до найкращої доступної атрибуції, а не як до оголошеного факту.

Чотири непрямі докази пов'язують Nx Console з розголошенням GitHub:

  1. Збіг у часі: Вікно advisory GHSA-c9j4-9m59-847w (18 травня, 12:36–12:47 UTC) потрапляє у вікно компрометації кінцевої точки співробітника GitHub, зазначене в їхньому власному розголошенні.
  2. Збіг форензічних IoC: Опублікований StepSecurity аналіз пейлоаду Nx Console (шляхи до файлів, процеси на кшталт __DAEMONIZED, мережеві ендпоінти) збігається з артефактами, виявленими на компрометованій кінцевій точці, згідно зі звітом Wiz.
  3. Патерн атрибуції TeamPCP: TeamPCP / UNC6780 активні в просторі ланцюга постачання VS Code (Trivy, KICS, LiteLLM, TanStack, MistralAI у 2026 році) із послідовною структурою пейлоаду.
  4. 11-хвилинне вікно видалення: Характерне для атак на ланцюг постачання, де зловмисник контролює момент публікації, але маркетплейс швидко його виявляє.

Якщо ви не встановлювали Nx Console, ви все одно не в безпеці. Загальна схема атаки (процеси __DAEMONIZED, зловживання IMDS, викрадення ~/.claude/settings.json) узагальнюється на будь-яке отруєне розширення. Тріаж у наступному розділі застосовується незалежно від того, яке розширення ви підозрюєте.

Одне розширення VS Code випускає стрілки до десяти позначених цілей із обліковими даними, включаючи GitHub PAT, токен npm, AWS IMDS, 1Password CLI, Vault та налаштування Claude Code, ілюструючи повний масштаб шкоди, якого може досягти шкідливе розширення
Джерело: редакція techsy.io, охоплення облікових даних, доступних з процесу одного розширення VS Code

Чи зачіпає це вас? 5-хвилинний тріаж

Є три швидкі тести. (1) Чи встановлювали ви або чи оновлювалося автоматично розширення VS Code між 18 травня, 12:36 та 12:47 UTC? (2) Чи є на вашому ноутбуці зараз файли IoC з GHSA-c9j4-9m59-847w? (3) Чи використовували ви GitHub PAT у VS Code за останні 14 днів? Виконайте всі три менш ніж за п'ять хвилин.

Тест 1: Аудит розширень

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"

Усе, що оновилося автоматично між 17 та 18 травня, заслуговує на повторну перевірку. Якщо ви бачите Nx Console версії точно 18.95.0, ви, ймовірно, в зоні ризику. Виправлена версія — 18.100.0. Або видаліть його, або одразу переходьте до плану дій нижче.

Тест 2: Сканування 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

Чиста машина не повинна повертати нічого для grep за __DAEMONIZED, не мати файлів .daemonized та слідів IMDS в історії оболонки. Якщо щось із цього знайдено, вважайте ноутбук компрометованим і ставтеся до всіх облікових даних, яких він торкався за останні 30 днів, як до спалених.

Тест 3: Експозиція PAT

Якщо ви використовували GitHub PAT (класичний або гранульований) у будь-якому терміналі VS Code, інтегрованому git або будь-якому розширенні, яке викликає API GitHub за останні 14 днів, вважайте його компрометованим і переходьте до плану ротації нижче. Це консервативний підхід за замовчуванням, оскільки ви не можете перевірити, «чи був токен у пам'яті, поки розширення було активним». Ротаціюйте його.

Якщо ви використовуєте Claude Code, список IoC спеціально включає ~/.claude/settings.json. Перегляньте наш посібник із хуків Claude Code, щоб дізнатися, що зберігається в цьому файлі та які ключі ротаціювати першими.

Вердикт. Якщо хоча б один із цих трьох тестів дав позитивний результат, припиніть читати опис подій. Одразу переходьте до плану дій у наступному розділі. Наступні 55 хвилин важливіші за постмортем.

Що мають зробити розробники: 60-хвилинний екстрений план дій

Ротаціюйте облікові дані за пріоритетом. Рівень 0 (наступні 30 хв): GitHub PAT та токени npm. Рівень 1 (сьогодні): ключі AWS/хмари, 1Password/Vault, секрети GitHub Actions. Рівень 2 (цього тижня): сторонні SaaS, OAuth-гранти, SSH-ключі. Рівень 3 (коли буде зручно): ключі тільки для читання та публічні ключі. Кожен рівень відповідає конкретному зменшенню масштабу шкоди.

Піраміда ротації облікових даних із чотирьох рівнів, що показує Рівень 0 (GitHub PAT та токени npm) червоним, Рівень 1 (AWS та токени vault) бурштиновим, Рівень 2 (SSH та OAuth) жовтим, Рівень 3 (ключі тільки для читання) сірим, кожен рівень позначено часовим бюджетом
Джерело: редакція techsy.io, пріоритетність ротації за рівнями для 60-хвилинного плану

ЗАРАЗ: Якщо ви думаєте, що постраждали

Якщо ваш тріаж дав позитивний результат, виконайте ці три дії по порядку перед усім іншим.

  1. Вбийте демон та видаліть підозріле розширення:
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. Витягніть мережевий кабель свого ноутбука, якщо є будь-які ознаки активного викрадення даних. Звучить радикально. Так і є. Зробіть це все одно. Ви можете провести повторне розслідування офлайн.
  2. Зателефонуйте своїй команді безпеки або напишіть у Slack-канал #security перед тим, як робити щось інше. Якщо ви працюєте самостійно, переходьте до Рівня 0 нижче.

Рівень 0 (Наступні 30 хвилин): GitHub + npm

Скасування GitHub PAT через CLI gh та веб-інтерфейс налаштувань:

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

Ротація токена 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

Якщо ви підтримуєте опубліковані пакети, ваш токен npm є найбільш небезпечними обліковими даними, якими ви володієте. Ротаціюйте його перед AWS.

Рівень 1 (Сьогодні): Хмара + Сховища + Секрети CI

Далі йдуть ключі доступу AWS. IoC показують зловживання IMDS, тому будь-який користувач IAM, який торкався компрометованої кінцевої точки, є підозрілим:

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

1Password CLI: вийдіть з усіх пристроїв (op signout --all), регенеруйте токени сесії та перевірте недавній доступ до сховища через веб-журнал аудиту 1Password на предмет будь-яких дій, виконаних із компрометованої кінцевої точки.

HashiCorp Vault: відклиньте свій користувацький токен (vault token revoke -self) і попросіть адміністратора видати новий із коротшим TTL.

Секрети GitHub Actions: якщо будь-яка ротована облікова записка також є в Actions, оновіть її. Використовуйте gh secret set GITHUB_PAT --body <new-pat> для кожного репозиторію або інтерфейс на рівні організації для орг-секретів.

Ключі API Anthropic та OpenAI: список IoC GHSA-c9j4-9m59-847w спеціально вказує на ~/.claude/settings.json як на ціль для збору даних. Відклиньте та перевипустіть свій ключ API консолі Anthropic та будь-який ключ OpenAI, який ви коли-небудь зберігали в цьому файлі.

Рівень 2 (Цього тижня): SSH + OAuth + Менеджери паролів

SSH-ключі змінюються повільніше, але все ще входять у зону ураження. Розширення мало доступ на читання файлової системи до ~/.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]

Менеджер паролів браузера та ОС keychain: ротаціюйте будь-який пароль, який розширення могло правдоподібно побачити через буфер обміну. Реалістична загроза — це паролі, які ви копіювали в буфер обміну, поки розширення було активним.

Рівень 3 (Коли буде зручно): Аудит + Перевірка

Перевірте журнал аудиту вашої організації GitHub за вікно компрометації. Для цього потрібні права адміністратора організації:

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

Якщо журнал аудиту показує пуші з вікна компрометації, яких ви не робили, передайте це своїй команді безпеки та збережіть JSON журналу аудиту. Не намагайтеся «скасувати» щось у репозиторії. Спочатку збережіть докази.

Ми розглядали ту саму логіку ротації за рівнями для злому змінних середовища Vercel у квітні: та сама форма, інший шар.

Фреймворк аудиту розширень із 5 запитань (використовуйте завжди)

Перед встановленням або довірою будь-якому розширенню VS Code проженіть його через п'ять тестів: вік домену видавця, швидкість версій, події активації в package.json, область дозволів проти очікуваної поведінки та аудит репозиторію з відкритим кодом. Nx Console v18.95.0 провалив би Тест №2: раптовий стрибок версії після стабільного графіка релізів є класичною ознакою атаки на ланцюг постачання.

  1. Вік домену видавця. Чи старший домен видавця за один рік? Нові видавці на ново зареєстрованих доменах несуть більший ризик. Перевірте через сторінку видавця у Visual Studio Marketplace або whois для домену електронної пошти видавця.
  2. Швидкість версій. Чи показує історія версій нормальний графік (один реліз кожні 1–4 тижні) чи раптовий сплеск (три релізи за 24 години)? Раптова швидкість — це сигнал. Nx Console v18.95.0 була аномалією швидкості.
  3. Події активації package.json. Відкрийте файл .vsix (це zip-архів) і прочитайте activationEvents. Розширення, які активуються на * (завжди увімкнені), мають найбільшу поверхню атаки. Надавайте перевагу розширенням, які активуються для конкретної мови або імені файлу.
  4. Необхідні дозволи проти очікуваної поведінки. Чи запитує розширення «теми» доступ до мережі? Чи потребує розширення «сніпетів» запису у файлову систему? Невідповідності — це червоні прапорці. Порівняйте з документацією Microsoft щодо безпеки runtime розширень.
  5. Аудит репозиторію з відкритим кодом. Чи є джерельний код на GitHub? Прочитайте останні п'ять комітів на підозрілі зміни: post-install хуки, base64-кодовані блоби, мережеві виклики до незнайомих доменів.

Розширення, яке активується на * і запитує доступ до мережі, функціонально є віддаленою оболонкою, до якої причеплено VS Code.

Цей самий фреймворк аудиту застосовується до серверів MCP, наступної поверхні ланцюга постачання класу розширень. Дивіться наш розбір найкращих серверів MCP 2026, щоб дізнатися, яким ми довіряємо і чому.

Чому це продовжує траплятися: Хвиля атак на ланцюг постачання 2025–2026

Злом GitHub 20 травня — це одна з ланок 9-місячної дуги: черв'як npm Shai-Hulud (вересень 2025), черв'як OpenVSX GlassWorm (жовтень–листопад 2025), Shai-Hulud 2.0 (листопад 2025, понад 25 000 постраждалих репозиторіїв), Mini Shai-Hulud (початок 2026), Nx Console (18 травня 2026), компрометація кінцевої точки GitHub (20 травня 2026). Кінцеві точки розробників стали новим вразливим місцем.

  • Вересень 2025, черв'як npm Shai-Hulud. Самопоширюване шкідливе ПЗ у популярних пакетах npm. CISA випустила попередження про масову компрометацію.
  • Жовтень–листопад 2025, GlassWorm. Перший самопоширюваний черв'як, що цілить розширення VS Code на OpenVSX. Розголошення Koi Security.
  • Листопад 2025, Shai-Hulud 2.0. Викрадено понад 25 000 репозиторіїв. Microsoft Security Blog опублікувала рекомендації щодо локалізації.
  • Початок 2026, Mini Shai-Hulud. Варіант від TeamPCP. Менш масштабні повторні атаки на Trivy, KICS, LiteLLM, TanStack та MistralAI.
  • 18 травня 2026, Nx Console v18.95.0. Найімовірніший вектор для компрометації кінцевої точки GitHub.
  • 20 травня 2026, GitHub розголошує інцидент. Викрадено ~3800 внутрішніх репозиторіїв. Згідно з форензічною серією Wiz про Shai-Hulud, патерн зловживання IMDS є прямим розвитком подій.

Патерн чіткий: ноутбуки розробників містять усі секрети організації (GitHub PAT, ключі AWS, токени Vault, ключі провайдерів ШІ) і мають майже нульове покриття EDR. Поки цей дисбаланс не зміниться, ця хвиля триватиме.

Захисний ШІ є однією з частин відповіді. Ми розглядали цей аспект у нашому розборі того, як ШІ запобігає витокам даних раніше цього року.

Більша відповідь GitHub: Довірена публікація, FIDO 2FA, 90-денні токени

До 20 травня GitHub уже впроваджував чотири контроли ланцюга постачання: обов'язкова 2FA для видавців npm, обмеження гранульованих токенів запису терміном 90 днів, заміна TOTP на FIDO та passkeys, а також OIDC довірена публікація для GitHub Actions та GitLab CI. Травневий злом прискорює вже наявну міграцію; він не вводить нову політику.

КонтрольСтатусДія для вас
Обов'язкова 2FA для npmАктивнаУвімкніть зараз: npm profile enable-2fa auth-and-writes
Обмеження гранульованих токенів запису 90 днямиПоступове впровадження (наявні токени примусово застарівають)Мігруйте на гранульовані PAT із TTL ≤90 днів
Заміна TOTP на FIDO/passkeysПоетапне впровадження у 2026Зареєструйте passkey для кожного облікового запису GitHub сьогодні
OIDC довірена публікаціяАктивна для GitHub Actions + GitLab CIМігруйте CI з довгострокових токенів npm на OIDC

Загальний план GitHub для більш безпечного ланцюга постачання npm існував за місяці до цього інциденту. Чим швидше ви приведете свої процеси у відповідність із ним, тим меншим буде масштаб шкоди наступного разу.

Захист: Як пережити наступний раз

Шість превентивних кроків: фіксуйте версії розширень у devcontainer.json, запровадьте список дозволених розширень на рівні організації, використовуйте EDR із видимістю процесів розширень, скануйте секрети при кожному пуші, обмежуйте PAT одним репозиторієм та перейдіть на OIDC довірену публікацію замість довгострокових токенів. Жоден із цих кроків не запобіг би кожному інциденту окремо, але разом вони звужують масштаб шкоди від «усього на ноутбуці» до «одного репозиторію».

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"
  }
}

Коротко:

  • Фіксуйте версію кожного розширення в devcontainer.json, щоб вимкнути автооновлення.
  • Список дозволених на рівні організації, вказавши VSCODE_GALLERY_SERVICE_URL на внутрішнє дзеркало.
  • EDR із видимістю процесів IDE: Crowdstrike, SentinelOne або Microsoft Defender for Endpoint із охопленням VS Code.
  • Сканування секретів при кожному пуші: pre-commit та під час push, на стороні сервера.
  • Обмежуйте кожен PAT одним репозиторієм: ніколи не використовуйте області *.
  • OIDC довірена публікація: жодних довгострокових токенів npm або реєстру в CI.

Минулотижнева Linux copy_file_range CVE є схожою історією: інший шар, той самий урок. Межа довіри, про яку ви забули, — це та, яка завдає удару.

Якщо ви розглядаєте використання агентів кодування на базі ШІ, застосуйте той самий фреймворк аудиту. Вони мають той самий профіль довіри, що й розширення. Наш розбір найкращих агентів кодування на базі ШІ 2026 пояснює, які агенти заслуговують на таку довіру.

Часті запитання

Чи зламали GitHub?

Ні, не в тому сенсі, який мають на увазі більшість заголовків. Продакшн GitHub.com не було зламано. Співробітник GitHub встановив шкідливе розширення VS Code на свою робочу станцію, що призвело до викрадення приблизно 3800 внутрішніх репозиторіїв із вихідним кодом GitHub. Код клієнтів, облікові записи клієнтів та продакшн-сервіси GitHub не постраждали.

Яке саме розширення VS Code було залучене?

GitHub офіційно не підтвердив назву розширення. Форензічні дані від StepSecurity, Wiz та GHSA-c9j4-9m59-847w з високою ймовірністю вказують на Nx Console v18.95.0, опубліковане 18 травня о 12:36 UTC та видалене через 11 хвилин. Ми вважаємо це «високою ймовірністю, але не підтвердженим фактом», доки GitHub не назве його офіційно.

Чи безпечно використовувати Nx Console зараз?

Виправлена версія — 18.100.0. Якщо у вас встановлено стару версію v18.95.0, негайно видаліть її, виконайте сканування IoC з нашого розділу тріажу та перевстановіть тільки від офіційного видавця Nrwl версії 18.100.0 або новішої. Перед повторним встановленням перевірте домен видавця та зафіксуйте версію в devcontainer.json.

Чи постраждали дані клієнтів від злому GitHub?

Ні. Згідно з офіційною заявою GitHub через Bleeping Computer, вихідний код клієнтів, облікові записи клієнтів, токени OAuth та продакшн-дані, розміщені на GitHub, не були доступні. Викрадені дані — це внутрішній вихідний код GitHub з кінцевої точки співробітника. Ставьтеся до цього як до інциденту з ноутбуком співробітника, а не як до злому платформи.

Як дізнатися, чи мій GitHub PAT було викрадено?

Ви не можете знати це напевно. Консервативне припущення: якщо ви використовували будь-який GitHub PAT у VS Code за останні 14 днів, вважайте його компрометованим і ротаціюйте. Перевірте свій журнал аудиту GitHub через gh api /orgs/{ORG}/audit-log на наявність незвичних подій push між 18 та 20 травня (UTC), потім відклиньте та перевипустіть токен.

Що таке TeamPCP та UNC6780?

TeamPCP — це група зловмисників; UNC6780 — це ID відстеження, присвоєний постачальниками послуг реагування на інциденти. Вони публічно взяли на себе відповідальність за злом GitHub. Та сама група брала на себе відповідальність за компрометації 2026 року проти Trivy, KICS, LiteLLM, TanStack та MistralAI, що демонструє послідовний патерн цілей у ланцюзі постачання VS Code та npm.

Чи ізольовані розширення VS Code в пісочниці?

Ні, не в значущому сенсі. Розширення VS Code працюють у процесі Node.js IDE з повними правами користувача на файлову систему та мережу. Вони можуть читати будь-який файл у вашому домашньому каталозі, включаючи SSH-ключі, ~/.aws/credentials, ~/.claude/settings.json та пам'ять процесів через /proc/*/mem у Linux. Microsoft документує модель безпеки runtime та її обмеження в офіційній документації розширень.

Чи вплинуло це на GitHub Codespaces або CI-ранери?

Наразі немає доказів цього. Компрометація сталася на робочій станції співробітника, а не на інфраструктурі, розміщеній GitHub. Codespaces, ранери GitHub Actions та інфраструктура CI, орієнтована на клієнтів, не повідомляються як постраждалі. Ми оновимо цю статтю, якщо нові IoC змінять цю картину.

Підсумок

Три речі, які варто винести з цієї статті:

  1. GitHub.com не було зламано. Була зламана робоча станція VS Code співробітника. Цей урок узагальнюється на кожного розробника.
  2. Ротаціюйте зараз, використовуйте фреймворк аудиту завжди. 60-хвилинний план дій — це патч; фреймворк із 5 запитань — це імунна система.
  3. Це не поодинокий випадок. Це вузол №6 у 9-місячній хвилі атак на ланцюг постачання, яка не сповільнюється.

Останнє оновлення: 20 травня 2026 року. Ми оновимо цю статтю 27 травня 2026 року, додавши нові IoC, поради постачальників та будь-яке підтвердження від GitHub щодо залученого розширення.

Якщо вашій команді потрібна допомога в аудиті поверхні розширень VS Code, гігієни PAT та токенів або побудові політики списку дозволених на рівні організації, отримайте безкоштовну консультацію. Ми глибоко занурені в безпеку кінцевих точок розробників із часу злому Vercel у квітні, і наведений вище план дій — це те, з чим ми працюємо з клієнтами в перший день.

Теги

кібербезпекаатака на ланцюг постачанняvscodegithubбезпека розробниківреагування на інцидентиGHSA-c9j4-9m59-847w

Поділилися статтею

Схожі статті

Більше у категорії cybersecurity

cybersecurity
Jul 23, 2026

Чек-лист безпеки SaaS перед запуском: 40 перевірок, які ми виконуємо першими (2026)

Більшість чек-листів для запуску кажуть вам, що саме потрібно захищати, але ніколи не показують, як це зробити. Цей містить готовий код: 40 перевірок перед запуском щодо секретів, автентифікації, ізоляції орендарів, залежностей, заголовків та моніторингу, плюс помилка, яку ми виявляємо майже в кожному огляді.

12 min read хв на читання
Читати
cybersecurity
May 8, 2026

Як ШІ запобігає витокам даних: 7 захистів, що зупинили реальні атаки (2026)

30 квітня 2026 року ~275 мільйонів студентів дізналися, що їхню LMS зламали. Чи міг ШІ це зупинити? Ось 7 захистів, які вже це роблять, і як впровадити їх у свій застосунок цього тижня.

13 min read хв на читання
Читати
cybersecurity
May 5, 2026

Copy Fail (CVE-2026-31431): 60-хвилинний план екстреного виправлення для Linux, Kubernetes та AI-інфраструктури

Microsoft розкрила CVE-2026-31431 («Copy Fail») 1 травня 2026 року — вразливість підвищення привілеїв у ядрі Linux, яка обходить RuntimeDefault seccomp у Kubernetes і зачіпає всі багатокористувацькі кластери інференсу, середовища виконання агентів та CI-раннери. Ось 60-хвилинний план дій із командами для кожного дистрибутива, готовим профілем seccomp та аналізом загроз для AI-інфраструктури.

12 min read хв на читання
Читати
Переглянути всі публікації
Розпочати проєкт

Готові створити щось щось надзвичайне?

Втілимо ваше бачення в реальність. Наша команда готова допомогти вам створити програмне забезпечення, яке справді має значення.

Записатись на 30-хвилинну дзвінокНаші проєкти

З бібліотеки

Навички Claude

Переглянути всі
  • 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.

AI-автоматизації

Переглянути всі
  • 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.

З бібліотеки

Навички Claude

Переглянути всі
  • 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.

AI-автоматизації

Переглянути всі
  • 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.

Послуги

  • Корпоративні рішення
  • Мобільні додатки
  • Веб-додатки

Рішення

  • CRM-системи
  • Інтеграція ШІ
  • ERP-розв'язання
  • Голосові аґенти
  • Автоматизація процесів
  • кібербезпека

Бібліотека

  • Блог
  • Портфоліо

Спільнота

  • AI-автоматизації
  • Навички Claude

Інструменти

  • Калькулятор вартості мобільного додатка
  • Калькулятор вартості OpenAI / LLM API
  • Калькулятор вартості MVP
  • Калькулятор вартості голосового AI-агента

Компанія

  • Про нас
  • Партнери
  • Контакти

Юридична інформація

  • Політика конфіденційності
  • Умови використання
  • Політика cookie

Послуги

  • Корпоративні рішення
  • Мобільні додатки
  • Веб-додатки

Рішення

  • CRM-системи
  • Інтеграція ШІ
  • ERP-розв'язання
  • Голосові аґенти
  • Автоматизація процесів
  • кібербезпека

Бібліотека

  • Блог
  • Портфоліо

Спільнота

  • AI-автоматизації
  • Навички Claude

Інструменти

  • Калькулятор вартості мобільного додатка
  • Калькулятор вартості OpenAI / LLM API
  • Калькулятор вартості MVP
  • Калькулятор вартості голосового AI-агента

Компанія

  • Про нас
  • Партнери
  • Контакти
Юридична інформаціяПолітика конфіденційностіУмови використанняПолітика cookie
TECHSY
© 2026 Techsy. Усі права захищені.