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

Желание почистить Windows от лишнего давно стало почти отдельным жанром. Одни удаляют предустановленные приложения вручную, другие пользуются готовыми деблоат-скриптами, а теперь в ход пошёл ещё и генеративный ИИ. И вот здесь история начинает отдавать лишними проблемами.

Поводом для новой волны обсуждений стал пост на Reddit, где пользователь рассказал, что установил Windows 11 на не самое новое железо, заметил подтормаживания интерфейса и медленный запуск, а потом решил исправить это с помощью PowerShell-скрипта, сгенерированного ИИ.

По его словам, такой сценарий якобы удалил лишние приложения и сделал систему быстрее. В качестве доказательства пользователь показал скриншоты диспетчера задач, где после «оптимизации» процессов стало меньше примерно на десяток.

 

Проблема в том, что само по себе это почти ни о чём не говорит. Количество процессов — очень слабый показатель производительности, а в приведённом примере загрузка CPU на «улучшенной» системе вообще оказалась выше.

То есть выглядит это скорее как красивая иллюзия контроля: процессов стало меньше, значит всё стало лучше. Хотя в реальности производительность системы — это не только число фоновых процессов, но и поведение памяти, диска, драйверов, фоновых служб, задержек интерфейса и ещё длинного списка вещей.

Но главная проблема даже не в сомнительном результате, а в самом подходе. Запускать на своём компьютере скрипт, который написал ИИ, при этом не понимая, что именно он делает, — идея откровенно рискованная. Такие сценарии часто лезут в реестр Windows, отключают системные компоненты, меняют политики и настройки, которые потом могут неожиданно выстрелить после следующего обновления.

Собственно, эта опасность давно существует и с обычными инструментами чистки ОС от сторонних разработчиков. У многих таких утилит на GitHub даже прямо написано: используйте на свой страх и риск. Но когда вместо понятного скрипта от конкретного автора в дело вступает ИИ, ситуация становится ещё веселее.

Нейросеть может не до конца понять задачу, сделать слишком агрессивные изменения, удалить что-то важное или просто выдать код, который выглядит убедительно, но работает совсем не так, как пользователь ожидает.

Вся история особенно иронична ещё и потому, что в обсуждаемом случае у пользователя, как отмечает автор материала, был далеко не слабый процессор — AMD Ryzen 9 5950X. Так что если на такой системе в повседневной работе всё действительно плохо, то проблема, скорее всего, не в «лишних приложениях», а где-то глубже.

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