⭕️ آسیبپذیری با شناسه
CVE-2026-3854 در
GitHub Enterprise Server / Git push pipeline گزارش شده که از نوع
(RCE) هست.
این ضعف مربوط به نحوه پردازش git push options در مسیر داخلی پردازش push بوده؛ یعنی کاربر میتونست هنگام git push یک مقدار crafted ارسال کنه و بهخاطر sanitize نشدن کامل ورودی، داخل metadata داخلی GitHub فیلدهای اضافی تزریق کنه. ([The GitHub Blog][1])
دقیقا چی اتفاق میافته؟
در pipeline داخلی GitHub، اطلاعات push بین چند سرویس با یک فرمت metadata منتقل میشه. مشکل اینجا بود که delimiter داخلی همین metadata میتونست داخل ورودی کاربر هم بیاد. مهاجم با سوءاستفاده از این موضوع میتونست مقدارهای قابل اعتماد داخلی رو override کنه. ([The GitHub Blog][1])
سناریو حمله:
مهاجم فقط نیاز به یک حساب دارای push access روی یک repository داشت، حتی repoای که خودش ساخته باشه و یک git push با push option مخرب ارسال میکرد بعد metadata داخلی آلوده میشد و محیط پردازش push تغییر میکرد سپس sandbox مربوط به hook execution دور زده میشد و در نهایت اجرای دستور دلخواه روی سرور GitHub ممکن میشد.
نکته مهم:
این آسیبپذیری unauthenticated نبود، اما بسیار خطرناک بود چون سطح دسترسی لازم پایین بود: هر کاربری که روی یک repo امکان push داشت، میتونست مسیر exploit رو شروع کنه. در محیطهای GitHub Enterprise Server این یعنی یک کاربر داخلی، contractor، اکانت compromise شده یا حتی یک developer با دسترسی محدود میتونست به سطح اجرای کد روی سرور نزدیک بشه
ضمنا Root cause فقط یک sanitize ساده نبود؛ مسئله اصلی trust boundary failure بین ورودی کاربر و metadata داخلی سرویسها بود. مقدارهایی که باید صرفاً user-controlled محسوب میشدن، وارد کانالی شدن که downstream service اونها رو بهعنوان internal trusted fields تفسیر میکرد. این دقیقاً همون نقطهایه که injection تبدیل به RCE شد.
و اینکه GitHub اعلام کرده
github.com و GitHub Enterprise Cloud در تاریخ March 4, 2026 patch شدن و بررسی forensic نشون داده exploitation عمومی رخ نداده.
برای GitHub Enterprise Server، نسخههای patch شده منتشر شده و upgrade فوری توصیه شده.
نسخههای امن GHES:
3.14.25 یا بالاتر
3.15.20 یا بالاتر
3.16.16 یا بالاتر
3.17.13 یا بالاتر
3.18.7 / 3.18.8 یا بالاتر
3.19.4 یا بالاتر
3.20.0 یا بالاتر
برای بررسی احتمال سوءاستفاده:
لاگ /var/log/github-audit.log رو بررسی کنید و دنبال push operationهایی باشید که داخل push options کاراکتر ; دارن. طبق توضیح GitHub، exploit باعث فعال شدن یک code path غیرعادی میشه که در عملیات عادی استفاده نمیشه، بنابراین برای hunting قابل اتکاست.
جمعبندی:
اگر GitHub Enterprise Server دارید، این مورد باید فوری patch بشه.
دسترسی push کاربران رو بازبینی کنید،
لاگهای audit رو بررسی کنید،
اکانتهای غیرضروری یا مشکوک رو disable کنید،
و بعد از upgrade مطمئن بشید هیچ push option مشکوکی در بازه قبل از patch ثبت نشده.
https://github.blog/security/securing-the-git-push-pipeline-responding-to-a-critical-remote-code-execution-vulnerability/
@securation