خانه » CVE-2026-32746

CVE-2026-32746

Pre-Authentication Buffer Overflow Leading to Remote Code Execution

توسط Vulnerbyte Alerts
13 بازدید

چکیده

آسیب‌پذیری بحرانی در سرویس telnetd از مجموعه GNU inetutils به دلیل وجود سرریز بافر (Buffer Overflow) در فرآیند پردازش زیرگزینه LINEMODE SLC و در مرحله تعیین گزینه‌های پروتکل Telnet (Option Negotiation) رخ می‌دهد. این ضعف به مهاجم از راه دور اجازه می‌دهد با ارسال یک درخواست دستکاری‌شده از طریق شبکه و بدون نیاز به احراز هویت، موجب خرابی حافظه (Memory Corruption) شده و در نهایت اجرای کد دلخواه (RCE) را با سطح دسترسی root روی سیستم هدف ممکن سازد.

توضیحات

آسیب‌پذیری CVE-2026-32746 یک ضعف بحرانی از نوع سرریز بافر (Buffer Overflow) مطابق با CWE-120 است که در پیاده‌سازی LINEMODE SLC (Set Local Characters) در سرویس telnetd از بسته GNU inetutils مشاهده می‌شود. این بخش از کد وظیفه پردازش زیرگزینه‌های SLC در پروتکل Telnet را بر عهده دارد؛ پروتکلی که برای ارتباط ترمینالی از طریق شبکه و بر پایه مکانیزم تعیین گزینه‌های پروتکل (Option Negotiation) با استفاده از کاراکتر کنترلی IAC (Interpret As Command) طراحی شده است.

ریشه این آسیب‌پذیری در فایل ‎telnetd/slc.c‎ و به‌طور مشخص در تابع ‎add_slc‎ قرار دارد. این تابع مسئول افزودن داده‌های SLC سه گانه  دریافتی  شامل سه مقدار ‎func‎، ‎flag‎ و ‎value‎ به یک بافر ثابت به نام ‎slcbuf‎ است؛ بافری که اندازه کل آن 108 بایت است، اما تنها 104 بایت آن برای ذخیره‌سازی واقعی سه گانه  ها استفاده می‌شود و 4 بایت پایانی در عمل به‌عنوان فضای رزرو باقی می‌ماند. نکته کلیدی این است که در این تابع هیچ‌گونه بررسی برای کنترل ظرفیت بافر (Buffer Boundary Checking) انجام نمی‌شود؛ در نتیجه اشاره‌گر داخلی slcptr بدون محدودیت به نوشتن ادامه داده و از مرز حافظه تخصیص‌یافته عبور می‌کند.

در سناریوی حمله، کلاینت می‌تواند یک زیرگزینه SLC با حجم بالا ارسال کند؛ این زیرگزینه در چارچوب محدودیت پروتکل می‌تواند تا حدود 512 بایت داده شامل تقریباً 170 سه گانه   را در بر بگیرد. در صورتی که مقدار func هر یک از این سه گانه  ها بزرگ‌تر از 18 باشد (که نشان‌دهنده عدم پشتیبانی آن قابلیت است)، سرور برای هر مورد یک پاسخ پشتیبانی نشده (not supported) تولید کرده و این پاسخ‌ها از طریق تابع add_slc در همان بافر slcbuf ذخیره می‌شوند. در نتیجه، پس از پردازش حدود 35 سه گانه ، ظرفیت بافر به پایان رسیده و عملیات نوشتن از محدوده مجاز خارج می‌شود.

این وضعیت منجر به نوشتن خارج از محدوده حافظه (Out-of-bounds Write) شده و بخش‌های مجاور در حافظه، به‌ویژه قسمت BSS (Block Started by Symbol segment) را تحت تأثیر قرار می‌دهد. در این میان حتی ساختار حیاتی slcptr نیز ممکن است بازنویسی شود. در ادامه، تابع end_slc از این اشاره‌گر مخرب استفاده می‌کند که نتیجه آن ایجاد یک شرایط نوشتن دلخواه در حافظه (Arbitrary Write Primitive) است؛ قابلیتی که در عمل می‌تواند منجر به کنترل جریان اجرای برنامه و در نهایت اجرای کد دلخواه از راه دور (RCE) شود.

