CVE-2026-41651: PackageKit vulnerable to TOCTOU Race on Transaction Flags leads to arbitrary package installation as root
Оценка Noroxi
Приоритет: Наблюдать (оценка срочности 35/100)
- Есть публичный код proof-of-concept (GitHub); записей об эксплуатации в реальных атаках нет.
- Вероятность эксплуатации в ближайшие 30 дней: 0,54% (FIRST EPSS).
- Может быть вызвана пользователем с локальным доступом к системе. Достаточно учётной записи с низкими привилегиями. Действия пользователя не требуются. Особые условия не требуются; воспроизводится стабильно.
- Исправленная версия: PackageKit PackageKit 1.3.5.
Пока низкий приоритет. Обновитесь до PackageKit PackageKit 1.3.5 или новее.
Формируется автоматически по данным записи: CVSS (NVD и CNA), CISA KEV и SSVC, FIRST EPSS, источники эксплойтов, исправленные версии. Как мы считаем
Первоисточники: NVD · CVE.org · FIRST EPSS
PackageKit is a a D-Bus abstraction layer that allows the user to manage packages in a secure way using a cross-distro, cross-architecture API. PackageKit between and including versions 1.0.2 and 1.3.4 is vulnerable to a time-of-check time-of-use (TOCTOU) race condition on transaction flags that allows unprivileged users to install packages as root and thus leads to a local privilege escalation. This is patched in version 1.3.5. A local unprivileged user can install arbitrary RPM packages as root, including executing RPM scriptlets, without authentication. The vulnerability is a TOCTOU race condition on `transaction->cached_transaction_flags` combined with a silent state-machine guard that discards illegal backward transitions while leaving corrupted flags in place. Three bugs exist in `src/pk-transaction.c`: 1. Unconditional flag overwrite (line 4036): `InstallFiles()` writes caller-supplied flags to `transaction->cached_transaction_flags` without checking whether the transaction has already been authorized/started. A second call blindly overwrites the flags even while the transaction is RUNNING. 2. Silent state-transition rejection (lines 873–882): `pk_transaction_set_state()` silently discards backward state transitions (e.g. `RUNNING` → `WAITING_FOR_AUTH`) but the flag overwrite at step 1 already happened. The transaction continues running with corrupted flags. 3. Late flag read at execution time (lines 2273–2277): The scheduler's idle callback reads cached_transaction_flags at dispatch time, not at authorization time. If flags were overwritten between authorization and execution, the backend sees the attacker's flags.
- BDU:2026-05781
- ALSA-2026:11504
- ALSA-2026:11635
- ALSA-2026:19141
- ALSA-2026:19354
- openSUSE-SU-2026:10629-1
- RHSA-2026:11504
- RHSA-2026:11635
- RHSA-2026:17558
- RHSA-2026:17560
- RHSA-2026:17561
- RHSA-2026:18024
- RHSA-2026:18031
- RHSA-2026:18036
- RHSA-2026:19141
- RHSA-2026:19354
- RHSA-2026:19454
- RHSA-2026:19601
- RHSA-2026:22146
- RLSA-2026:11504
- Опубликовано
- 22 апр. 2026 г.
- Обновлено
- 15 июл. 2026 г.
- EPSS
- 0,5 % · 46-й процентиль
- CWE
- CWE-367
Инструменты для отчёта
Оценка срочности
35
Наблюдать
Пока низкий приоритет.
- CVSS
- 35 / 40 · 8.8 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · 0,5 %
Решение CISA SSVC
- Эксплуатация
- нет
- Автоматизируемо
- нет
- Техническое влияние
- полное
Vulnrichment: входные данные дерева решений CISA.
Оценка CNA и NVD
- NVD
- —
- CNA · GitHub_M
- 8,8
- NVD ещё не выставил свою оценку; показана оценка CNA.
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Узнайте, когда запись изменится
- Нет в KEV: эксплуатация в реальных атаках не зафиксирована
- Есть PoC, боевого модуля нет
- Исправление выпущено
Если что-то из этого изменится, сообщим в ежедневной сводке.
У вас WordPress? Проверьте сайт бесплатно в WP Lens
Анализ Noroxi
Что это значит для вашей инфраструктуры?
Оценка выше формируется автоматически по данным записи и не знает вашей среды. Наша команда проверит на ваших системах, действительно ли уязвимость эксплуатируема и какой меры достаточно.
Мы используем этот продукт, нужна помощьЗатронутые системы
Затронута ли ваша версия?
Выберите продукт и введите свою версию. Она сравнивается с диапазонами этой записи прямо в браузере и никуда не отправляется.
| Вендор | Продукт | CPE |
|---|---|---|
| packagekit project | packagekit | cpe:2.3:a:packagekit_project:packagekit |
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- packagekit project packagekit1.0.2 и новее · до 1.3.5
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (GitHub_M). Не зависят от анализа CPE в NVD и обычно опережают его.
PackageKit PackageKit
- >= 1.0.2, <= 1.3.4затронута
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| AlmaLinux:10 | PackageKit | до 1.2.8-8.el10_2 | 1.2.8-8.el10_2 |
| AlmaLinux:10 | PackageKit-command-not-found | до 1.2.8-8.el10_2 | 1.2.8-8.el10_2 |
| AlmaLinux:10 | PackageKit-glib | до 1.2.8-8.el10_2 | 1.2.8-8.el10_2 |
| AlmaLinux:10 | PackageKit-glib-devel | до 1.2.8-8.el10_2 | 1.2.8-8.el10_2 |
| AlmaLinux:10 | PackageKit-gstreamer-plugin | до 1.2.8-8.el10_2 | 1.2.8-8.el10_2 |
| AlmaLinux:10 | PackageKit-gtk3-module | до 1.2.8-8.el10_2 | 1.2.8-8.el10_2 |
| AlmaLinux:8 | PackageKit | до 1.1.12-8.el8_10 | 1.1.12-8.el8_10 |
| AlmaLinux:8 | PackageKit-command-not-found | до 1.1.12-8.el8_10 | 1.1.12-8.el8_10 |
| AlmaLinux:8 | PackageKit-cron | до 1.1.12-8.el8_10 | 1.1.12-8.el8_10 |
| AlmaLinux:8 | PackageKit-glib | до 1.1.12-8.el8_10 | 1.1.12-8.el8_10 |
| AlmaLinux:8 | PackageKit-glib-devel | до 1.1.12-8.el8_10 | 1.1.12-8.el8_10 |
| AlmaLinux:8 | PackageKit-gstreamer-plugin | до 1.1.12-8.el8_10 | 1.1.12-8.el8_10 |
| AlmaLinux:8 | PackageKit-gtk3-module | до 1.1.12-8.el8_10 | 1.1.12-8.el8_10 |
| AlmaLinux:9 | PackageKit | до 1.2.6-2.el9_8 | 1.2.6-2.el9_8 |
| AlmaLinux:9 | PackageKit | до 1.2.6-2.el9_7 | 1.2.6-2.el9_7 |
| AlmaLinux:9 | PackageKit-command-not-found | до 1.2.6-2.el9_8 | 1.2.6-2.el9_8 |
| AlmaLinux:9 | PackageKit-command-not-found | до 1.2.6-2.el9_7 | 1.2.6-2.el9_7 |
| AlmaLinux:9 | PackageKit-glib | до 1.2.6-2.el9_8 | 1.2.6-2.el9_8 |
| AlmaLinux:9 | PackageKit-glib | до 1.2.6-2.el9_7 | 1.2.6-2.el9_7 |
| AlmaLinux:9 | PackageKit-glib-devel | до 1.2.6-2.el9_7 | 1.2.6-2.el9_7 |
| AlmaLinux:9 | PackageKit-glib-devel | до 1.2.6-2.el9_8 | 1.2.6-2.el9_8 |
| AlmaLinux:9 | PackageKit-gstreamer-plugin | до 1.2.6-2.el9_8 | 1.2.6-2.el9_8 |
| AlmaLinux:9 | PackageKit-gstreamer-plugin | до 1.2.6-2.el9_7 | 1.2.6-2.el9_7 |
| AlmaLinux:9 | PackageKit-gtk3-module | до 1.2.6-2.el9_8 | 1.2.6-2.el9_8 |
+96
Тот же продукт
packagekit project: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2020-16122Packagekit's apt backend lets user install untrusted local packages31Наблюдать
- CVE-2018-1106An authentication bypass flaw has been found in PackageKit before 1.1.10 that allows users without administrator privileges to install signe22Наблюдать
- CVE-2011-2515PackageKit 0.6.17 allows installation of unsigned RPM packages as though they were signed which may allow installation of non-trusted packag21Наблюдать
Опубликованы до и после этой записи в том же продукте
- ← РаньшеCVE-2020-161217 нояб. 2020 г. · PackageKit error messages leak presence and mimetype of files to unprivileged users13Наблюдать
- ← РаньшеCVE-2022-098728 июн. 2022 г. · A flaw was found in PackageKit in the way some of the methods exposed by the Transaction interface examines files.13Наблюдать
- ← РаньшеCVE-2024-02173 янв. 2024 г. · Packagekitd: use-after-free in idle function callback13Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| PackageKit PackageKit | 1.3.5 · description | Вендор (CNA) |
| almalinux:PackageKit | 1.2.6-2.el9_7 · AlmaLinux:9 | Реестр пакетов (OSV) |
| almalinux:PackageKit-command-not-found | 1.2.6-2.el9_7 · AlmaLinux:9 | Реестр пакетов (OSV) |
| almalinux:PackageKit-cron | 1.1.12-8.el8_10 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:PackageKit-glib | 1.2.6-2.el9_7 · AlmaLinux:9 | Реестр пакетов (OSV) |
| almalinux:PackageKit-glib-devel | 1.2.6-2.el9_7 · AlmaLinux:9 | Реестр пакетов (OSV) |
| almalinux:PackageKit-gstreamer-plugin | 1.2.6-2.el9_7 · AlmaLinux:9 | Реестр пакетов (OSV) |
| almalinux:PackageKit-gtk3-module | 1.2.6-2.el9_7 · AlmaLinux:9 | Реестр пакетов (OSV) |
| debian:packagekit | 1.2.6-5+deb12u1 · Debian:12 | Реестр пакетов (OSV) |
| opensuse:PackageKit | 1.3.5-1.1 · openSUSE:Tumbleweed | Реестр пакетов (OSV) |
| red hat:PackageKit | 0:1.2.6-2.el9_7 · Red Hat:enterprise_linux:9::appstream | Реестр пакетов (OSV) |
| red hat:PackageKit-command-not-found | 0:1.2.6-2.el9_7 · Red Hat:enterprise_linux:9::appstream | Реестр пакетов (OSV) |
| red hat:PackageKit-command-not-found-debuginfo | 0:1.2.6-2.el9_7 · Red Hat:enterprise_linux:9::appstream | Реестр пакетов (OSV) |
| red hat:PackageKit-debuginfo | 0:1.2.6-2.el9_7 · Red Hat:enterprise_linux:9::appstream | Реестр пакетов (OSV) |
| red hat:PackageKit-debugsource | 0:1.2.6-2.el9_7 · Red Hat:enterprise_linux:9::appstream | Реестр пакетов (OSV) |
| red hat:PackageKit-glib | 0:1.2.6-2.el9_7 · Red Hat:enterprise_linux:9::appstream | Реестр пакетов (OSV) |
| red hat:PackageKit-glib-debuginfo | 0:1.2.6-2.el9_7 · Red Hat:enterprise_linux:9::appstream | Реестр пакетов (OSV) |
| red hat:PackageKit-glib-devel | 0:1.2.6-2.el9_7 · Red Hat:enterprise_linux:9::crb | Реестр пакетов (OSV) |
| red hat:PackageKit-gstreamer-plugin | 0:1.2.6-2.el9_7 · Red Hat:enterprise_linux:9::appstream | Реестр пакетов (OSV) |
| red hat:PackageKit-gstreamer-plugin-debuginfo | 0:1.2.6-2.el9_7 · Red Hat:enterprise_linux:9::appstream | Реестр пакетов (OSV) |
| red hat:PackageKit-gtk3-module | 0:1.2.6-2.el9_7 · Red Hat:enterprise_linux:9::appstream | Реестр пакетов (OSV) |
| red hat:PackageKit-gtk3-module-debuginfo | 0:1.2.6-2.el9_7 · Red Hat:enterprise_linux:9::appstream | Реестр пакетов (OSV) |
| rocky linux:PackageKit | 0:1.2.6-2.el9_7 · Rocky Linux:9 | Реестр пакетов (OSV) |
Статус эксплойта
Есть proof of concept
Существует публичный PoC или сигнатура обнаружения. Знание об эксплойте доступно; не откладывайте установку исправлений.
Доказательство
- Репозиторий PoC на GitHub ×12
Noroxi не размещает код эксплойтов и не даёт на них ссылок. Показываются имена модулей Metasploit и идентификаторы шаблонов Nuclei (имена, не код); записи Exploit-DB и репозитории PoC даются только числом.
| Источник | Тип | Дата |
|---|---|---|
| Репозиторий PoC на GitHub | stars:128 | 2026-04-23 |
| Репозиторий PoC на GitHub | stars:7 | 2026-04-23 |
| Репозиторий PoC на GitHub | stars:13 | 2026-04-24 |
| Репозиторий PoC на GitHub | stars:17 | 2026-04-24 |
| Репозиторий PoC на GitHub | stars:8 | 2026-04-25 |
| Репозиторий PoC на GitHub | stars:12 | 2026-04-29 |
| Репозиторий PoC на GitHub | stars:0 | 2026-05-06 |
| Репозиторий PoC на GitHub | stars:2 | 2026-05-06 |
| Репозиторий PoC на GitHub | stars:0 | 2026-07-25 |
| Репозиторий PoC на GitHub | stars:0 | 2026-08-02 |
| Репозиторий PoC на GitHub | stars:0 | 2026-09-23 |
| Репозиторий PoC на GitHub | stars:0 | 2026-11-06 |
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
- Публикация
- Первый PoC+1 дн.
- Сегодня9 нояб. 2026 г.+201 дн.
Истории пока нет (накапливается ежедневным заданием EPSS).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Среди источников нет ссылок на коммит или PR.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
Ночной расчёт связей ничего не нашёл.
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана пользователем с локальным доступом к системе.
- Достаточно учётной записи с низкими привилегиями.
- Действия пользователя не требуются.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- высокое · данные могут быть прочитаны
- Целостность
- высокое · данные или конфигурация могут быть изменены
- Доступность
- высокое · работа сервиса может быть нарушена
Влияние может выйти за пределы уязвимого компонента (область действия меняется).
- Вектор атаки
- Локальный
- Сложность атаки
- Низкая
- Требуемые привилегии
- Низкие
- Взаимодействие с пользователем
- Не требуется
- Область действия
- Изменяется
- Влияние на конфиденциальность
- Высокое
- Влияние на целостность
- Высокое
- Влияние на доступность
- Высокое
Класс уязвимости (CWE)
CWE-367 · Time-of-check Time-of-use (TOCTOU) Race ConditionВектор CVSS
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
nvd-secondary
Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Журнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
Показать все источники (ещё 19)Свернуть
- github.com/PackageKit/PackageKit/blob/04057883189efa225a7c785591aa87cb299782f8/src/pk-transaction.c#L4036
- github.com/PackageKit/PackageKit/blob/04057883189efa225a7c785591aa87cb299782f8/src/pk-transaction.c#L873-L882
- www.openwall.com/lists/oss-security/2026/04/22/6
- access.redhat.com/errata/RHSA-2026:11504
- access.redhat.com/errata/RHSA-2026:11635
- access.redhat.com/errata/RHSA-2026:17558
- access.redhat.com/errata/RHSA-2026:17560
- access.redhat.com/errata/RHSA-2026:17561
- access.redhat.com/errata/RHSA-2026:18024
- access.redhat.com/errata/RHSA-2026:18031
- access.redhat.com/errata/RHSA-2026:18036
- access.redhat.com/errata/RHSA-2026:19141
- access.redhat.com/errata/RHSA-2026:19354
- access.redhat.com/errata/RHSA-2026:19454
- access.redhat.com/errata/RHSA-2026:19601
- access.redhat.com/errata/RHSA-2026:22146
- access.redhat.com/security/cve/CVE-2026-41651
- bugzilla.redhat.com/show_bug.cgi?id=2460604
- security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-41651.json
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.