Elementor Pro 4.2.1 এবং এর আগের সংস্করণগুলোতে Forms উইজেটের ফাইল-আপলোড ফিল্ডে একটি আন-অথেন্টিকেটেড রিমোট-কোড-এক্সিকিউশন (RCE) ত্রুটির কারণে সাইট ক্ষতিগ্রস্ত হতে পারে; এই সমস্যাটি 4.2.2 সংস্করণে সমাধান (patch) করা হয়েছে, তাই পুরনো কোড ব্যবহারকারী সাইটগুলোর অবিলম্বে আপডেট করা উচিত।

বাগটি কী করে

এই দুর্বলতার CVSS রেটিং হলো 9.0, যার অর্থ হলো একজন আক্রমণকারী যদি একটি দুর্বল সাইটে প্রবেশ করতে পারে, তবে সে লগ-ইন না করেই বা কোনো ক্রেডেনশিয়াল প্রদান না করেই সার্ভারে যেকোনো PHP কোড চালাতে পারে। সমস্যাটি মূলত Elementor Pro-এর Forms উইজেটে ফাইল আপলোড প্রসেস করার পদ্ধতিতে নিহিত। প্লাগইনটি দুটি আলাদা লুপ চালায়: একটি প্রতিটি আপলোড করা ফাইল যাচাই (validate) করে এবং অন্যটি ফাইলটিকে ওয়েব-অ্যাক্সেসযোগ্য আপলোড ডিরেক্টরিতে সেভ করে।

একজন আক্রমণকারী এমন একটি রিকোয়েস্ট তৈরি করতে পারে যাতে দুটি ফাইল থাকে। প্রথম ফাইলটির নাম খালি রাখা হয়, যার ফলে ভ্যালিডেশন লুপটি এর পরীক্ষাটি এড়িয়ে যায়। দ্বিতীয় ফাইলটি একটি ক্ষতিকারক PHP স্ক্রিপ্ট, যা দ্বিতীয় লুপটি পার হয়ে একটি পাবলিক ফোল্ডারে সংরক্ষিত হয়। যেহেতু Elementor Pro আপলোড করা ফাইলগুলোর নাম টাইমস্ট্যাম্প ব্যবহার করে নির্ধারণ করে, তাই আক্রমণকারী ফাইলের নাম আগে থেকে অনুমান করতে পারে এবং পরবর্তীতে কোডটি চালানোর জন্য সরাসরি ফাইলটি রিকোয়েস্ট করতে পারে।

ত্রুটিটি কীভাবে তৈরি হলো

ডুয়াল-লুপ ডিজাইনটি ভ্যালিডেশন এবং স্টোরেজকে স্বাধীন রাখার জন্য তৈরি করা হয়েছিল, কিন্তু একটি শেয়ার্ড স্যানিটি চেকের (sanity check) অভাবে খালি নামের এই কৌশলটি কাজ করে যায়। এই বাগটি Forms উইজেটের ফাইল-আপলোড ফিল্ড ব্যবহার করে এমন প্রতিটি ইনস্টলেশনকে প্রভাবিত করে, সাইট মালিক ভিজিটরদের জন্য সেই ফিচারটি চালু রেখেছেন কি না তা এখানে বিবেচ্য নয়।

কারা ঝুঁকির মুখে আছেন

যে কোনো WordPress সাইটে যদি Elementor Pro 4.2.1 বা এর আগের কোনো সংস্করণ ইনস্টল করা থাকে, তবে সেটি ঝুঁকির মুখে রয়েছে। যেহেতু এই এক্সপ্লয়েটটির জন্য অথেন্টিকেশন বা লগ-ইন করার প্রয়োজন নেই, তাই অ্যাডমিন অ্যাক্সেস সীমিত করা সাইটগুলোও এর শিকার হতে পারে। সফলভাবে আক্রমণ করতে পারলে আক্রমণকারী হোস্টিং এনভায়রনমেন্টের ওপর পূর্ণ নিয়ন্ত্রণ পেয়ে যায়, যা ডেটা চুরি, সাইট ডিফেইসমেন্ট (site defacement) বা র‍্যানসমওয়্যার ছড়ানোর পথ খুলে দেয়।

এখন কী করবেন

  • WordPress CLI কমান্ডের মাধ্যমে ইনস্টল করা ভার্সনটি যাচাই করুন:

    wp plugin list --name=elementor-pro --field=version
    
  • যদি আউটপুটে 4.2.1 বা তার নিচের ভার্সন দেখায়, তবে অবিলম্বে 4.2.2 বা তার পরবর্তী সংস্করণে আপডেট করুন। এই আপডেটে ত্রুটিপূর্ণ আপলোড লজিকের পরিবর্তে একটি সিঙ্গেল, অ্যাটমিক ভ্যালিডেশন-অ্যান্ড-সেভ রুটিন ব্যবহার করা হয়েছে যা খালি নামের মাধ্যমে বাইপাস করার পদ্ধতিটি বন্ধ করে দেয়।

  • আপগ্রেড করার পর, আপলোড ডিরেক্টরিতে প্লাগইন দ্বারা ব্যবহৃত টাইমস্ট্যাম্প প্যাটার্নের সাথে মিলে যায় এমন কোনো PHP ফাইল আছে কি না তা পরীক্ষা (audit) করুন এবং সেগুলো মুছে ফেলুন।

  • প্যাচ প্রয়োগ না করা পর্যন্ত পাবলিক ফর্মগুলোতে ফাইল-আপলোড ফিল্ডটি ডিজেবল করে রাখার কথা বিবেচনা করুন, বিশেষ করে হাই-ট্রাফিক সাইটগুলোর ক্ষেত্রে।

পাল্টা যুক্তি

কিছু ডেভেলপার যুক্তি দেন যে ঝুঁকি সীমিত, কারণ এই এক্সপ্লয়েটটির জন্য Forms উইজেটে একটি পাবলিকলি অ্যাক্সেসযোগ্য ফাইল-আপলোড ফিল্ড কনফিগার করা থাকতে হয়। তবে, অনেক Elementor-ভিত্তিক সাইট যোগাযোগ, চাকরির আবেদন বা ইউজার-জেনারেটেড কন্টেন্টের জন্য এই ধরনের ফর্ম ব্যবহার করে, ফলে এই পরিস্থিতিটি যথেষ্ট সাধারণ এবং এই দুর্বলতাকে অত্যন্ত গুরুতর (critical) হিসেবে গণ্য করা হচ্ছে।

পরবর্তীতে যা খেয়াল রাখবেন

নিরাপত্তা গবেষকরা আশা করছেন যে আরও সাইট থেকে এক্সপ্লয়েট করার চেষ্টার রিপোর্ট আসার সাথে সাথে অতিরিক্ত অ্যাডভাইজরি নোট প্রকাশিত হবে। পরবর্তী কোনো প্যাচ বা প্রশমন (mitigation) পদক্ষেপের জন্য অফিসিয়াল Elementor কমিউনিকেশন এবং নির্ভরযোগ্য ভালনারেবিলিটি ডেটাবেসের ওপর নজর রাখুন।

সারকথা: Elementor Pro 4.2.1 এবং এর আগের সংস্করণগুলোর RCE ত্রুটিটি একটি উচ্চ-তীব্রতার (high-severity), লগ-ইনহীন আক্রমণ পদ্ধতি। 4.2.2 সংস্করণে আপডেট করাই হলো একমাত্র নির্ভরযোগ্য প্রতিরক্ষা; দেরি করা আপনার সার্ভার এবং ডেটাকে মারাত্মক ঝুঁকির মুখে ফেলবে।