এর আবিষ্কারের পর লিনাক্স নিরাপত্তা আরেকটি চ্যালেঞ্জের সম্মুখীন হয়েছে। দুর্বলতা CVE-2026-31431, যার নাম দেওয়া হয়েছে 'কপি ফেইল' জিন্ট কোডের গবেষকদের দ্বারা। এটি কোনো তাত্ত্বিক ত্রুটি নয়, বরং এই নকশার সমস্যাটি এর মাধ্যমে বিশেষাধিকারবিহীন একজন স্থানীয় ব্যবহারকারী তার অনুমতি বৃদ্ধি করে পূর্ণ প্রবেশাধিকার লাভ করতে পারে। একজন সুপারইউজার হিসেবে অনুমানযোগ্য এবং নীরবে।
গবেষকরা উল্লেখ করেছেন যে, উবুন্টু, অ্যামাজন লিনাক্স, RHEL এবং SUSE-এর মতো শীর্ষস্থানীয় ডিস্ট্রিবিউশনগুলিতে এই দুর্বলতাটি সফলভাবে কাজে লাগানো হয়েছে, যা নিশ্চিত করে যে যে কোনো সিস্টেম যা ৪.১৪ সংস্করণের পরবর্তী কার্নেল ব্যবহার করছে এবং বজায় রাখা AF_ALG সকেটের জন্য সমর্থন সক্রিয় করা সম্ভাব্য ঝুঁকিপূর্ণ। এই আক্রমণের জবাবে
ইন-প্লেস অপারেশন এবং পেজ ক্যাশে ওভারফ্লো
রায় প্রসঙ্গে উল্লেখ করা হয়েছে যে এই এর সূত্রপাত হয় ২০১৭ সালে কার্নেলের ক্রিপ্টোগ্রাফিক এপিআই (AF_ALG)-এর মধ্যে প্রবর্তিত একটি অপটিমাইজেশন থেকে। এই পরিবর্তন আমি অপ্রয়োজনীয় বাফারিং দূর করতে চাইছিলাম। প্রমাণীকৃত এনক্রিপশন (AEAD) অপারেশনগুলো সরাসরি একই মেমরি স্পেসে সম্পাদন করা, যা "ইন-প্লেস" অপারেশন নামে পরিচিত।
El এই অপ্টিমাইজেশনকে splice() ফাংশনের সাথে একত্রিত করলে একটি গুরুতর সমস্যা দেখা দেয়, এই পদ্ধতিতে ডেটা সরাসরি কপি করার পরিবর্তে কার্নেল পেজ ক্যাশে-এর সরাসরি রেফারেন্স স্থানান্তরের মাধ্যমে ফাইল ডেসক্রিপ্টরগুলোর মধ্যে ডেটা আদান-প্রদান করা হয়। ডিক্রিপশনের অনুরোধ করার সময়, মেমরি স্ট্রাকচারটি এমনভাবে কনফিগার করা হয়েছিল যাতে গন্তব্য বাফারটি—যা ব্যবহারকারীর জন্য একটি অস্থায়ী স্থান হওয়ার কথা—শেষ পর্যন্ত সিস্টেম ফাইল ডেটা ধারণকারী ক্যাশে পেজগুলোর সাথে সরাসরি লিঙ্কযুক্ত হয়ে যায়।
স্মৃতির সীমার বাইরে প্রমাণীকরণ এবং লেখা
El এই দুর্বলতার চূড়ান্ত কারণটি হলো অথেন্টিকেশন অ্যালগরিদমের অস্বাভাবিক আচরণ। অন্যান্য ক্রিপ্টোগ্রাফিক রুটিনগুলির মতো নয়, যেগুলি তাদের গন্তব্য বাফারের সীমানা কঠোরভাবে মেনে চলে, এই নির্দিষ্ট অ্যালগরিদমটি ব্যবহারকারীর মেমরি স্পেসকে একটি অস্থায়ী ওয়ার্কিং এরিয়া হিসেবে ব্যবহার করে। প্রমাণীকরণ ট্যাগ গণনার সময় বাইট ক্রম পুনর্বিন্যাস করার জন্য (স্ক্র্যাচ প্যাড) ব্যবহৃত হয়।
এই প্রক্রিয়ায়, অ্যালগরিদম আউটপুট অঞ্চলের জন্য নির্ধারিত সীমার বাইরে চার বাইট লেখে। ইন-প্লেস অপ্টিমাইজেশন এবং splice() দ্বারা তৈরি রেফারেন্স চেইনের কারণে,এই আপাতদৃষ্টিতে নিরীহ লেখাটি ব্যবহারকারীর স্মৃতির সীমানা অতিক্রম করে। এবং প্রক্রিয়াধীন ফাইলটির সাথে যুক্ত কার্নেল ক্যাশ পৃষ্ঠায় সরাসরি অবতরণ করে।
এই যৌক্তিক ব্যর্থতার শৃঙ্খল এটি আক্রমণকারীকে নির্দিষ্ট ক্যাশ অবস্থানে যথেচ্ছভাবে চার বাইট ওভাররাইট করার ক্ষমতা প্রদান করে। এটি পড়তে পারে এমন যেকোনো ফাইলের পৃষ্ঠাগুলোর জন্য। ধারাবাহিক পরিকল্পিত অনুরোধ পাঠানোর মাধ্যমে, একজন আক্রমণকারী ক্ষতিকারক কোড প্রবেশ করাতে পারে। suid বিট সেট করা গুরুত্বপূর্ণ এক্সিকিউটেবল ফাইলগুলির ইন-মেমরি সংস্করণে, যেমন ইউজার সুইচার টুল।
যেহেতু সমস্ত রিড অপারেশন প্রথমে পেজ ক্যাশে কোয়েরি করে, তাই পরবর্তী বার যখন বৈধ ইউটিলিটিটি কল করা হয়, সিস্টেমটি মেমরি থেকে ইনজেক্ট করা কোডটি কার্যকর করবে এবং তাৎক্ষণিক রুট ব্যবহারের অনুমতি প্রদান করবে। হার্ড ড্রাইভে থাকা ফিজিক্যাল ফাইলটিতে কোনো পরিবর্তন না করেই এটি ঘটে। আরও উদ্বেগজনক বিষয় হলো, যেহেতু কন্টেইনার আইসোলেশন অন্তর্নিহিত হোস্টের পেজ ক্যাশে শেয়ার করে, তাই এই দুর্বলতাটি কুবারনেটিস ক্লাস্টারের মতো ভার্চুয়ালাইজড পরিবেশ থেকে বেরিয়ে এসে প্রাইমারি নোডকে ক্ষতিগ্রস্ত করার একটি সরাসরি পথ হিসেবে কাজ করে।
জরুরি প্যাচ এবং প্রশমন সমাধান
এই রায়ের গুরুত্ব বিবেচনা করে, রক্ষণাবেক্ষণ দলগুলো জরুরি আপডেটগুলো চালু করেছে, চূড়ান্ত সমাধান যেখানে নিহিত আছে algif_aead.c ফাইলের মধ্যে থাকা ইন-প্লেস অপটিমাইজেশনটি পূর্বাবস্থায় ফিরিয়ে আনুন এবং সোর্স ও ডেস্টিনেশন মেমরি লিস্ট দুটিকে কঠোরভাবে পৃথক করুন। ক্যাশ করা পৃষ্ঠাগুলিকে লেখার যোগ্য পথে চলে আসা থেকে বিরত রাখতে।
এই প্যাচগুলো ইতিমধ্যে কার্নেল 6.18.22, 6.19.12, এবং 7.0-তে অন্তর্ভুক্ত করা হয়েছে এবং দীর্ঘমেয়াদী সাপোর্ট শাখাগুলোতে ব্যাকপোর্ট করা হচ্ছে। যে সকল প্রশাসক অবিলম্বে তাদের সার্ভার পুনরায় চালু বা আপডেট করতে পারবেন না, তাদের জন্য সুপারিশ করা হচ্ছে যে, যদি algif_aead কার্নেল মডিউলটি বাইরে থেকে কম্পাইল করা হয়ে থাকে, তবে তা নিষ্ক্রিয় করে দিন, অথবা SELinux-এর মতো নিরাপত্তা নীতি ব্যবহার করে AF_ALG সকেট তৈরি করা কঠোরভাবে সীমাবদ্ধ করুন। SELinux এমন একটি সুরক্ষা ব্যবস্থা যা, উদাহরণস্বরূপ, বর্তমান অ্যান্ড্রয়েড ডিভাইসগুলোকে এই হুমকি থেকে সুরক্ষিত রেখেছে।
পরিশেষে, যদি আপনি আরও জানতে আগ্রহী হন, তাহলে নিচের লিঙ্কে বিস্তারিত জানতে পারেন।