The OpenNET Project / Index page

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

В Samba устранены уязвимости, допускающие удалённое выполнение кода в редких конфигурациях

27.05.2026 21:19 (MSK)

Представлены корректирующие релизы пакета Samba 4.24.3, 4.23.8 и 4.22.10, предоставляющего открытую реализацию протоколов SMB и Active Directory. В новых версиях устранено 6 уязвимостей, из которых две позволяют удалённому неаутентифицированному атакующему выполнить свой код на сервере:

  • CVE-2026-4408 - уязвимость в реализации сервера SAMR (Security Account Manager) поверх DCE/RPC, применяемого для управления учётными данными и БД c пользователями и группами. Проблема затрагивает файловые серверы и классические контроллеры доменов (не Active Directory), запускающие процесс samba-dcerpcd как системный сервис (по умолчанию не запускается) и использующие скрипт проверки пароля, заданный в smb.conf через настройку "check password script" с использованием символа подстановки "%u" в команде запуска (конфигурации без подстановки "%u" проблеме не подвержены).

    Уязвимость вызвана тем, что RPC-сервисы SamValidatePasswordChange и SamValidatePasswordReset передают логин и пароль в скрипт, заданный через настройку "check password script", без экранирования спецсимволов при подстановке имени пользователя через "%u". Уязвимость позволяет выполнить произвольные shell-команды на сервере при указании специально оформленного имени пользователя. В качестве обходного пути защиты предлагается передавать в скрипт имя пользователя не через подстановку "%u", а через переменную окружения SAMBA_CPS_ACCOUNT_NAME.

  • CVE-2026-4480 - уязвимость в сервере вывода на печать, использующем настройку "print command" с символом подстановки "%J". Проблема вызвана тем, что заданное пользователем описание работы вывода печать передаётся через подстановку "%J" без должного экранирования спецсимволов, что позволяет удалённо выполнить свой код при отправке задания на печать, в том числе в доступном по умолчанию гостевом режиме. В качестве обходного пути защиты можно удалить подстановку "%J" из настройки "print command" в smb.conf.

