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

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

Об этом рассказал бывший инженер Microsoft Дэйв Пламмер, участвовавший в создании механизма активации Windows XP.

По его словам, у системы существовали разные установочные носители: обычные Retail для частных покупателей и Volume Media для крупных компаний и OEM-партнёров.

Корпоративным клиентам не хотелось активировать по телефону или через интернет каждую из сотен машин. Поэтому Volume-версия принимала специальные ключи VLK и при правильной комбинации носителя и ключа пропускала стандартную процедуру активации.


Причём ключ от корпоративной редакции на обычном диске Windows XP не сработал бы, установщик проверял, что перед ним именно Volume Media.

Но ещё до выхода Windows XP в розницу кто-то, вероятно из числа крупных партнёров Microsoft, вынес из избы сразу оба компонента: образ Windows XP Pro Corporate и действующий ключ, начинавшийся с FCKGW. Примерно за пять недель до официального релиза пиратская группа Devils0wn выложила комплект в Сеть.

Дальше комбинацию начали встраивать прямо в пиратские сборки, а ключ — писать маркером на болванках. Microsoft позднее внесла его и сотни других скомпрометированных VLK в чёрный список Windows XP Service Pack 1. В SP2 и Windows Genuine Advantage проверки стали жёстче, вплоть до ограничения обновлений.

По словам Пламмера, Microsoft могла закрутить гайки ещё сильнее, но тогда под раздачу рисковали попасть легальные пользователи.

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