Разработчики исправили серьезную уязвимость в OpenSSH

Разработчики исправили серьезную уязвимость в OpenSSH

Разработчики исправили серьезную уязвимость в OpenSSH

Уязвимость OpenSSH была обнаружена экспертом Михал Залевски (Michal Zalewski) в файле-исходнике sftp-server.c, она затрагивает версии OpenSSH с 5.5 по 7.6.

Как можно видеть в коде, приведенном ниже, если SFTP-сервер стартует с параметром –R, он будет включать переменную «readonly». Это означает, что клиентам не разрешено записывать операции.

 

 

 

 

int
sftp_server_main(int argc, char **argv, struct passwd *user_pw)
{
   ...
    while (!skipargs && (ch = getopt(argc, argv,
        "d:f:l:P:p:Q:u:cehR")) != -1) {
        switch (ch) {
    ...
        case 'R':
            readonly = 1;
            break;
    ...
}

Открытие файла для SFTP-сервера выполняется с помощью вспомогательной функции process_open(), которая открывает доступные только для чтения файлы:

static void
process_open(u_int32_t id)
{
    ...
    if (readonly &&
        ((flags & O_ACCMODE) == O_WRONLY ||
        (flags & O_ACCMODE) == O_RDWR) != 0)) {
        verbose("Refusing open request in read-only mode");
        status = SSH2_FX_PERMISSION_DENIED;
    } else {
        fd = open(name, flags, mode);
    ...
}

Здесь можно увидеть, что если «readonly» активирован, будет осуществляться проверка наличия «WRITE ONLY» или «READ/WRITE». Если это условие удовлетворено, будет выведена ошибка открытия файла в режиме read-only.

В противном случае файл будет открыт с использованием системного вызова open(). Залевски использовал эти параметры для создания произвольных read-only-файлов на SFTP-сервере. Чтобы исправить эту брешь, только для чтения. Чтобы исправить это, разработчики.

Код патча можно увидеть ниже:

if (readonly &&
-       ((flags & O_ACCMODE) == O_WRONLY ||
-       (flags & O_ACCMODE) == O_RDWR)) {
+       ((flags & O_ACCMODE) != O_RDONLY ||
+       (flags & (O_CREAT|O_TRUNC)) != 0)) {
        verbose("Refusing open request in read-only mode");
Подпишитесь на новости

Невидимое СМС смерти обрывает звонки на Android, даже в экстренные службы

Для сбоя Android иногда достаточно сообщения, которое пользователь даже не увидит. Исследователь Марк Блащик показал атаку через специально сформированное СМС: оно аварийно завершает телефонную службу и обрывает текущий звонок, включая вызов экстренных служб. Открывать сообщение или нажимать ссылку не требуется.

Подробности исследователь опубликовал на отдельном сайте проекта SMS of Death.

Проблема находится в обработчике служебных WAP пуш-сообщений. Некорректные данные вызывают необработанное исключение, после чего телефонная служба перезапускается. В обычной переписке такое СМС не появляется, искать подозрительную ссылку тут бесполезно.

По результатам тестов автора, серия примерно из 20 сообщений способна надолго сделать устройство непригодным для использования. Ситуацию усугубляет повторная доставка: оператор снова отправляет неподтверждённое сообщение, а смартфон снова падает. В отдельных случаях возникает цикл перезагрузок, для выхода из которого нужен компьютер.

Исследователь воспроизвёл сбой на Pixel и Samsung Galaxy. По его данным, патч вошёл в октябрьский набор 2026 года для версий 14-17. Старые устройства, оставшиеся без поддержки, могут его не получить.

RSS: Новости на портале Anti-Malware.ru