Также в новых выпусках устранено ещё несколько уязвимостей, дающих возможность обойти проверку прав доступа к xattr-атрибуту "reparse point", вторично перезаписать файл при использовании vfs-модуля WORM (Write-Once, Read Many), установить сертификат через HTTP без верификации и вызвать аварийно завершение сервера AD DC WINS через отправку специально оформленного UDP-пакета.

  1. Главная ссылка к новости (https://lists.samba.org/archiv...)
  2. OpenNews: Выпуск Samba 4.24.0
  3. OpenNews: Удалённая root-уязвимость в Samba
  4. OpenNews: Уязвимости в Samba, приводящие к переполнению буфера и выходу за границу базового каталога
  5. OpenNews: Уязвимость в Samba, позволяющая поменять пароль любому пользователю
  6. OpenNews: Уязвимость в Samba, позволяющая удалённо выполнить код на сервере
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65545-samba
Ключевые слова: samba
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (21) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 21:36, 27/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Случайность
     
  • 1.4, Аноним (4), 22:14, 27/05/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

  • 1.11, Аноним (11), 22:36, 27/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    Проблема общесистемная, тяжёлое наследие сляпанных на коленке юниксов для решения локалхостных задач, тяп-ляп и в продакшен. Самбу рикошетом пришибло слегка. Ну да не впервой.
     
     
  • 2.15, Аноним (15), 02:01, 28/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В масдае есть системный вызов, который хотя бы позволяет передать аргументы для команды в листе?
     

  • 1.12, Аноним (12), 22:53, 27/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > передают логин и пароль в скрипт ... без экранирования спецсимволов

    Пора бы уж придумать более безопасный язык.

     
     
  • 2.13, _ (??), 23:27, 27/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    rustsh ?

    OMG ;)

     
     
  • 3.14, Аноним (12), 00:53, 28/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    язык "незабудьэкран"
     
     
  • 4.19, morphe (?), 02:29, 28/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А если одна команда передаёт аргументы другой - то 2 экрана
    А если один из этих аргументов приходит от юзера - то один экран должен быть согласно правилам одной программы, а другой согласно правилам другой
    И shell не забудь, да, для него тоже экранирование нужно

    Правила экранирования недостаточно подробно описаны? Чтож, держись, страдай, экраннезабывай, но ни в коем случае не отходи от экранирования строк в нормальный ЯП!

     
  • 2.16, Аноним (15), 02:02, 28/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Английский. Вам как-раз подойдёт.
     

  • 1.17, нах. (?), 02:19, 28/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    в очередной раз тот случай, когда не играми в бесконечное экранирование спецсимволов надо было заниматься, а срезать из потока все символы кроме разрешенных вообще, не разбирая что там. Причем прямо на этапе приема данных от юзера.

    бобби тэйблс перетопчется.


     
     
  • 2.20, Аноним (20), 05:54, 28/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    что за костыли

    просто надо делать posix_spawn(), а не эту чушь с запуском шелла

     
  • 2.22, Аноним (22), 07:58, 28/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > срезать из потока все символы

    Это ещё одна итерация идеи "validate". Давно звучит рефрен "parse, don't validate", я предлагаю пойти и почитать к чему это жжж, чтобы понять, почему валидация -- это мёртвому припарки.

     
     
  • 3.26, нах. (?), 10:15, 28/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    давай расскажи мне про мертвому припарки когда никаких символов кроме alfanumeric и пунктуационных из строго ограниченного списка - просто нет и быть не может.

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

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

    А вот с парсингом недоверенного ввода проблема у тебя будет вечной - где-нибудь да в очередной раз вляпаешься.

     
  • 2.25, Sm0ke85 (ok), 10:12, 28/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >а срезать из потока все символы кроме разрешенных вообще

    Не, ерунда, а с паролями как или хэшами???

     
     
  • 3.27, нах. (?), 10:35, 28/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    с хэшами все нормально, в base64 нет никаких опасных символов.
    Пароли передающиеся в другую отдельную программу - э... в общем за это надо отрубать руки по самую голову. Даже если они передаются безопастным способом (потому что таких не бывает, никогда нельзя гарантировать что на той стороне пайпа кто-то доверенный), а не через "%u" или переменные окружения доступные всем и каждому.

     

  • 1.18, runoverheads (ok), 02:21, 28/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    passwordprogram = talloc_string_sub(ctx, passwordprogram, "%u", name);
    ...
    if (execle("/bin/sh", "sh", "-c", passwordprogram, NULL, eptrs) < 0)
    они шел вызывают!!! передав все аргументы одной строкой. вместо того чтобы вызвать само приложение и передать ему список аргументов (разделённых NULL).

    переделывать конечно не стали, просто добавили поиск такого набора символов:
    p = strchr("\"[]:;|=+*?<>/\\,", c);

    символы ', -, &, ! видимо безопасные.

     
  • 1.21, Тот_Самый_Анонимус_ (?), 06:04, 28/05/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +2 +/
     

  • 1.23, Жироватт (ok), 09:19, 28/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    О, очередная *уязвимость* в месте, где вставляется уже провалидированная и доверенная строка. Небось очередной ЫЫ нашел.
    Уязвимости класса "если в интерпретатор скуля вставить команду DROP TABLE users, то она удалит таблицу юзеров, невероятно". Это не проблема этих подсистем, это проблема кода, который в принципе может принимать любые символы в этих полях, особенно требующие экранирования.


     
     
  • 2.28, нах. (?), 10:38, 28/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    так проблема именно в том что она провалидирована. А не ограничена сабсетом символов (теперь наконец вроде бы догадались, но похоже что опять не там где она впервые появляется, так что ждите новых сюрпризов).
    С точки зрения бобби тэйблса строка правильная, его так зовут, валидация пройдена.

     

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



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

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