URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 101527
[ Назад ]

Исходное сообщение
"В системе управления контентом TYPO3 найдена критическая уяз..."

Отправлено opennews , 19-Фев-15 13:55 
Представлен (http://typo3.org/news/article/typo3-cms-4540-released/) внеплановый выпуск системы управления контентом TYPO3 4.5.40 (http://typo3.org/) в котором устранена критическая уязвимость (https://typo3.org/teams/security/security-bulletins/typo3-co.../), позволяющая обойти систему аутентификации и выполнить вход, зная лишь логин пользователя. Проблема проявляется только при аутентификации по ключам RSA, обеспечиваемой компонентом rsaauth.

URL: http://typo3.org/news/article/typo3-cms-4540-released/
Новость: http://www.opennet.me/opennews/art.shtml?num=41691


Содержание

Сообщения в этом обсуждении
"В системе управления контентом TYPO3 найдена критическая уяз..."
Отправлено Аноним , 19-Фев-15 13:55 
В патче только:

- if (parent::authUser($userRecord)) {
+ if (is_bool($checkResult = parent::authUser($userRecord)) && $checkResult) {

- if (!empty($this->login['uident_text'])) {
+ if ((string)$this->login['uident_text'] !== '') {


- if ($this->login['uident'] && $this->login['uname'])    {
+ if ((string)$this->login['uident'] !== '' && $this->login['uname'])    {


не понял, в чём подвох? чем проверка через empty плоха?


"В системе управления контентом TYPO3 найдена критическая уяз..."
Отправлено Аноним , 19-Фев-15 14:00 
В похапэ empty("0") тоже считается false.

"В системе управления контентом TYPO3 найдена критическая уяз..."
Отправлено Аноним , 19-Фев-15 14:03 
...сам патч не смотрел, но думаю истина где-то недалеко.

"В системе управления контентом TYPO3 найдена критическая уяз..."
Отправлено Xaionaro , 19-Фев-15 14:13 
Вы опечатались:

s/false/true/


"В системе управления контентом TYPO3 найдена критическая уяз..."
Отправлено Аноним , 19-Фев-15 14:21 
в "if ($this->login['uident'] &&..." тоже на ноль в $this->login['uident'] сработает. Через $this->login['uident'] передаётся введённый пароль. Проблема заявлена только в rsaauth, но при проверке обычных паролей логика та же - сперва выставляют флаг успешной аутентификации и только потом проверяют пароль и сбрасывают этот флаг.

diff --git a/typo3/sysext/saltedpasswords/sv1/class.tx_saltedpasswords_sv1.php b/typo3/sysext/saltedpasswords/sv1/class.tx_saltedpasswords_sv1.php
index 7137664..4e05126 100644
--- a/typo3/sysext/saltedpasswords/sv1/class.tx_saltedpasswords_sv1.php
+++ b/typo3/sysext/saltedpasswords/sv1/class.tx_saltedpasswords_sv1.php
@@ -237,7 +237,7 @@ class tx_saltedpasswords_sv1 extends tx_sv_authbase {
        }

        if ($this->login['uident'] && $this->login['uname']) {
-            if (!empty($this->login['uident_text'])) {
+            if ((string)$this->login['uident_text'] !== '') {
                $validPasswd = $this->compareUident(
                    $user,
                    $this->login
diff --git a/typo3/sysext/sv/class.tx_sv_auth.php b/typo3/sysext/sv/class.tx_sv_auth.php
index f974cdc..8f026ec 100644
--- a/typo3/sysext/sv/class.tx_sv_auth.php
+++ b/typo3/sysext/sv/class.tx_sv_auth.php
@@ -125,7 +125,7 @@ class tx_sv_auth extends tx_sv_authbase     {
    public function authUser(array $user) {
        $OK = 100;

-        if ($this->login['uident'] && $this->login['uname'])    {
+        if ((string)$this->login['uident'] !== '' && $this->login['uname'])    {

                // Checking password match for user:
            $OK = $this->compareUident($user, $this->login);


"В системе управления контентом TYPO3 найдена критическая уяз..."
Отправлено Michael Shigorin , 19-Фев-15 14:21 
> Проблема проявляется только при аутентификации по ключам RSA,
> обеспечиваемой компонентом rsaauth.

...для felogin (возможность редактирования сайта "с лица" при осуществлении входа в административную часть), который тоже отключен по умолчанию.  Но всё равно неприятно.


"В системе управления контентом TYPO3 найдена критическая уяз..."
Отправлено th3m3 , 19-Фев-15 15:03 
Оно ведь на php? Тогда всё понятно.

"В системе управления контентом TYPO3 найдена критическая уяз..."
Отправлено MidNight_er , 19-Фев-15 15:05 
а если такая же логика работы будет на C или C++ тогда что вам понятно станет?

"В системе управления контентом TYPO3 найдена критическая уяз..."
Отправлено anonymous , 19-Фев-15 23:04 
Пыхпых для вебсайта... А Си++ это такой же пыхпых, только для ОС.

"В системе управления контентом TYPO3 найдена критическая уяз..."
Отправлено Аноним , 19-Фев-15 16:27 
Лажа вроде чисто алгоритмическая. Какая разница на чем она будет сделана? Хоть на брейнфаке.

Там скорее "опять TYPO3?!". В смысле это типа, типо по жизни имело очень таксебешный уровень безопасности.


"В системе управления контентом TYPO3 найдена критическая уяз..."
Отправлено Аноним , 19-Фев-15 16:34 
Не совсем алгоритмическая. Тут именно особенность PHP, на которую, очевидно, нарвался человек, перешедший с другого языка. Документированная, но от этого не легче. Название функции "empty(str)" явно вводит в заблуждение.

"В системе управления контентом TYPO3 найдена критическая уяз..."
Отправлено Michael Shigorin , 20-Фев-15 00:01 
> В смысле это типа, типо по жизни имело очень таксебешный уровень безопасности.

Отнюдь, заметно лучше среднего в своём классе.


"В системе управления контентом TYPO3 найдена критическая уяз..."
Отправлено MidNight_er , 19-Фев-15 15:03 
Очевидно разработчики не знают об автоматизированном тестировании

"В системе управления контентом TYPO3 найдена критическая уяз..."
Отправлено Аноним , 19-Фев-15 16:28 
> Очевидно разработчики не знают об автоматизированном тестировании

Очевидно что некоторые макаки думают что автоматизированное тестирование заменяет головной мозг и разработчикам и тестировщикам. А это совсем не так.


"В системе управления контентом TYPO3 найдена критическая уяз..."
Отправлено Аноним , 19-Фев-15 23:29 
Пардон, но ведь недопиленному автоматизированному тестировани, разве не ущербный головной мозг виной его написавшего?