GNU InetUtils سوٹ سے telnetd سرور میں ایک کمزوری دریافت ہوئی ہے۔ یہ کمزوری پاس ورڈ کی تصدیق کے بغیر روٹ سمیت کسی بھی صارف کے طور پر کنکشن کی اجازت دیتی ہے۔ ایک CVE شناخت کنندہ ابھی تک تفویض نہیں کیا گیا ہے۔ یہ خطرہ InetUtils ورژن 1.9.3 (2015) کے بعد سے موجود ہے اور موجودہ ریلیز 2.7.0 میں اس کا پیچھا نہیں کیا گیا ہے۔ ایک فکس پیچ (1، 2) میں دستیاب ہے۔
مسئلہ اس حقیقت کی وجہ سے پیدا ہوا ہے کہ پاس ورڈ کو چیک کرنے کے لیے، telnetd عمل "/usr/bin/login" یوٹیلیٹی کو کال کرتا ہے، جو کہ صارف کے نام کی دلیل کے طور پر گزرتا ہے جو کلائنٹ کے ذریعے متعین کیا جاتا ہے سرور"لاگ ان" یوٹیلیٹی "-f" آپشن کو سپورٹ کرتی ہے، جو بغیر تصدیق کے لاگ ان کی اجازت دیتی ہے (یہ آپشن اس وقت استعمال کرنا ہے جب صارف کی تصدیق ہو چکی ہو)۔ لہذا، صارف نام میں "-f" آپشن کی جگہ لے کر، آپ پاس ورڈ کی تصدیق کے بغیر جڑ سکتے ہیں۔
عام کنکشن کے ساتھ، آپ "-f روٹ" جیسا صارف نام استعمال نہیں کر سکتے، لیکن ٹیل نیٹ کے پاس "-a" آپشن کے ذریعے ایک خودکار کنکشن موڈ چالو ہوتا ہے۔ اس موڈ میں، صارف کا نام کمانڈ لائن سے نہیں لیا جاتا ہے، بلکہ USER ماحولیاتی متغیر سے گزرتا ہے۔ جب لاگ ان یوٹیلیٹی کو کال کیا گیا تو، اس ماحولیاتی متغیر کی قدر کو بغیر کسی اضافی جانچ کے اور خصوصی حروف کو چھوڑے بغیر بدل دیا گیا۔ لہذا، روٹ صارف کے طور پر جڑنے کے لیے، صرف USER ماحول کے متغیر کو "-f root" پر سیٹ کریں اور "-a" آپشن کا استعمال کرتے ہوئے ٹیل نیٹ سرور سے جڑیں: $USER='-f root' telnet -a server_name
وہ تبدیلی جس نے کمزوری کو متعارف کرایا تھا اسے مارچ 2015 میں telnetd کوڈ میں شامل کیا گیا تھا اور اس نے ایک ایسے مسئلے کو حل کیا تھا جس نے Kerberos کی تصدیق کے بغیر آٹولوجن موڈ میں صارف نام کا تعین کرنے سے روکا تھا۔ ایک حل کے طور پر، ماحولیاتی متغیر کے ذریعے آٹولوگِن موڈ کے لیے صارف نام کو پاس کرنے کے لیے تعاون شامل کیا گیا تھا، لیکن ماحولیاتی متغیر سے صارف نام کی توثیق کی جانچ کو بھول گیا تھا۔
ماخذ: opennet.ru
