Мониторинг Карточка CVE
Открытые данные
К списку уязвимостей
Информационный
Опубликована

CVE-2026-99038

memstick: rtsx_usb_ms: complete requests after eject instead of dropping them

Публикация: 23.10.2026·Обновлена: 30.10.2026, 18:34·Europe/Moscow

Что произошло

Перевод ещё не доступен · оригинальное описание

In the Linux kernel, the following vulnerability has been resolved: memstick: rtsx_usb_ms: complete requests after eject instead of dropping them memstick_check() can pass its host->removing check just before rtsx_usb_ms_drv_remove() sets eject/removing. Its next request is then silently dropped: rtsx_usb_ms_request() skips schedule_work() once eject is set, and drv_remove's cancel_work_sync() can also cancel a queued handle_req before it picks the request up. Nobody completes card->mrq_complete. Once memstick core waits for requests without a timeout ("memstick: core: wait for request completion before freeing card"), this hangs removal: memstick_check() never returns and memstick_remove_host() blocks in flush_workqueue(): INFO: task kworker/u10:3:65 blocked for more than 20 seconds. Workqueue: kmemstick memstick_check __wait_for_common memstick_check INFO: task kworker/1:1:33 blocked for more than 20 seconds. Workqueue: usb_hub_wq hub_event __flush_workqueue memstick_remove_host rtsx_usb_ms_drv_remove Never drop a request. rtsx_usb_ms_request() always schedules handle_req, and handle_req fails requests with -ENOMEDIUM once eject is set, without touching the device. drv_remove flushes handle_req instead of cancelling it, and cancels it only after memstick_remove_host(), when no new request can arrive, so it cannot run on a freed host. The host_mutex drain in drv_remove is removed: handle_req always leaves host->req NULL when it finishes, so the drain never had anything to do, and it would now race with handle_req.

Что это значит

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

Что делать

Сформировано автоматически из полей источников и общих шаблонов
Плановое окно после оценки применимости

1. Проверьте, затронуты ли вы

Соберите инвентаризацию и сравните с таблицей затронутых версий. Эти команды только показывают установленные компоненты и сами по себе не доказывают наличие CVE.

Debian / Ubuntu
dpkg-query -W -f='${Package}	${Version}\n'
RHEL / AlmaLinux
rpm -qa --qf '%{NAME}\t%{VERSION}-%{RELEASE}\n'
Windows PowerShell
Get-HotFix | Select-Object HotFixID, InstalledOn
Общая рекомендация, не из бюллетеня вендора

2. Установите исправление

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

Общая рекомендация, не из бюллетеня вендора

3. Временные меры

До проверки бюллетеня ограничьте доступ к затронутому компоненту доверенными узлами. Оцените сегментацию и отключение ненужных интерфейсов с владельцем сервиса; универсального правила WAF для этой CVE не подтверждено.

Общая рекомендация, не из бюллетеня вендора

4. Проверьте следы эксплуатации

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

Общая рекомендация, не из бюллетеня вендора

5. После исправления

  • Проверьте фактическую версию и результат установки по бюллетеню.
  • При необходимости перезапустите сервисы в согласованное окно.
  • Повторите проверку сканером и функциональные проверки.
  • Зафиксируйте результат, дату, владельца и оставшийся риск.

Продукты и затронутые версии

Linux / Linux

{
  "status": "affected",
  "version": "99451dceeb5fdd789f0a2eeb3ee029e80d2ccc40",
  "lessThan": "c48245ef696e590e92cbfb622625642bec8dbbad",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "99451dceeb5fdd789f0a2eeb3ee029e80d2ccc40",
  "lessThan": "602a00d75d2ab079c9ab7c0d7b56ae436e604148",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "99451dceeb5fdd789f0a2eeb3ee029e80d2ccc40",
  "lessThan": "8e4eda6e1b00624820fea1d35508d7422330ee25",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "99451dceeb5fdd789f0a2eeb3ee029e80d2ccc40",
  "lessThan": "f2c181e1d58e911804e14543b2f1cc6b23a0d4d6",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "99451dceeb5fdd789f0a2eeb3ee029e80d2ccc40",
  "lessThan": "5b599e28aeb3684772aef64f46cc6f25f4c67128",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "99451dceeb5fdd789f0a2eeb3ee029e80d2ccc40",
  "lessThan": "d7e811c3a49cd5cff529c157df886719e09370ec",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "99451dceeb5fdd789f0a2eeb3ee029e80d2ccc40",
  "lessThan": "5616da0f92339328fa1472876df51555e15ad340",
  "versionType": "git"
}
{
  "status": "affected",
  "version": "99451dceeb5fdd789f0a2eeb3ee029e80d2ccc40",
  "lessThan": "c96ca94425b076dc398d929366e378d1e22ec794",
  "versionType": "git"
}

