io_uring-এ একটি দুর্বলতা অনুমতি ছাড়াই একজন ব্যবহারকারীকে এমনকি পাত্রে রুট হতে দেয়

সম্প্রতি দুর্বলতার তথ্য প্রকাশ করা হয়েছে (CVE-2022-29582) io_uring অ্যাসিঙ্ক্রোনাস I/O ইন্টারফেসের বাস্তবায়নে, সংস্করণ 5.1 থেকে Linux কার্নেলে অন্তর্ভুক্ত করা হয়েছে, যা কোনো সুবিধাবিহীন ব্যবহারকারীকে সিস্টেমে রুট হতে দেয়, এমনকি একটি কন্টেইনার এক্সপ্লয়েট চালানোর সময়ও।

এটি উল্লেখ করার মতো বলেছেন দুর্বলতা মাত্র 3 মাস আগে রিপোর্ট করা হয়েছিল (আনুমানিক এই বছরের মে মাসের প্রথম দিকে), তবে সম্পূর্ণ তথ্য এবং প্রকাশ সম্প্রতি প্রকাশিত হয়েছিল।

দুর্বলতা সম্পর্কে, এটি উল্লেখ করা হয় যে এই ইতিমধ্যেই মুক্ত করা মেমরির একটি ব্লক অ্যাক্সেস করার সময় ঘটে, 5.10 শাখা থেকে শুরু করে লিনাক্স কার্নেলে নিজেকে প্রকাশ করে।

দুর্বলতা সম্পর্কে CVE-2022-29582

এই দুর্বলতা মুক্ত মেমরি অ্যাক্সেসের অনুমতি দেয় io_flush_timeouts() ফাংশনে টাইমআউট পরিচালনা করার সময় রেসের অবস্থার ফলস্বরূপ, যাe টাইমআউট এন্ট্রি সরিয়ে দেয় তালিকা থেকে এবং সেই সময়ে টাইমআউট তৈরি এবং মুছে ফেলার যাচাই না করেই এটি বাতিল করে।

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

আরো গুরুত্বপূর্ণ কি, অপকোড ক্ষেত্র নির্ধারণ করে কোন ধরনের অপারেশন করতে হবে। প্রতিটি "অপকোড" এর জন্য এটির প্রয়োজন, fd ক্ষেত্রটি ফাইল বর্ণনাকারীকে নির্দিষ্ট করে যার উপর অনুরোধ করা I/O সম্পাদন করতে হবে। প্রায় সমস্ত সাধারণ I/O সিস্টেম কলে (পড়ুন, সেন্ডটো, ইত্যাদি) একটি সমতুল্য অ্যাসিঙ্ক্রোনাস অপকোড থাকে। প্রতিটি ক্ষেত্র অপারেশনের উপর নির্ভর করে বিভিন্ন ভূমিকা নিতে পারে।

একবার SQ থেকে পুনরুদ্ধার করা হলে, একটি SQE struct io_kiocb (কার্ণেল ইনপুট/আউটপুট কল ব্যাক) দ্বারা বর্ণিত একটি অভ্যন্তরীণ উপস্থাপনায় রূপান্তরিত হয়। এই বস্তুগুলি সাধারণত অনুরোধ হিসাবে পরিচিত।

struct io_kiocb SQE "প্রস্তুত-এর জন্য-প্রস্তুতি" এর সমতুল্য হিসাবে ব্যবহৃত হয় যার উপর ভিত্তি করে এটি তৈরি করা হয়, যেখানে যেকোন ফাইল বর্ণনাকারীকে ফাইল*গুলি স্ট্রাকট করার জন্য সমাধান করা হয়, ব্যবহারকারীর শংসাপত্র সংযুক্ত করা হয়, ব্যক্তিত্ব (যেটিতে কোরগুলি চলবে), ইত্যাদি .

