Pack2TheRoot (CVE-2026-41651): PackageKit-এর সেই ত্রুটি যা Linux-কে ঝুঁকিপূর্ণ করে তোলে

গুরুত্বপূর্ণ দিক:
  • এই ব্যর্থতাটি ডি-বাস ট্রানজ্যাকশন ম্যানেজমেন্টের মধ্যে একটি রেস কন্ডিশন (TOCTOU)-এর কারণে ঘটেছে, যা পলকিট অথরাইজেশনকে বাইপাস করে।
  • এটি উবুন্টু, ডেবিয়ান, ফেডোরা এবং রকি লিনাক্সের মতো জনপ্রিয় ডিস্ট্রিবিউশনগুলোর ডিফল্ট ইনস্টলেশনকে সরাসরি প্রভাবিত করে।
  • শিডিউলার অপারেশনটি শুরু করার আগেই একজন আক্রমণকারী দ্বিতীয় একটি অনুরোধ পাঠিয়ে একটি সুরক্ষিত ট্রানজ্যাকশনের ফ্ল্যাগগুলো ওভাররাইট করতে পারে।
  • PackageKit 1.3.5-এ এই দুর্বলতাটি সমাধান করা হয়েছে, এবং polkit-এ কাস্টম রুল তৈরি করে এর একটি অস্থায়ী প্রতিকার রয়েছে।

প্যাক২দ্যরুট

কয়েক দিন আগে একটি নতুন গুরুতর দুর্বলতা সম্পর্কে তথ্য প্রকাশ করা হয়েছে। যা লিনাক্স পরিবেশকে প্রভাবিত করে যাকে বলা হয় "Pack2TheRoot"। CVE-2026-41651 এর অধীনে তালিকাভুক্ত।এই ত্রুটিটি PackageKit-কে প্রভাবিত করে (একটি টুল যা একাধিক ডিস্ট্রিবিউশন জুড়ে প্যাকেজ ব্যবস্থাপনাকে একীভূত করার জন্য একটি D-Bus অ্যাবস্ট্রাকশন লেয়ার হিসেবে কাজ করে)।

উল্লেখ করা হয়েছে যে রায় এর ফলে যেকোনো স্থানীয় ব্যবহারকারী, যার কোনো বিশেষাধিকার নেই, সে যথেচ্ছভাবে প্যাকেজ ইনস্টল বা অপসারণ করতে পারে। এই দুর্বলতার সুযোগ নিয়ে একজন আক্রমণকারী আক্রান্ত সিস্টেমের সম্পূর্ণ রুট অ্যাক্সেস লাভ করতে পারে। এর প্রভাব ব্যাপক, কারণ সমস্যাটি বারো বছরেরও বেশি সময় আগে (২০১৪ সালে) প্রকাশিত ১.০.২ সংস্করণ থেকেই বিদ্যমান এবং এটি উবুন্টু, ডেবিয়ান, রকি লিনাক্স এবং ফেডোরার মতো জনপ্রিয় ডিস্ট্রিবিউশনগুলোর ডিফল্ট কনফিগারেশনকে প্রভাবিত করে।

Pack2TheRoot: PackageKit-এর দুর্বলতা লিনাক্সে অ্যাডমিনিস্ট্রেটর অ্যাক্সেস প্রদান করে

El একটি তদন্তের ফলস্বরূপ Pack2TheRoot-এর আবিষ্কার ঘটে। ডয়চে টেলিকমের রেড টিমের নেতৃত্বে, যারা তারা ক্লদ ওপাস কৃত্রিম বুদ্ধিমত্তা মডেল ব্যবহার করেছিল স্থানীয় সুযোগ-সুবিধা বৃদ্ধির গতিপথ সম্পর্কে তাদের বিশ্লেষণকে পথনির্দেশনা দিতে।

Loগবেষকরা প্রাথমিকভাবে লক্ষ্য করেন যে, পাসওয়ার্ড ছাড়াই pkcon install কমান্ডটি চালানো যায়।ফেডোরার নির্দিষ্ট কিছু কনফিগারেশনে, যা অন্তর্নিহিত অনুমোদন ব্যবস্থা সম্পর্কে সন্দেহ জাগিয়েছিল। দুর্বলতাটি নিশ্চিত করার পর এবং দায়িত্বের সাথে প্যাকেজকিট রক্ষণাবেক্ষণকারীদের কাছে রিপোর্ট করার পর, একটি কার্যকর এক্সপ্লয়েট তৈরি করা হয়েছে, যদিও ব্যবহারকারী ও প্রশাসকদের প্রয়োজনীয় আপডেটগুলো প্রয়োগ করার সুযোগ দেওয়ার জন্য এর বিস্তারিত প্রকাশনা কৌশলগতভাবে বিলম্বিত করা হয়েছে।

আক্রমণের কৌশল

এর মূল দুর্বলতা একটি পেশাগত অবস্থার মধ্যে নিহিত থাকে। (TOCTOU প্রকার: চেকের সময় থেকে ব্যবহারের সময়) মধ্যে পটভূমি প্রক্রিয়া লেনদেন ব্যবস্থাপনা প্যাকেজকিটের (ডেমন)প্যাকেজকিট, রুট ব্যবহারকারী হিসেবে কাজ করে, পলকিট সিস্টেমকে অনুমোদনের ক্ষমতা অর্পণ করে। যখন কোনো ক্লায়েন্ট একটি প্যাকেজ ইনস্টল করার জন্য অনুরোধ করে, উদাহরণস্বরূপ InstallFiles পদ্ধতি ব্যবহার করে, তখন এটি এক সেট ফ্ল্যাগ প্রেরণ করে যা লেনদেনটির আচরণ নির্ধারণ করে।