Linux / Linux

{
  "status": "affected",
  "version": "3.16"
}
{
  "status": "unaffected",
  "version": "0",
  "lessThan": "3.16",
  "versionType": "semver"
}
{
  "status": "unaffected",
  "version": "5.10.273",
  "versionType": "semver",
  "lessThanOrEqual": "5.10.*"
}
{
  "status": "unaffected",
  "version": "5.15.224",
  "versionType": "semver",
  "lessThanOrEqual": "5.15.*"
}
{
  "status": "unaffected",
  "version": "6.1.191",
  "versionType": "semver",
  "lessThanOrEqual": "6.1.*"
}
{
  "status": "unaffected",
  "version": "6.6.160",
  "versionType": "semver",
  "lessThanOrEqual": "6.6.*"
}
{
  "status": "unaffected",
  "version": "6.12.113",
  "versionType": "semver",
  "lessThanOrEqual": "6.12.*"
}
{
  "status": "unaffected",
  "version": "6.18.57",
  "versionType": "semver",
  "lessThanOrEqual": "6.18.*"
}
{
  "status": "unaffected",
  "version": "7.2.11",
  "versionType": "semver",
  "lessThanOrEqual": "7.2.*"
}
{
  "status": "unaffected",
  "version": "7.3",
  "versionType": "original_commit_for_fix",
  "lessThanOrEqual": "*"
}

CVSS: оценки и векторы

Оценка CVSS отсутствует.

Источники и ссылки

Происхождение полей
{
  "cwes": [],
  "epss": {
    "source": "epss",
    "received_at": "2026-11-01T21:13:22.706657+00:00"
  },
  "title": {
    "source": "cve",
    "received_at": "2026-10-30T12:57:41.967824+00:00"
  },
  "scores": [],
  "status": {
    "source": "cve",
    "received_at": "2026-10-30T12:57:41.967824+00:00"
  },
  "affected": [
    "cve"
  ],
  "published": {
    "source": "cve",
    "received_at": "2026-10-30T12:57:41.967824+00:00"
  },
  "solutions": [],
  "percentile": {
    "source": "epss",
    "received_at": "2026-11-01T21:13:22.706657+00:00"
  },
  "references": [
    "cve",
    "ghsa",
    "nvd"
  ],
  "description": {
    "source": "cve",
    "received_at": "2026-10-30T12:57:41.967824+00:00"
  },
  "workarounds": [],
  "configurations": []
}

Хронология записи

  1. Данные обновлены02.11.2026, 00:13
  2. Данные обновлены31.10.2026, 12:00
  3. Данные обновлены30.10.2026, 20:51
  4. Данные обновлены30.10.2026, 15:58
  5. Данные обновлены29.10.2026, 12:47
  6. Опубликована28.10.2026, 23:51

Личная заметка и статус

Другие CVE того же продукта

УЯЗВИМОСТЬ / ПРОДУКТПРИОРИТЕТCVSSEPSSСИГНАЛЫОПУБЛИКОВАНАКарточка
CVE-2026-99242
ntfs: fix race between fallocate and mmap reads
Linux / Linux
Информационный—
—
02.11.2026
CVE-2026-99241
ntfs: take invalidate_lock in ntfs_filemap_page_mkwrite()
Linux / Linux
Информационный—
—
02.11.2026
CVE-2026-99240
mm/damon/core: error damos_commit_quota_goal() for zero target_value
Linux / Linux
Информационный—
—
02.11.2026
CVE-2026-99239
Bluetooth: L2CAP: refuse __l2cap_chan_add if chan already has conn
Linux / Linux
Высокий7.8
—
02.11.2026
CVE-2026-99238
tracing: Hold trace_types_lock when updating modules in persistent instances
Linux / Linux
Высокий7.8
—
02.11.2026