অনুরোধকৃত অপারেশন সম্পূর্ণ হওয়ার পরে, এটি সমাপ্তির সারিতে লেখা হয় (CQ) একটি এন্ট্রি যা SQE-এর সাথে মিলে যায়। এই ধরনের এন্ট্রিকে কমপ্লিশন কিউ এন্ট্রি (CQE) বলা হয় এবং এতে ত্রুটি কোড এবং ফলাফলের মানের মতো ক্ষেত্র থাকে। প্রেরিত SQE প্রক্রিয়াকরণ শেষ হয়েছে কিনা এবং তাদের ফলাফল কী ছিল তা নির্ধারণ করতে ব্যবহারকারীর স্থান অ্যাপ্লিকেশনটি নতুন এন্ট্রির জন্য CQ পোল করতে পারে।

উল্লেখ করা হয়েছে যে কিছু পরিস্থিতি আছে যেখানে একটি বস্তু প্রতিস্থাপন করা সহজ অগ্রগতির উপর কিন্তু দুটি সীমাবদ্ধতা আছে:

  • LT' বরাদ্দ করতে হবে এবং একটি রেস উইন্ডোতে শুরু করতে হবে। অর্থাৎ, এলটি রিলিজ হওয়ার পরে কিন্তু এলটি-তে এমন একটি পয়েন্টে পৌঁছানোর আগে যা আর অ্যাক্সেস করা যায় না।
  • LT' শুধুমাত্র আরেকটি struct io_kiocb অবজেক্ট হতে পারে। হিপ আইসোলেশনের কারণে, যেখানে স্তূপের মধ্যে থাকা বস্তুগুলিকে তাদের ধরন অনুযায়ী আলাদা করা হয়, সেখানে রেস উইন্ডোর মধ্যে একটি ভিন্ন ধরনের অবজেক্ট হিসাবে তাদের পুনরায় বরাদ্দ করা খুব কঠিন।

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

আমাদের শোষণ লক্ষ্য কার্নেল সংস্করণ 5.10.90, সংস্করণটি Google তখন দূরবর্তীভাবে চলছিল৷ আমাদের সার্ভারের নির্দিষ্ট বৈশিষ্ট্যের সাথে আমাদের শোষণকে সামঞ্জস্য করতে হয়েছিল (4 Skylake Xeon cores @ 2.80Ghz, 16GiB RAM), কিন্তু কিছু টুইকিং সহ, একটি দুর্বল কার্নেল চালানো যে কোনও মেশিন শোষণযোগ্য হওয়া উচিত।

এনজেইল পরিবেশেও শোষণ কাজ করে ক্রোমিয়াম ওএসের উপর ভিত্তি করে Google COS (কন্টেইনার অপ্টিমাইজড OS) বিতরণে বিচ্ছিন্ন এবং Compute Engine ভার্চুয়াল মেশিনে Google ক্লাউড প্ল্যাটফর্মে ব্যবহৃত হয়। শোষণটি 5.10 থেকে 5.12 পর্যন্ত কার্নেল শাখাগুলির সাথে কাজ করার জন্য ডিজাইন করা হয়েছে। সবশেষে, এটি উল্লেখ করার মতো সমস্যাটি এপ্রিল মাসে 5.10.111, 5.15.34 এবং 5.17.3 আপডেটে সংশোধন করা হয়েছে।

পরিশেষে, আপনি যদি দুর্বলতা সম্পর্কে আরও জানতে আগ্রহী হন তবে আপনি তৈরি করা প্রকাশনার সাথে পরামর্শ করতে পারেন নীচের লিঙ্কে।


আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

  1. ডেটার জন্য দায়ী: AB ইন্টারনেট নেটওয়ার্ক 2008 SL
  2. ডেটার উদ্দেশ্য: নিয়ন্ত্রণ স্প্যাম, মন্তব্য পরিচালনা।
  3. আইনীকরণ: আপনার সম্মতি
  4. তথ্য যোগাযোগ: ডেটা আইনি বাধ্যবাধকতা ব্যতীত তৃতীয় পক্ষের কাছে জানানো হবে না।
  5. ডেটা স্টোরেজ: ওসেন্টাস নেটওয়ার্কস (ইইউ) দ্বারা হোস্ট করা ডেটাবেস
  6. অধিকার: যে কোনও সময় আপনি আপনার তথ্য সীমাবদ্ধ করতে, পুনরুদ্ধার করতে এবং মুছতে পারেন।