تاثیر آسیبپذیریهای اجرای کد PHP Everywhere بر هزاران وبسایت وردپرس

به تازگی محققان امنیت سایبری از وجود آسیبپذیریهای اجرای کد از راه دور یا RCE (مخفف remote code execution ) حیاتی در یکی از افزونههای محبوب وردپرس خبر دادند.
این آسیبپذیریها در ابزاری تحت عنوان PHP Everywhere وجود دارند. توسعهدهندگان وب با استفاده از این ابزار میتوانند کدهای PHP را در صفحات، مطالب، نوارکناری یا هر بخشی از وبسایتهای وردپرس که دارای بلاک Gutenberg (بلاکهای ویرایشی در وردپرس) است درج کنند. این افزونه در بیش از 30 هزار وبسایت استفاده شده است.
بنا به گفته تیم هوش تهدید WordFence: «تعداد آسیبپذیریهای موجود در افزونه PHP Everywhere سه تا بوده و این آسیبپذیریها میتوانند منجر به اجرای کد از راه دور در نسخه پایینتر از 2.0.3 شوند».
اولین آسیبپذیری با کد CVE-2022-24663 شناسایی شده و درجه وخامت آن بر اساس سیستم رتبهبندی CVSS، عدد 9.9 است.
وردپرس به کاربرانی که احراز هویت شده باشند اجازه میدهد کدهای کوتاه را از طریق اکشن parse-media-shortcode در Ajax اجرا کنند. در این حالت کاربرانی که وارد سیستم شدهاند، حتی اگر هیچ امتیاز خاصی نداشته و فقط جزو مشترکان معمولی وبسایت باشند، میتوانند با ارسال یک درخواست خاص، هر کد PHP دلخواهی را اجرا نموده و حتی کنترل کامل وبسایت را هم در اختیار بگیرند.
آسیبپذیری CVE-2022-24664 هم که درجه وخامت 9.9 دارد، دومین آسیبپذیری RCE میباشد که توسط محققان امنیت سایبری افشا شده است. این آسیبپذیری در شیوه مدیریت meta boxها (کادرهای متنی قابل جابجایی در صفحه) توسط PHP Everywhere وجود دارد. همچنین مجوز استفاده از این توابع توسط کاربرانی که دارای قابلیت edit_posts هستند نقش بسیار مهمی در بروز این آسیبپذیری دارد.
بنا به گفته محققان WordFence: «کاربران غیرقابل اعتمادی که به عنوان مشارکت کننده[1] در وبسایت ثبت شدهاند، میتوانند از meta box ابزار PHP Everywhere برای اجرای کد از راه دور در یک وبسایت استفاده کنند. جهت دستیابی به چنین هدفی کافیست این کاربران یک مطلب ایجاد نموده، کد PHP را به meta box ابزار PHP Everywhere اضافه کنند و سپس پیش نمایش مطلب را مشاهده کنند. اگرچه درجه وخامت این آسیبپذیری با آسیبپذیری shortcode یکسان است ولی چون نیاز به دسترسیهای سطح مشارکتکننده دارد دارای شدت کمتری است».
درجه وخامت آسیبپذیری سوم که با کد CVE-2022-24665 پیگیری میشود 9.9 است. همه کاربران دارای دسترسی edit_posts میتوانند از بلاکهای Gutenberg افزونه PHP Everywhere استفاده کنند. مهاجمان نیز با استفاده از این روش میتوانند کدهای PHP دلخواه را اجرا و در عملکرد وبسایت اختلال ایجاد کنند.
پیش از این هم امکان تنظیم این قابلیت فقط برای مدیران وجود داشت ولی در نسخههای پایینتر از 2.0.3 امکان پیادهسازی آن در حالت پیش فرض وجود ندارد.
توسعهدهندگان بلافاصله پس از اطلاع از وجود چنین آسیبپذیریهایی در چهارم ژانویه 2022، آنها را رفع کردند. نسخه v.3.0.0 که نسخه اصلاح شده افزونه مدنظر است در دهم ژانویه منتشر و عرضه گردید.
یکی از توسعهدهندگان بهنام Alexander Fuchs میگوید: «این به روزرسانی موجب ایجاد تغییری مهم شده است. در نسخه v.3.0.0 بعضی از قابلیتهای ویرایشگر بلوکی حذف شده و کاربرانی که با مشکل روبرو میشوند (از جمله کاربرانی که از ویرایشگر کلاسیک استفاده میکنند) هم باید کد قدیمی را به نسخه بلوکی Gutenberg ارتقا داده یا از راهکار دیگری برای اجرای PHP استفاده نمایند.
اگرچه در حال حاضر بیش از 30 درصد از کاربران این به روزرسانی را انجام دادهاند ولی همچنان تعداد بسیار زیادی از وبسایتها از نسخه آسیبپذیر پلاگین ذکر شده استفاده میکنند.
[1] یکی از نقشهای کاربری در وردپرس
منبع: zdnet