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

Минцифры отложило спорную плату за зарубежный интернет свыше 15 ГБ

Минцифры, судя по всему, отложило введение платы за мобильный международный трафик свыше 15 ГБ в месяц. Изначально запуск планировали до 1 мая, затем срок сдвинули на 1 июня, а теперь обсуждается перенос ближе к осени. Будем надеяться, что перенесут ещё дальше.

По данным СМИ, операторы не успевают подготовить системы, провести тесты и нормально объяснить абонентам, за что именно с них будут брать деньги. А объяснять есть что.

Главная проблема в том, что операторы не могут надёжно отделить VPN-трафик от обычного международного соединения.

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

Человек может сидеть в Новосибирске, открывать российский сайт, а маршрут данных пройдёт через Казахстан, Китай или Монголию. Формально — международный трафик. Фактически — пользователь просто хотел открыть страницу, а не купить себе интернет-турне по Азии.

По обсуждаемой схеме лимит должен составить 15 ГБ в месяц, а всё сверх него может оплачиваться отдельно. В качестве возможной цены назывались 150 рублей за 1 ГБ. Напомним, в марте подсчитали, что 80 ГБ зарубежного трафика в месяц — уже +10 тыс. рублей для россиян.

Есть и юридический нюанс: операторы обязаны предупреждать абонентов об изменениях тарификации за 10 дней. Если бы запуск действительно состоялся 1 июня, уведомления должны были прийти уже 21–22 мая. Раз их нет, версия о переносе выглядит вполне логично.

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