The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

В системе управления контентом TYPO3 найдена критическая уязвимость

19.02.2015 13:48

Представлен внеплановый выпуск системы управления контентом TYPO3 4.5.40 в котором устранена критическая уязвимость, позволяющая обойти систему аутентификации и выполнить вход, зная лишь логин пользователя. Проблема проявляется только в ветке 4.x при аутентификации backend-пользователя на fronend по ключам RSA, обеспечиваемой компонентом rsaauth (в конфигурации по умолчанию не используются ни rsaauth, ни felogin).

  1. Главная ссылка к новости (http://typo3.org/news/article/...)
  2. OpenNews: Релиз системы управления контентом TYPO3 7.0
  3. OpenNews: Релиз системы управления контентом TYPO3 6.0
  4. OpenNews: В системе управления контентом TYPO3 устранено 14 опасных уязвимостей
  5. OpenNews: В Bugzilla устранена опасная уязвимость, открывшая новый вид атак на web-приложения
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: typo3, cms
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (15) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 13:55, 19/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В патче только:

    - 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 плоха?

     
     
  • 2.2, Аноним (-), 14:00, 19/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В похапэ empty("0") тоже считается false.
     
     
  • 3.3, Аноним (-), 14:03, 19/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    ...сам патч не смотрел, но думаю истина где-то недалеко.
     
  • 3.5, Xaionaro (ok), 14:13, 19/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Вы опечатались:

    s/false/true/

     
  • 3.7, Аноним (-), 14:21, 19/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    в "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);

     

  • 1.8, Michael Shigorin (ok), 14:21, 19/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Проблема проявляется только при аутентификации по ключам RSA,
    > обеспечиваемой компонентом rsaauth.

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

     
  • 1.10, th3m3 (ok), 15:03, 19/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Оно ведь на php? Тогда всё понятно.
     
     
  • 2.12, MidNight_er (?), 15:05, 19/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а если такая же логика работы будет на C или C++ тогда что вам понятно станет?
     
     
  • 3.16, anonymous (??), 23:04, 19/02/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Пыхпых для вебсайта... А Си++ это такой же пыхпых, только для ОС.
     
  • 2.13, Аноним (-), 16:27, 19/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Лажа вроде чисто алгоритмическая. Какая разница на чем она будет сделана? Хоть на брейнфаке.

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

     
     
  • 3.15, Аноним (-), 16:34, 19/02/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не совсем алгоритмическая. Тут именно особенность PHP, на которую, очевидно, нарвался человек, перешедший с другого языка. Документированная, но от этого не легче. Название функции "empty(str)" явно вводит в заблуждение.
     
  • 3.18, Michael Shigorin (ok), 00:01, 20/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > В смысле это типа, типо по жизни имело очень таксебешный уровень безопасности.

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

     

  • 1.11, MidNight_er (?), 15:03, 19/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Очевидно разработчики не знают об автоматизированном тестировании
     
     
  • 2.14, Аноним (-), 16:28, 19/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Очевидно разработчики не знают об автоматизированном тестировании

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

     
     
  • 3.17, Аноним (-), 23:29, 19/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Пардон, но ведь недопиленному автоматизированному тестировани, разве не ущербный головной мозг виной его написавшего?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру