Fickling check_safety() bypass via unlisted standard library modules (_posixsubprocess, site, atexit)
Trail of Bits fickling versions up to and including 0.1.10 do not include the Python standard library modules _posixsubprocess, site, and atexit in the UNSAFE_IMPORTS denylist (fickle.py). Because these modules are absent from the denylist, fickling's check_safety() function returns LIKELY_SAFE with zero findings for pickle payloads that invoke dangerous functions including _posixsubprocess.fork_exec (C-level process spawner capable of executing arbitrary binaries), site.execsitecustomize (executes arbitrary site customization code), and atexit._run_exitfuncs (triggers all registered exit handler callbacks). The fickling.load() API chains check_safety() into pickle.loads() as an explicit security gate; a LIKELY_SAFE verdict causes the payload to be deserialized and executed. This shares the same root cause as CVE-2026-22607 (cProfile), CVE-2025-67748 (pty), and CVE-2025-67747 (marshal/types). OvertlyBadEvals does not flag these modules because they are standard library imports. UnsafeImports does not flag them because they are not in the denylist. The UnusedVariables heuristic is defeated by the SETITEMS opcode pattern.
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для сотен тысяч уязвимостей в базе; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощь- Опубликовано
- 4 июл. 2026 г.
- Обновлено
- 10 июл. 2026 г.
- EPSS
- 0,6 % · 46-й процентиль
- CWE
- CWE-184
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
35
Наблюдать
Пока низкий приоритет.
- CVSS
- 35 / 40 · 8.8 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · 0,6 %
Решение CISA SSVC
- Эксплуатация
- proof of concept
- Автоматизируемо
- нет
- Техническое влияние
- полное
Vulnrichment: входные данные дерева решений CISA.
Оценка CNA и NVD
- NVD
- —
- CNA · BombadilSystems
- 8,8
- NVD ещё не выставил свою оценку; показана оценка CNA.
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Затронутые системы
| Вендор | Продукт | CPE |
|---|---|---|
| trailofbits | fickling | cpe:2.3:a:trailofbits:fickling |
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- trailofbits ficklingдо 0.1.10 включительно
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (BombadilSystems). Не зависят от анализа CPE в NVD и обычно опережают его.
trailofbits fickling
- 0.1.11не затронута
- до 0.1.10 включительнозатронута
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| PyPI | fickling | до 0.1.11 | 0.1.11 |
Тот же продукт
trailofbits: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2026-14535Fickling MLAllowlist analysis pass rendered inoperative by shared mutable state in AnalysisContext.shorten_code()39Наблюдать
- CVE-2026-22612Fickling vulnerable to detection bypass due to "builtins" blindness35Наблюдать
- CVE-2026-22609Fickling has Static Analysis Bypass via Incomplete Dangerous Module Blocklist35Наблюдать
- CVE-2026-22608Fickling vulnerable to use of ctypes and pydoc gadget chain to bypass detection35Наблюдать
- CVE-2026-22607Fickling Blocklist Bypass: cProfile.run()35Наблюдать
- CVE-2026-22606Fickling has a bypass via runpy.run_path() and runpy.run_module()35Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| PyPI:fickling | 0.1.11 | Реестр пакетов (OSV) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
- CVE-2026-22606с разницей 176 дн.Fickling has a bypass via runpy.run_path() and runpy.run_module()35Наблюдать
- CVE-2026-22607с разницей 176 дн.Fickling Blocklist Bypass: cProfile.run()35Наблюдать
- CVE-2026-22608с разницей 176 дн.Fickling vulnerable to use of ctypes and pydoc gadget chain to bypass detection35Наблюдать
- CVE-2026-22609с разницей 176 дн.Fickling has Static Analysis Bypass via Incomplete Dangerous Module Blocklist35Наблюдать
- CVE-2025-67747с разницей 201 дн.Fickling has missing detection for marshal.loads and types.FunctionType in unsafe modules list28Наблюдать
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Учётная запись или пароль не требуются.
- Пользователь должен открыть ссылку или посетить страницу.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- высокое · данные могут быть прочитаны
- Целостность
- высокое · данные или конфигурация могут быть изменены
- Доступность
- высокое · работа сервиса может быть нарушена
- Вектор атаки
- Сеть
- Сложность атаки
- Низкая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Требуется
- Область действия
- Не изменяется
- Влияние на конфиденциальность
- Высокое
- Влияние на целостность
- Высокое
- Влияние на доступность
- Высокое
Класс уязвимости (CWE)
CWE-184 · Incomplete List of Disallowed InputsВектор CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
nvd-secondary
Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Шаблоны атак (CAPEC)
- Double EncodingCAPEC-120вероятность: Low · Medium
- Command DelimitersCAPEC-15вероятность: High · High
- Flash InjectionCAPEC-182вероятность: High · Medium
- Using Leading 'Ghost' Character Sequences to Bypass Input FiltersCAPEC-3вероятность: Medium · Medium
- Exploiting Multiple Input Interpretation LayersCAPEC-43вероятность: Medium · High
- Argument InjectionCAPEC-6вероятность: High · High
- Using Unicode Encoding to Bypass Validation LogicCAPEC-71вероятность: Medium · High
- User-Controlled FilenameCAPEC-73вероятность: High · High
Техники ATT&CK
—
Журнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- github.com/trailofbits/fickling/commit/e8408615b63adf034f891f653692ab9b51f0f5af
- github.com/trailofbits/fickling/pull/272
- github.com/trailofbits/fickling/releases/tag/v0.1.11
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.