این آسیب‌پذیری به‌صورت کاملاً از راه دور و بدون نیاز به احراز هویت (Pre-Authentication) و همچنین بدون تعامل کاربر قابل بهره‌برداری است. مهاجم تنها کافی است به پورت 23 متصل شده و در فرآیند اولیه تعیین گزینه‌های Telnetبا ارسال پاسخ WILL LINEMODE در مقابل پیام DO LINEMODE از سوی سرور، حالت LINEMODE را فعال کند. پس از آن، ارسال یک LINEMODE SLC suboption دست‌کاری‌شده برای ایجاد سرریز بافر کافی است. این حمله به دلیل ساختار ساده و قابل پیش‌بینی داده‌ها، به‌راحتی قابل خودکارسازی بوده و با استفاده از اسکریپت‌ها یا ابزارهای تولید بسته‌های Telnet قابل اجرا است.

کد اثبات مفهومی (PoC) منتشرشده نشان می‌دهد که تنها با ارسال حدود 40 تا 50 سه گانه  مخرب می‌توان موجب کرش برنامه یا ایجاد خرابی کنترل‌شده در حافظه شد که زمینه‌ساز بهره‌برداری پیشرفته‌تر است. در سناریوهای عملی، این وضعیت می‌تواند منجر به توسعه اکسپلویت کامل و دستیابی به اجرای کد دلخواه شود.

از منظر اثرگذاری، این آسیب‌پذیری می‌تواند محرمانگی (Confidentiality) را از طریق دسترسی غیرمجاز به داده‌های سیستم، یکپارچگی (Integrity) را از طریق تغییر یا دستکاری ساختارهای سیستمی و فایل‌ها، و دسترس‌پذیری (Availability) را از طریق از کار انداختن سرویس یا ایجاد کرش‌های هدفمند به‌طور کامل تحت تأثیر قرار دهد. نکته بسیار مهم این است که سرویس telnetd در بسیاری از پیاده‌سازی‌ها با سطح دسترسی root اجرا می‌شود؛ بنابراین موفقیت در بهره‌برداری از این ضعف می‌تواند معادل با تصاحب کامل سیستم  باشد.

در زمان نگارش این تحلیل، برای این آسیب‌پذیری پچ رسمی منتشر نشده است که این موضوع ریسک عملیاتی آن را در محیط‌های در معرض اینترنت به‌طور قابل توجهی افزایش می‌دهد.

CVSS

Score Severity Version Vector String
9.8 CRITICAL 3.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

لیست محصولات آسیب پذیر

Versions Product
affected from 0 through 2.7 inetutils

استفاده محصول در ایران

در این جدول، تعداد صفحات ایندکس‌شده در گوگل با دامنه .ir که Inetutils را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.

Approx. Usage in .ir Domain via Google (Total Pages) Search Query (Dork) Product
18700 site:.ir “Telnet” Inetutils

نتیجه گیری

این آسیب‌پذیری در سرویس telnetd از بسته GNU inetutils به دلیل ضعف در کنترل مرزهای حافظه هنگام پردازش سه گانه های SLC (Set Local Characters) رخ می‌دهد. در نتیجه، مهاجم می‌تواند تنها با برقراری یک اتصال ساده به پورت 23 و ارسال داده دستکاری‌شده، شرایط سرریز بافر را ایجاد کرده و در نهایت به اجرای کد از راه دور با سطح دسترسی root دست یابد. از آنجا که این ضعف پیش از مرحله احراز هویت قابل بهره‌برداری است، سطح ریسک آن بسیار بالا ارزیابی می‌شود و نیازمند اقدام فوری برای کاهش سطح حمله است.

برای کاهش ریسک و جلوگیری از بهره‌برداری، اقدامات زیر توصیه می‌شود:

  • غیرفعال‌سازی سرویس Telnet: اگر استفاده از Telnet ضرورت ندارد، سرویس telnetd را به‌طور کامل غیرفعال کرده و به‌جای آن از پروتکل امن‌تری مانند SSH استفاده کنید؛ زیرا Telnet فاقد رمزنگاری و بسیاری از سازوکارهای امنیتی پایه است.
  • محدودسازی دسترسی شبکه‌ای: دسترسی به پورت 23 را در فایروال تا حد امکان محدود کرده و آن را فقط به آدرس‌های مشخص و مورد اعتماد اختصاص دهید.
  • ایزوله‌سازی سرویس: در صورت نیاز به استفاده از Telnet، بهتر است telnetd در محیط‌های ایزوله مانند Docker، chroot jail یا sandbox اجرا شود تا در صورت سوءاستفاده، دامنه اثر حمله محدود بماند.
  • محدودسازی مسیر دسترسی: دسترسی به Telnet را تنها از طریق شبکه‌های داخلی امن یا مسیرهای کنترل‌شده‌ای مانند VPN یا Gateway مدیریتی فراهم کنید.
  • کاهش سطح دسترسی سرویس: سرویس telnetd را با حداقل سطح دسترسی ممکن اجرا کرده و در صورت امکان از سیاست‌های ایمن‌سازی مانند SELinux یا AppArmor برای محدود کردن قابلیت‌های آن استفاده کنید.
  • مانیتورینگ امنیتی: لاگ‌های telnetd را با سطح جزئیات بالا (مانند DEBUG) ثبت و بررسی کنید تا عملکردهای غیرعادی، مانند زیرگزینه‌های غیرمعمول یا الگوهای غیرطبیعی در تعیین گزینه‌ها شناسایی شوند.

