<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 29 Sep 2026 19:50:46 +0000</lastBuildDate>
    <item>
      <title>CVE-2025-39756 — fs: Prevent file descriptor table allocations exceeding INT_MAX</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2025-39756</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, Siemens SIMATIC CN 4100, Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP, Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP, Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;fs: Prevent file descriptor table allocations exceeding INT_MAX&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;p&gt;WARNING: CPU: 0 PID: 44 at mm/slub.c:5027 __kvmalloc_node_noprof+0x21a/0x288&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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: &amp;gt; 8GB (exceeding INT_MAX = 2,147,483,647)&lt;/p&gt;
&lt;p&gt;Reproducer:
1. Set /proc/sys/fs/nr_open to 1073741816:
   # echo 1073741816 &amp;gt; /proc/sys/fs/nr_open&lt;/p&gt;
&lt;p&gt;2. Run a program that uses a high file descriptor:
   #include &amp;lt;unistd.h&amp;gt;
   #include &amp;lt;sys/resource.h&amp;gt;&lt;/p&gt;
&lt;p&gt;int main() {
       struct rlimit rlim = {1073741824, 1073741824};
       setrlimit(RLIMIT_NOFILE, &amp;amp;rlim);
       dup2(2, 1073741880);  // Triggers the warning
       return 0;
   }&lt;/p&gt;
&lt;p&gt;3. Observe WARNING in dmesg at mm/slub.c:5027&lt;/p&gt;
&lt;p&gt;systemd commit a8b627a introduced automatic bumping of fs.nr_open to the
maximum possible value. The rationale was t…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, Siemens SIMATIC CN 4100, Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP, Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP, Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;fs: Prevent file descriptor table allocations exceeding INT_MAX&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;p&gt;WARNING: CPU: 0 PID: 44 at mm/slub.c:5027 __kvmalloc_node_noprof+0x21a/0x288&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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: &amp;gt; 8GB (exceeding INT_MAX = 2,147,483,647)&lt;/p&gt;
&lt;p&gt;Reproducer:
1. Set /proc/sys/fs/nr_open to 1073741816:
   # echo 1073741816 &amp;gt; /proc/sys/fs/nr_open&lt;/p&gt;
&lt;p&gt;2. Run a program that uses a high file descriptor:
   #include &amp;lt;unistd.h&amp;gt;
   #include &amp;lt;sys/resource.h&amp;gt;&lt;/p&gt;
&lt;p&gt;int main() {
       struct rlimit rlim = {1073741824, 1073741824};
       setrlimit(RLIMIT_NOFILE, &amp;amp;rlim);
       dup2(2, 1073741880);  // Triggers the warning
       return 0;
   }&lt;/p&gt;
&lt;p&gt;3. Observe WARNING in dmesg at mm/slub.c:5027&lt;/p&gt;
&lt;p&gt;systemd commit a8b627a introduced automatic bumping of fs.nr_open to the
maximum possible value. The rationale was t…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2025-39756</guid>
    </item>
  </channel>
</rss>
