آسیبپذیری ProxyCommand در OpenSSH
نقص امنیتی در نرمافزار OpenSSH با شناسه CVE-2025-61984 ثبت شده است
در حوزۀ امنیت سایبری، گاهی آسیبپذیریهایی کشف میشوند که نشاندهنده پیچیدگی تعامل بین امکانات نرمافزاری و لایههای سیستم است. اخیراً یکی از این نوع آسیبپذیریها در OpenSSH افشا شده است که به حملاتی در سطح اجرای کد از راه دور (RCE) منجر میشود و اهمیت توجه دقیق به تنظیمات SSH را بار دیگر به شرکتها و توسعهدهندگان یادآوری میکند.
به گزارش روز صفر پژوهشگران امنیتی اخیراً نقصی امنیتی را در ویژگی ProxyCommand نرمافزار OpenSSH شناسایی کردهاند که تحت شناسه CVE-2025-61984 ثبت شده است. این نقص، نوعی تزریق دستوری (command injection) است که مهاجم را قادر میسازد با دستکاری بخش نام کاربری، کنترل دستوری بر سیستم قربانی به دست آورد.
در این آسیبپذیری، مشکل هنگامی رخ میدهد که OpenSSH هنگام اجرای ProxyCommand، نام کاربری را به مفسری مانند Bash یا csh ارسال میکند بدون اینکه کاراکترهای کنترل مانند newline به درستی فیلتر شوند. مهاجم میتواند نام کاربری بسازد که پس از newline، دستورات مخرب قرار دارد. مفسری مثل Bash وقتی با خطایی در دستور مواجه شود، دستور اول را نادیده میگیرد ولی به اجرای خط بعد ادامه میدهد؛ و این امکان را فراهم میکند که دستورات مخرب اجرا شوند.
از جمله روشهای عملی که این ضعف را بهرهبرداری میکند، وضعیت استفاده از Git با زیرماژولهاست. مهاجم میتواند آدرس زیرماژولها را به گونهای تنظیم کند که نام کاربری آن شامل کد مخرب باشد. وقتی قربانی مخزن را همراه با گزینه --recursive کلون کند، Git تلاش میکند با SSH به مخزن زیرماژولها متصل شود و این فرآیند ممکن است فرمان ProxyCommand آسیبپذیر را اجرا کند.
نکته مهم این است که برخی نرمافزارها و ابزارها مانند Teleport موقع تولید خودکار پیکربندی SSH، از الگوی آسیبپذیری برخوردارند؛ یعنی آنها از ProxyCommand همراه با %r در تنظیمات استفاده میکنند که ممکن است مهاجمان را توانمند سازد تا از این ضعف بهره برند. قابل ذکر است که برخی پوستهها مانند zsh نسبت به این حمله مقاوم هستند زیرا در مواجهه با خطایی در دستورات، فوراً اجرا را متوقف میکنند.
گستره تأثیر و نسخههای آسیبپذیر
آسیبپذیری CVE-2025-61984 به نسخههایی از OpenSSH مربوط است که پیش از نسخه ۱۰.۱ انتشار یافتهاند. مفسرهای قرار گرفته در این محدوده، هنگام مواجهه با نام کاربری حاوی کاراکترهای کنترل، ممکن است به طور ناخواسته دستورات اضافه را اجرا کنند.
چندین توزیع لینوکسی، سیستمهای مبتنی بر BSD و دستگاههای مدیریتشدهای که SSH را در مدیریت خود جای دادهاند، در معرض خطر هستند. همچنین، استفاده از قابلیت ProxyCommand در محیطهایی مانند سرورهای پرش (jump servers) یا Bastion، شرایط را برای سوءاستفاده فراهمتر میکند.
راهکارهای مقابله و کاهش ریسک
برای کاهش خطر ناشی از این ضعف امنیتی، اقدامات زیر حیاتی به نظر میرسند:
- بهروزرسانی به نسخه امن: نسخه ۱۰.۱ OpenSSH نسخهای است که این آسیبپذیری را رفع کرده است. لذا ارتقای نرمافزار به آن نسخه یا نسخههای بالاتر ضروری است.
- گنجاندن نام کاربری در علامت نقلقول: اگر هنوز امکان ارتقا وجود ندارد، یکی از روشهای موقتی شامل قرار دادن
%rدر تنظیمات ProxyCommand داخل نقلقول (‘%r’) است تا از تفسیر ناخواسته جلوگیری شود. - غیرفعالسازی ProxyCommand در صورت عدم نیاز: اگر سازمان شما به صورت عادی از ProxyCommand استفاده نمیکند، توصیه میشود آن را غیرفعال کنید.
- محدودسازی کلون زیرماژولها با SSH: اطمینان حاصل کنید که مخازن زیرماژولها از پروتکل HTTPS به جای SSH استفاده کنند یا از کلون بازگشتی (
recursive clone) پرهیز شود. - بازبینی و بازنگری پیکربندی SSH: فایلهای
~/.ssh/config،/etc/ssh/ssh_configو/etc/ssh/sshd_configرا برای وجود خطوط ProxyCommand بررسی کرده و در صورت یافتن، آنها را بازبینی کنید. - نظارت بر رفتار مشکوک سیستم: رصد لاگهای SSH، فعالیتهای اجرای ناخواسته شلها و فرآیندهای کودک ناگهانی که از طریق SSH یا Git ظاهر شدهاند میتواند در تشخیص سوءاستفاده مفید باشد.
این آسیبپذیری نشان میدهد که حتی امکاناتی که به ظاهر امنیت را ارتقا میدهند (مثل ProxyCommand) میتوانند به نقطهای برای حملات تبدیل شوند اگر تعامل آنها با سیستم عاملی ناایمن یا با کاراکترهای کنترل به درستی مهار نشده باشد. برای سازمانها و شرکتها در ایران که به طور گسترده از SSH در مدیریت سرورها، توسعه نرمافزار، DevOps و زیرساخت ابری استفاده میکنند، توجه سریع به این گونه ضعفها حیاتی است.




