ssh-keysign-pwn: ptrace লজিক বাগের মাধ্যমে রুট-মালিকানাধীন ফাইল পড়া
ssh-keysign-pwn: কার্নেলের
__ptrace_may_access()ফাংশনে ছয় বছরের পুরনো লজিক বাগ, Qualys-এর রিপোর্ট এবং লিনাস টরভাল্ডস ১৪ মে, ২০২৬-এ প্যাচ করেছেন। আনপ্রিভিলেজড ব্যবহারকারীরা SSH হোস্ট প্রাইভেট কী এবং/etc/shadowসহ রুট-মালিকানাধীন ফাইল পড়তে পারে।
আরেকটি
মে ২০২৬ লিনাক্স কার্নেলের জন্য সহনশীল ছিল না। Dirty Frag, Fragnesia, এবং এখন — ssh-keysign-pwn — ১৪ মে Qualys-এর দ্বারা প্রকাশিত এবং একই দিনে লিনাস টরভাল্ডস ফিক্স করেছেন।
এটি “পেজ ক্যাশে-এ কিছু কপি করো” পরিবারের থেকে ভিন্ন। এটি __ptrace_may_access()-এ একটি বিশুদ্ধ লজিক বাগ।
এটি কীভাবে কাজ করে
বাগটি __ptrace_may_access()-এ বাস করে। এই ফাংশনটি প্রক্রিয়া অন্তর্দর্শনের গেটকিপার — এটি পরীক্ষা করে যে একটি প্রক্রিয়া অন্য প্রক্রিয়ার অবস্থায় ঘাঁটা ঘাঁটি করার অনুমতি পায় কিনা।
একটি স্পেশাল কেস আছে: যখন task->mm == NULL (লক্ষ্য প্রক্রিয়ার কোনো মেমোরি ডেসক্রিপ্টর নেই), ফাংশন ডাম্পএবল চেক পুরোপুরি স্কিপ করে।
এটি একটি টেক্সটবুক TOCTOU রেস, কিন্তু উইন্ডোটি যথেষ্ট প্রশস্ত যে PoC ১০০-২০০০ চেষ্টায় সফল হয়।
এক্সপ্লয়েট টার্গেট
sshkeysign_pwn — ssh-keysign টার্গেট করে, একটি হেল্পার বাইনারি যা হস্ট অথেনটিকেশন চ্যালেঞ্জ সাইন করে।
chage_pwn — chage -l <user> টার্গেট করে।
টাইমলাইন
| তারিখ | ঘটনা |
|---|---|
| ~২০২০ | Jann Horn FD-থেফট প্যাটার্ন শনাক্ত করে (প্যাচ মার্জ হয়নি) |
| ২০২৬-০৫-১৪ | Qualys দুর্বলতা রিপোর্ট করে; লিনাস ফিক্স কমিট করে |
| ২০২৬-০৫-১৪ | _SiCk GitHub-এ PoC এক্সপ্লয়েট প্রকাশ করে |
ফিক্স
লিনাস কমিট 31e62c2ebbfd হিসাবে ফিক্স কমিট করেছেন। প্যাচটি mm == NULL কেসটি সঠিকভাবে হ্যান্ডেল করতে ptrace আচরণ অ্যাডজাস্ট করে।
এটি ২০২৬ সালের মে মাসে তৃতীয় বড় লিনাক্স কার্নেল দুর্বলতা, Copy Fail এবং Dirty Frag-এর পরে।