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.
- Опубликовано
- 11 сент. 2025 г.
- Обновлено
- 8 сент. 2026 г.
- EPSS
- 0,2 % · 7-й процентиль
- CWE
- CWE-401
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
22
Наблюдать
Пока низкий приоритет.
- CVSS
- 22 / 40 · 5.5 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · 0,2 %
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для сотен тысяч уязвимостей в базе; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЗатронутые системы
| Вендор | Продукт | CPE |
|---|---|---|
| linux | linux kernel | cpe:2.3:o:linux:linux_kernel |
| debian | debian linux | cpe:2.3:o:debian:debian_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:12 | linux | до 6.1.153-1 | 6.1.153-1 |
| Debian:13 | linux | до 6.12.43-1 | 6.12.43-1 |
| Debian:14 | linux | до 6.16.3-1 | 6.16.3-1 |
| openSUSE:Leap 16.0 | dtb-aarch64 | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| openSUSE:Leap 16.0 | kernel-64kb | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| openSUSE:Leap 16.0 | kernel-default | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| openSUSE:Leap 16.0 | kernel-default-base | до 6.12.0-160000.6.1.160000.2.4 | 6.12.0-160000.6.1.160000.2.4 |
| openSUSE:Leap 16.0 | kernel-docs | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| openSUSE:Leap 16.0 | kernel-kvmsmall | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| openSUSE:Leap 16.0 | kernel-obs-build | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| openSUSE:Leap 16.0 | kernel-obs-qa | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| openSUSE:Leap 16.0 | kernel-rt | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| openSUSE:Leap 16.0 | kernel-source | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| openSUSE:Leap 16.0 | kernel-syms | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| openSUSE:Leap 16.0 | kernel-zfcpdump | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| SUSE:Linux Enterprise Server 16.0 | kernel-docs | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| SUSE:Linux Enterprise Server 16.0 | kernel-kvmsmall | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| SUSE:Linux Enterprise Server 16.0 | kernel-obs-qa | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| SUSE:Linux Enterprise Server 16.0 | kernel-syms | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| SUSE:Linux Enterprise Server 16.0 | kernel-zfcpdump | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| SUSE:Linux Micro 6.2 | kernel-64kb | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| SUSE:Linux Micro 6.2 | kernel-default | до 6.12.0-160000.7.1 | 6.12.0-160000.7.1 |
| SUSE:Linux Micro 6.2 | kernel-default-base | до 6.12.0-160000.6.1.160000.2.4 | 6.12.0-160000.6.1.160000.2.4 |
| SUSE:Linux Micro 6.2 | kernel-rt | до 6.12.0-160000.7.1 | 6.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 KEV89Срочно
- CVE-2021-22555Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACEKEV85Срочно
- 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 haKEV83Срочно
- 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 creKEV77На этой неделе
- 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 addKEV77На этой неделе
- 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 loKEV77На этой неделе
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| Linux Linux | 04a2c4b4511d186b0fce685da21085a5d4acd370 | Вендор (CNA) |
| Linux Linux | 237e416eb62101f21b28c9e6e564d10efe1ecc6f | Вендор (CNA) |
| Linux Linux | 628fc28f42d979f36dbf75a6129ac7730e30c04e | Вендор (CNA) |
| Linux Linux | 749528086620f8012b83ae032a80f6ffa80c45cd | Вендор (CNA) |
| Linux Linux | 9f61fa6a2a89a610120bc4e5d24379c667314b5c | Вендор (CNA) |
| Linux Linux | b4159c5a90c03f8acd3de345a7f5fc63b0909818 | Вендор (CNA) |
| Linux Linux | d4f9351243c17865a8cdbe6b3ccd09d0b13a7bcc | Вендор (CNA) |
| Linux Linux | dfd1f4ea98c3bd3a03d12169b5b2daa1f0a3e4ae | Вендор (CNA) |
| Linux Linux | f95638a8f22eba307dceddf5aef9ae2326bbcf98 | Вендор (CNA) |
| azl3 kernel 6.6.96.2-2 on Azure Linux 3.0 | 6.6.104.2-1 · CBL-Mariner Releases | Microsoft (MSRC) |
| debian:linux | 6.1.153-1 · Debian:12 | Реестр пакетов (OSV) |
| opensuse:dtb-aarch64 | 6.12.0-160000.7.1 · openSUSE:Leap 16.0 | Реестр пакетов (OSV) |
| opensuse:kernel-64kb | 6.12.0-160000.7.1 · openSUSE:Leap 16.0 | Реестр пакетов (OSV) |
| opensuse:kernel-default | 6.12.0-160000.7.1 · openSUSE:Leap 16.0 | Реестр пакетов (OSV) |
| opensuse:kernel-default-base | 6.12.0-160000.6.1.160000.2.4 · openSUSE:Leap 16.0 | Реестр пакетов (OSV) |
| opensuse:kernel-docs | 6.12.0-160000.7.1 · openSUSE:Leap 16.0 | Реестр пакетов (OSV) |
| opensuse:kernel-kvmsmall | 6.12.0-160000.7.1 · openSUSE:Leap 16.0 | Реестр пакетов (OSV) |
| opensuse:kernel-obs-build | 6.12.0-160000.7.1 · openSUSE:Leap 16.0 | Реестр пакетов (OSV) |
| opensuse:kernel-obs-qa | 6.12.0-160000.7.1 · openSUSE:Leap 16.0 | Реестр пакетов (OSV) |
| opensuse:kernel-rt | 6.12.0-160000.7.1 · openSUSE:Leap 16.0 | Реестр пакетов (OSV) |
| opensuse:kernel-source | 6.12.0-160000.7.1 · openSUSE:Leap 16.0 | Реестр пакетов (OSV) |
| opensuse:kernel-syms | 6.12.0-160000.7.1 · openSUSE:Leap 16.0 | Реестр пакетов (OSV) |
| opensuse:kernel-zfcpdump | 6.12.0-160000.7.1 · openSUSE:Leap 16.0 | Реестр пакетов (OSV) |
| suse:kernel-64kb | 6.12.0-160000.7.1 · SUSE:Linux Micro 6.2 | Реестр пакетов (OSV) |
| suse:kernel-default | 6.12.0-160000.7.1 · SUSE:Linux Micro 6.2 | Реестр пакетов (OSV) |
| suse:kernel-default-base | 6.12.0-160000.6.1.160000.2.4 · SUSE:Linux Micro 6.2 | Реестр пакетов (OSV) |
| suse:kernel-docs | 6.12.0-160000.7.1 · SUSE:Linux Enterprise Server 16.0 | Реестр пакетов (OSV) |
| suse:kernel-kvmsmall | 6.12.0-160000.7.1 · SUSE:Linux Enterprise Server 16.0 | Реестр пакетов (OSV) |
| suse:kernel-obs-build | 6.12.0-160000.7.1 · SUSE:Linux Micro Extras 6.2 | Реестр пакетов (OSV) |
| suse:kernel-obs-qa | 6.12.0-160000.7.1 · SUSE:Linux Enterprise Server 16.0 | Реестр пакетов (OSV) |
+4
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Среди источников нет ссылок на коммит или PR.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
Ночной расчёт связей ничего не нашёл.
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана пользователем с локальным доступом к системе.
- Достаточно учётной записи с низкими привилегиями.
- Действия пользователя не требуются.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- нет
- Целостность
- нет
- Доступность
- высокое · работа сервиса может быть нарушена
- Вектор атаки
- Локальный
- Сложность атаки
- Низкая
- Требуемые привилегии
- Низкие
- Взаимодействие с пользователем
- Не требуется
- Область действия
- Не изменяется
- Влияние на конфиденциальность
- Нет
- Влияние на целостность
- Нет
- Влияние на доступность
- Высокое
Класс уязвимости (CWE)
CWE-401 · Missing Release of Memory after Effective LifetimeВектор 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.
Журнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- git.kernel.org/stable/c/04a2c4b4511d186b0fce685da21085a5d4acd370
- git.kernel.org/stable/c/237e416eb62101f21b28c9e6e564d10efe1ecc6f
- git.kernel.org/stable/c/628fc28f42d979f36dbf75a6129ac7730e30c04e
- git.kernel.org/stable/c/749528086620f8012b83ae032a80f6ffa80c45cd
- git.kernel.org/stable/c/9f61fa6a2a89a610120bc4e5d24379c667314b5c
- git.kernel.org/stable/c/b4159c5a90c03f8acd3de345a7f5fc63b0909818
- git.kernel.org/stable/c/d4f9351243c17865a8cdbe6b3ccd09d0b13a7bcc
- git.kernel.org/stable/c/dfd1f4ea98c3bd3a03d12169b5b2daa1f0a3e4ae
- git.kernel.org/stable/c/f95638a8f22eba307dceddf5aef9ae2326bbcf98
- lists.debian.org/debian-lts-announce/2025/10/msg00007.html
- lists.debian.org/debian-lts-announce/2025/10/msg00008.html
- cert-portal.siemens.com/productcert/html/ssa-019113.html
- cert-portal.siemens.com/productcert/html/ssa-032379.html
- cert-portal.siemens.com/productcert/html/ssa-082556.html
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.