ترکیب اقداماتی مانند غیرفعال‌سازی Telnet، محدودسازی دسترسی شبکه‌ای و ایزوله‌سازی سرویس می‌تواند احتمال بهره‌برداری از این آسیب‌پذیری را به‌طور قابل توجهی کاهش داده و از سناریوهای بحرانی مانند تصاحب کامل سیستم جلوگیری کند.

امکان استفاده در تاکتیک‌های Mitre Attack (در زمان اجرای حمله)

Initial Access (TA0001)
مهاجم با اسکن شبکه و شناسایی یک سرویس telnetd آسیب‌پذیر، یک اتصال TCP به پورت 23 برقرار می‌کند. با ارسال یک پیام دست دادن (handshake) خاص حاوی زیرگزینه LINEMODE SLC و بدون نیاز به احراز هویت، موفق به بهره‌برداری از آسیب‌پذیری و دستیابی اولیه به سیستم می‌شود.

Execution (TA0002)
کلاهبرداری از طریق آسیب‌پذیری سرریز بافر، به مهاجم اجازه می‌دهد تا کد دلخواه خود را بر روی سیستم هدف اجرا کند. در موفقیت‌آمیزترین سناریو، مهاجم می‌تواند یک شل (shell) معکوس (reverse shell) یا یک شل بایند (bind shell) با دسترسی root اجرا کند و کنترل کامل سیستم را در دست گیرد.

Privilege Escalation (TA0004)
از آنجایی که سرویس telnetd معمولاً با بالاترین سطح دسترسی (root) اجرا می‌شود، بهره‌برداری موفق مستقیماً منجر به دستیابی به privileged account می‌شود و عملاً نیازی به Privilege Escalation مجزا نیست. مهاجم بلافاصله به سطح دسترسی root می‌رسد.

Credential Access (TA0006)
مهاجم با اجرای کد با دسترسی root، می‌تواند به تمام فایل‌های سیستم از جمله فایل‌های حاوی رمز عبور مانند /etc/shadow دسترسی پیدا کرده و اطلاعات احراز هویت کاربران را استخراج کند.

Impact (TA0040)
بهره‌برداری موفق از این آسیب‌پذیری می‌تواند عواقب فاجعه‌باری به همراه داشته باشد. مهاجم با دسترسی کامل root، قادر به نابودی محرمانگی، یکپارچگی و در دسترس بودن داده‌های سیستم است. این دسترسی می‌تواند منجر به سرقت اطلاعات حساس، تخریب داده‌ها، نصب باج‌افزار (Ransomware)، تغییر در پیکربندی سیستم، ایجاد یک پل برای حملات بیشتر به شبکه داخلی سازمان (Lateral Movement) و در نهایت از کار افتادن کامل سرویس‌های حیاتی شود. در چنین وضعیتی، اعتماد کاربران از بین رفته و سازمان با هزینه‌های سنگین ناشی از نقض داده‌ها، جریمه‌های قانونی و خسارت به اعتبار خود مواجه خواهد شد.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2026-32746
  2. https://www.cvedetails.com/cve/CVE-2026-32746/
  3. https://lists.gnu.org/archive/html/bug-inetutils/2026-03/msg00031.html
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2026-32746
  5. https://vuldb.com/vuln/350997
  6. https://www.openwall.com/lists/oss-security/2026/03/12/4
  7. https://nvd.nist.gov/vuln/detail/CVE-2026-32746
  8. https://cwe.mitre.org/data/definitions/120.html

همچنین ممکن است دوست داشته باشید

پیام بگذارید