SIMULATE বা ONLY_DOWNLOAD-এর মতো নির্দিষ্ট ফ্ল্যাগগুলো PackageKit-কে polkit অনুমোদন এড়িয়ে যেতে নির্দেশ দেয়। কারণ এগুলো এমন নিরাপদ কার্যক্রম যা তাত্ত্বিকভাবে সিস্টেমের অবস্থার কোনো পরিবর্তন করে না। ট্রানজ্যাকশন হ্যান্ডলার ওভাররাইট করার কারণে ব্যর্থতাটি ঘটে। লেনদেনটি ইতিমধ্যে অনুমোদিত হয়েছে কিনা বা কার্যকর হওয়ার প্রক্রিয়ায় আছে কিনা, তা যাচাই না করেই প্রতিটি নতুন কলের সাথে এই সূচকগুলি নিঃশর্তভাবে ক্যাশ করা হয়।

প্যাক২দ্যরুট-পক২

Un একজন আক্রমণকারী 'নিরাপদ' সূচক ব্যবহার করে একটি লেনদেন শুরু করতে পারে। (এভাবে পোলকিটের অনুমোদন এড়িয়ে) এবং, কয়েক মিলিসেকেন্ড পরে, একটি দ্বিতীয় ডি-বাস অনুরোধ পাঠান। একই লেনদেনের জন্য, কিন্তু এবার ক্ষতিকারক ফ্ল্যাগ সহ যা একটি প্রকৃত ইনস্টলেশন নির্দেশ করে। GLib-এর ইভেন্ট লুপ অগ্রাধিকার কাঠামোর কারণে (যেখানে নিষ্ক্রিয় কলব্যাকের আগে D-Bus বার্তাগুলি প্রক্রিয়াজাত করা হয়), শিডিউলার অপারেশনটি শুরু করার ঠিক আগে দ্বিতীয় অনুরোধটি প্যারামিটারগুলিকে ওভাররাইট করে দেয়।

ফলস্বরূপ, পূর্বে 'নিরাপদ' হিসেবে অনুমোদিত লেনদেনটি প্রতিস্থাপিত প্যারামিটারসহ সম্পাদিত হয়।অ্যাডমিনিস্ট্রেটর অধিকার সহ প্যাকেজটি ইনস্টল করা হচ্ছে।

সমাধান এবং প্রশমন

এটা উল্লেখ করা উচিত যে PackageKit সংস্করণ 1.3.5-এ দুর্বলতাটি সংশোধন করা হয়েছে।তাই, ডেভেলপাররা সিস্টেম অ্যাডমিনিস্ট্রেটরদেরকে `systemctl status packagekit`-এর মতো কমান্ড ব্যবহার করে সার্ভিসের অবস্থা পরীক্ষা করে অথবা `pkmon` দিয়ে কার্যকলাপ পর্যবেক্ষণ করে তাদের সিস্টেম ঝুঁকিপূর্ণ কিনা তা যাচাই করার জন্য অনুরোধ করছেন।

The ডেবিয়ান, উবুন্টু এবং ফেডোরা সহ প্রধান ডিস্ট্রিবিউশনগুলো ইতিমধ্যেই প্যাকেজ বিতরণ শুরু করেছে। আপডেটগুলো তাদের আনুষ্ঠানিক চ্যানেলের মাধ্যমে প্রকাশ করা হয়। যেসব সিস্টেমে তাৎক্ষণিকভাবে কোনো প্যাচ পাওয়া যায় না, সেগুলোর জন্য গবেষকরা একটি বিকল্প পদ্ধতির প্রস্তাব দিয়েছেন: একটি কাস্টম পোলকিট রুল স্থাপন করা।

এই এই নিয়মটি তাৎক্ষণিকভাবে এবং নীরবে PackageKit ইনস্টলেশন কার্যক্রম প্রত্যাখ্যান করে। রুট ছাড়া অন্য যেকোনো ব্যবহারকারীর জন্য, এটি রেস কন্ডিশন উইন্ডো খুলতে বাধা দেয়। এটি মনে রাখা গুরুত্বপূর্ণ যে, যদিও এক্সপ্লয়েটটি দ্রুত এবং নীরব, এটি সিস্টেম লগে একটি স্পষ্ট চিহ্ন রেখে যায়: একটি সফল এক্সপ্লয়েটের পরে, অ্যাসারশন ফেইলারের (assertion failed: (!transaction->priv->emitted_finished)) কারণে PackageKit ডেমনটি ক্র্যাশ করে। যদিও systemd সার্ভিসটি পুনরায় চালু করে ডিনায়াল-অফ-সার্ভিস আক্রমণ প্রতিরোধ করে, journalctl-এ এই বার্তার উপস্থিতি একটি শক্তিশালী ইঙ্গিত যে সিস্টেমটি হ্যাক হয়েছে।

পরিশেষে, যদি আপনি এই বিষয়ে আরও জানতে আগ্রহী হন, তাহলে আপনি পরামর্শ নিতে পারেন নিম্নলিখিত লিঙ্কে বিশদ।


পছন্দের উৎস হিসেবে যোগ করুন