محققان امنیت سایبری جزئیات یک آسیبپذیری بسیار مهم را در GitHub.com و GitHub Enterprise Server منتشر کردهاند که میتواند به یک کاربر احراز هویتشده اجازه دهد تنها با اجرای یک دستور ساده git push به اجرای کد از راه دور (RCE) دست پیدا کند.
این ضعف امنیتی با شناسه CVE-2026-3854 و امتیاز 8.7 (CVSS) ردیابی شده و در دسته آسیبپذیریهای Command Injection قرار میگیرد.
بر اساس گزارشها، مهاجمی که به یک repository دسترسی push (write access) داشته باشد، میتواند از این نقص برای اجرای کد روی سرور استفاده کند.
طبق بیانیه GitHub در حین عملیات git push، مقادیر ورودی کاربر (push options) بهدرستی sanitize نشده و مستقیماً در هدرهای داخلی سرویس استفاده شدهاند.
مشکل اصلی از اینجا ناشی میشود که ساختار هدر داخلی از یک کاراکتر جداکننده (delimiter) استفاده میکند که همان کاراکتر میتواند در ورودی کاربر نیز وجود داشته باشد. این موضوع امکان تزریق متادیتای اضافی را برای مهاجم فراهم میکند.
این آسیبپذیری توسط شرکت امنیت ابری (Wiz) متعلق به (Google) در تاریخ ۴ مارس ۲۰۲۶ کشف و گزارش شد.
GitHub نیز در مدت زمان کمتر از دو ساعت پس از تأیید، اصلاحیه (patch) را برای GitHub.com منتشر کرد.
همچنین این مشکل در نسخههای زیر از GitHub Enterprise Server برطرف شده است:
طبق اعلام رسمی، هیچ شواهدی مبنی بر سوءاستفاده مخرب از این آسیبپذیری گزارش نشده است.
هسته اصلی مشکل به عدم اعتبارسنجی صحیح مقادیر git push options بازمیگردد. این مقادیر بدون پاکسازی مناسب وارد هدر داخلی X-Stat میشوند.
از آنجا که این هدر از semicolon (;) بهعنوان جداکننده استفاده میکند و همین کاراکتر میتواند در ورودی کاربر نیز وجود داشته باشد، مهاجم قادر است:

محققان Wiz نشان دادهاند که این حمله از طریق ترکیب چند تزریق (Injection) انجام میشود:
در نتیجه این زنجیره:
طبق گفته محققان:
با اجرای کد خارج از sandbox بهعنوان کاربر git، کنترل کامل روی instance بهدست آمد.
این دسترسی شامل موارد زیر است:
در GitHub.com، فلگی به نام enterprise mode بهصورت پیشفرض روی مقدار false تنظیم شده و همین موضوع باعث میشود مسیر اجرای custom hooks بهطور عادی غیرفعال باشد.
با این حال، از آنجا که این فلگ نیز از طریق همان هدر داخلی (X-Stat) منتقل میشود، یک مهاجم میتواند با تزریق مقدار دلخواه، آن را تغییر داده و شرایط لازم برای سوءاستفاده را فراهم کند.
با توجه به معماری multi-tenant و زیرساخت اشتراکی GitHub، این موضوع پیامدهای مهمی دارد:
در چنین سناریویی، مهاجم بالقوه میتواند:
طبق گزارش Wiz، در زمان افشای عمومی:
GitHub به کاربران توصیه کرده است:
این آسیبپذیری نشان میدهد که:
به گفته Wiz وقتی چندین سرویس با زبانها و فرضیات مختلف از یک پروتکل مشترک استفاده میکنند، همان فرضیات به یک سطح حمله حیاتی تبدیل میشوند.
اگر روی معماریهای distributed یا microservices کار میکنید: