The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Уязвимость в pam-u2f, позволяющая обойти аутентификацию на базе аппаратного токена

17.01.2025 15:52

Разработчики проекта openSUSE выявили уязвимость (CVE-2025-23013) в PAM-модуле pam-u2f, применяемом при аутентификации через токены YubiKey, Yubico Security Key, YubiHSM и другие FIDO-устройства, поддерживающие протокол U2F (Universal 2nd Factor). Уязвимость позволяет пользователю, имеющему непривилегированный локальный доступ к системе, в определённых конфигурациях PAM пройти аутентификацию без вставки аппаратного токена. На практике модуль pam-u2f как правило подключается для двухфакторной или беспарольной аутентификации с использованием токенов (например, для подтверждения полномочий выполнения команд через утилиты su и sudo).

Уязвимость вызвана некорректным возвращением функцией pam_sm_authenticate() значения PAM_IGNORE. Данное значение возвращается в случае ошибки выполнения вызовов gethostname(), pam_modutil_drop_priv(), pam_modutil_regain_priv() или resolve_authfile_path(), а также при проблемах выделения памяти в strdup() или calloc(). Проблема в том, что библиотека libpam, получив от PAM-модуля результат с кодом PAM_IGNORE, вернёт итоговый код PAM_SUCCESS, обозначающий успешное прохождение аутентификации, если в цепочке проверок какой-то другой PAM-модуль вернул успешный результат аутентификации.

При использовании модуля pam-u2f в связке с pam_unix для двухфакторной аутентификации, уязвимость позволяет успешно пройти аутентификацию в случае успешной проверки пароля, без подтверждения второго фактора. При выполнении беспарольной аутентификации по аппаратному токену pam-u2f может применяться в связке с PAM-модулем pam_faillock, ограничивающим число попыток аутентификации и возвращающим PAM_SUCCESS, если лимит не исчерпан.

В качестве примера атаки называется обход проверки токена при выполнении локальным пользователем привилегированных команд, используя утилиты sudo и su. Во время запуска этих команд атакующий может создать условия для возвращения модулем pam-u2f значения PAM_IGNORE, например, через исчерпание доступной памяти. Проблема устранена в версии pam-u2f 1.3.1.

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Уязвимость в pam_oath, позволяющая получить права root в системе
  3. OpenNews: Локальная root-уязвимость в pam-python
  4. OpenNews: PAM-модуль для аутентификации через распознавание лица пользователя
  5. OpenNews: Атака EUCLEAK, позволяющая клонировать YubiKey 5 и другие ключи на чипах Infineon
  6. OpenNews: Уязвимости в PCP и Nix, позволяющие поднять привилегии в системе
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62575-pam
Ключевые слова: pam, pam-u2f
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (15) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 16:32, 17/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не опасно, можно не напрягаться.
     
     
  • 2.4, Аноним (4), 16:45, 17/01/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Отверстием могут воспользоваться только те чьё это отверстие.
     
     
  • 3.8, нах. (?), 16:50, 17/01/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    нет, любой кто подсмотрел твой пароль.

    Именно для предотвращения подобных атак мы и используем токен.

     
     
  • 4.23, Аноним (23), 10:17, 18/01/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    вы это жертвы маркетинга? не надоело раз в полгода 50 баксов выбрасывать из-за очередной уязвимости в usb-свистке?
     
     
  • 5.25, нах. (?), 10:54, 18/01/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > вы это жертвы маркетинга? не надоело раз в полгода 50 баксов выбрасывать
    > из-за очередной уязвимости в usb-свистке?

    в usb-свистке, внезапно, никаких явных уязвимостей - пока не находили.

    (он там by design кривой, но, к сожалению, пластмассово-пластилиновый мир никак не может осилить нормально сделать - там, откуда они копипастят, нет нормального. И да, лучше уж убиквити чем пароль 21345)


     
     
  • 6.26, Аноним (4), 14:37, 18/01/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Все давно известно что бумажка под клавиатурой самое безопасное что придумано на данный момент.
     
     
  • 7.28, нах. (?), 14:45, 18/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    какое нах?! Ты бы знал, сколько я их прое...

    То сквозняком сдует (и даже если найти потом - поди пойми где она лежала и от чего это), то винищем зальешь, то пылесосом всосет вместе с шерстью... тухлый номер, короч.

    Идея из далеких времен когда компьютеры были большие и одного пароля от всего хватало. (И этому...эксперту с кошельком передайте, что в кошелек столько тоже не влезет)

    Пишу строительным маркером прям на рамке монитора. Так - надежно. И перепутать мониторы постараться надо.

     
     
  • 8.29, ryoken (ok), 18:31, 18/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да вы батенька, сизый нос ... текст свёрнут, показать
     
  • 3.18, Аноним (18), 19:57, 17/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это смотря в какой компании окажешься ;)
     

  • 1.7, Аноним (-), 16:50, 17/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Хм... я правильно понимаю, что, судя по коммиту


    debug_dbg(cfg, "Unable to allocate memory");
    + retval = PAM_BUF_ERR;
    goto done;


    они тупо игнорили ситуацию "не смог аллоцировать память" ?
     
     
  • 2.10, нах. (?), 16:55, 17/01/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    не игнорили, просто возвращали код "нишмагла" не уточняя почему. Им показалось - логично, это ведь не ошибка проверки токена, этодругое. А там в конфиге "suffucient" вместо required (потому что иначе без 2fa вообще не залогинишься), и любой модуль этажом выше мог выдать ок.

    Т.е. ломались именно 2fa, а там где вообще не принято было использовать пароли - все оставалось безопастно.

     

  • 1.12, Ivan_83 (ok), 16:56, 17/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > PAM_IGNORE. Данное значение возвращается в случае ошибки выполнения вызовов gethostname()

    эээ это же достаточно сеть не надолго отключить.
    Зачётно.

     
     
  • 2.17, нах. (?), 18:48, 17/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> PAM_IGNORE. Данное значение возвращается в случае ошибки выполнения вызовов gethostname()
    > эээ это же достаточно сеть не надолго отключить.

    да, мне тоже лень в код лазить, но ощущение подсказывает что должно сработать.
    где, где супергерои из nixos, которые заявят что вот у них-то все супернадежно?!

    > Зачётно.

    ну, в принципе, нехватку памяти устроить тоже не надо сверхспособностей.

     

  • 1.16, Аноним (-), 17:18, 17/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Уязвимость позволяет пользователю, имеющему непривилегированный локальный доступ к системе,
    > в определённых конфигурациях PAM пройти аутентификацию без вставки аппаратного токена

    На третий день Зоркий Глаз заметил что втыкать токен для аутентификации было не обязательно :))

     
     
  • 2.27, Аноним (4), 14:38, 18/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Зоркий глаз заметил, но пипл всё равно продолжает хавать.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру