Перейти к содержимому
Noroxi
CVE-2025-39756· NVD / CVE Program· CNA Linux

fs: Prevent file descriptor table allocations exceeding INT_MAX

In the Linux kernel, the following vulnerability has been resolved: fs: Prevent file descriptor table allocations exceeding INT_MAX When sysctl_nr_open is set to a very high value (for example, 1073741816 as set by systemd), processes attempting to use file descriptors near the limit can trigger massive memory allocation attempts that exceed INT_MAX, resulting in a WARNING in mm/slub.c: WARNING: CPU: 0 PID: 44 at mm/slub.c:5027 __kvmalloc_node_noprof+0x21a/0x288 This happens because kvmalloc_array() and kvmalloc() check if the requested size exceeds INT_MAX and emit a warning when the allocation is not flagged with __GFP_NOWARN. Specifically, when nr_open is set to 1073741816 (0x3ffffff8) and a process calls dup2(oldfd, 1073741880), the kernel attempts to allocate: - File descriptor array: 1073741880 * 8 bytes = 8,589,935,040 bytes - Multiple bitmaps: ~400MB - Total allocation size: > 8GB (exceeding INT_MAX = 2,147,483,647) Reproducer: 1. Set /proc/sys/fs/nr_open to 1073741816: # echo 1073741816 > /proc/sys/fs/nr_open 2. Run a program that uses a high file descriptor: #include <unistd.h> #include <sys/resource.h> int main() { struct rlimit rlim = {1073741824, 1073741824}; setrlimit(RLIMIT_NOFILE, &rlim); dup2(2, 1073741880); // Triggers the warning return 0; } 3. Observe WARNING in dmesg at mm/slub.c:5027 systemd commit a8b627a introduced automatic bumping of fs.nr_open to the maximum possible value. The rationale was that systems with memory control groups (memcg) no longer need separate file descriptor limits since memory is properly accounted. However, this change overlooked that: 1. The kernel's allocation functions still enforce INT_MAX as a maximum size regardless of memcg accounting 2. Programs and tests that legitimately test file descriptor limits can inadvertently trigger massive allocations 3. The resulting allocations (>8GB) are impractical and will always fail systemd's algorithm starts with INT_MAX and keeps halving the value until the kernel accepts it. On most systems, this results in nr_open being set to 1073741816 (0x3ffffff8), which is just under 1GB of file descriptors. While processes rarely use file descriptors near this limit in normal operation, certain selftests (like tools/testing/selftests/core/unshare_test.c) and programs that test file descriptor limits can trigger this issue. Fix this by adding a check in alloc_fdtable() to ensure the requested allocation size does not exceed INT_MAX. This causes the operation to fail with -EMFILE instead of triggering a kernel warning and avoids the impractical >8GB memory allocation request.

СредняяCVSS 5.5 · v3.1—Эксплойта нет Есть исправление
Опубликовано
11 сент. 2025 г.
Обновлено
8 сент. 2026 г.
EPSS
0,2 % · 7-й процентиль
Следить за этой CVE

Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.

Инструменты для отчёта

JSON

Оценка срочности

22

Наблюдать

Пока низкий приоритет.

CVSS
22 / 40 · 5.5 / 10
CISA KEV
0 / 30 · Нет в списке
EPSS
0 / 30 · 0,2 %

Анализ Noroxi

Анализа Noroxi для этой записи пока нет

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

Мы используем этот продукт, нужна помощь

Затронутые системы

ВендорПродукт
linuxlinux kernel
debiandebian linux

Затронутые версии

Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.

  • debian debian linux11.0
  • linux linux kernel5.5 и новее · до 5.10.241
  • linux linux kernel5.11 и новее · до 5.15.190
  • linux linux kernel5.16 и новее · до 6.1.149
  • linux linux kernel2.6.25 и новее · до 5.4.297
  • linux linux kernel6.7 и новее · до 6.12.43
  • linux linux kernel6.13 и новее · до 6.15.11
  • linux linux kernel6.16 и новее · до 6.16.2
  • linux linux kernel6.2 и новее · до 6.6.103

Версии, заявленные вендором

Диапазоны затронутых версий, заявленные назначающей организацией (Linux). Не зависят от анализа CPE в NVD и обычно опережают его.

  • Linux Linux

    • 2.6.25затронута
    • 9cfe015aa424b3c003baba3841a60dd9b5ad319b и новее · до b4159c5a90c03f8acd3de345a7f5fc63b0909818затронута · git
    • 9cfe015aa424b3c003baba3841a60dd9b5ad319b и новее · до f95638a8f22eba307dceddf5aef9ae2326bbcf98затронута · git
    • 9cfe015aa424b3c003baba3841a60dd9b5ad319b и новее · до 749528086620f8012b83ae032a80f6ffa80c45cdзатронута · git
    • 9cfe015aa424b3c003baba3841a60dd9b5ad319b и новее · до 628fc28f42d979f36dbf75a6129ac7730e30c04eзатронута · git
    • 9cfe015aa424b3c003baba3841a60dd9b5ad319b и новее · до 237e416eb62101f21b28c9e6e564d10efe1ecc6fзатронута · git
    • 9cfe015aa424b3c003baba3841a60dd9b5ad319b и новее · до d4f9351243c17865a8cdbe6b3ccd09d0b13a7bccзатронута · git
    • 9cfe015aa424b3c003baba3841a60dd9b5ad319b и новее · до 9f61fa6a2a89a610120bc4e5d24379c667314b5cзатронута · git
    • 9cfe015aa424b3c003baba3841a60dd9b5ad319b и новее · до dfd1f4ea98c3bd3a03d12169b5b2daa1f0a3e4aeзатронута · git
    • 9cfe015aa424b3c003baba3841a60dd9b5ad319b и новее · до 04a2c4b4511d186b0fce685da21085a5d4acd370затронута · git

Затронутые пакеты

Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.

ЭкосистемаПакетЗатронутый диапазонИсправление
Debian:12linuxдо 6.1.153-16.1.153-1
Debian:13linuxдо 6.12.43-16.12.43-1
Debian:14linuxдо 6.16.3-16.16.3-1
openSUSE:Leap 16.0dtb-aarch64до 6.12.0-160000.7.16.12.0-160000.7.1
openSUSE:Leap 16.0kernel-64kbдо 6.12.0-160000.7.16.12.0-160000.7.1
openSUSE:Leap 16.0kernel-defaultдо 6.12.0-160000.7.16.12.0-160000.7.1
openSUSE:Leap 16.0kernel-default-baseдо 6.12.0-160000.6.1.160000.2.46.12.0-160000.6.1.160000.2.4
openSUSE:Leap 16.0kernel-docsдо 6.12.0-160000.7.16.12.0-160000.7.1
openSUSE:Leap 16.0kernel-kvmsmallдо 6.12.0-160000.7.16.12.0-160000.7.1
openSUSE:Leap 16.0kernel-obs-buildдо 6.12.0-160000.7.16.12.0-160000.7.1
openSUSE:Leap 16.0kernel-obs-qaдо 6.12.0-160000.7.16.12.0-160000.7.1
openSUSE:Leap 16.0kernel-rtдо 6.12.0-160000.7.16.12.0-160000.7.1
openSUSE:Leap 16.0kernel-sourceдо 6.12.0-160000.7.16.12.0-160000.7.1
openSUSE:Leap 16.0kernel-symsдо 6.12.0-160000.7.16.12.0-160000.7.1
openSUSE:Leap 16.0kernel-zfcpdumpдо 6.12.0-160000.7.16.12.0-160000.7.1
SUSE:Linux Enterprise Server 16.0kernel-docsдо 6.12.0-160000.7.16.12.0-160000.7.1
SUSE:Linux Enterprise Server 16.0kernel-kvmsmallдо 6.12.0-160000.7.16.12.0-160000.7.1
SUSE:Linux Enterprise Server 16.0kernel-obs-qaдо 6.12.0-160000.7.16.12.0-160000.7.1
SUSE:Linux Enterprise Server 16.0kernel-symsдо 6.12.0-160000.7.16.12.0-160000.7.1
SUSE:Linux Enterprise Server 16.0kernel-zfcpdumpдо 6.12.0-160000.7.16.12.0-160000.7.1
SUSE:Linux Micro 6.2kernel-64kbдо 6.12.0-160000.7.16.12.0-160000.7.1
SUSE:Linux Micro 6.2kernel-defaultдо 6.12.0-160000.7.16.12.0-160000.7.1
SUSE:Linux Micro 6.2kernel-default-baseдо 6.12.0-160000.6.1.160000.2.46.12.0-160000.6.1.160000.2.4
SUSE:Linux Micro 6.2kernel-rtдо 6.12.0-160000.7.16.12.0-160000.7.1

+2

Тот же продукт

linux: все записи

Другие записи с наивысшей оценкой для того же основного продукта.

  • CVE-2022-0847A flaw was found in the way the "flags" member of the new pipe buffer structure was lacking proper initialization in copy_page_to_iter_pipe KEV
    89Срочно
  • CVE-2021-22555Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACEKEV
    85Срочно
  • CVE-2016-5195Race condition in mm/gup.c in the Linux kernel 2.x through 4.x before 4.8.3 allows local users to gain privileges by leveraging incorrect haKEV
    83Срочно
  • CVE-2019-13272In the Linux kernel before 5.1.17, ptrace_link in kernel/ptrace.c mishandles the recording of the credentials of a process that wants to creKEV
    77На этой неделе
  • CVE-2013-6282The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the v6k and v7 ARM platforms do not validate certain addKEV
    77На этой неделе
  • CVE-2013-2094The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9 uses an incorrect integer data type, which allows loKEV
    77На этой неделе

Исправление

На какую версию обновиться

Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.

