Разработчики исправили серьезную уязвимость в 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");

Корзина Windows показывает не те имена файлов после июньского обновления

Очередной Patch Tuesday от Microsoft принёс пользователям Windows новый сюрприз. После установки июньского обновления под номером KB5094126 некоторые владельцы компьютеров заметили странное поведение Корзины. Проблема проявляется при окончательном удалении файлов.

Обычно Windows показывает предупреждение с именем файла, который пользователь собирается стереть навсегда. Теперь же вместо привычного названия система может отображать какой-то внутренний служебный идентификатор.

Выглядит это так, будто Windows внезапно забыла, какой именно файл собирается удалить.

В Microsoft уже подтвердили наличие ошибки. Хорошая новость заключается в том, что речь идёт исключительно о визуальном сбое. Сам файл никуда не исчезает раньше времени, не повреждается и не переименовывается.

Если открыть Корзину, правильное название документа или изображения по-прежнему отображается в списке файлов. Более того, при восстановлении объект возвращается под своим оригинальным именем. То есть проблема затрагивает только окно подтверждения удаления.

Под удар попали практически все актуальные версии Windows, получившие июньские обновления безопасности. Точный список Microsoft пока не публикует, но признаёт, что ошибка носит массовый характер.

Особенно раздражает то, что никакого официального обходного пути для обычных пользователей сейчас нет. Единственный совет — проверять название файла непосредственно в Корзине перед окончательным удалением.

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

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