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

Microsoft решила превратить проверку возраста из надоедливой анкеты в системную функцию Windows 11. Новые API позволят зарегистрированным приложениям узнавать возрастную категорию пользователя и получать статус её подтверждения, но без доступа к точной дате рождения.

Система разделит владельцев компьютеров на пять групп: до 10 лет, 10-12, 13-15, 16-17 и 18+.

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

Получить данные сможет не каждая программа, случайно поселившаяся на компьютере. Microsoft намерена проверять личность запрашивающего приложения, а разработчику придётся зарегистрироваться на платформе Digital Safety.

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


Зачем всё это? Сейчас каждому сервису приходится самостоятельно выяснять, взрослый ли перед ним человек: просить дату рождения, банковскую карту, документ или хотя бы поставить честнейшую галочку «Мне есть 18». Microsoft хочет оставить конфиденциальные сведения у системного посредника, а приложениям выдавать лишь необходимый минимум.

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

API уже появились в предварительной документации для Windows 11 24H2, но пока не работают: запросы возвращают неопределённый возраст и статус недоступности. Запустить функцию Microsoft планирует в одном из обновлений до конца 2026 года.

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