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

Anthropic сняла бан Claude через три часа после апелляции россиянина

Российский пользователь Claude рассказал о внезапном бане сразу после проверки личности по загранпаспорту. Но история закончилась неожиданно быстро: примерно через три часа после апелляции Anthropic вернула доступ и оформила возврат $78,97 за неиспользованную часть подписки.

О своём опыте пользователь рассказал на Хабре, приложив уведомления компании.

По словам автора, он работает с Claude из России через VPN. Перед проверкой личности экспортировал переписки и проекты, указал настоящие имя и фамилию, а затем предъявил действующий российский загранпаспорт. Сразу после верификации сервис сообщил о блокировке, связанной с подозрительной активностью.


Однако последовательность событий ещё не доказывает, что причиной стал именно паспорт. Автор допускает влияние региона, VPN, смены IP-адресов или сочетания факторов. Конкретное основание Anthropic ему не объяснила.

Пользователь подал стандартную апелляцию с просьбой пересмотреть решение. Текст на английском помог составить GPT.

Примерно через три часа, утверждает автор, команда Anthropic Safeguards сообщила о восстановлении аккаунта после повторного рассмотрения. Подписка Max автоматически не вернулась: учётная запись осталась на бесплатном тарифе, а за остаток оплаченного периода компания оформила возврат. После этого пользователь снова оплатил Max за $100.

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

Автор внёс несколько изменений в аккаунт, самое интересное из которых — в настройках конфиденциальности отключить передачу местоположения.

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