Продукт / пакетИсправленная версияИсточник
Linux Linux04a2c4b4511d186b0fce685da21085a5d4acd370Вендор (CNA)
Linux Linux237e416eb62101f21b28c9e6e564d10efe1ecc6fВендор (CNA)
Linux Linux628fc28f42d979f36dbf75a6129ac7730e30c04eВендор (CNA)
Linux Linux749528086620f8012b83ae032a80f6ffa80c45cdВендор (CNA)
Linux Linux9f61fa6a2a89a610120bc4e5d24379c667314b5cВендор (CNA)
Linux Linuxb4159c5a90c03f8acd3de345a7f5fc63b0909818Вендор (CNA)
Linux Linuxd4f9351243c17865a8cdbe6b3ccd09d0b13a7bccВендор (CNA)
Linux Linuxdfd1f4ea98c3bd3a03d12169b5b2daa1f0a3e4aeВендор (CNA)
Linux Linuxf95638a8f22eba307dceddf5aef9ae2326bbcf98Вендор (CNA)
azl3 kernel 6.6.96.2-2 on Azure Linux 3.06.6.104.2-1 · CBL-Mariner ReleasesMicrosoft (MSRC)
debian:linux6.1.153-1 · Debian:12Реестр пакетов (OSV)
opensuse:dtb-aarch646.12.0-160000.7.1 · openSUSE:Leap 16.0Реестр пакетов (OSV)
opensuse:kernel-64kb6.12.0-160000.7.1 · openSUSE:Leap 16.0Реестр пакетов (OSV)
opensuse:kernel-default6.12.0-160000.7.1 · openSUSE:Leap 16.0Реестр пакетов (OSV)
opensuse:kernel-default-base6.12.0-160000.6.1.160000.2.4 · openSUSE:Leap 16.0Реестр пакетов (OSV)
opensuse:kernel-docs6.12.0-160000.7.1 · openSUSE:Leap 16.0Реестр пакетов (OSV)
opensuse:kernel-kvmsmall6.12.0-160000.7.1 · openSUSE:Leap 16.0Реестр пакетов (OSV)
opensuse:kernel-obs-build6.12.0-160000.7.1 · openSUSE:Leap 16.0Реестр пакетов (OSV)
opensuse:kernel-obs-qa6.12.0-160000.7.1 · openSUSE:Leap 16.0Реестр пакетов (OSV)
opensuse:kernel-rt6.12.0-160000.7.1 · openSUSE:Leap 16.0Реестр пакетов (OSV)
opensuse:kernel-source6.12.0-160000.7.1 · openSUSE:Leap 16.0Реестр пакетов (OSV)
opensuse:kernel-syms6.12.0-160000.7.1 · openSUSE:Leap 16.0Реестр пакетов (OSV)
opensuse:kernel-zfcpdump6.12.0-160000.7.1 · openSUSE:Leap 16.0Реестр пакетов (OSV)
suse:kernel-64kb6.12.0-160000.7.1 · SUSE:Linux Micro 6.2Реестр пакетов (OSV)
suse:kernel-default6.12.0-160000.7.1 · SUSE:Linux Micro 6.2Реестр пакетов (OSV)
suse:kernel-default-base6.12.0-160000.6.1.160000.2.4 · SUSE:Linux Micro 6.2Реестр пакетов (OSV)
suse:kernel-docs6.12.0-160000.7.1 · SUSE:Linux Enterprise Server 16.0Реестр пакетов (OSV)
suse:kernel-kvmsmall6.12.0-160000.7.1 · SUSE:Linux Enterprise Server 16.0Реестр пакетов (OSV)
suse:kernel-obs-build6.12.0-160000.7.1 · SUSE:Linux Micro Extras 6.2Реестр пакетов (OSV)
suse:kernel-obs-qa6.12.0-160000.7.1 · SUSE:Linux Enterprise Server 16.0Реестр пакетов (OSV)

+4

Статус эксплойта

Публичный эксплойт неизвестен

Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.

Контекст для исследователя

Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.

Хронология

От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.

Кроме публикации датированных событий нет.

EPSS за 120 дней

Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).

Ссылки на патчи и коммиты

Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.

Среди источников нет ссылок на коммит или PR.

Нашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.

В записи CNA нет авторов.

Кандидаты в варианты

Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.

Ночной расчёт связей ничего не нашёл.

Кандидаты в цепочки

Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.

—

Охват bug bounty

Известной публичной программы нет.

Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).

Технические детали

Условия атаки

  • Может быть вызвана пользователем с локальным доступом к системе.
  • Достаточно учётной записи с низкими привилегиями.
  • Действия пользователя не требуются.
  • Особые условия не требуются; воспроизводится стабильно.

В случае успеха

Конфиденциальность
нет
Целостность
нет
Доступность
высокое · работа сервиса может быть нарушена
Вектор атаки
Локальный
Сложность атаки
Низкая
Требуемые привилегии
Низкие
Взаимодействие с пользователем
Не требуется
Область действия
Не изменяется
Влияние на конфиденциальность
Нет
Влияние на целостность
Нет
Влияние на доступность
Высокое

Вектор CVSS

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

nvd-primary

Контекст атаки

Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.

У MITRE нет сопоставления CAPEC/ATT&CK для этого CWE.

Журнал изменений

  1. Исправление✗ → ✓

Для отслеживаемых записей эти изменения приходят и как уведомления. →

Источники

Все записи