CVE-2025-39756 — 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.
Descrição oficial em inglês (tradução ainda não revisada).
Quem explora e qual a prioridade
Nota de 0 a 100 que combina exploração confirmada, uso por ransomware e grupos APT, exploits públicos, EPSS e severidade.
Como a nota foi calculada
- EPSS 0.2% (probabilidade de exploração em 30 dias)+1
- Severidade técnica (medium)+3
A nota ordena a fila de correção; não substitui o contexto dos seus ativos (exposição à internet, criticidade, compensações).
Triagem
Está sendo explorada, qual a probabilidade de exploração, o que afeta e qual a severidade segundo as fontes.
Remediação
Correções e mitigações documentadas pelas fontes — com link para o aviso original.
- Patch documentado — git.kernel.org (NIST National Vulnerability Database)
- Patch documentado — git.kernel.org (NIST National Vulnerability Database)
- Patch documentado — git.kernel.org (NIST National Vulnerability Database)
- Patch documentado — git.kernel.org (NIST National Vulnerability Database)
- Patch documentado — git.kernel.org (NIST National Vulnerability Database)
- Patch documentado — git.kernel.org (NIST National Vulnerability Database)
- Patch documentado — git.kernel.org (NIST National Vulnerability Database)
- Patch documentado — git.kernel.org (NIST National Vulnerability Database)
- Patch documentado — git.kernel.org (NIST National Vulnerability Database)
Primeiras 24 horas
Ordenado a partir dos próprios campos do registro — exposição primeiro, porque não se corrige o que não se encontrou. Ponto de partida, gerado por regras.
- Identifique ativos expostos que executam as combinações de fabricante/produto/versão afetadas (Debian Debian Linux, Linux Linux, Linux Linux Kernel).
- Aplique a versão corrigida ou o patch documentado na seção Remediação.
- Procure nos logs disponíveis sinais de tentativa de exploração compatíveis com a classe da falha (corrupção de memória), erros e anomalias de autenticação.
Escopo afetado
Fabricante, produto e versões como as fontes os descrevem.
| Fabricante | Produto | Versões | Status | Fonte |
|---|---|---|---|---|
| Debian | Debian Linux | versão 11.0 | Vulnerável | NIST National Vulnerability Database |
| Linux | Linux |
≥ 9cfe015aa424b3c003baba3841a60dd9b5ad319b e < b4159c5a90c03f8acd3de345a7f5fc63b0909818versão 2.6.25≥ 9cfe015aa424b3c003baba3841a60dd9b5ad319b e < 04a2c4b4511d186b0fce685da21085a5d4acd370≥ 9cfe015aa424b3c003baba3841a60dd9b5ad319b e < dfd1f4ea98c3bd3a03d12169b5b2daa1f0a3e4ae≥ 9cfe015aa424b3c003baba3841a60dd9b5ad319b e < 9f61fa6a2a89a610120bc4e5d24379c667314b5c≥ 9cfe015aa424b3c003baba3841a60dd9b5ad319b e < d4f9351243c17865a8cdbe6b3ccd09d0b13a7bcc≥ 9cfe015aa424b3c003baba3841a60dd9b5ad319b e < 237e416eb62101f21b28c9e6e564d10efe1ecc6f≥ 9cfe015aa424b3c003baba3841a60dd9b5ad319b e < 628fc28f42d979f36dbf75a6129ac7730e30c04e e mais 2≥ 9cfe015aa424b3c003baba3841a60dd9b5ad319b e < 749528086620f8012b83ae032a80f6ffa80c45cd≥ 9cfe015aa424b3c003baba3841a60dd9b5ad319b e < f95638a8f22eba307dceddf5aef9ae2326bbcf98 |
Vulnerável | CVE Program (cve.org) e CISA ADP |
| Linux | Linux Kernel | ≥ 6.16 e < 6.16.2≥ 6.13 e < 6.15.11≥ 6.7 e < 6.12.43≥ 6.2 e < 6.6.103≥ 5.16 e < 6.1.149≥ 5.11 e < 5.15.190≥ 5.5 e < 5.10.241≥ 2.6.25 e < 5.4.297 | Vulnerável | NIST National Vulnerability Database |
Características do ataque
O vetor CVSS decodificado. Descreve o ataque, não a sua exposição a ele.
Todas as pontuações coletadas
As fontes pontuam de forma independente e podem discordar; cada linha diz quem pontuou e em qual versão.
| Nota | Versão | Severidade | Explor. | Impacto | Pontuado por |
|---|---|---|---|---|---|
| 5.5 | CVSS 3.1 | Média | 1.8 | 3.6 | nvd@nist.gov via NIST National Vulnerability Database |
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H (nota exibida no topo: nvd@nist.gov) Fraqueza MITRE
Classe de fraqueza segundo o catálogo CWE do MITRE.
CWE-401 · Missing Release of Memory after Effective Lifetime
Detecção
Derivado do vetor CVSS e da classe da fraqueza. Pontos de partida, não regras testadas.
- Vetor local/físico: concentre-se em telemetria de endpoint (EDR) dos hosts afetados.
- Correlacione falhas/reinícios do serviço com tráfego de entrada; crashes repetidos podem indicar tentativas.
Linha do tempo
O que aconteceu com esta CVE, do mais recente ao mais antigo.
- 2026
- Produtos afetados adicionados · linux/linux
- Ficha publicada
- Correção documentada
- CVSS alterado · 5.5
- Status na fonte alterado · → Modified
- Registro criado nesta base
- 2025
- CVE publicada
Atividade das fontes
Leituras que se repetem foram contadas em vez de listadas.
- 1× Descrição oficial atualizada · 15/10/2026 – 15/10/2026
Referências
15 no registro
- git.kernel.org/stable/c/237e416eb62101f21b28c9e6e564d10efe1ecc6f
- git.kernel.org/stable/c/04a2c4b4511d186b0fce685da21085a5d4acd370
- git.kernel.org/stable/c/749528086620f8012b83ae032a80f6ffa80c45cd
- git.kernel.org/stable/c/dfd1f4ea98c3bd3a03d12169b5b2daa1f0a3e4ae
- git.kernel.org/stable/c/b4159c5a90c03f8acd3de345a7f5fc63b0909818
- git.kernel.org/stable/c/628fc28f42d979f36dbf75a6129ac7730e30c04e
- git.kernel.org/stable/c/9f61fa6a2a89a610120bc4e5d24379c667314b5c
- git.kernel.org/stable/c/f95638a8f22eba307dceddf5aef9ae2326bbcf98
- git.kernel.org/stable/c/d4f9351243c17865a8cdbe6b3ccd09d0b13a7bcc
- cert-portal.siemens.com/productcert/html/ssa-082556.html
- cert-portal.siemens.com/productcert/html/ssa-032379.html
- cert-portal.siemens.com/productcert/html/ssa-457936.html
- lists.debian.org/debian-lts-announce/2025/10/msg00007.html
- cert-portal.siemens.com/productcert/html/ssa-019113.html
- lists.debian.org/debian-lts-announce/2025/10/msg00008.html
Em outras páginas do site
CVEs relacionadas (mesmos produtos)
- Crítica CVE-2026-99999 ipv4: validate checksum_start before completing checksum 4 h
- Desconhecida CVE-2026-98432 ipv4: free inet_opt and ireq_opt after an RCU grace period 4 h
- Desconhecida CVE-2026-98424 wifi: cfg80211: undo netns switch if renaming the wiphy fails 1 d
- Desconhecida CVE-2026-98425 wifi: mac80211: don't warn when an IBSS has no channel to scan 1 d
- Desconhecida CVE-2026-98426 wifi: mwifiex: fix IRQ leak using wrong index in MSI-X error path 1 d
- Desconhecida CVE-2026-98427 net/sched: codel: bound the dropping loop per dequeue call 1 d
Não consta em nenhuma fonte consultada
Listado em vez de deixado em branco: um campo vazio e um não medido parecem iguais na tela, e só um deles é motivo para procurar em outro lugar.
- Sem avaliação SSVC da CISA.
- Nenhum IOC confirmado (IPs, domínios, hashes ou artefatos de malware) fornecido.
- Nenhum inventário de ativos, controle compensatório ou evidência de implantação de patch da sua organização.
- Nenhuma captura de tráfego de exploração, amostra de log ou caso de incidente.
Respondido a partir deste registro
Texto montado apenas com os campos acima — sem afirmações adicionais.
O que os defensores devem saber primeiro?
CVE-2025-39756 é "fs: Prevent file descriptor table allocations exceeding INT_MAX", de severidade Média. Afeta Debian Linux (Debian); as versões estão na tabela de escopo. Não está na CISA KEV, o que não exclui exploração. CVSS 5.5 descreve a severidade técnica. EPSS 0.18% estima a probabilidade de exploração em 30 dias; nenhum dos dois substitui o contexto dos seus ativos. Verifique primeiro se ativos expostos ou críticos executam as versões afetadas, aplique as correções ou mitigações do fabricante e preserve logs para análise.
Comentários
Discussão técnica moderada. Leia as regras da comunidade.
Nenhum comentário ainda.
Entre ou crie uma conta para comentar e sugerir correções.