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

ГигаЧат написал продолжение Мёртвых душ под руководством экспертов

У Чичикова появились новые приключения, на этот раз при участии нейросети. «ГигаЧат» создал продолжение «Мёртвых душ» под руководством историков, литературоведов, лингвистов и инженеров. Гоголь уничтожил рукопись второго тома в 1852 году, а команда проекта предложила собственную версию дальнейшей истории.

Как сообщает «Сбер», модель обучали на сочинениях Гоголя, его письмах и черновиках, произведениях современников, а также философских и религиозных текстах, которыми мог вдохновляться писатель.

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

Иллюстрации тоже сгенерировала нейросеть. За основу взяли работы Александра Агина, оформлявшего первый том ещё при жизни Гоголя. Получился литературный эксперимент с ИИ и в тексте, и на страницах с изображениями.

В «Сбере» называют две цели проекта: показать возможности нейросетей как инструментов анализа и творчества в руках специалистов и привлечь молодую аудиторию к русской классике. Владислав Крейнин подчёркивает, что работа не закрывает споры об утраченном втором томе.

И это существенная оговорка: перед читателем новое продолжение, созданное ИИ и людьми. Узнать, что именно написал и сжёг Гоголь, нейросеть не может. Зато повод перечитать первый том появился вполне настоящий.

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