۱۳۹۲/۷/۲۶، ۱۷:۱۰:۴۳ عصر
(آخرین ویرایش: ۱۳۹۲/۱۰/۲۶، ۰۲:۴۲:۴۴ صبح، توسط Mohammad-Za.)
نسخهی MyBB 1.6.11 حدود 10 روز پیش منتشر شد. اما به علت مشکلاتی که برای من به وجود آمدهاست، نتوانستم این نسخه را در زمان مناسب برای کاربران معرفی کنم.
وصلههای امنیتی مهم
یکی از کاربران به نام Philly به ما گزارش داد که یک کاربر توانسته است در هنگام ثبتنام برای نام کاربری خود از سه حرف emoji(حروف ویژه) استفاده کند که این امر موجب شدهاست که آن کاربر پس از ثبت نام، جزء گروه کاربری ثبت نام نشده قرار گیرد. پس از بررسی این موضوع، ما به این پی بردیم که این مسئله، خیلی پیچیدهتر از آن چیزی است که فکر میکنیم.
بررسی فنی این موضوع به این صورت است که عملکرد MYSQL برای UTF-8، تنها حروفی که حداکثر 3 بایت هستند را پشتیبانی میکند. درنتیجه هنگامی که شخصی بخواهد یک رشتهی 4 بایتی با فرمت utf8 را به دیتابیس اضافه کند، MYSQL بلافاصله، رشته را قبل از حرف 4 بایتی قطع میکند[و در نتیجه، رشته به صورت ناقص به دیتابیس اضافه میشود]. این نه تنها باعث به وجود آمدن مشکلات امنیتی میشود، بلکه بر استفادهی کاربر از انجمن نیز تأثیر منفی میگذارد به این صورت که ممکن است نصف پستها و پیامهای خصوصی کاربر بدون اینکه دلیل آنرا متوجه شود، حذف شود.
این مشکل هنگامی که یک شخص برای ثبتنام تنها از حروف 4 بایتی با فرمت UTF8 به عنوان نام کاربری خود استفاده کردهبود، خود را نشان داد. به اینصورت که همانطور که قبلاً گفته شد، MYSQL رشته را پیش از اولین حرف 4 بایتی قطع میکند[و چون اوّلین حرف نام کاربری 4 بایتی بودهاست] ستون مربوط به نام کاربری، به صورت خالی به دیتابیس اضافه شدهاست.
هنگامی که یک کاربر یک پیام خصوصی را برای کاربر دیگری ارسال میکند، ممکن است به صورت خودکار به کاربر بدون نام ارسال شود و او بتواند آن پیام خصوصی را بخواند.
این مشکل امنیتی، تنها دیتابیسهای MYSQL و با فرمت utf8_general_ci [که انجمنهای پارسی زبان هم از این فرمت استفاده میکنند] را تحت تأثیر قرار میدهد.(این مشکل ممکن است برای فرمت utf8_unicode_ci هم به وجود آید).
بنابراین، افرادی که از دیتابیسهای SQLite یا PostgreSQL استفاده میکنند، تحت تأثیر این مشکل قرار نخواهند گرفت.
چه قابلیتی به نسخهی 1.6.11 اضافه شده است یا چه چیزی در آن تغییر کرده است؟
در این نسخه، 5 آسیبپذیری امنیتی و بیش از 65 مشکل گزارش شده که باعث ایجاد تداخل برای عملکرد درست انجمن میشود، برطرف شده است. توجه کنید که به دلیل مقدور شدن ارائهی بستههای بهروزرسانی قابل کنترل، در این نسخه، تمامی مشکلات MyBB برطرف نشده است!
آسیب پذیریهای برطرف شده:
جهت مشاهدهی جزییات تغییرات در این نسخه، به صفحهی مستندات تغییرات در نسخهها مراجعه کنید.
به روزرسانی از نسخهی 1.6.10 و سایر نسخه ها
پیش از هر کاری انجمن خود را بسته و از دیتابیس خود و همین طور فایل های خود در یک محل امن، پشتیبانگیری کنید.
اگر فایل های هسته را تغییر داده اید، لطفاً آنها را ثبت کنید سپس بعد از بهروزرسانی میتوانید آن تغییرات را دوباره اعمال کنید.
اگر پلاگینی نصب کرده اید که برای عمل کردن نیازمند تغییرات در فایلهای هسته است ، پس از به روزرسانی باید آن تغییرات را دوباره اعمال کنید.
برای بهروزرسانی، اجرای بهروزرسان، الزامی میباشد. همچنین تغییراتی در 4 مورد از فایلهای زبان و 5 تغییر در قالبها ایجاد شده است.
اگر از MyBB 1.6.10 استفاده میکنید:
اگر از MyBB 1.6.10 استفاده نمی کنید:
آسیبپذیری MyBB 1.6.11
درصورتی که فکر میکنید آسیبپذیری امنیتیای در MyBB یافته اید٬ از انتشار آن خودداری کرده و آن را به ما گزارش دهید (لینک گزارش).
همچنین می توانید این مشکلات را در بخش Private Inquiries انجمن مطرح کنید چرا که در این انجمن، تنها مدیران و خودتان میتوانید ارسالهایتان را ببینید.
با سپاس
تیم MyBB
وصلههای امنیتی مهم
یکی از کاربران به نام Philly به ما گزارش داد که یک کاربر توانسته است در هنگام ثبتنام برای نام کاربری خود از سه حرف emoji(حروف ویژه) استفاده کند که این امر موجب شدهاست که آن کاربر پس از ثبت نام، جزء گروه کاربری ثبت نام نشده قرار گیرد. پس از بررسی این موضوع، ما به این پی بردیم که این مسئله، خیلی پیچیدهتر از آن چیزی است که فکر میکنیم.
بررسی فنی این موضوع به این صورت است که عملکرد MYSQL برای UTF-8، تنها حروفی که حداکثر 3 بایت هستند را پشتیبانی میکند. درنتیجه هنگامی که شخصی بخواهد یک رشتهی 4 بایتی با فرمت utf8 را به دیتابیس اضافه کند، MYSQL بلافاصله، رشته را قبل از حرف 4 بایتی قطع میکند[و در نتیجه، رشته به صورت ناقص به دیتابیس اضافه میشود]. این نه تنها باعث به وجود آمدن مشکلات امنیتی میشود، بلکه بر استفادهی کاربر از انجمن نیز تأثیر منفی میگذارد به این صورت که ممکن است نصف پستها و پیامهای خصوصی کاربر بدون اینکه دلیل آنرا متوجه شود، حذف شود.
این مشکل هنگامی که یک شخص برای ثبتنام تنها از حروف 4 بایتی با فرمت UTF8 به عنوان نام کاربری خود استفاده کردهبود، خود را نشان داد. به اینصورت که همانطور که قبلاً گفته شد، MYSQL رشته را پیش از اولین حرف 4 بایتی قطع میکند[و چون اوّلین حرف نام کاربری 4 بایتی بودهاست] ستون مربوط به نام کاربری، به صورت خالی به دیتابیس اضافه شدهاست.
هنگامی که یک کاربر یک پیام خصوصی را برای کاربر دیگری ارسال میکند، ممکن است به صورت خودکار به کاربر بدون نام ارسال شود و او بتواند آن پیام خصوصی را بخواند.
این مشکل امنیتی، تنها دیتابیسهای MYSQL و با فرمت utf8_general_ci [که انجمنهای پارسی زبان هم از این فرمت استفاده میکنند] را تحت تأثیر قرار میدهد.(این مشکل ممکن است برای فرمت utf8_unicode_ci هم به وجود آید).
بنابراین، افرادی که از دیتابیسهای SQLite یا PostgreSQL استفاده میکنند، تحت تأثیر این مشکل قرار نخواهند گرفت.
چه قابلیتی به نسخهی 1.6.11 اضافه شده است یا چه چیزی در آن تغییر کرده است؟
در این نسخه، 5 آسیبپذیری امنیتی و بیش از 65 مشکل گزارش شده که باعث ایجاد تداخل برای عملکرد درست انجمن میشود، برطرف شده است. توجه کنید که به دلیل مقدور شدن ارائهی بستههای بهروزرسانی قابل کنترل، در این نسخه، تمامی مشکلات MyBB برطرف نشده است!
آسیب پذیریهای برطرف شده:
- (خطر زیاد) مشکل امنیتی رد کردن بخش بررسی مجوز(Authorization bypass) ارسال در بخش پیامهای خصوصی (گزارش شده توسط: Philly)
- (خطر متوسط) حسابهای کاربری بدون کلید ورود (Login Key) ممکن است ربوده شوند (گزارش شده توسط: StefanT)
- (خطر کم) ضعف در تابع generate_post_check() (گزارش شده توسط: Nathan Malcolm)
- (خطر کم) آمارهای ناشناس، ممکن است همیشه ناشناس نباشند (گزارش شده توسط: Nathan Malcolm)
- (خطر کم) پشتیبانگیری از دیتابیس، در بخش کارهای انجام شدهی مدیر نمایش داده میشود (گزارش شده توسط: Nathan Malcolm)
جهت مشاهدهی جزییات تغییرات در این نسخه، به صفحهی مستندات تغییرات در نسخهها مراجعه کنید.
به روزرسانی از نسخهی 1.6.10 و سایر نسخه ها
پیش از هر کاری انجمن خود را بسته و از دیتابیس خود و همین طور فایل های خود در یک محل امن، پشتیبانگیری کنید.
اگر فایل های هسته را تغییر داده اید، لطفاً آنها را ثبت کنید سپس بعد از بهروزرسانی میتوانید آن تغییرات را دوباره اعمال کنید.
اگر پلاگینی نصب کرده اید که برای عمل کردن نیازمند تغییرات در فایلهای هسته است ، پس از به روزرسانی باید آن تغییرات را دوباره اعمال کنید.
برای بهروزرسانی، اجرای بهروزرسان، الزامی میباشد. همچنین تغییراتی در 4 مورد از فایلهای زبان و 5 تغییر در قالبها ایجاد شده است.
اگر از MyBB 1.6.10 استفاده میکنید:
- فایل های تغییر یافته را دریافت کنید (لینک دریافت)
- آخرین نسخهی پارسی ساز را دریافت کنید (لینک دریافت)
- سپس طبق آموزش، بهروزرسانی را انجام دهید (لینک آموزش)
اگر از MyBB 1.6.10 استفاده نمی کنید:
- بستهی کامل پارسی MyBB 1.6.11 را دریافت کنید (لینک دریافت)
- سپس طبق آموزش، بهروزرسانی را انجام دهید (لینک آموزش)
آسیبپذیری MyBB 1.6.11
درصورتی که فکر میکنید آسیبپذیری امنیتیای در MyBB یافته اید٬ از انتشار آن خودداری کرده و آن را به ما گزارش دهید (لینک گزارش).
همچنین می توانید این مشکلات را در بخش Private Inquiries انجمن مطرح کنید چرا که در این انجمن، تنها مدیران و خودتان میتوانید ارسالهایتان را ببینید.
با سپاس
تیم MyBB