مشکل
کدی که () string_interpret_escape را فراخوانی میکند، بافری را بر اساس اندازه واقعی برای درن اختصاص میدهد و نشانگر در معرض دید به ناحیهای خارج از محدوده بافر ختم میشود. بر این اساس، هنگام تلاش برای پردازش یک رشته ورودی، هنگام خواندن دادهها از ناحیهای خارج از محدوده بافر اختصاصیافته، وضعیتی پیش میآید و تلاش برای نوشتن یک رشته بدون فرار میتواند منجر به نوشتن فراتر از مرزهای بافر شود.
در پیکربندی پیشفرض، هنگام ایجاد یک اتصال امن به سرور، میتوان از آسیبپذیری با ارسال دادههای طراحی شده ویژه به SNI سوء استفاده کرد. این مشکل همچنین می تواند با تغییر مقادیر peerdn در پیکربندی های پیکربندی شده برای تأیید اعتبار گواهی مشتری یا هنگام وارد کردن گواهی ها مورد سوء استفاده قرار گیرد. حمله از طریق SNI و peerdn از زمان انتشار امکان پذیر است
یک نمونه اولیه اکسپلویت برای حمله از طریق SNI آماده شده است که بر روی معماری i386 و amd64 در سیستم های لینوکس با Glibc اجرا می شود. این اکسپلویت از همپوشانی داده ها در ناحیه پشته استفاده می کند و در نتیجه حافظه ای را که نام فایل log در آن ذخیره می شود، بازنویسی می کند. نام فایل با "/../../../../../../../../etc/passwd" جایگزین می شود. در مرحله بعد، متغیر با آدرس فرستنده بازنویسی می شود که ابتدا در گزارش ذخیره می شود و به شما امکان می دهد یک کاربر جدید به سیستم اضافه کنید.
به روز رسانی بسته با رفع آسیب پذیری های منتشر شده توسط توزیع ها
به عنوان یک راه حل برای جلوگیری از آسیب پذیری، می توانید پشتیبانی TLS را غیرفعال کنید یا اضافه کنید
بخش ACL "acl_smtp_mail":
شرط انکار = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
شرط انکار = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
منبع: opennet.ru