Поскольку уже несколько человек спросили меня в аське, правда ли это, отвечаю публично. Хотя и так, по-моему, всем понятно, что правда.
1. Баг в Солярисе действительно есть и именно таков, каков есть, все ровно так,
как тут написано.2. Баг есть только в 10 и 11 солярисе, 8 и 9 не затронуты
(
Read more... )
case - это не ошибка, такое случайно написать невозможно. Если покопаться (а этим наверняка сейчас кто-то у вас занимается), то выяснится, что какой-то особо тупой тестер отвечал за тестирование телнета и не мог запомнить пароль. Вот под него и добавили кусок кода. И кто-то даже записал себе на клочке бумажки, что перед релизом - убрать! Но потом он уехал кататься на лыжах и сломал ногу. Поэтому релиз делали без него. Ну и... :-)
из чистого любопытства (ты же знаешь, я не очень в юниховых командах) - юзверь уже должен существовать, прежде чем будет запущен эксплоит? или он на ходу создается?
Reply
В основе действительно фича, можешь поискать про флаг -f, лень объяснять. Основной абзац в том, что серверная система выпускается с поднятым по умолчанию телнетом. Этого в самом распоследнем линуксе нет.
Акции моментально пошли вниз. Это в первую очередь PR-прокол.
Reply
меня именно техническая сторона интересовала, а рассматривать сишный код, не зная ключей, - сложно.
а акции не так чтобы сильно уехали. Наверное в непрофессиональных кругах пока еще мало распространилась эта инфа. :-)
Reply
Reply
хотя конечно четыре процента - тоже довольно неприятно. Ну ничо, ваш пиар-отдел напряжется, сгенерирует пару success messages и все опять выравняется. :-)
Тем более, что рынок уже привык на примере от мелкософта, что у всех всё время находятся ошибки. ;-)
Reply
Reply
Reply
вы имеете в виду строку 1408? т.е. login_exit(1) не завершает программу и код в точке вызова продолжает работать? Тогда это таки баг.
1399 case 'f':
1400 /*
1401 * Must be root to bypass authentication
1402 * otherwise we exit() as punishment for trying.
1403 */
1404 if (getuid() != 0 || geteuid() != 0) {
1405 audit_error = ADT_FAIL_VALUE_AUTH_BYPASS;
1406
1407 login_exit(1); /* sigh */
1408 /*NOTREACHED*/
1409 }
1410 /* save fflag user name for future use */
1411 SCPYL(user_name, optarg);
1412 fflag = B_TRUE;
Reply
Reply
счас небось начались крики от верхнего менеджмента и отчаянное перепихивание вины между писателями логина и телнета. не завидую ни тем, ни другим. :-(
Reply
Reply
Reply
Leave a comment